Fixed GUI issues related to setting scale/offset/rotation
This commit is contained in:
parent
3cb1924750
commit
31af6d7dbc
|
@ -34,6 +34,22 @@
|
|||
bool S3D::Select3DModel( wxWindow* aParent, S3D_CACHE* aCache,
|
||||
wxString& prevModelSelectDir, int& prevModelWildcard, S3D_INFO* aModel )
|
||||
{
|
||||
if( NULL == aModel )
|
||||
return false;
|
||||
|
||||
// set the default values to ensure reasonable settings
|
||||
// even if the user cancels the operation
|
||||
aModel->scale.x = 1.0;
|
||||
aModel->scale.y = 1.0;
|
||||
aModel->scale.z = 1.0;
|
||||
|
||||
aModel->rotation.x = 0.0;
|
||||
aModel->rotation.y = 0.0;
|
||||
aModel->rotation.z = 0.0;
|
||||
|
||||
aModel->offset = aModel->rotation;
|
||||
aModel->filename.empty();
|
||||
|
||||
DLG_SEL_3DMODEL* dm = new DLG_SEL_3DMODEL( aParent, aCache,
|
||||
prevModelSelectDir, prevModelWildcard );
|
||||
|
||||
|
|
|
@ -35,6 +35,13 @@ static wxWindow* mkPreviewPanel( wxWindow* aParent )
|
|||
pp->SetModelManager( mm );
|
||||
pp->SetFileSelectorDlg( fm );
|
||||
|
||||
// ensure reasonable defaults when the dialog starts
|
||||
S3D_INFO mdat;
|
||||
mdat.scale.x = 1.0;
|
||||
mdat.scale.y = 1.0;
|
||||
mdat.scale.z = 1.0;
|
||||
pp->SetModelData( &mdat );
|
||||
|
||||
return (wxWindow*)pp;
|
||||
}
|
||||
|
||||
|
|
|
@ -503,17 +503,17 @@ void PANEL_PREV_3D::GetModelData( S3D_INFO* aModel )
|
|||
|
||||
void PANEL_PREV_3D::SetModelData( S3D_INFO const* aModel )
|
||||
{
|
||||
xscale->ChangeValue( wxString::FromDouble( aModel->scale.x ) );
|
||||
yscale->ChangeValue( wxString::FromDouble( aModel->scale.y ) );
|
||||
zscale->ChangeValue( wxString::FromDouble( aModel->scale.z ) );
|
||||
xscale->SetValue( wxString::FromDouble( aModel->scale.x ) );
|
||||
yscale->SetValue( wxString::FromDouble( aModel->scale.y ) );
|
||||
zscale->SetValue( wxString::FromDouble( aModel->scale.z ) );
|
||||
|
||||
xrot->ChangeValue( wxString::FromDouble( aModel->rotation.x ) );
|
||||
yrot->ChangeValue( wxString::FromDouble( aModel->rotation.y ) );
|
||||
zrot->ChangeValue( wxString::FromDouble( aModel->rotation.z ) );
|
||||
xrot->SetValue( wxString::FromDouble( aModel->rotation.x ) );
|
||||
yrot->SetValue( wxString::FromDouble( aModel->rotation.y ) );
|
||||
zrot->SetValue( wxString::FromDouble( aModel->rotation.z ) );
|
||||
|
||||
xoff->ChangeValue( wxString::FromDouble( aModel->offset.x ) );
|
||||
yoff->ChangeValue( wxString::FromDouble( aModel->offset.y ) );
|
||||
zoff->ChangeValue( wxString::FromDouble( aModel->offset.z ) );
|
||||
xoff->SetValue( wxString::FromDouble( aModel->offset.x ) );
|
||||
yoff->SetValue( wxString::FromDouble( aModel->offset.y ) );
|
||||
zoff->SetValue( wxString::FromDouble( aModel->offset.z ) );
|
||||
|
||||
modelInfo = *aModel;
|
||||
UpdateModelName( aModel->filename );
|
||||
|
|
|
@ -391,6 +391,18 @@ void DIALOG_MODULE_BOARD_EDITOR::Transfert3DValuesToDisplay(
|
|||
params.rotation.y = aStruct3DSource->m_MatRotation.y;
|
||||
params.rotation.z = aStruct3DSource->m_MatRotation.z;
|
||||
}
|
||||
else
|
||||
{
|
||||
params.scale.x = 1.0;
|
||||
params.scale.y = 1.0;
|
||||
params.scale.z = 1.0;
|
||||
|
||||
params.offset.x = 0.0;
|
||||
params.offset.y = 0.0;
|
||||
params.offset.z = 0.0;
|
||||
|
||||
params.rotation = params.offset;
|
||||
}
|
||||
|
||||
m_PreviewPane->SetModelData( ¶ms );
|
||||
return;
|
||||
|
@ -542,9 +554,6 @@ void DIALOG_MODULE_BOARD_EDITOR::BrowseAndAdd3DShapeFile()
|
|||
{
|
||||
PROJECT& prj = Prj();
|
||||
S3D_INFO model;
|
||||
model.scale.x = 1.0;
|
||||
model.scale.y = 1.0;
|
||||
model.scale.z = 1.0;
|
||||
|
||||
wxString initialpath = prj.GetRString( PROJECT::VIEWER_3D_PATH );
|
||||
wxString sidx = prj.GetRString( PROJECT::VIEWER_3D_FILTER_INDEX );
|
||||
|
|
|
@ -261,6 +261,18 @@ void DIALOG_MODULE_MODULE_EDITOR::Transfert3DValuesToDisplay( S3D_MASTER * aStru
|
|||
params.rotation.y = aStruct3DSource->m_MatRotation.y;
|
||||
params.rotation.z = aStruct3DSource->m_MatRotation.z;
|
||||
}
|
||||
else
|
||||
{
|
||||
params.scale.x = 1.0;
|
||||
params.scale.y = 1.0;
|
||||
params.scale.z = 1.0;
|
||||
|
||||
params.offset.x = 0.0;
|
||||
params.offset.y = 0.0;
|
||||
params.offset.z = 0.0;
|
||||
|
||||
params.rotation = params.offset;
|
||||
}
|
||||
|
||||
m_PreviewPane->SetModelData( ¶ms );
|
||||
return;
|
||||
|
@ -409,9 +421,6 @@ void DIALOG_MODULE_MODULE_EDITOR::BrowseAndAdd3DShapeFile()
|
|||
{
|
||||
PROJECT& prj = Prj();
|
||||
S3D_INFO model;
|
||||
model.scale.x = 1.0;
|
||||
model.scale.y = 1.0;
|
||||
model.scale.z = 1.0;
|
||||
|
||||
wxString initialpath = prj.GetRString( PROJECT::VIEWER_3D_PATH );
|
||||
wxString sidx = prj.GetRString( PROJECT::VIEWER_3D_FILTER_INDEX );
|
||||
|
|
Loading…
Reference in New Issue