diff --git a/3d-viewer/3d_viewer/3d_menubar.cpp b/3d-viewer/3d_viewer/3d_menubar.cpp index 8e6f8c86c2..24ad9ee577 100644 --- a/3d-viewer/3d_viewer/3d_menubar.cpp +++ b/3d-viewer/3d_viewer/3d_menubar.cpp @@ -104,92 +104,20 @@ void EDA_3D_VIEWER::CreateMenuBar() // ACTION_MENU* prefsMenu = new ACTION_MENU( false, tool ); - prefsMenu->Add( _( "Display Options" ), "", - ID_TOOL_SET_VISIBLE_ITEMS, - BITMAPS::config ); - prefsMenu->Add( _( "Raytracing" ), "", ID_RENDER_CURRENT_VIEW, BITMAPS::tools, ACTION_MENU::CHECK ); - // Render options submenu - ACTION_MENU* optsSubmenu = new ACTION_MENU( false, tool ); - optsSubmenu->SetTitle( _( "Render Options" ) ); - optsSubmenu->SetIcon( BITMAPS::options_3drender ); + prefsMenu->Add( _( "Preferences..." ) + "\tCtrl+,", + _( "Show preferences for all open tools" ), + wxID_PREFERENCES, + BITMAPS::preference ); - // Material properties submenu - ACTION_MENU* propsSubmenu = new ACTION_MENU( false, tool ); - propsSubmenu->SetTitle( _( "Material Properties" ) ); - - propsSubmenu->Add( EDA_3D_ACTIONS::materialNormal, ACTION_MENU::CHECK ); - propsSubmenu->Add( EDA_3D_ACTIONS::materialDiffuse, ACTION_MENU::CHECK ); - propsSubmenu->Add( EDA_3D_ACTIONS::materialCAD, ACTION_MENU::CHECK ); - - optsSubmenu->Add( propsSubmenu ); - - optsSubmenu->Add( EDA_3D_ACTIONS::showBoundingBoxes, ACTION_MENU::CHECK ); - - // Raytracing submenu - ACTION_MENU* raySubmenu = new ACTION_MENU( false, tool ); - raySubmenu->SetTitle( _( "Raytracing Options" ) ); - - raySubmenu->Add( EDA_3D_ACTIONS::renderShadows, ACTION_MENU::CHECK ); - raySubmenu->Add( EDA_3D_ACTIONS::proceduralTextures, ACTION_MENU::CHECK ); - raySubmenu->Add( EDA_3D_ACTIONS::addFloor, ACTION_MENU::CHECK ); - raySubmenu->Add( EDA_3D_ACTIONS::showRefractions, ACTION_MENU::CHECK ); - raySubmenu->Add( EDA_3D_ACTIONS::showReflections, ACTION_MENU::CHECK ); - raySubmenu->Add( EDA_3D_ACTIONS::antiAliasing, ACTION_MENU::CHECK ); - raySubmenu->Add( EDA_3D_ACTIONS::postProcessing, ACTION_MENU::CHECK ); - - optsSubmenu->Add( raySubmenu ); - prefsMenu->Add( optsSubmenu ); + prefsMenu->Add( _( "Reset to Default Settings" ), ID_MENU3D_RESET_DEFAULTS, BITMAPS::tools ); prefsMenu->AppendSeparator(); - // Color submenu - ACTION_MENU* colorSubmenu = new ACTION_MENU( false, tool ); - colorSubmenu->SetTitle( _( "Choose Colors" ) ); - colorSubmenu->SetIcon( BITMAPS::color_materials ); - - colorSubmenu->Add( _( "Background Top Color..." ), - ID_MENU3D_BGCOLOR_TOP, - BITMAPS::INVALID_BITMAP ); - - colorSubmenu->Add( _( "Background Bottom Color..." ), - ID_MENU3D_BGCOLOR_BOTTOM, - BITMAPS::INVALID_BITMAP ); - - colorSubmenu->Add( _( "Silkscreen Color..." ), - ID_MENU3D_SILKSCREEN_COLOR, - BITMAPS::INVALID_BITMAP ); - - colorSubmenu->Add( _( "Solder Mask Color..." ), - ID_MENU3D_SOLDERMASK_COLOR, - BITMAPS::INVALID_BITMAP ); - - colorSubmenu->Add( _( "Solder Paste Color..." ), - ID_MENU3D_SOLDERPASTE_COLOR, - BITMAPS::INVALID_BITMAP ); - - colorSubmenu->Add( _( "Copper/Surface Finish Color..." ), - ID_MENU3D_COPPER_COLOR, - BITMAPS::INVALID_BITMAP ); - - colorSubmenu->Add( _( "Board Body Color..." ), - ID_MENU3D_PCB_BODY_COLOR, - BITMAPS::INVALID_BITMAP ); - - // Only allow the stackup to be used in the PCB editor, since it isn't editable in the other frames - if( Parent()->IsType( FRAME_PCB_EDITOR ) ) - { - colorSubmenu->Add( _( "Get colors from physical stackup" ), - ID_MENU3D_STACKUP_COLORS, - BITMAPS::INVALID_BITMAP ); - } - - prefsMenu->Add( colorSubmenu ); - prefsMenu->Add( EDA_3D_ACTIONS::showAxis, ACTION_MENU::CHECK ); // Grid submenu @@ -205,16 +133,6 @@ void EDA_3D_VIEWER::CreateMenuBar() prefsMenu->Add( gridSubmenu ); - prefsMenu->AppendSeparator(); - prefsMenu->Add( _( "Reset to Default Settings" ), ID_MENU3D_RESET_DEFAULTS, BITMAPS::tools ); - -#ifdef __APPLE__ // Note: will get moved to Apple menu by wxWidgets - prefsMenu->Add( _( "Preferences..." ) + "\tCtrl+,", - _( "Show preferences for all open tools" ), - wxID_PREFERENCES, - BITMAPS::preference ); -#endif - //-- Menubar ------------------------------------------------------------- // menuBar->Append( fileMenu, _( "&File" ) ); diff --git a/3d-viewer/3d_viewer/3d_toolbar.cpp b/3d-viewer/3d_viewer/3d_toolbar.cpp index 7ba42a2b79..7ba30e702d 100644 --- a/3d-viewer/3d_viewer/3d_toolbar.cpp +++ b/3d-viewer/3d_viewer/3d_toolbar.cpp @@ -59,11 +59,6 @@ void EDA_3D_VIEWER::ReCreateMainToolbar() KiScaledBitmap( BITMAPS::copy, this ), _( "Copy 3D image to clipboard" ) ); - m_mainToolBar->AddScaledSeparator( this ); - m_mainToolBar->AddTool( ID_TOOL_SET_VISIBLE_ITEMS, wxEmptyString, - KiScaledBitmap( BITMAPS::config, this ), - _( "Set display options, and some layers visibility" ) ); - m_mainToolBar->AddScaledSeparator( this ); m_mainToolBar->AddTool( ID_RENDER_CURRENT_VIEW, wxEmptyString, KiScaledBitmap( BITMAPS::render_mode, this ), diff --git a/3d-viewer/3d_viewer/dialogs/dialog_3D_view_option_base.cpp b/3d-viewer/3d_viewer/dialogs/dialog_3D_view_option_base.cpp deleted file mode 100644 index 9f4bf6dbbf..0000000000 --- a/3d-viewer/3d_viewer/dialogs/dialog_3D_view_option_base.cpp +++ /dev/null @@ -1,627 +0,0 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Oct 26 2018) -// http://www.wxformbuilder.org/ -// -// PLEASE DO *NOT* EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#include "dialog_3D_view_option_base.h" - -/////////////////////////////////////////////////////////////////////////// - -DIALOG_3D_VIEW_OPTIONS_BASE::DIALOG_3D_VIEW_OPTIONS_BASE( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style ) -{ - this->SetSizeHints( wxDefaultSize, wxDefaultSize ); - - wxBoxSizer* bSizerMain; - bSizerMain = new wxBoxSizer( wxVERTICAL ); - - m_notebook = new wxNotebook( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); - m_panelDspOpt = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); - wxBoxSizer* bSizerDisplayOptions; - bSizerDisplayOptions = new wxBoxSizer( wxHORIZONTAL ); - - wxBoxSizer* bSizeLeft; - bSizeLeft = new wxBoxSizer( wxVERTICAL ); - - wxStaticBoxSizer* sbModelVisibility; - sbModelVisibility = new wxStaticBoxSizer( new wxStaticBox( m_panelDspOpt, wxID_ANY, _("3D Model Visibility") ), wxVERTICAL ); - - m_checkBox3DshapesTH = new wxCheckBox( sbModelVisibility->GetStaticBox(), wxID_ANY, _("Show 3D through hole models"), wxDefaultPosition, wxDefaultSize, 0 ); - sbModelVisibility->Add( m_checkBox3DshapesTH, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 ); - - m_checkBox3DshapesSMD = new wxCheckBox( sbModelVisibility->GetStaticBox(), wxID_ANY, _("Show 3D SMD models"), wxDefaultPosition, wxDefaultSize, 0 ); - sbModelVisibility->Add( m_checkBox3DshapesSMD, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 ); - - m_checkBox3DshapesVirtual = new wxCheckBox( sbModelVisibility->GetStaticBox(), wxID_ANY, _("Show 3D virtual models"), wxDefaultPosition, wxDefaultSize, 0 ); - sbModelVisibility->Add( m_checkBox3DshapesVirtual, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 ); - - - bSizeLeft->Add( sbModelVisibility, 0, wxALL|wxEXPAND, 5 ); - - wxStaticBoxSizer* sbBoardLayers; - sbBoardLayers = new wxStaticBoxSizer( new wxStaticBox( m_panelDspOpt, wxID_ANY, _("Board Layers") ), wxVERTICAL ); - - m_checkBoxSilkscreen = new wxCheckBox( sbBoardLayers->GetStaticBox(), wxID_ANY, _("Show silkscreen layers"), wxDefaultPosition, wxDefaultSize, 0 ); - sbBoardLayers->Add( m_checkBoxSilkscreen, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 ); - - m_checkBoxSolderMask = new wxCheckBox( sbBoardLayers->GetStaticBox(), wxID_ANY, _("Show solder mask layers"), wxDefaultPosition, wxDefaultSize, 0 ); - sbBoardLayers->Add( m_checkBoxSolderMask, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 ); - - m_checkBoxSolderpaste = new wxCheckBox( sbBoardLayers->GetStaticBox(), wxID_ANY, _("Show solder paste layers"), wxDefaultPosition, wxDefaultSize, 0 ); - sbBoardLayers->Add( m_checkBoxSolderpaste, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 ); - - m_checkBoxAdhesive = new wxCheckBox( sbBoardLayers->GetStaticBox(), wxID_ANY, _("Show adhesive layers"), wxDefaultPosition, wxDefaultSize, 0 ); - sbBoardLayers->Add( m_checkBoxAdhesive, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 ); - - - bSizeLeft->Add( sbBoardLayers, 0, wxALL|wxEXPAND, 5 ); - - wxStaticBoxSizer* sbUserLayers; - sbUserLayers = new wxStaticBoxSizer( new wxStaticBox( m_panelDspOpt, wxID_ANY, _("User Layers (not shown in realistic mode)") ), wxVERTICAL ); - - m_checkBoxComments = new wxCheckBox( sbUserLayers->GetStaticBox(), wxID_ANY, _("Show comments and drawings layers"), wxDefaultPosition, wxDefaultSize, 0 ); - sbUserLayers->Add( m_checkBoxComments, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 ); - - m_checkBoxECO = new wxCheckBox( sbUserLayers->GetStaticBox(), wxID_ANY, _("Show ECO layers"), wxDefaultPosition, wxDefaultSize, 0 ); - sbUserLayers->Add( m_checkBoxECO, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 ); - - - bSizeLeft->Add( sbUserLayers, 0, wxALL|wxEXPAND, 5 ); - - - bSizerDisplayOptions->Add( bSizeLeft, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - wxBoxSizer* bSizerRight; - bSizerRight = new wxBoxSizer( wxVERTICAL ); - - wxStaticBoxSizer* sbRenderOptions; - sbRenderOptions = new wxStaticBoxSizer( new wxStaticBox( m_panelDspOpt, wxID_ANY, _("Render Options") ), wxVERTICAL ); - - m_checkBoxRealisticMode = new wxCheckBox( sbRenderOptions->GetStaticBox(), wxID_ANY, _("Realistic mode"), wxDefaultPosition, wxDefaultSize, 0 ); - sbRenderOptions->Add( m_checkBoxRealisticMode, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 ); - - m_checkBoxBoardBody = new wxCheckBox( sbRenderOptions->GetStaticBox(), wxID_ANY, _("Show board body"), wxDefaultPosition, wxDefaultSize, 0 ); - sbRenderOptions->Add( m_checkBoxBoardBody, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 ); - - m_checkBoxAreas = new wxCheckBox( sbRenderOptions->GetStaticBox(), wxID_ANY, _("Show filled areas in zones"), wxDefaultPosition, wxDefaultSize, 0 ); - sbRenderOptions->Add( m_checkBoxAreas, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 ); - - m_checkBoxSubtractMaskFromSilk = new wxCheckBox( sbRenderOptions->GetStaticBox(), wxID_ANY, _("Subtract soldermask from silkscreen"), wxDefaultPosition, wxDefaultSize, 0 ); - sbRenderOptions->Add( m_checkBoxSubtractMaskFromSilk, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 ); - - m_checkBoxClipSilkOnViaAnnulus = new wxCheckBox( sbRenderOptions->GetStaticBox(), wxID_ANY, _("Clip silkscreen at via annulus"), wxDefaultPosition, wxDefaultSize, 0 ); - sbRenderOptions->Add( m_checkBoxClipSilkOnViaAnnulus, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 ); - - m_checkBoxRenderPlatedPadsAsPlated = new wxCheckBox( sbRenderOptions->GetStaticBox(), wxID_ANY, _("Use bare copper color for unplated copper"), wxDefaultPosition, wxDefaultSize, 0 ); - m_checkBoxRenderPlatedPadsAsPlated->SetToolTip( _("Use different colors for plated and unplated copper. (Slow)") ); - - sbRenderOptions->Add( m_checkBoxRenderPlatedPadsAsPlated, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 ); - - - bSizerRight->Add( sbRenderOptions, 0, wxALL|wxEXPAND, 5 ); - - wxStaticBoxSizer* sbCameraOptions; - sbCameraOptions = new wxStaticBoxSizer( new wxStaticBox( m_panelDspOpt, wxID_ANY, _("Camera Options") ), wxVERTICAL ); - - wxBoxSizer* bSizerRotAngle; - bSizerRotAngle = new wxBoxSizer( wxHORIZONTAL ); - - m_staticTextRotAngle = new wxStaticText( sbCameraOptions->GetStaticBox(), wxID_ANY, _("Rotation Increment:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextRotAngle->Wrap( -1 ); - bSizerRotAngle->Add( m_staticTextRotAngle, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); - - m_spinCtrlRotationAngle = new wxSpinCtrlDouble( sbCameraOptions->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 359, 10, 1 ); - m_spinCtrlRotationAngle->SetDigits( 0 ); - bSizerRotAngle->Add( m_spinCtrlRotationAngle, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); - - m_staticTextRotAngleUnits = new wxStaticText( sbCameraOptions->GetStaticBox(), wxID_ANY, _("deg"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticTextRotAngleUnits->Wrap( -1 ); - bSizerRotAngle->Add( m_staticTextRotAngleUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); - - - sbCameraOptions->Add( bSizerRotAngle, 0, wxEXPAND|wxBOTTOM, 5 ); - - m_staticline3 = new wxStaticLine( sbCameraOptions->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); - sbCameraOptions->Add( m_staticline3, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); - - m_checkBoxEnableAnimation = new wxCheckBox( sbCameraOptions->GetStaticBox(), wxID_ANY, _("Enable animation"), wxDefaultPosition, wxDefaultSize, 0 ); - m_checkBoxEnableAnimation->SetValue(true); - sbCameraOptions->Add( m_checkBoxEnableAnimation, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); - - wxBoxSizer* bSizerSlider; - bSizerSlider = new wxBoxSizer( wxHORIZONTAL ); - - m_staticAnimationSpeed = new wxStaticText( sbCameraOptions->GetStaticBox(), wxID_ANY, _("Animation speed:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticAnimationSpeed->Wrap( -1 ); - bSizerSlider->Add( m_staticAnimationSpeed, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); - - m_sliderAnimationSpeed = new wxSlider( sbCameraOptions->GetStaticBox(), wxID_ANY, 3, 1, 5, wxDefaultPosition, wxDefaultSize, wxSL_AUTOTICKS|wxSL_HORIZONTAL|wxSL_LABELS ); - m_sliderAnimationSpeed->SetMinSize( wxSize( 100,-1 ) ); - - bSizerSlider->Add( m_sliderAnimationSpeed, 1, wxEXPAND|wxLEFT|wxRIGHT, 5 ); - - - sbCameraOptions->Add( bSizerSlider, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); - - - bSizerRight->Add( sbCameraOptions, 0, wxALL|wxEXPAND, 5 ); - - - bSizerDisplayOptions->Add( bSizerRight, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - - m_panelDspOpt->SetSizer( bSizerDisplayOptions ); - m_panelDspOpt->Layout(); - bSizerDisplayOptions->Fit( m_panelDspOpt ); - m_notebook->AddPage( m_panelDspOpt, _("Display Options"), true ); - m_panelOpenGL = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); - wxBoxSizer* bSizerOpenGL; - bSizerOpenGL = new wxBoxSizer( wxVERTICAL ); - - wxStaticBoxSizer* sbSizerOpenGLRenderoptions; - sbSizerOpenGLRenderoptions = new wxStaticBoxSizer( new wxStaticBox( m_panelOpenGL, wxID_ANY, _("OpenGL Render Options") ), wxVERTICAL ); - - m_checkBoxBoundingBoxes = new wxCheckBox( sbSizerOpenGLRenderoptions->GetStaticBox(), wxID_ANY, _("Show model bounding boxes"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerOpenGLRenderoptions->Add( m_checkBoxBoundingBoxes, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - m_checkBoxCuThickness = new wxCheckBox( sbSizerOpenGLRenderoptions->GetStaticBox(), wxID_ANY, _("Show copper thickness"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerOpenGLRenderoptions->Add( m_checkBoxCuThickness, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - m_checkBoxHighlightOnRollOver = new wxCheckBox( sbSizerOpenGLRenderoptions->GetStaticBox(), wxID_ANY, _("Highlight items on rollover"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerOpenGLRenderoptions->Add( m_checkBoxHighlightOnRollOver, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - - bSizerOpenGL->Add( sbSizerOpenGLRenderoptions, 0, wxALL|wxEXPAND, 5 ); - - wxStaticBoxSizer* sbSizerOtherOptions; - sbSizerOtherOptions = new wxStaticBoxSizer( new wxStaticBox( m_panelOpenGL, wxID_ANY, _("Other Options") ), wxVERTICAL ); - - wxFlexGridSizer* fgSizer7; - fgSizer7 = new wxFlexGridSizer( 2, 2, 0, 0 ); - fgSizer7->SetFlexibleDirection( wxBOTH ); - fgSizer7->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - m_staticText221 = new wxStaticText( sbSizerOtherOptions->GetStaticBox(), wxID_ANY, _("Anti-aliasing:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText221->Wrap( -1 ); - fgSizer7->Add( m_staticText221, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - - wxString m_choiceAntiAliasingChoices[] = { _("Disabled"), _("2x"), _("4x"), _("8x") }; - int m_choiceAntiAliasingNChoices = sizeof( m_choiceAntiAliasingChoices ) / sizeof( wxString ); - m_choiceAntiAliasing = new wxChoice( sbSizerOtherOptions->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceAntiAliasingNChoices, m_choiceAntiAliasingChoices, 0 ); - m_choiceAntiAliasing->SetSelection( 0 ); - m_choiceAntiAliasing->SetToolTip( _("3D-Viewer must be closed and re-opened to apply this setting") ); - - fgSizer7->Add( m_choiceAntiAliasing, 0, wxALL|wxEXPAND, 5 ); - - m_staticText231 = new wxStaticText( sbSizerOtherOptions->GetStaticBox(), wxID_ANY, _("Selection color:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText231->Wrap( -1 ); - fgSizer7->Add( m_staticText231, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_colourPickerSelection = new wxColourPickerCtrl( sbSizerOtherOptions->GetStaticBox(), wxID_ANY, *wxBLACK, wxDefaultPosition, wxDefaultSize, wxCLRP_DEFAULT_STYLE ); - fgSizer7->Add( m_colourPickerSelection, 0, wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT, 5 ); - - - sbSizerOtherOptions->Add( fgSizer7, 1, wxEXPAND|wxRIGHT, 5 ); - - - bSizerOpenGL->Add( sbSizerOtherOptions, 0, wxALL|wxEXPAND, 5 ); - - wxStaticBoxSizer* sbSizerWhileMoving; - sbSizerWhileMoving = new wxStaticBoxSizer( new wxStaticBox( m_panelOpenGL, wxID_ANY, _("While Moving") ), wxVERTICAL ); - - m_checkBoxDisableAAMove = new wxCheckBox( sbSizerWhileMoving->GetStaticBox(), wxID_ANY, _("Disable anti-aliasing"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerWhileMoving->Add( m_checkBoxDisableAAMove, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - m_checkBoxDisableMoveThickness = new wxCheckBox( sbSizerWhileMoving->GetStaticBox(), wxID_ANY, _("Disable thickness"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerWhileMoving->Add( m_checkBoxDisableMoveThickness, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - m_checkBoxDisableMoveVias = new wxCheckBox( sbSizerWhileMoving->GetStaticBox(), wxID_ANY, _("Disable vias"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerWhileMoving->Add( m_checkBoxDisableMoveVias, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - m_checkBoxDisableMoveHoles = new wxCheckBox( sbSizerWhileMoving->GetStaticBox(), wxID_ANY, _("Disable holes"), wxDefaultPosition, wxDefaultSize, 0 ); - sbSizerWhileMoving->Add( m_checkBoxDisableMoveHoles, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - - bSizerOpenGL->Add( sbSizerWhileMoving, 0, wxALL|wxEXPAND, 5 ); - - - m_panelOpenGL->SetSizer( bSizerOpenGL ); - m_panelOpenGL->Layout(); - bSizerOpenGL->Fit( m_panelOpenGL ); - m_notebook->AddPage( m_panelOpenGL, _("OpenGL"), false ); - m_panelRaytracing = new wxPanel( m_notebook, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); - wxBoxSizer* bSizer14; - bSizer14 = new wxBoxSizer( wxVERTICAL ); - - m_notebook2 = new wxNotebook( m_panelRaytracing, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); - m_panelRaytracingCfg = new wxPanel( m_notebook2, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); - wxBoxSizer* bSizerRaytracing; - bSizerRaytracing = new wxBoxSizer( wxVERTICAL ); - - wxStaticBoxSizer* sbSizerRaytracingRenderOptions; - sbSizerRaytracingRenderOptions = new wxStaticBoxSizer( new wxStaticBox( m_panelRaytracingCfg, wxID_ANY, _("Raytracing Render Options") ), wxVERTICAL ); - - sbSizerRaytracingRenderOptions->SetMinSize( wxSize( -1,32 ) ); - wxBoxSizer* bSizer16; - bSizer16 = new wxBoxSizer( wxVERTICAL ); - - m_checkBoxRaytracing_proceduralTextures = new wxCheckBox( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, _("Procedural textures"), wxDefaultPosition, wxDefaultSize, 0 ); - m_checkBoxRaytracing_proceduralTextures->SetValue(true); - bSizer16->Add( m_checkBoxRaytracing_proceduralTextures, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - m_checkBoxRaytracing_addFloor = new wxCheckBox( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, _("Add floor"), wxDefaultPosition, wxDefaultSize, 0 ); - m_checkBoxRaytracing_addFloor->SetValue(true); - bSizer16->Add( m_checkBoxRaytracing_addFloor, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - m_checkBoxRaytracing_antiAliasing = new wxCheckBox( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, _("Anti-aliasing"), wxDefaultPosition, wxDefaultSize, 0 ); - m_checkBoxRaytracing_antiAliasing->SetValue(true); - bSizer16->Add( m_checkBoxRaytracing_antiAliasing, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - m_checkBoxRaytracing_postProcessing = new wxCheckBox( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, _("Post-processing"), wxDefaultPosition, wxDefaultSize, 0 ); - m_checkBoxRaytracing_postProcessing->SetValue(true); - bSizer16->Add( m_checkBoxRaytracing_postProcessing, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); - - - sbSizerRaytracingRenderOptions->Add( bSizer16, 0, wxEXPAND|wxBOTTOM, 5 ); - - wxFlexGridSizer* fgSizer111; - fgSizer111 = new wxFlexGridSizer( 0, 4, 6, 8 ); - fgSizer111->SetFlexibleDirection( wxBOTH ); - fgSizer111->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - - fgSizer111->Add( 0, 0, 1, wxEXPAND, 5 ); - - m_staticText19 = new wxStaticText( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, _("Number of Samples"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText19->Wrap( -1 ); - fgSizer111->Add( m_staticText19, 0, wxLEFT|wxRIGHT|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 ); - - m_staticText201 = new wxStaticText( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, _("Spread Factor %"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText201->Wrap( -1 ); - fgSizer111->Add( m_staticText201, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_staticText211 = new wxStaticText( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, _("Recursion Level"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText211->Wrap( -1 ); - fgSizer111->Add( m_staticText211, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_checkBoxRaytracing_renderShadows = new wxCheckBox( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, _("Shadows:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_checkBoxRaytracing_renderShadows->SetValue(true); - fgSizer111->Add( m_checkBoxRaytracing_renderShadows, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); - - m_spinCtrl_NrSamples_Shadows = new wxSpinCtrl( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, 1, 64, 0 ); - m_spinCtrl_NrSamples_Shadows->SetToolTip( _("Number of rays that will be cast, into light direction, to evaluate a shadow point") ); - - fgSizer111->Add( m_spinCtrl_NrSamples_Shadows, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); - - m_spinCtrlDouble_SpreadFactor_Shadows = new wxSpinCtrlDouble( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, 0.1, 25, 0, 1 ); - m_spinCtrlDouble_SpreadFactor_Shadows->SetDigits( 1 ); - m_spinCtrlDouble_SpreadFactor_Shadows->SetToolTip( _("Random direction factor of the cast rays") ); - - fgSizer111->Add( m_spinCtrlDouble_SpreadFactor_Shadows, 0, wxRIGHT|wxLEFT, 5 ); - - - fgSizer111->Add( 0, 0, 1, wxEXPAND, 5 ); - - m_checkBoxRaytracing_showReflections = new wxCheckBox( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, _("Reflections:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_checkBoxRaytracing_showReflections->SetValue(true); - fgSizer111->Add( m_checkBoxRaytracing_showReflections, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); - - m_spinCtrl_NrSamples_Reflections = new wxSpinCtrl( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, 1, 32, 0 ); - m_spinCtrl_NrSamples_Reflections->SetToolTip( _("Number of rays that will be cast to evaluate a reflection point") ); - - fgSizer111->Add( m_spinCtrl_NrSamples_Reflections, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_spinCtrlDouble_SpreadFactor_Reflections = new wxSpinCtrlDouble( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, 0.1, 25, 0, 1 ); - m_spinCtrlDouble_SpreadFactor_Reflections->SetDigits( 1 ); - m_spinCtrlDouble_SpreadFactor_Reflections->SetToolTip( _("Random direction factor of the cast rays") ); - - fgSizer111->Add( m_spinCtrlDouble_SpreadFactor_Reflections, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); - - m_spinCtrlRecursiveLevel_Reflections = new wxSpinCtrl( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, 1, 5, 0 ); - m_spinCtrlRecursiveLevel_Reflections->SetToolTip( _("Interactions number that a ray can travel through objects. (higher number of levels improve results, specially on very transparent boards)") ); - - fgSizer111->Add( m_spinCtrlRecursiveLevel_Reflections, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); - - m_checkBoxRaytracing_showRefractions = new wxCheckBox( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, _("Refractions:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_checkBoxRaytracing_showRefractions->SetValue(true); - fgSizer111->Add( m_checkBoxRaytracing_showRefractions, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); - - m_spinCtrl_NrSamples_Refractions = new wxSpinCtrl( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, 1, 5, 0 ); - m_spinCtrl_NrSamples_Refractions->SetToolTip( _("Number of rays that will be cast to evaluate a refraction point") ); - - fgSizer111->Add( m_spinCtrl_NrSamples_Refractions, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); - - m_spinCtrlDouble_SpreadFactor_Refractions = new wxSpinCtrlDouble( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, 0.1, 25, 0, 1 ); - m_spinCtrlDouble_SpreadFactor_Refractions->SetDigits( 1 ); - m_spinCtrlDouble_SpreadFactor_Refractions->SetToolTip( _("Random direction factor of the cast rays") ); - - fgSizer111->Add( m_spinCtrlDouble_SpreadFactor_Refractions, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); - - m_spinCtrlRecursiveLevel_Refractions = new wxSpinCtrl( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, 1, 7, 0 ); - m_spinCtrlRecursiveLevel_Refractions->SetToolTip( _("Number of bounces that a ray can hit reflective objects") ); - - fgSizer111->Add( m_spinCtrlRecursiveLevel_Refractions, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); - - - sbSizerRaytracingRenderOptions->Add( fgSizer111, 0, wxTOP|wxBOTTOM|wxRIGHT|wxEXPAND, 5 ); - - - bSizerRaytracing->Add( sbSizerRaytracingRenderOptions, 0, wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND, 5 ); - - - m_panelRaytracingCfg->SetSizer( bSizerRaytracing ); - m_panelRaytracingCfg->Layout(); - bSizerRaytracing->Fit( m_panelRaytracingCfg ); - m_notebook2->AddPage( m_panelRaytracingCfg, _("Render Options"), true ); - m_panelLightsConfig = new wxPanel( m_notebook2, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); - wxBoxSizer* bSizer17; - bSizer17 = new wxBoxSizer( wxVERTICAL ); - - wxStaticBoxSizer* sbSizerRaytracingLightConfiguration; - sbSizerRaytracingLightConfiguration = new wxStaticBoxSizer( new wxStaticBox( m_panelLightsConfig, wxID_ANY, _("Lights Configuration") ), wxVERTICAL ); - - wxBoxSizer* bSizer11; - bSizer11 = new wxBoxSizer( wxHORIZONTAL ); - - - bSizer11->Add( 0, 0, 1, 0, 5 ); - - m_staticText17 = new wxStaticText( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("Ambient camera light:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText17->Wrap( -1 ); - bSizer11->Add( m_staticText17, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - - m_colourPickerCameraLight = new wxColourPickerCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxColour( 51, 51, 51 ), wxDefaultPosition, wxSize( 72,-1 ), wxCLRP_DEFAULT_STYLE ); - bSizer11->Add( m_colourPickerCameraLight, 0, wxALIGN_CENTER_VERTICAL, 5 ); - - - bSizer11->Add( 0, 0, 1, 0, 5 ); - - - sbSizerRaytracingLightConfiguration->Add( bSizer11, 0, wxBOTTOM|wxEXPAND, 5 ); - - wxBoxSizer* bSizer13; - bSizer13 = new wxBoxSizer( wxHORIZONTAL ); - - - bSizer13->Add( 0, 0, 1, 0, 5 ); - - m_staticText5 = new wxStaticText( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("Top light:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText5->Wrap( -1 ); - bSizer13->Add( m_staticText5, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - - m_colourPickerTopLight = new wxColourPickerCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxColour( 63, 63, 63 ), wxDefaultPosition, wxSize( 72,-1 ), wxCLRP_DEFAULT_STYLE ); - bSizer13->Add( m_colourPickerTopLight, 0, wxALIGN_CENTER_VERTICAL, 5 ); - - - bSizer13->Add( 0, 0, 1, 0, 5 ); - - m_staticText6 = new wxStaticText( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("Bottom light:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText6->Wrap( -1 ); - bSizer13->Add( m_staticText6, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 ); - - m_colourPickerBottomLight = new wxColourPickerCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxColour( 63, 63, 63 ), wxDefaultPosition, wxSize( 72,-1 ), wxCLRP_DEFAULT_STYLE ); - bSizer13->Add( m_colourPickerBottomLight, 0, wxALIGN_CENTER_VERTICAL, 5 ); - - - bSizer13->Add( 0, 0, 1, 0, 5 ); - - - sbSizerRaytracingLightConfiguration->Add( bSizer13, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); - - wxFlexGridSizer* fgSizer11; - fgSizer11 = new wxFlexGridSizer( 0, 9, 0, 0 ); - fgSizer11->AddGrowableCol( 4 ); - fgSizer11->SetFlexibleDirection( wxHORIZONTAL ); - fgSizer11->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - - fgSizer11->Add( 0, 0, 0, 0, 5 ); - - - fgSizer11->Add( 0, 0, 0, 0, 5 ); - - m_staticText20 = new wxStaticText( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("Elevation (degrees)"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText20->Wrap( -1 ); - fgSizer11->Add( m_staticText20, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - - m_staticText18 = new wxStaticText( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("Azimuth (degrees)"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText18->Wrap( -1 ); - fgSizer11->Add( m_staticText18, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); - - - fgSizer11->Add( 0, 0, 0, 0, 5 ); - - - fgSizer11->Add( 0, 0, 0, 0, 5 ); - - - fgSizer11->Add( 0, 0, 0, 0, 5 ); - - m_staticText27 = new wxStaticText( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("Elevation (degrees)"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText27->Wrap( -1 ); - fgSizer11->Add( m_staticText27, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); - - m_staticText28 = new wxStaticText( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("Azimuth (degrees)"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText28->Wrap( -1 ); - fgSizer11->Add( m_staticText28, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); - - m_staticText21 = new wxStaticText( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("1:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText21->Wrap( -1 ); - fgSizer11->Add( m_staticText21, 0, wxALIGN_CENTER|wxALIGN_CENTER_VERTICAL, 5 ); - - m_colourPickerLight1 = new wxColourPickerCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, *wxBLACK, wxDefaultPosition, wxSize( 72,-1 ), wxCLRP_DEFAULT_STYLE ); - fgSizer11->Add( m_colourPickerLight1, 0, wxALIGN_CENTER_VERTICAL, 5 ); - - m_spinCtrlLightElevation1 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, -90, 90, 0 ); - fgSizer11->Add( m_spinCtrlLightElevation1, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); - - m_spinCtrlLightAzimuth1 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS|wxSP_WRAP, 0, 359, 0 ); - fgSizer11->Add( m_spinCtrlLightAzimuth1, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); - - - fgSizer11->Add( 10, 0, 0, 0, 5 ); - - m_staticText22 = new wxStaticText( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("5:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText22->Wrap( -1 ); - fgSizer11->Add( m_staticText22, 0, wxALIGN_CENTER|wxLEFT, 5 ); - - m_colourPickerLight5 = new wxColourPickerCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, *wxBLACK, wxDefaultPosition, wxSize( 72,-1 ), wxCLRP_DEFAULT_STYLE ); - fgSizer11->Add( m_colourPickerLight5, 0, wxALIGN_CENTER_VERTICAL, 5 ); - - m_spinCtrlLightElevation5 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, -90, 90, 0 ); - fgSizer11->Add( m_spinCtrlLightElevation5, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); - - m_spinCtrlLightAzimuth5 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS|wxSP_WRAP, 0, 359, 0 ); - fgSizer11->Add( m_spinCtrlLightAzimuth5, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); - - m_staticText23 = new wxStaticText( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("2:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText23->Wrap( -1 ); - fgSizer11->Add( m_staticText23, 0, wxALIGN_CENTER, 5 ); - - m_colourPickerLight2 = new wxColourPickerCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, *wxBLACK, wxDefaultPosition, wxSize( 72,-1 ), wxCLRP_DEFAULT_STYLE ); - fgSizer11->Add( m_colourPickerLight2, 0, wxALIGN_CENTER_VERTICAL, 5 ); - - m_spinCtrlLightElevation2 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, -90, 90, 0 ); - fgSizer11->Add( m_spinCtrlLightElevation2, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); - - m_spinCtrlLightAzimuth2 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS|wxSP_WRAP, 0, 359, 0 ); - fgSizer11->Add( m_spinCtrlLightAzimuth2, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); - - - fgSizer11->Add( 0, 0, 0, 0, 5 ); - - m_staticText24 = new wxStaticText( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("6:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText24->Wrap( -1 ); - fgSizer11->Add( m_staticText24, 0, wxALIGN_CENTER|wxLEFT, 5 ); - - m_colourPickerLight6 = new wxColourPickerCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, *wxBLACK, wxDefaultPosition, wxSize( 72,-1 ), wxCLRP_DEFAULT_STYLE ); - fgSizer11->Add( m_colourPickerLight6, 0, wxALIGN_CENTER_VERTICAL, 5 ); - - m_spinCtrlLightElevation6 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, -90, 90, 0 ); - fgSizer11->Add( m_spinCtrlLightElevation6, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); - - m_spinCtrlLightAzimuth6 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS|wxSP_WRAP, 0, 359, 0 ); - fgSizer11->Add( m_spinCtrlLightAzimuth6, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); - - m_staticText25 = new wxStaticText( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("3:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText25->Wrap( -1 ); - fgSizer11->Add( m_staticText25, 0, wxALIGN_CENTER, 5 ); - - m_colourPickerLight3 = new wxColourPickerCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, *wxBLACK, wxDefaultPosition, wxSize( 72,-1 ), wxCLRP_DEFAULT_STYLE ); - fgSizer11->Add( m_colourPickerLight3, 0, wxALIGN_CENTER_VERTICAL, 5 ); - - m_spinCtrlLightElevation3 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, -90, 90, 0 ); - fgSizer11->Add( m_spinCtrlLightElevation3, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); - - m_spinCtrlLightAzimuth3 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS|wxSP_WRAP, 0, 359, 0 ); - fgSizer11->Add( m_spinCtrlLightAzimuth3, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); - - - fgSizer11->Add( 0, 0, 0, 0, 5 ); - - m_staticText26 = new wxStaticText( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("7:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText26->Wrap( -1 ); - fgSizer11->Add( m_staticText26, 0, wxALIGN_CENTER|wxLEFT, 5 ); - - m_colourPickerLight7 = new wxColourPickerCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, *wxBLACK, wxDefaultPosition, wxSize( 72,-1 ), wxCLRP_DEFAULT_STYLE ); - fgSizer11->Add( m_colourPickerLight7, 0, wxALIGN_CENTER_VERTICAL, 5 ); - - m_spinCtrlLightElevation7 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, -90, 90, 0 ); - fgSizer11->Add( m_spinCtrlLightElevation7, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); - - m_spinCtrlLightAzimuth7 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS|wxSP_WRAP, 0, 359, 0 ); - fgSizer11->Add( m_spinCtrlLightAzimuth7, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); - - m_staticText171 = new wxStaticText( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("4:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText171->Wrap( -1 ); - fgSizer11->Add( m_staticText171, 0, wxALIGN_CENTER, 5 ); - - m_colourPickerLight4 = new wxColourPickerCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, *wxBLACK, wxDefaultPosition, wxSize( 72,-1 ), wxCLRP_DEFAULT_STYLE ); - fgSizer11->Add( m_colourPickerLight4, 0, wxALIGN_CENTER_VERTICAL, 5 ); - - m_spinCtrlLightElevation4 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, -90, 90, 0 ); - fgSizer11->Add( m_spinCtrlLightElevation4, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); - - m_spinCtrlLightAzimuth4 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS|wxSP_WRAP, 0, 359, 0 ); - fgSizer11->Add( m_spinCtrlLightAzimuth4, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); - - - fgSizer11->Add( 0, 0, 0, 0, 5 ); - - m_staticText181 = new wxStaticText( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("8:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_staticText181->Wrap( -1 ); - fgSizer11->Add( m_staticText181, 0, wxALIGN_CENTER|wxLEFT, 5 ); - - m_colourPickerLight8 = new wxColourPickerCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, *wxBLACK, wxDefaultPosition, wxSize( 72,-1 ), wxCLRP_DEFAULT_STYLE ); - fgSizer11->Add( m_colourPickerLight8, 0, wxALIGN_CENTER_VERTICAL, 5 ); - - m_spinCtrlLightElevation8 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, -90, 90, 0 ); - fgSizer11->Add( m_spinCtrlLightElevation8, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); - - m_spinCtrlLightAzimuth8 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS|wxSP_WRAP, 0, 359, 0 ); - fgSizer11->Add( m_spinCtrlLightAzimuth8, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); - - - sbSizerRaytracingLightConfiguration->Add( fgSizer11, 0, wxEXPAND|wxALL, 5 ); - - wxBoxSizer* bSizer19; - bSizer19 = new wxBoxSizer( wxVERTICAL ); - - - bSizer19->Add( 0, 0, 0, wxEXPAND, 5 ); - - m_buttonLightsResetToDefaults = new wxButton( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("Reset to defaults"), wxDefaultPosition, wxDefaultSize, 0 ); - bSizer19->Add( m_buttonLightsResetToDefaults, 0, wxALL, 5 ); - - - sbSizerRaytracingLightConfiguration->Add( bSizer19, 0, wxALL, 5 ); - - - bSizer17->Add( sbSizerRaytracingLightConfiguration, 0, wxEXPAND|wxALL, 5 ); - - - m_panelLightsConfig->SetSizer( bSizer17 ); - m_panelLightsConfig->Layout(); - bSizer17->Fit( m_panelLightsConfig ); - m_notebook2->AddPage( m_panelLightsConfig, _("Lights Configuration"), false ); - - bSizer14->Add( m_notebook2, 0, wxEXPAND | wxALL, 5 ); - - - m_panelRaytracing->SetSizer( bSizer14 ); - m_panelRaytracing->Layout(); - bSizer14->Fit( m_panelRaytracing ); - m_notebook->AddPage( m_panelRaytracing, _("Raytracing"), false ); - - bSizerMain->Add( m_notebook, 1, wxALL|wxEXPAND, 5 ); - - m_sdbSizer = new wxStdDialogButtonSizer(); - m_sdbSizerOK = new wxButton( this, wxID_OK ); - m_sdbSizer->AddButton( m_sdbSizerOK ); - m_sdbSizerCancel = new wxButton( this, wxID_CANCEL ); - m_sdbSizer->AddButton( m_sdbSizerCancel ); - m_sdbSizer->Realize(); - - bSizerMain->Add( m_sdbSizer, 0, wxALIGN_RIGHT|wxALL, 5 ); - - - this->SetSizer( bSizerMain ); - this->Layout(); - - this->Centre( wxBOTH ); - - // Connect Events - m_checkBoxRealisticMode->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_3D_VIEW_OPTIONS_BASE::OnCheckRealisticMode ), NULL, this ); - m_checkBoxEnableAnimation->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_3D_VIEW_OPTIONS_BASE::OnCheckEnableAnimation ), NULL, this ); - m_buttonLightsResetToDefaults->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_3D_VIEW_OPTIONS_BASE::OnLightsResetToDefaults ), NULL, this ); -} - -DIALOG_3D_VIEW_OPTIONS_BASE::~DIALOG_3D_VIEW_OPTIONS_BASE() -{ - // Disconnect Events - m_checkBoxRealisticMode->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_3D_VIEW_OPTIONS_BASE::OnCheckRealisticMode ), NULL, this ); - m_checkBoxEnableAnimation->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_3D_VIEW_OPTIONS_BASE::OnCheckEnableAnimation ), NULL, this ); - m_buttonLightsResetToDefaults->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_3D_VIEW_OPTIONS_BASE::OnLightsResetToDefaults ), NULL, this ); - -} diff --git a/3d-viewer/3d_viewer/dialogs/dialog_3D_view_option_base.fbp b/3d-viewer/3d_viewer/dialogs/dialog_3D_view_option_base.fbp deleted file mode 100644 index 2a0e642bee..0000000000 --- a/3d-viewer/3d_viewer/dialogs/dialog_3D_view_option_base.fbp +++ /dev/null @@ -1,6866 +0,0 @@ - - - - - - C++ - 1 - source_name - 0 - 0 - res - UTF-8 - connect - dialog_3D_view_option_base - 1000 - none - - 1 - dialog_3D_view_option_base - - . - - 1 - 1 - 1 - 1 - UI - 0 - 0 - - 0 - wxAUI_MGR_DEFAULT - - wxBOTH - - 1 - 1 - impl_virtual - - - - 0 - wxID_ANY - - - DIALOG_3D_VIEW_OPTIONS_BASE - - 810,484 - wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER - DIALOG_SHIM; dialog_shim.h - 3D Display Options - - - - - - - bSizerMain - wxVERTICAL - none - - 5 - wxALL|wxEXPAND - 1 - - 1 - 1 - 1 - 1 - - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_notebook - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - - - Display Options - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_panelDspOpt - 1 - - - protected - 1 - - Resizable - 1 - - ; ; forward_declare - 0 - - - - wxTAB_TRAVERSAL - - - bSizerDisplayOptions - wxHORIZONTAL - none - - 5 - wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT - 1 - - - bSizeLeft - wxVERTICAL - none - - 5 - wxALL|wxEXPAND - 0 - - wxID_ANY - 3D Model Visibility - - sbModelVisibility - wxVERTICAL - 1 - none - - 5 - wxBOTTOM|wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Show 3D through hole models - - 0 - - - 0 - - 1 - m_checkBox3DshapesTH - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxBOTTOM|wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Show 3D SMD models - - 0 - - - 0 - - 1 - m_checkBox3DshapesSMD - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxBOTTOM|wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Show 3D virtual models - - 0 - - - 0 - - 1 - m_checkBox3DshapesVirtual - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - wxID_ANY - Board Layers - - sbBoardLayers - wxVERTICAL - 1 - none - - 5 - wxBOTTOM|wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Show silkscreen layers - - 0 - - - 0 - - 1 - m_checkBoxSilkscreen - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxBOTTOM|wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Show solder mask layers - - 0 - - - 0 - - 1 - m_checkBoxSolderMask - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxBOTTOM|wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Show solder paste layers - - 0 - - - 0 - - 1 - m_checkBoxSolderpaste - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxBOTTOM|wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Show adhesive layers - - 0 - - - 0 - - 1 - m_checkBoxAdhesive - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - wxID_ANY - User Layers (not shown in realistic mode) - - sbUserLayers - wxVERTICAL - 1 - none - - 5 - wxBOTTOM|wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Show comments and drawings layers - - 0 - - - 0 - - 1 - m_checkBoxComments - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxBOTTOM|wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Show ECO layers - - 0 - - - 0 - - 1 - m_checkBoxECO - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - 5 - wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT - 1 - - - bSizerRight - wxVERTICAL - none - - 5 - wxALL|wxEXPAND - 0 - - wxID_ANY - Render Options - - sbRenderOptions - wxVERTICAL - 1 - none - - 5 - wxBOTTOM|wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Realistic mode - - 0 - - - 0 - - 1 - m_checkBoxRealisticMode - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnCheckRealisticMode - - - - 5 - wxBOTTOM|wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Show board body - - 0 - - - 0 - - 1 - m_checkBoxBoardBody - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxBOTTOM|wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Show filled areas in zones - - 0 - - - 0 - - 1 - m_checkBoxAreas - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxBOTTOM|wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Subtract soldermask from silkscreen - - 0 - - - 0 - - 1 - m_checkBoxSubtractMaskFromSilk - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxBOTTOM|wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Clip silkscreen at via annulus - - 0 - - - 0 - - 1 - m_checkBoxClipSilkOnViaAnnulus - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxBOTTOM|wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Use bare copper color for unplated copper - - 0 - - - 0 - - 1 - m_checkBoxRenderPlatedPadsAsPlated - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - Use different colors for plated and unplated copper. (Slow) - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - wxID_ANY - Camera Options - - sbCameraOptions - wxVERTICAL - 1 - none - - 5 - wxEXPAND|wxBOTTOM - 0 - - - bSizerRotAngle - wxHORIZONTAL - none - - 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Rotation Increment: - 0 - - 0 - - - 0 - - 1 - m_staticTextRotAngle - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - - - 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 1 - 10 - 359 - - 0 - - 0 - - 0 - - 1 - m_spinCtrlRotationAngle - 1 - - - protected - 1 - - Resizable - 1 - - wxSP_ARROW_KEYS - ; ; forward_declare - 0 - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - deg - 0 - - 0 - - - 0 - - 1 - m_staticTextRotAngleUnits - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - - - - - 5 - wxEXPAND|wxTOP|wxBOTTOM - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_staticline3 - 1 - - - protected - 1 - - Resizable - 1 - - wxLI_HORIZONTAL - ; ; forward_declare - 0 - - - - - - - - 5 - wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Enable animation - - 0 - - - 0 - - 1 - m_checkBoxEnableAnimation - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnCheckEnableAnimation - - - - 5 - wxEXPAND|wxTOP|wxBOTTOM - 0 - - - bSizerSlider - wxHORIZONTAL - none - - 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Animation speed: - 0 - - 0 - - - 0 - - 1 - m_staticAnimationSpeed - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - - - 5 - wxEXPAND|wxLEFT|wxRIGHT - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 5 - - 0 - - 1 - - 0 - 100,-1 - 1 - m_sliderAnimationSpeed - 1 - - - protected - 1 - - Resizable - 1 - - wxSL_AUTOTICKS|wxSL_HORIZONTAL|wxSL_LABELS - ; ; forward_declare - 0 - - - wxFILTER_NONE - wxDefaultValidator - - 3 - - - - - - - - - - - - - - - - - OpenGL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_panelOpenGL - 1 - - - protected - 1 - - Resizable - 1 - - ; ; forward_declare - 0 - - - - wxTAB_TRAVERSAL - - - bSizerOpenGL - wxVERTICAL - none - - 5 - wxALL|wxEXPAND - 0 - - wxID_ANY - OpenGL Render Options - - sbSizerOpenGLRenderoptions - wxVERTICAL - 1 - none - - 5 - wxBOTTOM|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Show model bounding boxes - - 0 - - - 0 - - 1 - m_checkBoxBoundingBoxes - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Show copper thickness - - 0 - - - 0 - - 1 - m_checkBoxCuThickness - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Highlight items on rollover - - 0 - - - 0 - - 1 - m_checkBoxHighlightOnRollOver - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - wxID_ANY - Other Options - - sbSizerOtherOptions - wxVERTICAL - 1 - none - - 5 - wxEXPAND|wxRIGHT - 1 - - 2 - wxBOTH - - - 0 - - fgSizer7 - wxFLEX_GROWMODE_SPECIFIED - none - 2 - 0 - - 5 - wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Anti-aliasing: - 0 - - 0 - - - 0 - - 1 - m_staticText221 - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - "Disabled" "2x" "4x" "8x" - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_choiceAntiAliasing - 1 - - - protected - 1 - - Resizable - 0 - 1 - - - ; ; forward_declare - 0 - 3D-Viewer must be closed and re-opened to apply this setting - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Selection color: - 0 - - 0 - - - 0 - - 1 - m_staticText231 - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - - - 5 - wxBOTTOM|wxEXPAND|wxLEFT|wxRIGHT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_colourPickerSelection - 1 - - - protected - 1 - - Resizable - 1 - - wxCLRP_DEFAULT_STYLE - ; ; forward_declare - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - wxID_ANY - While Moving - - sbSizerWhileMoving - wxVERTICAL - 1 - none - - 5 - wxBOTTOM|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Disable anti-aliasing - - 0 - - - 0 - - 1 - m_checkBoxDisableAAMove - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Disable thickness - - 0 - - - 0 - - 1 - m_checkBoxDisableMoveThickness - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Disable vias - - 0 - - - 0 - - 1 - m_checkBoxDisableMoveVias - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Disable holes - - 0 - - - 0 - - 1 - m_checkBoxDisableMoveHoles - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - Raytracing - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_panelRaytracing - 1 - - - protected - 1 - - Resizable - 1 - - ; ; forward_declare - 0 - - - - wxTAB_TRAVERSAL - - - bSizer14 - wxVERTICAL - none - - 5 - wxEXPAND | wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_notebook2 - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - - - Render Options - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_panelRaytracingCfg - 1 - - - protected - 1 - - Resizable - 1 - - ; ; forward_declare - 0 - - - - wxTAB_TRAVERSAL - - - bSizerRaytracing - wxVERTICAL - none - - 5 - wxBOTTOM|wxRIGHT|wxLEFT|wxEXPAND - 0 - - wxID_ANY - Raytracing Render Options - -1,32 - sbSizerRaytracingRenderOptions - wxVERTICAL - 1 - none - - 5 - wxEXPAND|wxBOTTOM - 0 - - - bSizer16 - wxVERTICAL - none - - 5 - wxBOTTOM|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Procedural textures - - 0 - - - 0 - - 1 - m_checkBoxRaytracing_proceduralTextures - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Add floor - - 0 - - - 0 - - 1 - m_checkBoxRaytracing_addFloor - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Anti-aliasing - - 0 - - - 0 - - 1 - m_checkBoxRaytracing_antiAliasing - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxBOTTOM|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Post-processing - - 0 - - - 0 - - 1 - m_checkBoxRaytracing_postProcessing - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - 5 - wxTOP|wxBOTTOM|wxRIGHT|wxEXPAND - 0 - - 4 - wxBOTH - - - 8 - - fgSizer111 - wxFLEX_GROWMODE_SPECIFIED - none - 0 - 6 - - 5 - wxEXPAND - 1 - - 0 - protected - 0 - - - - 5 - wxLEFT|wxRIGHT|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Number of Samples - 0 - - 0 - - - 0 - - 1 - m_staticText19 - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - - - 5 - wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Spread Factor % - 0 - - 0 - - - 0 - - 1 - m_staticText201 - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - - - 5 - wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Recursion Level - 0 - - 0 - - - 0 - - 1 - m_staticText211 - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - - - 5 - wxALIGN_CENTER_VERTICAL|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Shadows: - - 0 - - - 0 - - 1 - m_checkBoxRaytracing_renderShadows - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 0 - 64 - - 0 - - 1 - - 0 - - 1 - m_spinCtrl_NrSamples_Shadows - 1 - - - protected - 1 - - Resizable - 1 - 124,-1 - wxSP_ARROW_KEYS - ; ; forward_declare - 0 - Number of rays that will be cast, into light direction, to evaluate a shadow point - - - - - - - - 5 - wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - 1 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 1 - 0 - 25 - - 0 - - 0.1 - - 0 - - 1 - m_spinCtrlDouble_SpreadFactor_Shadows - 1 - - - protected - 1 - - Resizable - 1 - 124,-1 - wxSP_ARROW_KEYS - ; ; forward_declare - 0 - Random direction factor of the cast rays - - - - - - - - 5 - wxEXPAND - 1 - - 0 - protected - 0 - - - - 5 - wxALIGN_CENTER_VERTICAL|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Reflections: - - 0 - - - 0 - - 1 - m_checkBoxRaytracing_showReflections - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 0 - 32 - - 0 - - 1 - - 0 - - 1 - m_spinCtrl_NrSamples_Reflections - 1 - - - protected - 1 - - Resizable - 1 - 124,-1 - wxSP_ARROW_KEYS - ; ; forward_declare - 0 - Number of rays that will be cast to evaluate a reflection point - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - 1 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 1 - 0 - 25 - - 0 - - 0.1 - - 0 - - 1 - m_spinCtrlDouble_SpreadFactor_Reflections - 1 - - - protected - 1 - - Resizable - 1 - 124,-1 - wxSP_ARROW_KEYS - ; ; forward_declare - 0 - Random direction factor of the cast rays - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 0 - 5 - - 0 - - 1 - - 0 - - 1 - m_spinCtrlRecursiveLevel_Reflections - 1 - - - protected - 1 - - Resizable - 1 - 124,-1 - wxSP_ARROW_KEYS - ; ; forward_declare - 0 - Interactions number that a ray can travel through objects. (higher number of levels improve results, specially on very transparent boards) - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Refractions: - - 0 - - - 0 - - 1 - m_checkBoxRaytracing_showRefractions - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 0 - 5 - - 0 - - 1 - - 0 - - 1 - m_spinCtrl_NrSamples_Refractions - 1 - - - protected - 1 - - Resizable - 1 - 124,-1 - wxSP_ARROW_KEYS - ; ; forward_declare - 0 - Number of rays that will be cast to evaluate a refraction point - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - 1 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 1 - 0 - 25 - - 0 - - 0.1 - - 0 - - 1 - m_spinCtrlDouble_SpreadFactor_Refractions - 1 - - - protected - 1 - - Resizable - 1 - 124,-1 - wxSP_ARROW_KEYS - ; ; forward_declare - 0 - Random direction factor of the cast rays - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 0 - 7 - - 0 - - 1 - - 0 - - 1 - m_spinCtrlRecursiveLevel_Refractions - 1 - - - protected - 1 - - Resizable - 1 - 124,-1 - wxSP_ARROW_KEYS - ; ; forward_declare - 0 - Number of bounces that a ray can hit reflective objects - - - - - - - - - - - - - - - - Lights Configuration - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_panelLightsConfig - 1 - - - protected - 1 - - Resizable - 1 - - ; ; forward_declare - 0 - - - - wxTAB_TRAVERSAL - - - bSizer17 - wxVERTICAL - none - - 5 - wxEXPAND|wxALL - 0 - - wxID_ANY - Lights Configuration - -1,-1 - sbSizerRaytracingLightConfiguration - wxVERTICAL - 1 - none - - 5 - wxBOTTOM|wxEXPAND - 0 - - -1,-1 - bSizer11 - wxHORIZONTAL - none - - 5 - - 1 - - 0 - protected - 0 - - - - 5 - wxALL|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Ambient camera light: - 0 - - 0 - - - 0 - - 1 - m_staticText17 - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - - - 5 - wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - 51,51,51 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_colourPickerCameraLight - 1 - - - protected - 1 - - Resizable - 1 - 72,-1 - wxCLRP_DEFAULT_STYLE - ; ; forward_declare - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - - 1 - - 0 - protected - 0 - - - - - - 5 - wxEXPAND|wxTOP|wxBOTTOM - 0 - - -1,-1 - bSizer13 - wxHORIZONTAL - none - - 5 - - 1 - - 0 - protected - 0 - - - - 5 - wxALL|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Top light: - 0 - - 0 - - - 0 - - 1 - m_staticText5 - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - - - 5 - wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - 63,63,63 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_colourPickerTopLight - 1 - - - protected - 1 - - Resizable - 1 - 72,-1 - wxCLRP_DEFAULT_STYLE - ; ; forward_declare - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - - 1 - - 0 - protected - 0 - - - - 5 - wxALL|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Bottom light: - 0 - - 0 - - - 0 - - 1 - m_staticText6 - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - - - 5 - wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - 63,63,63 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_colourPickerBottomLight - 1 - - - protected - 1 - - Resizable - 1 - 72,-1 - wxCLRP_DEFAULT_STYLE - ; ; forward_declare - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 5 - - 1 - - 0 - protected - 0 - - - - - - 5 - wxEXPAND|wxALL - 0 - - 9 - wxHORIZONTAL - 4 - - 0 - - fgSizer11 - wxFLEX_GROWMODE_SPECIFIED - none - 0 - 0 - - 5 - - 0 - - 0 - protected - 0 - - - - 5 - - 0 - - 0 - protected - 0 - - - - 5 - wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Elevation (degrees) - 0 - - 0 - - - 0 - - 1 - m_staticText20 - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - - - 5 - wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Azimuth (degrees) - 0 - - 0 - - - 0 - - 1 - m_staticText18 - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - - - 5 - - 0 - - 0 - protected - 0 - - - - 5 - - 0 - - 0 - protected - 0 - - - - 5 - - 0 - - 0 - protected - 0 - - - - 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Elevation (degrees) - 0 - - 0 - - - 0 - - 1 - m_staticText27 - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - - - 5 - wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Azimuth (degrees) - 0 - - 0 - - - 0 - - 1 - m_staticText28 - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - - - 5 - wxALIGN_CENTER|wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 1: - 0 - - 0 - - - 0 - - 1 - m_staticText21 - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - - - 5 - wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_colourPickerLight1 - 1 - - - protected - 1 - - Resizable - 1 - 72,-1 - wxCLRP_DEFAULT_STYLE - ; ; forward_declare - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 1 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 0 - 90 - - 0 - - -90 - - 0 - - 1 - m_spinCtrlLightElevation1 - 1 - - - protected - 1 - - Resizable - 1 - 124,-1 - wxSP_ARROW_KEYS - ; ; forward_declare - 0 - - - - - - - - - 1 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 0 - 359 - - 0 - - 0 - - 0 - - 1 - m_spinCtrlLightAzimuth1 - 1 - - - protected - 1 - - Resizable - 1 - 124,-1 - wxSP_ARROW_KEYS|wxSP_WRAP - ; ; forward_declare - 0 - - - - - - - - - 5 - - 0 - - 0 - protected - 10 - - - - 5 - wxALIGN_CENTER|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 5: - 0 - - 0 - - - 0 - - 1 - m_staticText22 - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - - - 5 - wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_colourPickerLight5 - 1 - - - protected - 1 - - Resizable - 1 - 72,-1 - wxCLRP_DEFAULT_STYLE - ; ; forward_declare - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 1 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 0 - 90 - - 0 - - -90 - - 0 - - 1 - m_spinCtrlLightElevation5 - 1 - - - protected - 1 - - Resizable - 1 - 124,-1 - wxSP_ARROW_KEYS - ; ; forward_declare - 0 - - - - - - - - - 1 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 0 - 359 - - 0 - - 0 - - 0 - - 1 - m_spinCtrlLightAzimuth5 - 1 - - - protected - 1 - - Resizable - 1 - 124,-1 - wxSP_ARROW_KEYS|wxSP_WRAP - ; ; forward_declare - 0 - - - - - - - - - 5 - wxALIGN_CENTER - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 2: - 0 - - 0 - - - 0 - - 1 - m_staticText23 - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - - - 5 - wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_colourPickerLight2 - 1 - - - protected - 1 - - Resizable - 1 - 72,-1 - wxCLRP_DEFAULT_STYLE - ; ; forward_declare - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 1 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 0 - 90 - - 0 - - -90 - - 0 - - 1 - m_spinCtrlLightElevation2 - 1 - - - protected - 1 - - Resizable - 1 - 124,-1 - wxSP_ARROW_KEYS - ; ; forward_declare - 0 - - - - - - - - - 1 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 0 - 359 - - 0 - - 0 - - 0 - - 1 - m_spinCtrlLightAzimuth2 - 1 - - - protected - 1 - - Resizable - 1 - 124,-1 - wxSP_ARROW_KEYS|wxSP_WRAP - ; ; forward_declare - 0 - - - - - - - - - 5 - - 0 - - 0 - protected - 0 - - - - 5 - wxALIGN_CENTER|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 6: - 0 - - 0 - - - 0 - - 1 - m_staticText24 - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - - - 5 - wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_colourPickerLight6 - 1 - - - protected - 1 - - Resizable - 1 - 72,-1 - wxCLRP_DEFAULT_STYLE - ; ; forward_declare - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 1 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 0 - 90 - - 0 - - -90 - - 0 - - 1 - m_spinCtrlLightElevation6 - 1 - - - protected - 1 - - Resizable - 1 - 124,-1 - wxSP_ARROW_KEYS - ; ; forward_declare - 0 - - - - - - - - - 1 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 0 - 359 - - 0 - - 0 - - 0 - - 1 - m_spinCtrlLightAzimuth6 - 1 - - - protected - 1 - - Resizable - 1 - 124,-1 - wxSP_ARROW_KEYS|wxSP_WRAP - ; ; forward_declare - 0 - - - - - - - - - 5 - wxALIGN_CENTER - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 3: - 0 - - 0 - - - 0 - - 1 - m_staticText25 - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - - - 5 - wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_colourPickerLight3 - 1 - - - protected - 1 - - Resizable - 1 - 72,-1 - wxCLRP_DEFAULT_STYLE - ; ; forward_declare - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 1 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 0 - 90 - - 0 - - -90 - - 0 - - 1 - m_spinCtrlLightElevation3 - 1 - - - protected - 1 - - Resizable - 1 - 124,-1 - wxSP_ARROW_KEYS - ; ; forward_declare - 0 - - - - - - - - - 1 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 0 - 359 - - 0 - - 0 - - 0 - - 1 - m_spinCtrlLightAzimuth3 - 1 - - - protected - 1 - - Resizable - 1 - 124,-1 - wxSP_ARROW_KEYS|wxSP_WRAP - ; ; forward_declare - 0 - - - - - - - - - 5 - - 0 - - 0 - protected - 0 - - - - 5 - wxALIGN_CENTER|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 7: - 0 - - 0 - - - 0 - - 1 - m_staticText26 - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - - - 5 - wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_colourPickerLight7 - 1 - - - protected - 1 - - Resizable - 1 - 72,-1 - wxCLRP_DEFAULT_STYLE - ; ; forward_declare - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 1 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 0 - 90 - - 0 - - -90 - - 0 - - 1 - m_spinCtrlLightElevation7 - 1 - - - protected - 1 - - Resizable - 1 - 124,-1 - wxSP_ARROW_KEYS - ; ; forward_declare - 0 - - - - - - - - - 1 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 0 - 359 - - 0 - - 0 - - 0 - - 1 - m_spinCtrlLightAzimuth7 - 1 - - - protected - 1 - - Resizable - 1 - 124,-1 - wxSP_ARROW_KEYS|wxSP_WRAP - ; ; forward_declare - 0 - - - - - - - - - 5 - wxALIGN_CENTER - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 4: - 0 - - 0 - - - 0 - - 1 - m_staticText171 - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - - - 5 - wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_colourPickerLight4 - 1 - - - protected - 1 - - Resizable - 1 - 72,-1 - wxCLRP_DEFAULT_STYLE - ; ; forward_declare - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 1 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 0 - 90 - - 0 - - -90 - - 0 - - 1 - m_spinCtrlLightElevation4 - 1 - - - protected - 1 - - Resizable - 1 - 124,-1 - wxSP_ARROW_KEYS - ; ; forward_declare - 0 - - - - - - - - - 1 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 0 - 359 - - 0 - - 0 - - 0 - - 1 - m_spinCtrlLightAzimuth4 - 1 - - - protected - 1 - - Resizable - 1 - 124,-1 - wxSP_ARROW_KEYS|wxSP_WRAP - ; ; forward_declare - 0 - - - - - - - - - 5 - - 0 - - 0 - protected - 0 - - - - 5 - wxALIGN_CENTER|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 8: - 0 - - 0 - - - 0 - - 1 - m_staticText181 - 1 - - - protected - 1 - - Resizable - 1 - - - ; ; forward_declare - 0 - - - - - -1 - - - - 5 - wxALIGN_CENTER_VERTICAL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_colourPickerLight8 - 1 - - - protected - 1 - - Resizable - 1 - 72,-1 - wxCLRP_DEFAULT_STYLE - ; ; forward_declare - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - 1 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 0 - 90 - - 0 - - -90 - - 0 - - 1 - m_spinCtrlLightElevation8 - 1 - - - protected - 1 - - Resizable - 1 - 124,-1 - wxSP_ARROW_KEYS - ; ; forward_declare - 0 - - - - - - - - - 1 - wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - 0 - 359 - - 0 - - 0 - - 0 - - 1 - m_spinCtrlLightAzimuth8 - 1 - - - protected - 1 - - Resizable - 1 - 124,-1 - wxSP_ARROW_KEYS|wxSP_WRAP - ; ; forward_declare - 0 - - - - - - - - - - - 5 - wxALL - 0 - - - bSizer19 - wxVERTICAL - none - - 5 - wxEXPAND - 0 - - 0 - protected - 0 - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - - 1 - 0 - 1 - - 1 - - 0 - 0 - - Dock - 0 - Left - 1 - - 1 - - - 0 - 0 - wxID_ANY - Reset to defaults - - 0 - - 0 - - - 0 - - 1 - m_buttonLightsResetToDefaults - 1 - - - protected - 1 - - - - Resizable - 1 - - - ; ; forward_declare - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnLightsResetToDefaults - - - - - - - - - - - - - - - - - - 5 - wxALIGN_RIGHT|wxALL - 0 - - 0 - 1 - 0 - 0 - 0 - 1 - 0 - 0 - - m_sdbSizer - protected - - - - - - diff --git a/3d-viewer/3d_viewer/dialogs/panel_3D_colors.cpp b/3d-viewer/3d_viewer/dialogs/panel_3D_colors.cpp new file mode 100644 index 0000000000..f0aab5e607 --- /dev/null +++ b/3d-viewer/3d_viewer/dialogs/panel_3D_colors.cpp @@ -0,0 +1,213 @@ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2021 KiCad Developers, see AUTHORS.txt for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include "panel_3D_colors.h" +#include +#include <3d_canvas/board_adapter.h> +#include <3d_viewer/eda_3d_viewer.h> +#include +#include +#include + +PANEL_3D_COLORS::PANEL_3D_COLORS( EDA_3D_VIEWER* aFrame, wxWindow* aParent ) : + PANEL_3D_COLORS_BASE( aParent ), + m_settings( aFrame->GetAdapter() ) +{ +#define ADD_COLOR( list, r, g, b, a, name ) \ + list.push_back( CUSTOM_COLOR_ITEM( r/255.0, g/255.0, b/255.0, a, name ) ) + + m_backgroundTop->SetDefaultColor( COLOR4D( 0.8, 0.8, 0.9, 1.0 ) ); + m_backgroundBottom->SetDefaultColor( COLOR4D( 0.4, 0.4, 0.5, 1.0 ) ); + + m_silkscreenTop->SetDefaultColor( COLOR4D( 0.9, 0.9, 0.9, 1.0 ) ); + m_silkscreenBottom->SetDefaultColor( COLOR4D( 0.9, 0.9, 0.9, 1.0 ) ); + + ADD_COLOR( m_silkscreenColors, 241, 241, 241, 1.0, "White" ); + ADD_COLOR( m_silkscreenColors, 4, 18, 21, 1.0, "Dark" ); + m_silkscreenTop->SetUserColors( &m_silkscreenColors ); + m_silkscreenBottom->SetUserColors( &m_silkscreenColors ); + + m_solderMaskTop->SetDefaultColor( COLOR4D( 0.1, 0.2, 0.1, 0.83 ) ); + m_solderMaskBottom->SetDefaultColor( COLOR4D( 0.1, 0.2, 0.1, 0.83 ) ); + + ADD_COLOR( m_maskColors, 20, 51, 36, 0.83, "Green" ); + ADD_COLOR( m_maskColors, 91, 168, 12, 0.83, "Light Green" ); + ADD_COLOR( m_maskColors, 13, 104, 11, 0.83, "Saturated Green" ); + ADD_COLOR( m_maskColors, 181, 19, 21, 0.83, "Red" ); + ADD_COLOR( m_maskColors, 239, 53, 41, 0.83, "Red Light Orange" ); + ADD_COLOR( m_maskColors, 210, 40, 14, 0.83, "Red 2" ); + ADD_COLOR( m_maskColors, 2, 59, 162, 0.83, "Blue" ); + ADD_COLOR( m_maskColors, 54, 79, 116, 0.83, "Light blue 1" ); + ADD_COLOR( m_maskColors, 61, 85, 130, 0.83, "Light blue 2" ); + ADD_COLOR( m_maskColors, 21, 70, 80, 0.83, "Green blue (dark)" ); + ADD_COLOR( m_maskColors, 11, 11, 11, 0.83, "Black" ); + ADD_COLOR( m_maskColors, 245, 245, 245, 0.83, "White" ); + ADD_COLOR( m_maskColors, 119, 31, 91, 0.83, "Purple" ); + ADD_COLOR( m_maskColors, 32, 2, 53, 0.83, "Purple Dark" ); + m_solderMaskTop->SetUserColors( &m_maskColors ); + m_solderMaskBottom->SetUserColors( &m_maskColors ); + + m_solderPaste->SetDefaultColor( COLOR4D( 0.4, 0.4, 0.4, 1.0 ) ); + + ADD_COLOR( m_pasteColors, 128, 128, 128, 1.0, "grey" ); + ADD_COLOR( m_pasteColors, 213, 213, 213, 1.0, "Silver" ); + ADD_COLOR( m_pasteColors, 90, 90, 90, 1.0, "grey 2" ); + m_solderPaste->SetUserColors( &m_pasteColors ); + + m_surfaceFinish->SetDefaultColor( COLOR4D( 0.75, 0.61, 0.23, 1.0 ) ); + + ADD_COLOR( m_finishColors, 184, 115, 50, 1.0, "Copper" ); + ADD_COLOR( m_finishColors, 178, 156, 0, 1.0, "Gold" ); + ADD_COLOR( m_finishColors, 213, 213, 213, 1.0, "Silver" ); + ADD_COLOR( m_finishColors, 160, 160, 160, 1.0, "Tin" ); + m_surfaceFinish->SetUserColors( &m_finishColors ); + + m_boardBody->SetDefaultColor( COLOR4D( 0.4, 0.4, 0.5, 0.9 ) ); + + ADD_COLOR( m_boardColors, 51, 43, 22, 0.9, "FR4 natural, dark" ); + ADD_COLOR( m_boardColors, 109, 116, 75, 0.9, "FR4 natural" ); + ADD_COLOR( m_boardColors, 78, 14, 5, 0.9, "brown/red" ); + ADD_COLOR( m_boardColors, 146, 99, 47, 0.9, "brown 1" ); + ADD_COLOR( m_boardColors, 160, 123, 54, 0.9, "brown 2" ); + ADD_COLOR( m_boardColors, 146, 99, 47, 0.9, "brown 3" ); + ADD_COLOR( m_boardColors, 63, 126, 71, 0.9, "green 1" ); + ADD_COLOR( m_boardColors, 117, 122, 90, 0.9, "green 2" ); + m_boardBody->SetUserColors( &m_boardColors ); + + // Only allow the stackup to be used in the PCB editor, since it isn't editable in the other + // frames + m_loadStackup->Show( aFrame->Parent()->IsType( FRAME_PCB_EDITOR ) ); + +#undef ADD_COLOR +} + + +bool PANEL_3D_COLORS::TransferDataToWindow() +{ + auto to_COLOR4D = []( const SFVEC4F& src ) + { + return COLOR4D( src.r, src.g, src.b, src.a ); + }; + + m_backgroundTop->SetSwatchColor( to_COLOR4D( m_settings.m_BgColorTop ), false ); + m_backgroundBottom->SetSwatchColor( to_COLOR4D( m_settings.m_BgColorBot ), false ); + m_silkscreenTop->SetSwatchColor( to_COLOR4D( m_settings.m_SilkScreenColorTop ), false ); + m_silkscreenBottom->SetSwatchColor( to_COLOR4D( m_settings.m_SilkScreenColorBot ), false ); + m_solderMaskTop->SetSwatchColor( to_COLOR4D( m_settings.m_SolderMaskColorTop ), false ); + m_solderMaskBottom->SetSwatchColor( to_COLOR4D( m_settings.m_SolderMaskColorBot ), false ); + m_solderPaste->SetSwatchColor( to_COLOR4D( m_settings.m_SolderPasteColor ), false ); + m_surfaceFinish->SetSwatchColor( to_COLOR4D( m_settings.m_CopperColor ), false ); + m_boardBody->SetSwatchColor( to_COLOR4D( m_settings.m_BoardBodyColor ), false ); + + return true; +} + + +bool PANEL_3D_COLORS::TransferDataFromWindow() +{ + auto to_SFVEC4F = []( const COLOR4D& src ) + { + return SFVEC4F( src.r, src.g, src.b, src.a ); + }; + + m_settings.m_BgColorTop = to_SFVEC4F( m_backgroundTop->GetSwatchColor() ); + m_settings.m_BgColorBot = to_SFVEC4F( m_backgroundBottom->GetSwatchColor() ); + m_settings.m_SilkScreenColorTop = to_SFVEC4F( m_silkscreenTop->GetSwatchColor() ); + m_settings.m_SilkScreenColorBot = to_SFVEC4F( m_silkscreenBottom->GetSwatchColor() ); + m_settings.m_SolderMaskColorTop = to_SFVEC4F( m_solderMaskTop->GetSwatchColor() ); + m_settings.m_SolderMaskColorBot = to_SFVEC4F( m_solderMaskBottom->GetSwatchColor() ); + m_settings.m_SolderPasteColor = to_SFVEC4F( m_solderPaste->GetSwatchColor() ); + m_settings.m_CopperColor = to_SFVEC4F( m_surfaceFinish->GetSwatchColor() ); + m_settings.m_BoardBodyColor = to_SFVEC4F( m_boardBody->GetSwatchColor() ); + + return true; +} + + +void PANEL_3D_COLORS::OnLoadColorsFromBoardStackup( wxCommandEvent& event ) +{ + const BOARD* brd = m_settings.GetBoard(); + const FAB_LAYER_COLOR* stdColors = GetColorStandardList(); + wxColour color; + + if( brd ) + { + const BOARD_STACKUP& stckp = brd->GetDesignSettings().GetStackupDescriptor(); + + for( const BOARD_STACKUP_ITEM* stckpItem : stckp.GetList() ) + { + wxString colorName = stckpItem->GetColor(); + + if( colorName.StartsWith( "#" ) ) // This is a user defined color. + { + color.Set( colorName ); + } + else + { + for( int i = 0; i < GetColorStandardListCount(); i++ ) + { + if( stdColors[i].m_ColorName == colorName ) + { + color = stdColors[i].m_Color; + break; + } + } + } + + if( color.IsOk() ) + { + switch( stckpItem->GetBrdLayerId() ) + { + case F_SilkS: + m_settings.m_SilkScreenColorTop.r = color.Red() / 255.0; + m_settings.m_SilkScreenColorTop.g = color.Green() / 255.0; + m_settings.m_SilkScreenColorTop.b = color.Blue() / 255.0; + break; + case B_SilkS: + m_settings.m_SilkScreenColorBot.r = color.Red() / 255.0; + m_settings.m_SilkScreenColorBot.g = color.Green() / 255.0; + m_settings.m_SilkScreenColorBot.b = color.Blue() / 255.0; + break; + case F_Mask: + m_settings.m_SolderMaskColorTop.r = color.Red() / 255.0; + m_settings.m_SolderMaskColorTop.g = color.Green() / 255.0; + m_settings.m_SolderMaskColorTop.b = color.Blue() / 255.0; + // Keep the previous alpha value + //m_boardAdapter.m_SolderMaskColorTop.a = color.Alpha() / 255.0; + break; + case B_Mask: + m_settings.m_SolderMaskColorBot.r = color.Red() / 255.0; + m_settings.m_SolderMaskColorBot.g = color.Green() / 255.0; + m_settings.m_SolderMaskColorBot.b = color.Blue() / 255.0; + // Keep the previous alpha value + //m_boardAdapter.m_SolderMaskColorBot.a = color.Alpha() / 255.0; + break; + default: + break; + } + } + } + + TransferDataToWindow(); + } +} diff --git a/3d-viewer/3d_viewer/dialogs/panel_3D_colors.h b/3d-viewer/3d_viewer/dialogs/panel_3D_colors.h new file mode 100644 index 0000000000..4786954e31 --- /dev/null +++ b/3d-viewer/3d_viewer/dialogs/panel_3D_colors.h @@ -0,0 +1,54 @@ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2021 KiCad Developers, see AUTHORS.txt for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef PANEL_3D_COLORS_H +#define PANEL_3D_COLORS_H + +#include "panel_3D_colors_base.h" +#include <3d_viewer/eda_3d_viewer.h> + +class PANEL_3D_COLORS : public PANEL_3D_COLORS_BASE +{ +public: + explicit PANEL_3D_COLORS( EDA_3D_VIEWER* aFrame, wxWindow* aParent ); + + /// Automatically called when clicking on the OK button + bool TransferDataFromWindow() override; + + /// Automatically called after creating the dialog + bool TransferDataToWindow() override; + + void OnLoadColorsFromBoardStackup( wxCommandEvent& event ) override; + +private: + BOARD_ADAPTER& m_settings; + + CUSTOM_COLORS_LIST m_silkscreenColors; + CUSTOM_COLORS_LIST m_maskColors; + CUSTOM_COLORS_LIST m_pasteColors; + CUSTOM_COLORS_LIST m_finishColors; + CUSTOM_COLORS_LIST m_boardColors; +}; + + +#endif // PANEL_3D_COLORS_H \ No newline at end of file diff --git a/3d-viewer/3d_viewer/dialogs/panel_3D_colors_base.cpp b/3d-viewer/3d_viewer/dialogs/panel_3D_colors_base.cpp new file mode 100644 index 0000000000..5db4242700 --- /dev/null +++ b/3d-viewer/3d_viewer/dialogs/panel_3D_colors_base.cpp @@ -0,0 +1,146 @@ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Oct 26 2018) +// http://www.wxformbuilder.org/ +// +// PLEASE DO *NOT* EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#include "widgets/color_swatch.h" + +#include "panel_3D_colors_base.h" + +/////////////////////////////////////////////////////////////////////////// + +PANEL_3D_COLORS_BASE::PANEL_3D_COLORS_BASE( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : wxPanel( parent, id, pos, size, style, name ) +{ + wxBoxSizer* bSizerMain; + bSizerMain = new wxBoxSizer( wxVERTICAL ); + + wxBoxSizer* bSizerMargins; + bSizerMargins = new wxBoxSizer( wxHORIZONTAL ); + + wxFlexGridSizer* fgSizer1; + fgSizer1 = new wxFlexGridSizer( 0, 2, 5, 0 ); + fgSizer1->SetFlexibleDirection( wxBOTH ); + fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + backgroundTopLabel = new wxStaticText( this, wxID_ANY, _("Background top:"), wxDefaultPosition, wxDefaultSize, 0 ); + backgroundTopLabel->Wrap( -1 ); + fgSizer1->Add( backgroundTopLabel, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); + + m_backgroundTop = new COLOR_SWATCH( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer1->Add( m_backgroundTop, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); + + backgroundBotLabel = new wxStaticText( this, wxID_ANY, _("Background bottom:"), wxDefaultPosition, wxDefaultSize, 0 ); + backgroundBotLabel->Wrap( -1 ); + fgSizer1->Add( backgroundBotLabel, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); + + m_backgroundBottom = new COLOR_SWATCH( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer1->Add( m_backgroundBottom, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); + + + fgSizer1->Add( 0, 10, 1, wxEXPAND, 5 ); + + + fgSizer1->Add( 0, 0, 1, wxEXPAND, 5 ); + + silkscreenTopLabel = new wxStaticText( this, wxID_ANY, _("Silkscreen top:"), wxDefaultPosition, wxDefaultSize, 0 ); + silkscreenTopLabel->Wrap( -1 ); + fgSizer1->Add( silkscreenTopLabel, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_silkscreenTop = new COLOR_SWATCH( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer1->Add( m_silkscreenTop, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); + + silkscreenBottomLabel = new wxStaticText( this, wxID_ANY, _("Silkscreen bottom:"), wxDefaultPosition, wxDefaultSize, 0 ); + silkscreenBottomLabel->Wrap( -1 ); + fgSizer1->Add( silkscreenBottomLabel, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); + + m_silkscreenBottom = new COLOR_SWATCH( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer1->Add( m_silkscreenBottom, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); + + + fgSizer1->Add( 0, 10, 1, wxEXPAND, 5 ); + + + fgSizer1->Add( 0, 0, 1, wxEXPAND, 5 ); + + solderMaskTopLabel = new wxStaticText( this, wxID_ANY, _("Solder mask top:"), wxDefaultPosition, wxDefaultSize, 0 ); + solderMaskTopLabel->Wrap( -1 ); + fgSizer1->Add( solderMaskTopLabel, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); + + m_solderMaskTop = new COLOR_SWATCH( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer1->Add( m_solderMaskTop, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + solderMaskBottomLabel = new wxStaticText( this, wxID_ANY, _("Solder mask bottom:"), wxDefaultPosition, wxDefaultSize, 0 ); + solderMaskBottomLabel->Wrap( -1 ); + fgSizer1->Add( solderMaskBottomLabel, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); + + m_solderMaskBottom = new COLOR_SWATCH( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer1->Add( m_solderMaskBottom, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); + + + fgSizer1->Add( 0, 10, 1, wxEXPAND, 5 ); + + + fgSizer1->Add( 0, 0, 1, wxEXPAND, 5 ); + + solderPasteLabel = new wxStaticText( this, wxID_ANY, _("Solder paste:"), wxDefaultPosition, wxDefaultSize, 0 ); + solderPasteLabel->Wrap( -1 ); + fgSizer1->Add( solderPasteLabel, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); + + m_solderPaste = new COLOR_SWATCH( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer1->Add( m_solderPaste, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + + fgSizer1->Add( 0, 10, 1, wxEXPAND, 5 ); + + + fgSizer1->Add( 0, 0, 1, wxEXPAND, 5 ); + + surfaceFinishLabel = new wxStaticText( this, wxID_ANY, _("Copper/surface finish:"), wxDefaultPosition, wxDefaultSize, 0 ); + surfaceFinishLabel->Wrap( -1 ); + fgSizer1->Add( surfaceFinishLabel, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); + + m_surfaceFinish = new COLOR_SWATCH( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer1->Add( m_surfaceFinish, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); + + + fgSizer1->Add( 0, 10, 1, wxEXPAND, 5 ); + + + fgSizer1->Add( 0, 0, 1, wxEXPAND, 5 ); + + boardBodyLabel = new wxStaticText( this, wxID_ANY, _("Board body:"), wxDefaultPosition, wxDefaultSize, 0 ); + boardBodyLabel->Wrap( -1 ); + fgSizer1->Add( boardBodyLabel, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_boardBody = new COLOR_SWATCH( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); + fgSizer1->Add( m_boardBody, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + + bSizerMargins->Add( fgSizer1, 0, wxTOP, 5 ); + + + bSizerMargins->Add( 0, 0, 1, wxEXPAND, 5 ); + + m_loadStackup = new wxButton( this, wxID_ANY, _("Load Colors from Board Stackup"), wxDefaultPosition, wxDefaultSize, 0 ); + bSizerMargins->Add( m_loadStackup, 0, wxALL, 5 ); + + + bSizerMain->Add( bSizerMargins, 1, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 10 ); + + + this->SetSizer( bSizerMain ); + this->Layout(); + bSizerMain->Fit( this ); + + // Connect Events + m_loadStackup->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_3D_COLORS_BASE::OnLoadColorsFromBoardStackup ), NULL, this ); +} + +PANEL_3D_COLORS_BASE::~PANEL_3D_COLORS_BASE() +{ + // Disconnect Events + m_loadStackup->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( PANEL_3D_COLORS_BASE::OnLoadColorsFromBoardStackup ), NULL, this ); + +} diff --git a/3d-viewer/3d_viewer/dialogs/panel_3D_colors_base.fbp b/3d-viewer/3d_viewer/dialogs/panel_3D_colors_base.fbp new file mode 100644 index 0000000000..3e7275355e --- /dev/null +++ b/3d-viewer/3d_viewer/dialogs/panel_3D_colors_base.fbp @@ -0,0 +1,1379 @@ + + + + + + C++ + 1 + source_name + 0 + 0 + res + UTF-8 + connect + panel_3D_colors_base + 1000 + none + + 1 + panel_3D_colors_base + + . + + 1 + 1 + 1 + 1 + UI + 0 + 0 + + 0 + wxAUI_MGR_DEFAULT + + + 1 + 1 + impl_virtual + + + 0 + wxID_ANY + + + PANEL_3D_COLORS_BASE + + -1,-1 + ; ; forward_declare + + + + wxTAB_TRAVERSAL + + + bSizerMain + wxVERTICAL + none + + 10 + wxEXPAND|wxTOP|wxRIGHT|wxLEFT + 1 + + + bSizerMargins + wxHORIZONTAL + none + + 5 + wxTOP + 0 + + 2 + wxBOTH + + + 0 + -1,-1 + fgSizer1 + wxFLEX_GROWMODE_SPECIFIED + none + 0 + 5 + + 5 + wxALIGN_CENTER_VERTICAL|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Background top: + 0 + + 0 + + + 0 + + 1 + backgroundTopLabel + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + COLOR_SWATCH + 1 + + + 1 + + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_backgroundTop + 1 + + + protected + 1 + + Resizable + + 1 + + COLOR_SWATCH; widgets/color_swatch.h; forward_declare + 0 + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Background bottom: + 0 + + 0 + + + 0 + + 1 + backgroundBotLabel + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + COLOR_SWATCH + 1 + + + 1 + + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_backgroundBottom + 1 + + + protected + 1 + + Resizable + + 1 + + COLOR_SWATCH; widgets/color_swatch.h; forward_declare + 0 + + + + + + + + 5 + wxEXPAND + 1 + + 10 + protected + 0 + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Silkscreen top: + 0 + + 0 + + + 0 + + 1 + silkscreenTopLabel + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + COLOR_SWATCH + 1 + + + 1 + + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_silkscreenTop + 1 + + + protected + 1 + + Resizable + + 1 + + COLOR_SWATCH; widgets/color_swatch.h; forward_declare + 0 + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Silkscreen bottom: + 0 + + 0 + + + 0 + + 1 + silkscreenBottomLabel + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + COLOR_SWATCH + 1 + + + 1 + + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_silkscreenBottom + 1 + + + protected + 1 + + Resizable + + 1 + + COLOR_SWATCH; widgets/color_swatch.h; forward_declare + 0 + + + + + + + + 5 + wxEXPAND + 1 + + 10 + protected + 0 + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxALIGN_CENTER_VERTICAL|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Solder mask top: + 0 + + 0 + + + 0 + + 1 + solderMaskTopLabel + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + COLOR_SWATCH + 1 + + + 1 + + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_solderMaskTop + 1 + + + protected + 1 + + Resizable + + 1 + + COLOR_SWATCH; widgets/color_swatch.h; forward_declare + 0 + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Solder mask bottom: + 0 + + 0 + + + 0 + + 1 + solderMaskBottomLabel + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + COLOR_SWATCH + 1 + + + 1 + + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_solderMaskBottom + 1 + + + protected + 1 + + Resizable + + 1 + + COLOR_SWATCH; widgets/color_swatch.h; forward_declare + 0 + + + + + + + + 5 + wxEXPAND + 1 + + 10 + protected + 0 + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxALIGN_CENTER_VERTICAL|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Solder paste: + 0 + + 0 + + + 0 + + 1 + solderPasteLabel + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + COLOR_SWATCH + 1 + + + 1 + + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_solderPaste + 1 + + + protected + 1 + + Resizable + + 1 + + COLOR_SWATCH; widgets/color_swatch.h; forward_declare + 0 + + + + + + + + 5 + wxEXPAND + 1 + + 10 + protected + 0 + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxALIGN_CENTER_VERTICAL|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Copper/surface finish: + 0 + + 0 + + + 0 + + 1 + surfaceFinishLabel + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + COLOR_SWATCH + 1 + + + 1 + + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_surfaceFinish + 1 + + + protected + 1 + + Resizable + + 1 + + COLOR_SWATCH; widgets/color_swatch.h; forward_declare + 0 + + + + + + + + 5 + wxEXPAND + 1 + + 10 + protected + 0 + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Board body: + 0 + + 0 + + + 0 + + 1 + boardBodyLabel + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + COLOR_SWATCH + 1 + + + 1 + + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_boardBody + 1 + + + protected + 1 + + Resizable + + 1 + + COLOR_SWATCH; widgets/color_swatch.h; forward_declare + 0 + + + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + + 1 + 0 + 1 + + 1 + + 0 + 0 + + Dock + 0 + Left + 1 + + 1 + + + 0 + 0 + wxID_ANY + Load Colors from Board Stackup + + 0 + + 0 + + + 0 + + 1 + m_loadStackup + 1 + + + protected + 1 + + + + Resizable + 1 + + + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnLoadColorsFromBoardStackup + + + + + + + + diff --git a/3d-viewer/3d_viewer/dialogs/panel_3D_colors_base.h b/3d-viewer/3d_viewer/dialogs/panel_3D_colors_base.h new file mode 100644 index 0000000000..57701b8719 --- /dev/null +++ b/3d-viewer/3d_viewer/dialogs/panel_3D_colors_base.h @@ -0,0 +1,69 @@ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Oct 26 2018) +// http://www.wxformbuilder.org/ +// +// PLEASE DO *NOT* EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#pragma once + +#include +#include +#include +class COLOR_SWATCH; + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/////////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////////////// +/// Class PANEL_3D_COLORS_BASE +/////////////////////////////////////////////////////////////////////////////// +class PANEL_3D_COLORS_BASE : public wxPanel +{ + private: + + protected: + wxStaticText* backgroundTopLabel; + COLOR_SWATCH* m_backgroundTop; + wxStaticText* backgroundBotLabel; + COLOR_SWATCH* m_backgroundBottom; + wxStaticText* silkscreenTopLabel; + COLOR_SWATCH* m_silkscreenTop; + wxStaticText* silkscreenBottomLabel; + COLOR_SWATCH* m_silkscreenBottom; + wxStaticText* solderMaskTopLabel; + COLOR_SWATCH* m_solderMaskTop; + wxStaticText* solderMaskBottomLabel; + COLOR_SWATCH* m_solderMaskBottom; + wxStaticText* solderPasteLabel; + COLOR_SWATCH* m_solderPaste; + wxStaticText* surfaceFinishLabel; + COLOR_SWATCH* m_surfaceFinish; + wxStaticText* boardBodyLabel; + COLOR_SWATCH* m_boardBody; + wxButton* m_loadStackup; + + // Virtual event handlers, overide them in your derived class + virtual void OnLoadColorsFromBoardStackup( wxCommandEvent& event ) { event.Skip(); } + + + public: + + PANEL_3D_COLORS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxEmptyString ); + ~PANEL_3D_COLORS_BASE(); + +}; + diff --git a/3d-viewer/3d_viewer/dialogs/panel_3D_display_options.cpp b/3d-viewer/3d_viewer/dialogs/panel_3D_display_options.cpp new file mode 100644 index 0000000000..908c99cc5a --- /dev/null +++ b/3d-viewer/3d_viewer/dialogs/panel_3D_display_options.cpp @@ -0,0 +1,136 @@ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2017 Jean-Pierre Charras, jp.charras at wanadoo.fr + * Copyright (C) 2014-2021 KiCad Developers, see AUTHORS.txt for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include "panel_3D_display_options.h" +#include <3d_canvas/board_adapter.h> +#include <3d_viewer/eda_3d_viewer.h> +#include <3d_viewer/tools/3d_controller.h> +#include + + +PANEL_3D_DISPLAY_OPTIONS::PANEL_3D_DISPLAY_OPTIONS( EDA_3D_VIEWER* aFrame, wxWindow* aParent ) : + PANEL_3D_DISPLAY_OPTIONS_BASE( aParent ), + m_frame( aFrame ), + m_settings( aFrame->GetAdapter() ), + m_canvas( aFrame->GetCanvas() ) +{ +} + + +void PANEL_3D_DISPLAY_OPTIONS::OnCheckEnableAnimation( wxCommandEvent& event ) +{ + m_staticAnimationSpeed->Enable( m_checkBoxEnableAnimation->GetValue() ); + m_sliderAnimationSpeed->Enable( m_checkBoxEnableAnimation->GetValue() ); +} + + +bool PANEL_3D_DISPLAY_OPTIONS::TransferDataToWindow() +{ + // Check/uncheck checkboxes + m_checkBoxRealisticMode->SetValue( m_settings.GetFlag( FL_USE_REALISTIC_MODE ) ); + m_checkBoxBoardBody->SetValue( m_settings.GetFlag( FL_SHOW_BOARD_BODY ) ); + m_checkBoxAreas->SetValue( m_settings.GetFlag( FL_ZONE ) ); + + m_checkBox3DshapesTH->SetValue( m_settings.GetFlag( FL_FP_ATTRIBUTES_NORMAL ) ); + m_checkBox3DshapesSMD->SetValue( m_settings.GetFlag( FL_FP_ATTRIBUTES_NORMAL_INSERT ) ); + m_checkBox3DshapesVirtual->SetValue( m_settings.GetFlag( FL_FP_ATTRIBUTES_VIRTUAL ) ); + + m_checkBoxSilkscreen->SetValue( m_settings.GetFlag( FL_SILKSCREEN ) ); + m_checkBoxSolderMask->SetValue( m_settings.GetFlag( FL_SOLDERMASK ) ); + m_checkBoxSolderpaste->SetValue( m_settings.GetFlag( FL_SOLDERPASTE ) ); + m_checkBoxAdhesive->SetValue( m_settings.GetFlag( FL_ADHESIVE ) ); + m_checkBoxComments->SetValue( m_settings.GetFlag( FL_COMMENTS ) ); + m_checkBoxECO->SetValue( m_settings.GetFlag( FL_ECO ) ); + m_checkBoxSubtractMaskFromSilk->SetValue( m_settings.GetFlag( FL_SUBTRACT_MASK_FROM_SILK ) ); + m_checkBoxClipSilkOnViaAnnulus->SetValue( m_settings.GetFlag( FL_CLIP_SILK_ON_VIA_ANNULUS ) ); + m_checkBoxRenderPlatedPadsAsPlated->SetValue( + m_settings.GetFlag( FL_RENDER_PLATED_PADS_AS_PLATED ) ); + + switch( m_settings.GetMaterialMode() ) + { + default: + case MATERIAL_MODE::NORMAL: m_materialProperties->SetSelection( 0 ); break; + case MATERIAL_MODE::DIFFUSE_ONLY: m_materialProperties->SetSelection( 1 ); break; + case MATERIAL_MODE::CAD_MODE: m_materialProperties->SetSelection( 2 ); break; + } + + // Camera Options + m_checkBoxEnableAnimation->SetValue( m_canvas->AnimationEnabledGet() ); + m_sliderAnimationSpeed->SetValue( m_canvas->MovingSpeedMultiplierGet() ); + m_staticAnimationSpeed->Enable( m_canvas->AnimationEnabledGet() ); + m_sliderAnimationSpeed->Enable( m_canvas->AnimationEnabledGet() ); + + EDA_3D_CONTROLLER* ctrlTool = m_frame->GetToolManager()->GetTool(); + m_spinCtrlRotationAngle->SetValue( ctrlTool->GetRotationIncrement() ); + + return true; +} + + +bool PANEL_3D_DISPLAY_OPTIONS::TransferDataFromWindow() +{ + // Set render mode + m_settings.SetFlag( FL_USE_REALISTIC_MODE, m_checkBoxRealisticMode->GetValue() ); + + // Set visibility of items + m_settings.SetFlag( FL_SHOW_BOARD_BODY, m_checkBoxBoardBody->GetValue() ); + m_settings.SetFlag( FL_ZONE, m_checkBoxAreas->GetValue() ); + m_settings.SetFlag( FL_SUBTRACT_MASK_FROM_SILK, m_checkBoxSubtractMaskFromSilk->GetValue() ); + m_settings.SetFlag( FL_CLIP_SILK_ON_VIA_ANNULUS, m_checkBoxClipSilkOnViaAnnulus->GetValue() ); + m_settings.SetFlag( FL_RENDER_PLATED_PADS_AS_PLATED, + m_checkBoxRenderPlatedPadsAsPlated->GetValue() ); + + switch( m_materialProperties->GetSelection() ) + { + default: + case 0: m_settings.SetMaterialMode( MATERIAL_MODE::NORMAL ); break; + case 1: m_settings.SetMaterialMode( MATERIAL_MODE::DIFFUSE_ONLY ); break; + case 2: m_settings.SetMaterialMode( MATERIAL_MODE::CAD_MODE ); break; + } + + // Set 3D shapes visibility + m_settings.SetFlag( FL_FP_ATTRIBUTES_NORMAL, m_checkBox3DshapesTH->GetValue() ); + m_settings.SetFlag( FL_FP_ATTRIBUTES_NORMAL_INSERT, m_checkBox3DshapesSMD->GetValue() ); + m_settings.SetFlag( FL_FP_ATTRIBUTES_VIRTUAL, m_checkBox3DshapesVirtual->GetValue() ); + + // Set Layer visibility + m_settings.SetFlag( FL_SILKSCREEN, m_checkBoxSilkscreen->GetValue() ); + m_settings.SetFlag( FL_SOLDERMASK, m_checkBoxSolderMask->GetValue() ); + m_settings.SetFlag( FL_SOLDERPASTE, m_checkBoxSolderpaste->GetValue() ); + m_settings.SetFlag( FL_ADHESIVE, m_checkBoxAdhesive->GetValue() ); + m_settings.SetFlag( FL_COMMENTS, m_checkBoxComments->GetValue() ); + m_settings.SetFlag( FL_ECO, m_checkBoxECO->GetValue( ) ); + + // Camera Options + m_canvas->AnimationEnabledSet( m_checkBoxEnableAnimation->GetValue() ); + m_canvas->MovingSpeedMultiplierSet( m_sliderAnimationSpeed->GetValue() ); + + EDA_3D_CONTROLLER* ctrlTool = m_frame->GetToolManager()->GetTool(); + ctrlTool->SetRotationIncrement( m_spinCtrlRotationAngle->GetValue() ); + + m_frame->NewDisplay(); + m_canvas->Request_refresh(); + + return true; +} diff --git a/3d-viewer/3d_viewer/dialogs/panel_3D_display_options.h b/3d-viewer/3d_viewer/dialogs/panel_3D_display_options.h new file mode 100644 index 0000000000..a619002902 --- /dev/null +++ b/3d-viewer/3d_viewer/dialogs/panel_3D_display_options.h @@ -0,0 +1,54 @@ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2017 Jean-Pierre Charras, jp.charras at wanadoo.fr + * Copyright (C) 2014-2021 KiCad Developers, see AUTHORS.txt for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef PANEL_3D_DISPLAY_OPTIONS_H +#define PANEL_3D_DISPLAY_OPTIONS_H + +#include "panel_3D_display_options_base.h" +#include <3d_viewer/eda_3d_viewer.h> + + +class PANEL_3D_DISPLAY_OPTIONS : public PANEL_3D_DISPLAY_OPTIONS_BASE +{ +public: + explicit PANEL_3D_DISPLAY_OPTIONS( EDA_3D_VIEWER* aFrame, wxWindow* aParent ); + + void OnCheckEnableAnimation( wxCommandEvent& WXUNUSED( event ) ) override; + + /// Automatically called when clicking on the OK button + bool TransferDataFromWindow() override; + + /// Automatically called after creating the dialog + bool TransferDataToWindow() override; + + void TransferColorDataToWindow(); + +private: + EDA_3D_VIEWER* m_frame; + BOARD_ADAPTER& m_settings; + EDA_3D_CANVAS* m_canvas; +}; + + +#endif // PANEL_3D_DISPLAY_OPTIONS_H \ No newline at end of file diff --git a/3d-viewer/3d_viewer/dialogs/panel_3D_display_options_base.cpp b/3d-viewer/3d_viewer/dialogs/panel_3D_display_options_base.cpp new file mode 100644 index 0000000000..71c2b9575e --- /dev/null +++ b/3d-viewer/3d_viewer/dialogs/panel_3D_display_options_base.cpp @@ -0,0 +1,178 @@ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Oct 26 2018) +// http://www.wxformbuilder.org/ +// +// PLEASE DO *NOT* EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#include "panel_3D_display_options_base.h" + +/////////////////////////////////////////////////////////////////////////// + +PANEL_3D_DISPLAY_OPTIONS_BASE::PANEL_3D_DISPLAY_OPTIONS_BASE( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : wxPanel( parent, id, pos, size, style, name ) +{ + wxBoxSizer* bSizerMain; + bSizerMain = new wxBoxSizer( wxHORIZONTAL ); + + wxBoxSizer* bSizeLeft; + bSizeLeft = new wxBoxSizer( wxVERTICAL ); + + wxStaticBoxSizer* sbModelVisibility; + sbModelVisibility = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("3D Model Visibility") ), wxVERTICAL ); + + m_checkBox3DshapesTH = new wxCheckBox( sbModelVisibility->GetStaticBox(), wxID_ANY, _("Show 3D through hole models"), wxDefaultPosition, wxDefaultSize, 0 ); + sbModelVisibility->Add( m_checkBox3DshapesTH, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 ); + + m_checkBox3DshapesSMD = new wxCheckBox( sbModelVisibility->GetStaticBox(), wxID_ANY, _("Show 3D SMD models"), wxDefaultPosition, wxDefaultSize, 0 ); + sbModelVisibility->Add( m_checkBox3DshapesSMD, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 ); + + m_checkBox3DshapesVirtual = new wxCheckBox( sbModelVisibility->GetStaticBox(), wxID_ANY, _("Show 3D virtual models"), wxDefaultPosition, wxDefaultSize, 0 ); + sbModelVisibility->Add( m_checkBox3DshapesVirtual, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 ); + + + bSizeLeft->Add( sbModelVisibility, 0, wxEXPAND|wxALL, 5 ); + + wxStaticBoxSizer* sbBoardLayers; + sbBoardLayers = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Board Layers") ), wxVERTICAL ); + + m_checkBoxSilkscreen = new wxCheckBox( sbBoardLayers->GetStaticBox(), wxID_ANY, _("Show silkscreen layers"), wxDefaultPosition, wxDefaultSize, 0 ); + sbBoardLayers->Add( m_checkBoxSilkscreen, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 ); + + m_checkBoxSolderMask = new wxCheckBox( sbBoardLayers->GetStaticBox(), wxID_ANY, _("Show solder mask layers"), wxDefaultPosition, wxDefaultSize, 0 ); + sbBoardLayers->Add( m_checkBoxSolderMask, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 ); + + m_checkBoxSolderpaste = new wxCheckBox( sbBoardLayers->GetStaticBox(), wxID_ANY, _("Show solder paste layers"), wxDefaultPosition, wxDefaultSize, 0 ); + sbBoardLayers->Add( m_checkBoxSolderpaste, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 ); + + m_checkBoxAdhesive = new wxCheckBox( sbBoardLayers->GetStaticBox(), wxID_ANY, _("Show adhesive layers"), wxDefaultPosition, wxDefaultSize, 0 ); + sbBoardLayers->Add( m_checkBoxAdhesive, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 ); + + + bSizeLeft->Add( sbBoardLayers, 0, wxEXPAND|wxALL, 5 ); + + wxStaticBoxSizer* sbUserLayers; + sbUserLayers = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("User Layers (not shown in realistic mode)") ), wxVERTICAL ); + + m_checkBoxComments = new wxCheckBox( sbUserLayers->GetStaticBox(), wxID_ANY, _("Show comments and drawings layers"), wxDefaultPosition, wxDefaultSize, 0 ); + sbUserLayers->Add( m_checkBoxComments, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 ); + + m_checkBoxECO = new wxCheckBox( sbUserLayers->GetStaticBox(), wxID_ANY, _("Show ECO layers"), wxDefaultPosition, wxDefaultSize, 0 ); + sbUserLayers->Add( m_checkBoxECO, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 ); + + + bSizeLeft->Add( sbUserLayers, 0, wxEXPAND|wxALL, 5 ); + + + bSizerMain->Add( bSizeLeft, 1, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 10 ); + + wxBoxSizer* bSizerRight; + bSizerRight = new wxBoxSizer( wxVERTICAL ); + + wxStaticBoxSizer* sbRenderOptions; + sbRenderOptions = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Render Options") ), wxVERTICAL ); + + m_checkBoxRealisticMode = new wxCheckBox( sbRenderOptions->GetStaticBox(), wxID_ANY, _("Realistic mode"), wxDefaultPosition, wxDefaultSize, 0 ); + sbRenderOptions->Add( m_checkBoxRealisticMode, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 ); + + m_checkBoxBoardBody = new wxCheckBox( sbRenderOptions->GetStaticBox(), wxID_ANY, _("Show board body"), wxDefaultPosition, wxDefaultSize, 0 ); + sbRenderOptions->Add( m_checkBoxBoardBody, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 ); + + m_checkBoxAreas = new wxCheckBox( sbRenderOptions->GetStaticBox(), wxID_ANY, _("Show filled areas in zones"), wxDefaultPosition, wxDefaultSize, 0 ); + sbRenderOptions->Add( m_checkBoxAreas, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 ); + + m_checkBoxSubtractMaskFromSilk = new wxCheckBox( sbRenderOptions->GetStaticBox(), wxID_ANY, _("Subtract soldermask from silkscreen"), wxDefaultPosition, wxDefaultSize, 0 ); + sbRenderOptions->Add( m_checkBoxSubtractMaskFromSilk, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 ); + + m_checkBoxClipSilkOnViaAnnulus = new wxCheckBox( sbRenderOptions->GetStaticBox(), wxID_ANY, _("Clip silkscreen at via annuli"), wxDefaultPosition, wxDefaultSize, 0 ); + sbRenderOptions->Add( m_checkBoxClipSilkOnViaAnnulus, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 ); + + m_checkBoxRenderPlatedPadsAsPlated = new wxCheckBox( sbRenderOptions->GetStaticBox(), wxID_ANY, _("Use bare copper color for unplated copper"), wxDefaultPosition, wxDefaultSize, 0 ); + m_checkBoxRenderPlatedPadsAsPlated->SetToolTip( _("Use different colors for plated and unplated copper. (Slow)") ); + + sbRenderOptions->Add( m_checkBoxRenderPlatedPadsAsPlated, 0, wxBOTTOM|wxLEFT|wxRIGHT, 5 ); + + wxBoxSizer* bSizerMaterials; + bSizerMaterials = new wxBoxSizer( wxHORIZONTAL ); + + m_materialPropertiesLabel = new wxStaticText( sbRenderOptions->GetStaticBox(), wxID_ANY, _("Material properties:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_materialPropertiesLabel->Wrap( -1 ); + bSizerMaterials->Add( m_materialPropertiesLabel, 0, wxTOP|wxBOTTOM|wxLEFT, 5 ); + + wxString m_materialPropertiesChoices[] = { _("Use all properties"), _("Diffuse properties only"), _("CAD color style") }; + int m_materialPropertiesNChoices = sizeof( m_materialPropertiesChoices ) / sizeof( wxString ); + m_materialProperties = new wxChoice( sbRenderOptions->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_materialPropertiesNChoices, m_materialPropertiesChoices, 0 ); + m_materialProperties->SetSelection( 0 ); + bSizerMaterials->Add( m_materialProperties, 0, wxALL, 5 ); + + + sbRenderOptions->Add( bSizerMaterials, 1, wxEXPAND, 5 ); + + + bSizerRight->Add( sbRenderOptions, 0, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 ); + + wxStaticBoxSizer* sbCameraOptions; + sbCameraOptions = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Camera Options") ), wxVERTICAL ); + + wxBoxSizer* bSizerRotAngle; + bSizerRotAngle = new wxBoxSizer( wxHORIZONTAL ); + + m_staticTextRotAngle = new wxStaticText( sbCameraOptions->GetStaticBox(), wxID_ANY, _("Rotation Increment:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextRotAngle->Wrap( -1 ); + bSizerRotAngle->Add( m_staticTextRotAngle, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); + + m_spinCtrlRotationAngle = new wxSpinCtrlDouble( sbCameraOptions->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 0, 359, 10, 1 ); + m_spinCtrlRotationAngle->SetDigits( 0 ); + bSizerRotAngle->Add( m_spinCtrlRotationAngle, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); + + m_staticTextRotAngleUnits = new wxStaticText( sbCameraOptions->GetStaticBox(), wxID_ANY, _("deg"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticTextRotAngleUnits->Wrap( -1 ); + bSizerRotAngle->Add( m_staticTextRotAngleUnits, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); + + + sbCameraOptions->Add( bSizerRotAngle, 0, wxEXPAND|wxBOTTOM, 5 ); + + m_staticline3 = new wxStaticLine( sbCameraOptions->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL ); + sbCameraOptions->Add( m_staticline3, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); + + m_checkBoxEnableAnimation = new wxCheckBox( sbCameraOptions->GetStaticBox(), wxID_ANY, _("Enable animation"), wxDefaultPosition, wxDefaultSize, 0 ); + m_checkBoxEnableAnimation->SetValue(true); + sbCameraOptions->Add( m_checkBoxEnableAnimation, 0, wxTOP|wxRIGHT|wxLEFT, 5 ); + + wxBoxSizer* bSizerSlider; + bSizerSlider = new wxBoxSizer( wxHORIZONTAL ); + + m_staticAnimationSpeed = new wxStaticText( sbCameraOptions->GetStaticBox(), wxID_ANY, _("Animation speed:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticAnimationSpeed->Wrap( -1 ); + bSizerSlider->Add( m_staticAnimationSpeed, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); + + m_sliderAnimationSpeed = new wxSlider( sbCameraOptions->GetStaticBox(), wxID_ANY, 3, 1, 5, wxDefaultPosition, wxDefaultSize, wxSL_AUTOTICKS|wxSL_HORIZONTAL|wxSL_LABELS ); + m_sliderAnimationSpeed->SetMinSize( wxSize( 100,-1 ) ); + + bSizerSlider->Add( m_sliderAnimationSpeed, 1, wxEXPAND|wxLEFT|wxRIGHT, 5 ); + + + sbCameraOptions->Add( bSizerSlider, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); + + + bSizerRight->Add( sbCameraOptions, 0, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 ); + + + bSizerMain->Add( bSizerRight, 1, wxEXPAND|wxTOP|wxBOTTOM, 10 ); + + + this->SetSizer( bSizerMain ); + this->Layout(); + bSizerMain->Fit( this ); + + // Connect Events + m_checkBoxRealisticMode->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PANEL_3D_DISPLAY_OPTIONS_BASE::OnCheckRealisticMode ), NULL, this ); + m_checkBoxEnableAnimation->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PANEL_3D_DISPLAY_OPTIONS_BASE::OnCheckEnableAnimation ), NULL, this ); +} + +PANEL_3D_DISPLAY_OPTIONS_BASE::~PANEL_3D_DISPLAY_OPTIONS_BASE() +{ + // Disconnect Events + m_checkBoxRealisticMode->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PANEL_3D_DISPLAY_OPTIONS_BASE::OnCheckRealisticMode ), NULL, this ); + m_checkBoxEnableAnimation->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PANEL_3D_DISPLAY_OPTIONS_BASE::OnCheckEnableAnimation ), NULL, this ); + +} diff --git a/3d-viewer/3d_viewer/dialogs/panel_3D_display_options_base.fbp b/3d-viewer/3d_viewer/dialogs/panel_3D_display_options_base.fbp new file mode 100644 index 0000000000..b0c75cb1ee --- /dev/null +++ b/3d-viewer/3d_viewer/dialogs/panel_3D_display_options_base.fbp @@ -0,0 +1,1706 @@ + + + + + + C++ + 1 + source_name + 0 + 0 + res + UTF-8 + connect + panel_3D_display_options_base + 1000 + none + + 1 + panel_3D_display_options_base + + . + + 1 + 1 + 1 + 1 + UI + 0 + 0 + + 0 + wxAUI_MGR_DEFAULT + + + 1 + 1 + impl_virtual + + + 0 + wxID_ANY + + + PANEL_3D_DISPLAY_OPTIONS_BASE + + -1,-1 + ; ; forward_declare + + + + wxTAB_TRAVERSAL + + + bSizerMain + wxHORIZONTAL + none + + 10 + wxEXPAND|wxTOP|wxBOTTOM|wxLEFT + 1 + + + bSizeLeft + wxVERTICAL + none + + 5 + wxEXPAND|wxALL + 0 + + wxID_ANY + 3D Model Visibility + + sbModelVisibility + wxVERTICAL + 1 + none + + 5 + wxBOTTOM|wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Show 3D through hole models + + 0 + + + 0 + + 1 + m_checkBox3DshapesTH + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxBOTTOM|wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Show 3D SMD models + + 0 + + + 0 + + 1 + m_checkBox3DshapesSMD + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxBOTTOM|wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Show 3D virtual models + + 0 + + + 0 + + 1 + m_checkBox3DshapesVirtual + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + 5 + wxEXPAND|wxALL + 0 + + wxID_ANY + Board Layers + + sbBoardLayers + wxVERTICAL + 1 + none + + 5 + wxBOTTOM|wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Show silkscreen layers + + 0 + + + 0 + + 1 + m_checkBoxSilkscreen + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxBOTTOM|wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Show solder mask layers + + 0 + + + 0 + + 1 + m_checkBoxSolderMask + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxBOTTOM|wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Show solder paste layers + + 0 + + + 0 + + 1 + m_checkBoxSolderpaste + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxBOTTOM|wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Show adhesive layers + + 0 + + + 0 + + 1 + m_checkBoxAdhesive + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + 5 + wxEXPAND|wxALL + 0 + + wxID_ANY + User Layers (not shown in realistic mode) + + sbUserLayers + wxVERTICAL + 1 + none + + 5 + wxBOTTOM|wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Show comments and drawings layers + + 0 + + + 0 + + 1 + m_checkBoxComments + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxBOTTOM|wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Show ECO layers + + 0 + + + 0 + + 1 + m_checkBoxECO + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + 10 + wxEXPAND|wxTOP|wxBOTTOM + 1 + + + bSizerRight + wxVERTICAL + none + + 5 + wxEXPAND|wxTOP|wxBOTTOM|wxLEFT + 0 + + wxID_ANY + Render Options + + sbRenderOptions + wxVERTICAL + 1 + none + + 5 + wxBOTTOM|wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Realistic mode + + 0 + + + 0 + + 1 + m_checkBoxRealisticMode + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnCheckRealisticMode + + + + 5 + wxBOTTOM|wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Show board body + + 0 + + + 0 + + 1 + m_checkBoxBoardBody + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxBOTTOM|wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Show filled areas in zones + + 0 + + + 0 + + 1 + m_checkBoxAreas + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxBOTTOM|wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Subtract soldermask from silkscreen + + 0 + + + 0 + + 1 + m_checkBoxSubtractMaskFromSilk + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxBOTTOM|wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Clip silkscreen at via annuli + + 0 + + + 0 + + 1 + m_checkBoxClipSilkOnViaAnnulus + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxBOTTOM|wxLEFT|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Use bare copper color for unplated copper + + 0 + + + 0 + + 1 + m_checkBoxRenderPlatedPadsAsPlated + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + Use different colors for plated and unplated copper. (Slow) + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxEXPAND + 1 + + + bSizerMaterials + wxHORIZONTAL + none + + 5 + wxTOP|wxBOTTOM|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Material properties: + 0 + + 0 + + + 0 + + 1 + m_materialPropertiesLabel + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Use all properties" "Diffuse properties only" "CAD color style" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_materialProperties + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + 5 + wxEXPAND|wxTOP|wxBOTTOM|wxLEFT + 0 + + wxID_ANY + Camera Options + + sbCameraOptions + wxVERTICAL + 1 + none + + 5 + wxEXPAND|wxBOTTOM + 0 + + + bSizerRotAngle + wxHORIZONTAL + none + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Rotation Increment: + 0 + + 0 + + + 0 + + 1 + m_staticTextRotAngle + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 1 + 10 + 359 + + 0 + + 0 + + 0 + + 1 + m_spinCtrlRotationAngle + 1 + + + protected + 1 + + Resizable + 1 + + wxSP_ARROW_KEYS + ; ; forward_declare + 0 + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + deg + 0 + + 0 + + + 0 + + 1 + m_staticTextRotAngleUnits + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + + + 5 + wxEXPAND|wxTOP|wxBOTTOM + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_staticline3 + 1 + + + protected + 1 + + Resizable + 1 + + wxLI_HORIZONTAL + ; ; forward_declare + 0 + + + + + + + + 5 + wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Enable animation + + 0 + + + 0 + + 1 + m_checkBoxEnableAnimation + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnCheckEnableAnimation + + + + 5 + wxEXPAND|wxTOP|wxBOTTOM + 0 + + + bSizerSlider + wxHORIZONTAL + none + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Animation speed: + 0 + + 0 + + + 0 + + 1 + m_staticAnimationSpeed + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxEXPAND|wxLEFT|wxRIGHT + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 5 + + 0 + + 1 + + 0 + 100,-1 + 1 + m_sliderAnimationSpeed + 1 + + + protected + 1 + + Resizable + 1 + + wxSL_AUTOTICKS|wxSL_HORIZONTAL|wxSL_LABELS + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + 3 + + + + + + + + + + + + + + + diff --git a/3d-viewer/3d_viewer/dialogs/panel_3D_display_options_base.h b/3d-viewer/3d_viewer/dialogs/panel_3D_display_options_base.h new file mode 100644 index 0000000000..b8e02fc2eb --- /dev/null +++ b/3d-viewer/3d_viewer/dialogs/panel_3D_display_options_base.h @@ -0,0 +1,75 @@ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Oct 26 2018) +// http://www.wxformbuilder.org/ +// +// PLEASE DO *NOT* EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#pragma once + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/////////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////////////// +/// Class PANEL_3D_DISPLAY_OPTIONS_BASE +/////////////////////////////////////////////////////////////////////////////// +class PANEL_3D_DISPLAY_OPTIONS_BASE : public wxPanel +{ + private: + + protected: + wxCheckBox* m_checkBox3DshapesTH; + wxCheckBox* m_checkBox3DshapesSMD; + wxCheckBox* m_checkBox3DshapesVirtual; + wxCheckBox* m_checkBoxSilkscreen; + wxCheckBox* m_checkBoxSolderMask; + wxCheckBox* m_checkBoxSolderpaste; + wxCheckBox* m_checkBoxAdhesive; + wxCheckBox* m_checkBoxComments; + wxCheckBox* m_checkBoxECO; + wxCheckBox* m_checkBoxRealisticMode; + wxCheckBox* m_checkBoxBoardBody; + wxCheckBox* m_checkBoxAreas; + wxCheckBox* m_checkBoxSubtractMaskFromSilk; + wxCheckBox* m_checkBoxClipSilkOnViaAnnulus; + wxCheckBox* m_checkBoxRenderPlatedPadsAsPlated; + wxStaticText* m_materialPropertiesLabel; + wxChoice* m_materialProperties; + wxStaticText* m_staticTextRotAngle; + wxSpinCtrlDouble* m_spinCtrlRotationAngle; + wxStaticText* m_staticTextRotAngleUnits; + wxStaticLine* m_staticline3; + wxCheckBox* m_checkBoxEnableAnimation; + wxStaticText* m_staticAnimationSpeed; + wxSlider* m_sliderAnimationSpeed; + + // Virtual event handlers, overide them in your derived class + virtual void OnCheckRealisticMode( wxCommandEvent& event ) { event.Skip(); } + virtual void OnCheckEnableAnimation( wxCommandEvent& event ) { event.Skip(); } + + + public: + + PANEL_3D_DISPLAY_OPTIONS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxEmptyString ); + ~PANEL_3D_DISPLAY_OPTIONS_BASE(); + +}; + diff --git a/3d-viewer/3d_viewer/dialogs/panel_3D_opengl_options.cpp b/3d-viewer/3d_viewer/dialogs/panel_3D_opengl_options.cpp new file mode 100644 index 0000000000..8da165e502 --- /dev/null +++ b/3d-viewer/3d_viewer/dialogs/panel_3D_opengl_options.cpp @@ -0,0 +1,89 @@ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2017 Jean-Pierre Charras, jp.charras at wanadoo.fr + * Copyright (C) 2014-2021 KiCad Developers, see AUTHORS.txt for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include "panel_3D_opengl_options.h" +#include +#include <3d_canvas/board_adapter.h> +#include <3d_viewer/eda_3d_viewer.h> +#include <3d_viewer/tools/3d_controller.h> + +PANEL_3D_OPENGL_OPTIONS::PANEL_3D_OPENGL_OPTIONS( EDA_3D_VIEWER* aFrame, wxWindow* aParent ) : + PANEL_3D_OPENGL_OPTIONS_BASE( aParent ), + m_settings( aFrame->GetAdapter() ), + m_canvas( aFrame->GetCanvas() ) +{ + m_selectionColorSwatch->SetDefaultColor( COLOR4D( 0.0, 1.0, 0.0, 1.0 ) ); + m_selectionColorSwatch->SetSupportsOpacity( false ); +} + + +bool PANEL_3D_OPENGL_OPTIONS::TransferDataToWindow() +{ + m_checkBoxCuThickness->SetValue( m_settings.GetFlag( FL_RENDER_OPENGL_COPPER_THICKNESS ) ); + m_checkBoxBoundingBoxes->SetValue( m_settings.GetFlag( FL_RENDER_OPENGL_SHOW_MODEL_BBOX ) ); + m_checkBoxHighlightOnRollOver->SetValue( m_settings.GetFlag( FL_HIGHLIGHT_ROLLOVER_ITEM ) ); + + m_choiceAntiAliasing->SetSelection( static_cast( m_settings.GetAntiAliasingMode() ) ); + m_selectionColorSwatch->SetSwatchColor( COLOR4D( m_settings.m_OpenGlSelectionColor.r, + m_settings.m_OpenGlSelectionColor.g, + m_settings.m_OpenGlSelectionColor.b, + 1.0 ), + false ); + + m_checkBoxDisableAAMove->SetValue( + m_settings.GetFlag( FL_RENDER_OPENGL_AA_DISABLE_ON_MOVE ) ); + m_checkBoxDisableMoveThickness->SetValue( + m_settings.GetFlag( FL_RENDER_OPENGL_THICKNESS_DISABLE_ON_MOVE ) ); + m_checkBoxDisableMoveVias->SetValue( + m_settings.GetFlag( FL_RENDER_OPENGL_VIAS_DISABLE_ON_MOVE ) ); + m_checkBoxDisableMoveHoles->SetValue( + m_settings.GetFlag( FL_RENDER_OPENGL_HOLES_DISABLE_ON_MOVE ) ); + + return true; +} + + +bool PANEL_3D_OPENGL_OPTIONS::TransferDataFromWindow() +{ + m_settings.SetFlag( FL_RENDER_OPENGL_COPPER_THICKNESS, m_checkBoxCuThickness->GetValue() ); + m_settings.SetFlag( FL_RENDER_OPENGL_SHOW_MODEL_BBOX, m_checkBoxBoundingBoxes->GetValue() ); + m_settings.SetFlag( FL_HIGHLIGHT_ROLLOVER_ITEM, m_checkBoxHighlightOnRollOver->GetValue() ); + + m_settings.SetAntiAliasingMode( + static_cast( m_choiceAntiAliasing->GetSelection() ) ); + m_settings.m_OpenGlSelectionColor = SFVEC3F( m_selectionColorSwatch->GetSwatchColor().r, + m_selectionColorSwatch->GetSwatchColor().g, + m_selectionColorSwatch->GetSwatchColor().b ); + + m_settings.SetFlag( FL_RENDER_OPENGL_AA_DISABLE_ON_MOVE, + m_checkBoxDisableAAMove->GetValue() ); + m_settings.SetFlag( FL_RENDER_OPENGL_THICKNESS_DISABLE_ON_MOVE, + m_checkBoxDisableMoveThickness->GetValue() ); + m_settings.SetFlag( FL_RENDER_OPENGL_VIAS_DISABLE_ON_MOVE, + m_checkBoxDisableMoveVias->GetValue() ); + m_settings.SetFlag( FL_RENDER_OPENGL_HOLES_DISABLE_ON_MOVE, + m_checkBoxDisableMoveHoles->GetValue() ); + + return true; +} diff --git a/3d-viewer/3d_viewer/dialogs/panel_3D_opengl_options.h b/3d-viewer/3d_viewer/dialogs/panel_3D_opengl_options.h new file mode 100644 index 0000000000..bcc0c5b1bc --- /dev/null +++ b/3d-viewer/3d_viewer/dialogs/panel_3D_opengl_options.h @@ -0,0 +1,48 @@ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2017 Jean-Pierre Charras, jp.charras at wanadoo.fr + * Copyright (C) 2014-2021 KiCad Developers, see AUTHORS.txt for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef PANEL_3D_OPENGL_OPTIONS_H +#define PANEL_3D_OPENGL_OPTIONS_H + +#include "panel_3D_opengl_options_base.h" +#include <3d_viewer/eda_3d_viewer.h> + +class PANEL_3D_OPENGL_OPTIONS : public PANEL_3D_OPENGL_OPTIONS_BASE +{ +public: + explicit PANEL_3D_OPENGL_OPTIONS( EDA_3D_VIEWER* aFrame, wxWindow* aParent ); + + /// Automatically called when clicking on the OK button + bool TransferDataFromWindow() override; + + /// Automatically called after creating the dialog + bool TransferDataToWindow() override; + +private: + BOARD_ADAPTER& m_settings; + EDA_3D_CANVAS* m_canvas; +}; + + +#endif // PANEL_3D_OPENGL_OPTIONS_H \ No newline at end of file diff --git a/3d-viewer/3d_viewer/dialogs/panel_3D_opengl_options_base.cpp b/3d-viewer/3d_viewer/dialogs/panel_3D_opengl_options_base.cpp new file mode 100644 index 0000000000..64c5c702d0 --- /dev/null +++ b/3d-viewer/3d_viewer/dialogs/panel_3D_opengl_options_base.cpp @@ -0,0 +1,91 @@ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Oct 26 2018) +// http://www.wxformbuilder.org/ +// +// PLEASE DO *NOT* EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#include "widgets/color_swatch.h" + +#include "panel_3D_opengl_options_base.h" + +/////////////////////////////////////////////////////////////////////////// + +PANEL_3D_OPENGL_OPTIONS_BASE::PANEL_3D_OPENGL_OPTIONS_BASE( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : wxPanel( parent, id, pos, size, style, name ) +{ + wxBoxSizer* bSizerMain; + bSizerMain = new wxBoxSizer( wxVERTICAL ); + + wxBoxSizer* bSizerMargins; + bSizerMargins = new wxBoxSizer( wxVERTICAL ); + + wxStaticBoxSizer* sbSizerOpenGLRenderoptions; + sbSizerOpenGLRenderoptions = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Rendering Options") ), wxVERTICAL ); + + m_checkBoxBoundingBoxes = new wxCheckBox( sbSizerOpenGLRenderoptions->GetStaticBox(), wxID_ANY, _("Show model bounding boxes"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerOpenGLRenderoptions->Add( m_checkBoxBoundingBoxes, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_checkBoxCuThickness = new wxCheckBox( sbSizerOpenGLRenderoptions->GetStaticBox(), wxID_ANY, _("Show copper thickness"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerOpenGLRenderoptions->Add( m_checkBoxCuThickness, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_checkBoxHighlightOnRollOver = new wxCheckBox( sbSizerOpenGLRenderoptions->GetStaticBox(), wxID_ANY, _("Highlight items on rollover"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerOpenGLRenderoptions->Add( m_checkBoxHighlightOnRollOver, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + wxGridSizer* gSizer1; + gSizer1 = new wxGridSizer( 0, 2, 0, 0 ); + + m_staticText221 = new wxStaticText( sbSizerOpenGLRenderoptions->GetStaticBox(), wxID_ANY, _("Anti-aliasing:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText221->Wrap( -1 ); + gSizer1->Add( m_staticText221, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); + + wxString m_choiceAntiAliasingChoices[] = { _("Disabled"), _("2x"), _("4x"), _("8x") }; + int m_choiceAntiAliasingNChoices = sizeof( m_choiceAntiAliasingChoices ) / sizeof( wxString ); + m_choiceAntiAliasing = new wxChoice( sbSizerOpenGLRenderoptions->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceAntiAliasingNChoices, m_choiceAntiAliasingChoices, 0 ); + m_choiceAntiAliasing->SetSelection( 0 ); + m_choiceAntiAliasing->SetToolTip( _("3D-Viewer must be closed and re-opened to apply this setting") ); + + gSizer1->Add( m_choiceAntiAliasing, 0, wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_selectionColorLabel = new wxStaticText( sbSizerOpenGLRenderoptions->GetStaticBox(), wxID_ANY, _("Selection color:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_selectionColorLabel->Wrap( -1 ); + gSizer1->Add( m_selectionColorLabel, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); + + m_selectionColorSwatch = new COLOR_SWATCH( sbSizerOpenGLRenderoptions->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ); + gSizer1->Add( m_selectionColorSwatch, 0, wxALL|wxEXPAND, 5 ); + + + sbSizerOpenGLRenderoptions->Add( gSizer1, 0, 0, 5 ); + + + bSizerMargins->Add( sbSizerOpenGLRenderoptions, 0, wxALL|wxEXPAND, 5 ); + + wxStaticBoxSizer* sbSizerWhileMoving; + sbSizerWhileMoving = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("While Moving") ), wxVERTICAL ); + + m_checkBoxDisableAAMove = new wxCheckBox( sbSizerWhileMoving->GetStaticBox(), wxID_ANY, _("Disable anti-aliasing"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerWhileMoving->Add( m_checkBoxDisableAAMove, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_checkBoxDisableMoveThickness = new wxCheckBox( sbSizerWhileMoving->GetStaticBox(), wxID_ANY, _("Disable thickness"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerWhileMoving->Add( m_checkBoxDisableMoveThickness, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_checkBoxDisableMoveVias = new wxCheckBox( sbSizerWhileMoving->GetStaticBox(), wxID_ANY, _("Disable vias"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerWhileMoving->Add( m_checkBoxDisableMoveVias, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_checkBoxDisableMoveHoles = new wxCheckBox( sbSizerWhileMoving->GetStaticBox(), wxID_ANY, _("Disable holes"), wxDefaultPosition, wxDefaultSize, 0 ); + sbSizerWhileMoving->Add( m_checkBoxDisableMoveHoles, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + + bSizerMargins->Add( sbSizerWhileMoving, 0, wxALL|wxEXPAND, 5 ); + + + bSizerMain->Add( bSizerMargins, 1, wxEXPAND|wxRIGHT, 5 ); + + + this->SetSizer( bSizerMain ); + this->Layout(); + bSizerMain->Fit( this ); +} + +PANEL_3D_OPENGL_OPTIONS_BASE::~PANEL_3D_OPENGL_OPTIONS_BASE() +{ +} diff --git a/3d-viewer/3d_viewer/dialogs/panel_3D_opengl_options_base.fbp b/3d-viewer/3d_viewer/dialogs/panel_3D_opengl_options_base.fbp new file mode 100644 index 0000000000..d0eae350a2 --- /dev/null +++ b/3d-viewer/3d_viewer/dialogs/panel_3D_opengl_options_base.fbp @@ -0,0 +1,809 @@ + + + + + + C++ + 1 + source_name + 0 + 0 + res + UTF-8 + connect + panel_3D_opengl_options_base + 1000 + none + + 1 + panel_3D_opengl_optionS_base + + . + + 1 + 1 + 1 + 1 + UI + 0 + 0 + + 0 + wxAUI_MGR_DEFAULT + + + 1 + 1 + impl_virtual + + + 0 + wxID_ANY + + + PANEL_3D_OPENGL_OPTIONS_BASE + + -1,-1 + ; ; forward_declare + + + + wxTAB_TRAVERSAL + + + bSizerMain + wxVERTICAL + none + + 5 + wxEXPAND|wxRIGHT + 1 + + + bSizerMargins + wxVERTICAL + none + + 5 + wxALL|wxEXPAND + 0 + + wxID_ANY + Rendering Options + + sbSizerOpenGLRenderoptions + wxVERTICAL + 1 + none + + 5 + wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Show model bounding boxes + + 0 + + + 0 + + 1 + m_checkBoxBoundingBoxes + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Show copper thickness + + 0 + + + 0 + + 1 + m_checkBoxCuThickness + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Highlight items on rollover + + 0 + + + 0 + + 1 + m_checkBoxHighlightOnRollOver + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + + 0 + + 2 + 0 + + gSizer1 + none + 0 + 0 + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Anti-aliasing: + 0 + + 0 + + + 0 + + 1 + m_staticText221 + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxEXPAND|wxALIGN_CENTER_VERTICAL|wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + "Disabled" "2x" "4x" "8x" + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_choiceAntiAliasing + 1 + + + protected + 1 + + Resizable + 0 + 1 + + + ; ; forward_declare + 0 + 3D-Viewer must be closed and re-opened to apply this setting + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Selection color: + 0 + + 0 + + + 0 + + 1 + m_selectionColorLabel + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + COLOR_SWATCH + 1 + + + 1 + + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + + 0 + + + 0 + + 1 + m_selectionColorSwatch + 1 + + + protected + 1 + + Resizable + + 1 + + COLOR_SWATCH; widgets/color_swatch.h; forward_declare + 0 + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 0 + + wxID_ANY + While Moving + + sbSizerWhileMoving + wxVERTICAL + 1 + none + + 5 + wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Disable anti-aliasing + + 0 + + + 0 + + 1 + m_checkBoxDisableAAMove + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Disable thickness + + 0 + + + 0 + + 1 + m_checkBoxDisableMoveThickness + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Disable vias + + 0 + + + 0 + + 1 + m_checkBoxDisableMoveVias + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Disable holes + + 0 + + + 0 + + 1 + m_checkBoxDisableMoveHoles + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + + + + + diff --git a/3d-viewer/3d_viewer/dialogs/panel_3D_opengl_options_base.h b/3d-viewer/3d_viewer/dialogs/panel_3D_opengl_options_base.h new file mode 100644 index 0000000000..51a5d98a29 --- /dev/null +++ b/3d-viewer/3d_viewer/dialogs/panel_3D_opengl_options_base.h @@ -0,0 +1,56 @@ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Oct 26 2018) +// http://www.wxformbuilder.org/ +// +// PLEASE DO *NOT* EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#pragma once + +#include +#include +#include +class COLOR_SWATCH; + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/////////////////////////////////////////////////////////////////////////// + + +/////////////////////////////////////////////////////////////////////////////// +/// Class PANEL_3D_OPENGL_OPTIONS_BASE +/////////////////////////////////////////////////////////////////////////////// +class PANEL_3D_OPENGL_OPTIONS_BASE : public wxPanel +{ + private: + + protected: + wxCheckBox* m_checkBoxBoundingBoxes; + wxCheckBox* m_checkBoxCuThickness; + wxCheckBox* m_checkBoxHighlightOnRollOver; + wxStaticText* m_staticText221; + wxChoice* m_choiceAntiAliasing; + wxStaticText* m_selectionColorLabel; + COLOR_SWATCH* m_selectionColorSwatch; + wxCheckBox* m_checkBoxDisableAAMove; + wxCheckBox* m_checkBoxDisableMoveThickness; + wxCheckBox* m_checkBoxDisableMoveVias; + wxCheckBox* m_checkBoxDisableMoveHoles; + + public: + + PANEL_3D_OPENGL_OPTIONS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxEmptyString ); + ~PANEL_3D_OPENGL_OPTIONS_BASE(); + +}; + diff --git a/3d-viewer/3d_viewer/dialogs/dialog_3D_view_option.cpp b/3d-viewer/3d_viewer/dialogs/panel_3D_raytracing_options.cpp similarity index 61% rename from 3d-viewer/3d_viewer/dialogs/dialog_3D_view_option.cpp rename to 3d-viewer/3d_viewer/dialogs/panel_3D_raytracing_options.cpp index d42932d7b4..dc87efe3ab 100644 --- a/3d-viewer/3d_viewer/dialogs/dialog_3D_view_option.cpp +++ b/3d-viewer/3d_viewer/dialogs/panel_3D_raytracing_options.cpp @@ -2,7 +2,7 @@ * This program source code file is part of KiCad, a free EDA CAD application. * * Copyright (C) 2017 Jean-Pierre Charras, jp.charras at wanadoo.fr - * Copyright (C) 2014-2020 KiCad Developers, see AUTHORS.txt for contributors. + * Copyright (C) 2014-2021 KiCad Developers, see AUTHORS.txt for contributors. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -22,71 +22,23 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ -#include "dialog_3D_view_option_base.h" +#include "panel_3D_raytracing_options.h" #include <3d_canvas/board_adapter.h> #include <3d_viewer/eda_3d_viewer.h> #include <3d_viewer/tools/3d_controller.h> #include #include -class DIALOG_3D_VIEW_OPTIONS : public DIALOG_3D_VIEW_OPTIONS_BASE +PANEL_3D_RAYTRACING_OPTIONS::PANEL_3D_RAYTRACING_OPTIONS( EDA_3D_VIEWER* aFrame, + wxWindow* aParent ) : + PANEL_3D_RAYTRACING_OPTIONS_BASE( aParent ), + m_settings( aFrame->GetAdapter() ), + m_canvas( aFrame->GetCanvas() ) { -public: - explicit DIALOG_3D_VIEW_OPTIONS( EDA_3D_VIEWER* aParent ); - - EDA_3D_VIEWER* GetParent() - { - return static_cast( DIALOG_SHIM::GetParent() ); - } - - void OnCheckEnableAnimation( wxCommandEvent& WXUNUSED( event ) ) override; - void OnLightsResetToDefaults( wxCommandEvent& event ) override; - - /// Automatically called when clicking on the OK button - bool TransferDataFromWindow() override; - - /// Automatically called after creating the dialog - bool TransferDataToWindow() override; - - void TransferColorDataToWindow(); - -private: - BOARD_ADAPTER& m_settings; - EDA_3D_CANVAS* m_canvas; -}; - - -void EDA_3D_VIEWER::Install3DViewOptionDialog( wxCommandEvent& event ) -{ - DIALOG_3D_VIEW_OPTIONS dlg( this ); - - if( dlg.ShowModal() == wxID_OK ) - { - NewDisplay( true ); - } } -DIALOG_3D_VIEW_OPTIONS::DIALOG_3D_VIEW_OPTIONS( EDA_3D_VIEWER* aParent ) : - DIALOG_3D_VIEW_OPTIONS_BASE( aParent ), - m_settings( aParent->GetAdapter() ), - m_canvas( aParent->GetCanvas() ) -{ - m_sdbSizerOK->SetDefault(); - - // Now all widgets have the size fixed, call FinishDialogSettings - finishDialogSettings(); -} - - -void DIALOG_3D_VIEW_OPTIONS::OnCheckEnableAnimation( wxCommandEvent& event ) -{ - m_staticAnimationSpeed->Enable( m_checkBoxEnableAnimation->GetValue() ); - m_sliderAnimationSpeed->Enable( m_checkBoxEnableAnimation->GetValue() ); -} - - -void DIALOG_3D_VIEW_OPTIONS::OnLightsResetToDefaults( wxCommandEvent& event ) +void PANEL_3D_RAYTRACING_OPTIONS::ResetPanel() { m_settings.m_RtCameraLightColor = SFVEC3F( 0.2f ); m_settings.m_RtLightColorTop = SFVEC3F( 0.247f ); @@ -116,7 +68,7 @@ void DIALOG_3D_VIEW_OPTIONS::OnLightsResetToDefaults( wxCommandEvent& event ) } -void DIALOG_3D_VIEW_OPTIONS::TransferColorDataToWindow() +void PANEL_3D_RAYTRACING_OPTIONS::TransferColorDataToWindow() { auto Transfer_color = [] ( const SFVEC3F& aSource, wxColourPickerCtrl *aTarget ) { @@ -137,8 +89,6 @@ void DIALOG_3D_VIEW_OPTIONS::TransferColorDataToWindow() Transfer_color( m_settings.m_RtLightColor[6], m_colourPickerLight7 ); Transfer_color( m_settings.m_RtLightColor[7], m_colourPickerLight8 ); - Transfer_color( m_settings.m_OpenGlSelectionColor, m_colourPickerSelection ); - m_spinCtrlLightElevation1->SetValue( (int)( m_settings.m_RtLightSphericalCoords[0].x * 180.0f - 90.0f ) ); m_spinCtrlLightElevation2->SetValue( @@ -175,42 +125,8 @@ void DIALOG_3D_VIEW_OPTIONS::TransferColorDataToWindow() } -bool DIALOG_3D_VIEW_OPTIONS::TransferDataToWindow() +bool PANEL_3D_RAYTRACING_OPTIONS::TransferDataToWindow() { - // Check/uncheck checkboxes - m_checkBoxRealisticMode->SetValue( m_settings.GetFlag( FL_USE_REALISTIC_MODE ) ); - m_checkBoxBoardBody->SetValue( m_settings.GetFlag( FL_SHOW_BOARD_BODY ) ); - m_checkBoxAreas->SetValue( m_settings.GetFlag( FL_ZONE ) ); - - m_checkBox3DshapesTH->SetValue( m_settings.GetFlag( FL_FP_ATTRIBUTES_NORMAL ) ); - m_checkBox3DshapesSMD->SetValue( m_settings.GetFlag( FL_FP_ATTRIBUTES_NORMAL_INSERT ) ); - m_checkBox3DshapesVirtual->SetValue( m_settings.GetFlag( FL_FP_ATTRIBUTES_VIRTUAL ) ); - - m_checkBoxSilkscreen->SetValue( m_settings.GetFlag( FL_SILKSCREEN ) ); - m_checkBoxSolderMask->SetValue( m_settings.GetFlag( FL_SOLDERMASK ) ); - m_checkBoxSolderpaste->SetValue( m_settings.GetFlag( FL_SOLDERPASTE ) ); - m_checkBoxAdhesive->SetValue( m_settings.GetFlag( FL_ADHESIVE ) ); - m_checkBoxComments->SetValue( m_settings.GetFlag( FL_COMMENTS ) ); - m_checkBoxECO->SetValue( m_settings.GetFlag( FL_ECO ) ); - m_checkBoxSubtractMaskFromSilk->SetValue( m_settings.GetFlag( FL_SUBTRACT_MASK_FROM_SILK ) ); - m_checkBoxClipSilkOnViaAnnulus->SetValue( m_settings.GetFlag( FL_CLIP_SILK_ON_VIA_ANNULUS ) ); - m_checkBoxRenderPlatedPadsAsPlated->SetValue( - m_settings.GetFlag( FL_RENDER_PLATED_PADS_AS_PLATED ) ); - - // OpenGL options - m_checkBoxCuThickness->SetValue( m_settings.GetFlag( FL_RENDER_OPENGL_COPPER_THICKNESS ) ); - m_checkBoxBoundingBoxes->SetValue( m_settings.GetFlag( FL_RENDER_OPENGL_SHOW_MODEL_BBOX ) ); - m_checkBoxHighlightOnRollOver->SetValue( m_settings.GetFlag( FL_HIGHLIGHT_ROLLOVER_ITEM ) ); - m_checkBoxDisableAAMove->SetValue( m_settings.GetFlag( FL_RENDER_OPENGL_AA_DISABLE_ON_MOVE ) ); - m_checkBoxDisableMoveThickness->SetValue( - m_settings.GetFlag( FL_RENDER_OPENGL_THICKNESS_DISABLE_ON_MOVE ) ); - m_checkBoxDisableMoveVias->SetValue( - m_settings.GetFlag( FL_RENDER_OPENGL_VIAS_DISABLE_ON_MOVE ) ); - m_checkBoxDisableMoveHoles->SetValue( - m_settings.GetFlag( FL_RENDER_OPENGL_HOLES_DISABLE_ON_MOVE ) ); - m_choiceAntiAliasing->SetSelection( static_cast( m_settings.GetAntiAliasingMode() ) ); - - // Raytracing options m_checkBoxRaytracing_renderShadows->SetValue( m_settings.GetFlag( FL_RENDER_RAYTRACING_SHADOWS ) ); m_checkBoxRaytracing_addFloor->SetValue( m_settings.GetFlag( FL_RENDER_RAYTRACING_BACKFLOOR ) ); @@ -240,60 +156,12 @@ bool DIALOG_3D_VIEW_OPTIONS::TransferDataToWindow() TransferColorDataToWindow(); - // Camera Options - m_checkBoxEnableAnimation->SetValue( m_canvas->AnimationEnabledGet() ); - m_sliderAnimationSpeed->SetValue( m_canvas->MovingSpeedMultiplierGet() ); - m_staticAnimationSpeed->Enable( m_canvas->AnimationEnabledGet() ); - m_sliderAnimationSpeed->Enable( m_canvas->AnimationEnabledGet() ); - - EDA_3D_CONTROLLER* ctrlTool = GetParent()->GetToolManager()->GetTool(); - m_spinCtrlRotationAngle->SetValue( ctrlTool->GetRotationIncrement() ); - return true; } -bool DIALOG_3D_VIEW_OPTIONS::TransferDataFromWindow() +bool PANEL_3D_RAYTRACING_OPTIONS::TransferDataFromWindow() { - // Set render mode - m_settings.SetFlag( FL_USE_REALISTIC_MODE, m_checkBoxRealisticMode->GetValue() ); - - // Set visibility of items - m_settings.SetFlag( FL_SHOW_BOARD_BODY, m_checkBoxBoardBody->GetValue() ); - m_settings.SetFlag( FL_ZONE, m_checkBoxAreas->GetValue() ); - m_settings.SetFlag( FL_SUBTRACT_MASK_FROM_SILK, m_checkBoxSubtractMaskFromSilk->GetValue() ); - m_settings.SetFlag( FL_CLIP_SILK_ON_VIA_ANNULUS, m_checkBoxClipSilkOnViaAnnulus->GetValue() ); - m_settings.SetFlag( FL_RENDER_PLATED_PADS_AS_PLATED, - m_checkBoxRenderPlatedPadsAsPlated->GetValue() ); - - // Set 3D shapes visibility - m_settings.SetFlag( FL_FP_ATTRIBUTES_NORMAL, m_checkBox3DshapesTH->GetValue() ); - m_settings.SetFlag( FL_FP_ATTRIBUTES_NORMAL_INSERT, m_checkBox3DshapesSMD->GetValue() ); - m_settings.SetFlag( FL_FP_ATTRIBUTES_VIRTUAL, m_checkBox3DshapesVirtual->GetValue() ); - - // Set Layer visibility - m_settings.SetFlag( FL_SILKSCREEN, m_checkBoxSilkscreen->GetValue() ); - m_settings.SetFlag( FL_SOLDERMASK, m_checkBoxSolderMask->GetValue() ); - m_settings.SetFlag( FL_SOLDERPASTE, m_checkBoxSolderpaste->GetValue() ); - m_settings.SetFlag( FL_ADHESIVE, m_checkBoxAdhesive->GetValue() ); - m_settings.SetFlag( FL_COMMENTS, m_checkBoxComments->GetValue() ); - m_settings.SetFlag( FL_ECO, m_checkBoxECO->GetValue( ) ); - - // OpenGL options - m_settings.SetFlag( FL_RENDER_OPENGL_COPPER_THICKNESS, m_checkBoxCuThickness->GetValue() ); - m_settings.SetFlag( FL_RENDER_OPENGL_SHOW_MODEL_BBOX, m_checkBoxBoundingBoxes->GetValue() ); - m_settings.SetFlag( FL_HIGHLIGHT_ROLLOVER_ITEM, m_checkBoxHighlightOnRollOver->GetValue() ); - m_settings.SetFlag( FL_RENDER_OPENGL_AA_DISABLE_ON_MOVE, m_checkBoxDisableAAMove->GetValue() ); - m_settings.SetFlag( FL_RENDER_OPENGL_THICKNESS_DISABLE_ON_MOVE, - m_checkBoxDisableMoveThickness->GetValue() ); - m_settings.SetFlag( FL_RENDER_OPENGL_VIAS_DISABLE_ON_MOVE, - m_checkBoxDisableMoveVias->GetValue() ); - m_settings.SetFlag( FL_RENDER_OPENGL_HOLES_DISABLE_ON_MOVE, - m_checkBoxDisableMoveHoles->GetValue() ); - m_settings.SetAntiAliasingMode( - static_cast( m_choiceAntiAliasing->GetSelection() ) ); - - // Raytracing options m_settings.SetFlag( FL_RENDER_RAYTRACING_SHADOWS, m_checkBoxRaytracing_renderShadows->GetValue() ); m_settings.SetFlag( FL_RENDER_RAYTRACING_BACKFLOOR, @@ -343,8 +211,6 @@ bool DIALOG_3D_VIEW_OPTIONS::TransferDataFromWindow() Transfer_color( m_settings.m_RtLightColor[6], m_colourPickerLight7 ); Transfer_color( m_settings.m_RtLightColor[7], m_colourPickerLight8 ); - Transfer_color( m_settings.m_OpenGlSelectionColor, m_colourPickerSelection ); - m_settings.m_RtLightSphericalCoords[0].x = ( m_spinCtrlLightElevation1->GetValue() + 90.0f ) / 180.0f; m_settings.m_RtLightSphericalCoords[1].x = @@ -380,12 +246,5 @@ bool DIALOG_3D_VIEW_OPTIONS::TransferDataFromWindow() glm::clamp( m_settings.m_RtLightSphericalCoords[i].y, 0.0f, 2.0f ); } - // Camera Options - m_canvas->AnimationEnabledSet( m_checkBoxEnableAnimation->GetValue() ); - m_canvas->MovingSpeedMultiplierSet( m_sliderAnimationSpeed->GetValue() ); - - EDA_3D_CONTROLLER* ctrlTool = GetParent()->GetToolManager()->GetTool(); - ctrlTool->SetRotationIncrement( m_spinCtrlRotationAngle->GetValue() ); - return true; } diff --git a/3d-viewer/3d_viewer/dialogs/panel_3D_raytracing_options.h b/3d-viewer/3d_viewer/dialogs/panel_3D_raytracing_options.h new file mode 100644 index 0000000000..b550143998 --- /dev/null +++ b/3d-viewer/3d_viewer/dialogs/panel_3D_raytracing_options.h @@ -0,0 +1,52 @@ +/* + * This program source code file is part of KiCad, a free EDA CAD application. + * + * Copyright (C) 2017 Jean-Pierre Charras, jp.charras at wanadoo.fr + * Copyright (C) 2014-2021 KiCad Developers, see AUTHORS.txt for contributors. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, you may find one here: + * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html + * or you may search the http://www.gnu.org website for the version 2 license, + * or you may write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifndef PANEL_3D_RAYTRACING_OPTIONS_H +#define PANEL_3D_RAYTRACING_OPTIONS_H + +#include "panel_3D_raytracing_options_base.h" +#include <3d_viewer/eda_3d_viewer.h> + +class PANEL_3D_RAYTRACING_OPTIONS : public PANEL_3D_RAYTRACING_OPTIONS_BASE +{ +public: + explicit PANEL_3D_RAYTRACING_OPTIONS( EDA_3D_VIEWER* aFrame, wxWindow* aParent ); + + void ResetPanel() override; + + /// Automatically called when clicking on the OK button + bool TransferDataFromWindow() override; + + /// Automatically called after creating the dialog + bool TransferDataToWindow() override; + + void TransferColorDataToWindow(); + +private: + BOARD_ADAPTER& m_settings; + EDA_3D_CANVAS* m_canvas; +}; + + +#endif // PANEL_3D_RAYTRACING_OPTIONS_H \ No newline at end of file diff --git a/3d-viewer/3d_viewer/dialogs/panel_3D_raytracing_options_base.cpp b/3d-viewer/3d_viewer/dialogs/panel_3D_raytracing_options_base.cpp new file mode 100644 index 0000000000..8106f5eb25 --- /dev/null +++ b/3d-viewer/3d_viewer/dialogs/panel_3D_raytracing_options_base.cpp @@ -0,0 +1,339 @@ +/////////////////////////////////////////////////////////////////////////// +// C++ code generated with wxFormBuilder (version Oct 26 2018) +// http://www.wxformbuilder.org/ +// +// PLEASE DO *NOT* EDIT THIS FILE! +/////////////////////////////////////////////////////////////////////////// + +#include "panel_3D_raytracing_options_base.h" + +/////////////////////////////////////////////////////////////////////////// + +PANEL_3D_RAYTRACING_OPTIONS_BASE::PANEL_3D_RAYTRACING_OPTIONS_BASE( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style, const wxString& name ) : RESETTABLE_PANEL( parent, id, pos, size, style, name ) +{ + wxBoxSizer* bSizerMain; + bSizerMain = new wxBoxSizer( wxVERTICAL ); + + wxBoxSizer* bSizerMargins; + bSizerMargins = new wxBoxSizer( wxVERTICAL ); + + wxStaticBoxSizer* sbSizerRaytracingRenderOptions; + sbSizerRaytracingRenderOptions = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Rendering Options") ), wxVERTICAL ); + + sbSizerRaytracingRenderOptions->SetMinSize( wxSize( -1,32 ) ); + wxGridSizer* gSizer1; + gSizer1 = new wxGridSizer( 0, 1, 0, 20 ); + + m_checkBoxRaytracing_proceduralTextures = new wxCheckBox( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, _("Procedural textures (slow)"), wxDefaultPosition, wxDefaultSize, 0 ); + m_checkBoxRaytracing_proceduralTextures->SetValue(true); + gSizer1->Add( m_checkBoxRaytracing_proceduralTextures, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_checkBoxRaytracing_addFloor = new wxCheckBox( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, _("Add floor (slow)"), wxDefaultPosition, wxDefaultSize, 0 ); + m_checkBoxRaytracing_addFloor->SetValue(true); + gSizer1->Add( m_checkBoxRaytracing_addFloor, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_checkBoxRaytracing_antiAliasing = new wxCheckBox( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, _("Anti-aliasing (slow)"), wxDefaultPosition, wxDefaultSize, 0 ); + m_checkBoxRaytracing_antiAliasing->SetValue(true); + gSizer1->Add( m_checkBoxRaytracing_antiAliasing, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + m_checkBoxRaytracing_postProcessing = new wxCheckBox( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, _("Screen space ambient occlusions and global illumination reflections (slow)"), wxDefaultPosition, wxDefaultSize, 0 ); + m_checkBoxRaytracing_postProcessing->SetValue(true); + gSizer1->Add( m_checkBoxRaytracing_postProcessing, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + + sbSizerRaytracingRenderOptions->Add( gSizer1, 1, wxEXPAND|wxBOTTOM, 5 ); + + wxFlexGridSizer* fgSizer111; + fgSizer111 = new wxFlexGridSizer( 0, 4, 4, 8 ); + fgSizer111->SetFlexibleDirection( wxBOTH ); + fgSizer111->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + + fgSizer111->Add( 0, 0, 1, wxEXPAND, 5 ); + + m_staticText19 = new wxStaticText( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, _("Number of Samples"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText19->Wrap( -1 ); + fgSizer111->Add( m_staticText19, 0, wxLEFT|wxRIGHT|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 ); + + m_staticText201 = new wxStaticText( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, _("Spread Factor %"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText201->Wrap( -1 ); + fgSizer111->Add( m_staticText201, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_staticText211 = new wxStaticText( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, _("Recursion Level"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText211->Wrap( -1 ); + fgSizer111->Add( m_staticText211, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_checkBoxRaytracing_renderShadows = new wxCheckBox( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, _("Shadows:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_checkBoxRaytracing_renderShadows->SetValue(true); + fgSizer111->Add( m_checkBoxRaytracing_renderShadows, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); + + m_spinCtrl_NrSamples_Shadows = new wxSpinCtrl( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, 1, 64, 0 ); + m_spinCtrl_NrSamples_Shadows->SetToolTip( _("Number of rays that will be cast, into light direction, to evaluate a shadow point") ); + + fgSizer111->Add( m_spinCtrl_NrSamples_Shadows, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); + + m_spinCtrlDouble_SpreadFactor_Shadows = new wxSpinCtrlDouble( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, 0.1, 25, 0, 1 ); + m_spinCtrlDouble_SpreadFactor_Shadows->SetDigits( 1 ); + m_spinCtrlDouble_SpreadFactor_Shadows->SetToolTip( _("Random direction factor of the cast rays") ); + + fgSizer111->Add( m_spinCtrlDouble_SpreadFactor_Shadows, 0, wxRIGHT|wxLEFT, 5 ); + + + fgSizer111->Add( 0, 0, 1, wxEXPAND, 5 ); + + m_checkBoxRaytracing_showReflections = new wxCheckBox( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, _("Reflections:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_checkBoxRaytracing_showReflections->SetValue(true); + fgSizer111->Add( m_checkBoxRaytracing_showReflections, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); + + m_spinCtrl_NrSamples_Reflections = new wxSpinCtrl( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, 1, 32, 0 ); + m_spinCtrl_NrSamples_Reflections->SetToolTip( _("Number of rays that will be cast to evaluate a reflection point") ); + + fgSizer111->Add( m_spinCtrl_NrSamples_Reflections, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_spinCtrlDouble_SpreadFactor_Reflections = new wxSpinCtrlDouble( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, 0.1, 25, 0, 1 ); + m_spinCtrlDouble_SpreadFactor_Reflections->SetDigits( 1 ); + m_spinCtrlDouble_SpreadFactor_Reflections->SetToolTip( _("Random direction factor of the cast rays") ); + + fgSizer111->Add( m_spinCtrlDouble_SpreadFactor_Reflections, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); + + m_spinCtrlRecursiveLevel_Reflections = new wxSpinCtrl( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, 1, 5, 0 ); + m_spinCtrlRecursiveLevel_Reflections->SetToolTip( _("Interactions number that a ray can travel through objects. (higher number of levels improve results, specially on very transparent boards)") ); + + fgSizer111->Add( m_spinCtrlRecursiveLevel_Reflections, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); + + m_checkBoxRaytracing_showRefractions = new wxCheckBox( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, _("Refractions:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_checkBoxRaytracing_showRefractions->SetValue(true); + fgSizer111->Add( m_checkBoxRaytracing_showRefractions, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 5 ); + + m_spinCtrl_NrSamples_Refractions = new wxSpinCtrl( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, 1, 5, 0 ); + m_spinCtrl_NrSamples_Refractions->SetToolTip( _("Number of rays that will be cast to evaluate a refraction point") ); + + fgSizer111->Add( m_spinCtrl_NrSamples_Refractions, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); + + m_spinCtrlDouble_SpreadFactor_Refractions = new wxSpinCtrlDouble( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, 0.1, 25, 0, 1 ); + m_spinCtrlDouble_SpreadFactor_Refractions->SetDigits( 1 ); + m_spinCtrlDouble_SpreadFactor_Refractions->SetToolTip( _("Random direction factor of the cast rays") ); + + fgSizer111->Add( m_spinCtrlDouble_SpreadFactor_Refractions, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); + + m_spinCtrlRecursiveLevel_Refractions = new wxSpinCtrl( sbSizerRaytracingRenderOptions->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, 1, 7, 0 ); + m_spinCtrlRecursiveLevel_Refractions->SetToolTip( _("Number of bounces that a ray can hit reflective objects") ); + + fgSizer111->Add( m_spinCtrlRecursiveLevel_Refractions, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); + + + sbSizerRaytracingRenderOptions->Add( fgSizer111, 0, wxTOP|wxBOTTOM|wxRIGHT|wxEXPAND, 5 ); + + + sbSizerRaytracingRenderOptions->Add( 0, 3, 0, wxEXPAND, 5 ); + + + bSizerMargins->Add( sbSizerRaytracingRenderOptions, 0, wxEXPAND|wxALL, 5 ); + + wxStaticBoxSizer* sbSizerRaytracingLightConfiguration; + sbSizerRaytracingLightConfiguration = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Lights Configuration") ), wxVERTICAL ); + + wxBoxSizer* bSizer11; + bSizer11 = new wxBoxSizer( wxHORIZONTAL ); + + m_staticText17 = new wxStaticText( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("Ambient camera light:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText17->Wrap( -1 ); + bSizer11->Add( m_staticText17, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); + + m_colourPickerCameraLight = new wxColourPickerCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxColour( 51, 51, 51 ), wxDefaultPosition, wxSize( 72,-1 ), wxCLRP_DEFAULT_STYLE ); + bSizer11->Add( m_colourPickerCameraLight, 0, wxALIGN_CENTER_VERTICAL, 5 ); + + + bSizer11->Add( 0, 0, 1, 0, 5 ); + + m_staticText5 = new wxStaticText( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("Top light:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText5->Wrap( -1 ); + bSizer11->Add( m_staticText5, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); + + m_colourPickerTopLight = new wxColourPickerCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxColour( 63, 63, 63 ), wxDefaultPosition, wxSize( 72,-1 ), wxCLRP_DEFAULT_STYLE ); + bSizer11->Add( m_colourPickerTopLight, 0, wxALIGN_CENTER_VERTICAL, 5 ); + + + bSizer11->Add( 0, 0, 1, 0, 5 ); + + m_staticText6 = new wxStaticText( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("Bottom light:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText6->Wrap( -1 ); + bSizer11->Add( m_staticText6, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 ); + + m_colourPickerBottomLight = new wxColourPickerCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxColour( 63, 63, 63 ), wxDefaultPosition, wxSize( 72,-1 ), wxCLRP_DEFAULT_STYLE ); + bSizer11->Add( m_colourPickerBottomLight, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT, 5 ); + + + sbSizerRaytracingLightConfiguration->Add( bSizer11, 0, wxEXPAND|wxBOTTOM|wxRIGHT, 5 ); + + wxFlexGridSizer* fgSizer11; + fgSizer11 = new wxFlexGridSizer( 0, 9, 0, 0 ); + fgSizer11->AddGrowableCol( 4 ); + fgSizer11->SetFlexibleDirection( wxHORIZONTAL ); + fgSizer11->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + + + fgSizer11->Add( 0, 0, 0, 0, 5 ); + + + fgSizer11->Add( 0, 0, 0, 0, 5 ); + + m_staticText20 = new wxStaticText( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("Elevation (deg)"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText20->Wrap( -1 ); + fgSizer11->Add( m_staticText20, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + m_staticText18 = new wxStaticText( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("Azimuth (deg)"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText18->Wrap( -1 ); + fgSizer11->Add( m_staticText18, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 ); + + + fgSizer11->Add( 0, 0, 0, 0, 5 ); + + + fgSizer11->Add( 0, 0, 0, 0, 5 ); + + + fgSizer11->Add( 0, 0, 0, 0, 5 ); + + m_staticText27 = new wxStaticText( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("Elevation (deg)"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText27->Wrap( -1 ); + fgSizer11->Add( m_staticText27, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + m_staticText28 = new wxStaticText( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("Azimuth (deg)"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText28->Wrap( -1 ); + fgSizer11->Add( m_staticText28, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 ); + + m_staticText21 = new wxStaticText( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("Light 1:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText21->Wrap( -1 ); + fgSizer11->Add( m_staticText21, 0, wxALIGN_CENTER|wxALIGN_CENTER_VERTICAL, 5 ); + + m_colourPickerLight1 = new wxColourPickerCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, *wxBLACK, wxDefaultPosition, wxSize( 72,-1 ), wxCLRP_DEFAULT_STYLE ); + fgSizer11->Add( m_colourPickerLight1, 0, wxALIGN_CENTER_VERTICAL, 5 ); + + m_spinCtrlLightElevation1 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, -90, 90, 0 ); + fgSizer11->Add( m_spinCtrlLightElevation1, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); + + m_spinCtrlLightAzimuth1 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS|wxSP_WRAP, 0, 359, 0 ); + fgSizer11->Add( m_spinCtrlLightAzimuth1, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); + + + fgSizer11->Add( 10, 0, 0, 0, 5 ); + + m_staticText22 = new wxStaticText( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("Light 5:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText22->Wrap( -1 ); + fgSizer11->Add( m_staticText22, 0, wxALIGN_CENTER|wxLEFT, 5 ); + + m_colourPickerLight5 = new wxColourPickerCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, *wxBLACK, wxDefaultPosition, wxSize( 72,-1 ), wxCLRP_DEFAULT_STYLE ); + fgSizer11->Add( m_colourPickerLight5, 0, wxALIGN_CENTER_VERTICAL, 5 ); + + m_spinCtrlLightElevation5 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, -90, 90, 0 ); + fgSizer11->Add( m_spinCtrlLightElevation5, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); + + m_spinCtrlLightAzimuth5 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS|wxSP_WRAP, 0, 359, 0 ); + fgSizer11->Add( m_spinCtrlLightAzimuth5, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); + + m_staticText23 = new wxStaticText( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("Light 2:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText23->Wrap( -1 ); + fgSizer11->Add( m_staticText23, 0, wxALIGN_CENTER, 5 ); + + m_colourPickerLight2 = new wxColourPickerCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, *wxBLACK, wxDefaultPosition, wxSize( 72,-1 ), wxCLRP_DEFAULT_STYLE ); + fgSizer11->Add( m_colourPickerLight2, 0, wxALIGN_CENTER_VERTICAL, 5 ); + + m_spinCtrlLightElevation2 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, -90, 90, 0 ); + fgSizer11->Add( m_spinCtrlLightElevation2, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); + + m_spinCtrlLightAzimuth2 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS|wxSP_WRAP, 0, 359, 0 ); + fgSizer11->Add( m_spinCtrlLightAzimuth2, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); + + + fgSizer11->Add( 0, 0, 0, 0, 5 ); + + m_staticText24 = new wxStaticText( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("Light 6:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText24->Wrap( -1 ); + fgSizer11->Add( m_staticText24, 0, wxALIGN_CENTER|wxLEFT, 5 ); + + m_colourPickerLight6 = new wxColourPickerCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, *wxBLACK, wxDefaultPosition, wxSize( 72,-1 ), wxCLRP_DEFAULT_STYLE ); + fgSizer11->Add( m_colourPickerLight6, 0, wxALIGN_CENTER_VERTICAL, 5 ); + + m_spinCtrlLightElevation6 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, -90, 90, 0 ); + fgSizer11->Add( m_spinCtrlLightElevation6, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); + + m_spinCtrlLightAzimuth6 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS|wxSP_WRAP, 0, 359, 0 ); + fgSizer11->Add( m_spinCtrlLightAzimuth6, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); + + m_staticText25 = new wxStaticText( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("Light 3:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText25->Wrap( -1 ); + fgSizer11->Add( m_staticText25, 0, wxALIGN_CENTER, 5 ); + + m_colourPickerLight3 = new wxColourPickerCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, *wxBLACK, wxDefaultPosition, wxSize( 72,-1 ), wxCLRP_DEFAULT_STYLE ); + fgSizer11->Add( m_colourPickerLight3, 0, wxALIGN_CENTER_VERTICAL, 5 ); + + m_spinCtrlLightElevation3 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, -90, 90, 0 ); + fgSizer11->Add( m_spinCtrlLightElevation3, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); + + m_spinCtrlLightAzimuth3 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS|wxSP_WRAP, 0, 359, 0 ); + fgSizer11->Add( m_spinCtrlLightAzimuth3, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); + + + fgSizer11->Add( 0, 0, 0, 0, 5 ); + + m_staticText26 = new wxStaticText( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("Light 7:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText26->Wrap( -1 ); + fgSizer11->Add( m_staticText26, 0, wxALIGN_CENTER|wxLEFT, 5 ); + + m_colourPickerLight7 = new wxColourPickerCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, *wxBLACK, wxDefaultPosition, wxSize( 72,-1 ), wxCLRP_DEFAULT_STYLE ); + fgSizer11->Add( m_colourPickerLight7, 0, wxALIGN_CENTER_VERTICAL, 5 ); + + m_spinCtrlLightElevation7 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, -90, 90, 0 ); + fgSizer11->Add( m_spinCtrlLightElevation7, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); + + m_spinCtrlLightAzimuth7 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS|wxSP_WRAP, 0, 359, 0 ); + fgSizer11->Add( m_spinCtrlLightAzimuth7, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); + + m_staticText171 = new wxStaticText( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("Light 4:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText171->Wrap( -1 ); + fgSizer11->Add( m_staticText171, 0, wxALIGN_CENTER, 5 ); + + m_colourPickerLight4 = new wxColourPickerCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, *wxBLACK, wxDefaultPosition, wxSize( 72,-1 ), wxCLRP_DEFAULT_STYLE ); + fgSizer11->Add( m_colourPickerLight4, 0, wxALIGN_CENTER_VERTICAL, 5 ); + + m_spinCtrlLightElevation4 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, -90, 90, 0 ); + fgSizer11->Add( m_spinCtrlLightElevation4, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); + + m_spinCtrlLightAzimuth4 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS|wxSP_WRAP, 0, 359, 0 ); + fgSizer11->Add( m_spinCtrlLightAzimuth4, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); + + + fgSizer11->Add( 0, 0, 0, 0, 5 ); + + m_staticText181 = new wxStaticText( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, _("Light 8:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_staticText181->Wrap( -1 ); + fgSizer11->Add( m_staticText181, 0, wxALIGN_CENTER|wxLEFT, 5 ); + + m_colourPickerLight8 = new wxColourPickerCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, *wxBLACK, wxDefaultPosition, wxSize( 72,-1 ), wxCLRP_DEFAULT_STYLE ); + fgSizer11->Add( m_colourPickerLight8, 0, wxALIGN_CENTER_VERTICAL, 5 ); + + m_spinCtrlLightElevation8 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, -90, 90, 0 ); + fgSizer11->Add( m_spinCtrlLightElevation8, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); + + m_spinCtrlLightAzimuth8 = new wxSpinCtrl( sbSizerRaytracingLightConfiguration->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS|wxSP_WRAP, 0, 359, 0 ); + fgSizer11->Add( m_spinCtrlLightAzimuth8, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 1 ); + + + sbSizerRaytracingLightConfiguration->Add( fgSizer11, 0, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + + + bSizerMargins->Add( sbSizerRaytracingLightConfiguration, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); + + + bSizerMain->Add( bSizerMargins, 1, wxEXPAND|wxRIGHT, 5 ); + + + this->SetSizer( bSizerMain ); + this->Layout(); + bSizerMain->Fit( this ); +} + +PANEL_3D_RAYTRACING_OPTIONS_BASE::~PANEL_3D_RAYTRACING_OPTIONS_BASE() +{ +} diff --git a/3d-viewer/3d_viewer/dialogs/panel_3D_raytracing_options_base.fbp b/3d-viewer/3d_viewer/dialogs/panel_3D_raytracing_options_base.fbp new file mode 100644 index 0000000000..77daa140cd --- /dev/null +++ b/3d-viewer/3d_viewer/dialogs/panel_3D_raytracing_options_base.fbp @@ -0,0 +1,4033 @@ + + + + + + C++ + 1 + source_name + 0 + 0 + res + UTF-8 + connect + panel_3D_raytracing_options_base + 1000 + none + + 1 + panel_3D_raytracing_options_base + + . + + 1 + 1 + 1 + 1 + UI + 0 + 0 + + 0 + wxAUI_MGR_DEFAULT + + + 1 + 1 + impl_virtual + + + 0 + wxID_ANY + + + PANEL_3D_RAYTRACING_OPTIONS_BASE + + -1,-1 + RESETTABLE_PANEL; widgets/resettable_panel.h; forward_declare + + + + wxTAB_TRAVERSAL + + + bSizerMain + wxVERTICAL + none + + 5 + wxEXPAND|wxRIGHT + 1 + + + bSizerMargins + wxVERTICAL + none + + 5 + wxEXPAND|wxALL + 0 + + wxID_ANY + Rendering Options + -1,32 + sbSizerRaytracingRenderOptions + wxVERTICAL + 1 + none + + 5 + wxEXPAND|wxBOTTOM + 1 + + 1 + 20 + + gSizer1 + none + 0 + 0 + + 5 + wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Procedural textures (slow) + + 0 + + + 0 + + 1 + m_checkBoxRaytracing_proceduralTextures + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Add floor (slow) + + 0 + + + 0 + + 1 + m_checkBoxRaytracing_addFloor + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Anti-aliasing (slow) + + 0 + + + 0 + + 1 + m_checkBoxRaytracing_antiAliasing + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Screen space ambient occlusions and global illumination reflections (slow) + + 0 + + + 0 + + 1 + m_checkBoxRaytracing_postProcessing + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + 5 + wxTOP|wxBOTTOM|wxRIGHT|wxEXPAND + 0 + + 4 + wxBOTH + + + 8 + + fgSizer111 + wxFLEX_GROWMODE_SPECIFIED + none + 0 + 4 + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxLEFT|wxRIGHT|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Number of Samples + 0 + + 0 + + + 0 + + 1 + m_staticText19 + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Spread Factor % + 0 + + 0 + + + 0 + + 1 + m_staticText201 + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Recursion Level + 0 + + 0 + + + 0 + + 1 + m_staticText211 + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALIGN_CENTER_VERTICAL|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Shadows: + + 0 + + + 0 + + 1 + m_checkBoxRaytracing_renderShadows + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 0 + 64 + + 0 + + 1 + + 0 + + 1 + m_spinCtrl_NrSamples_Shadows + 1 + + + protected + 1 + + Resizable + 1 + 124,-1 + wxSP_ARROW_KEYS + ; ; forward_declare + 0 + Number of rays that will be cast, into light direction, to evaluate a shadow point + + + + + + + + 5 + wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + 1 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 1 + 0 + 25 + + 0 + + 0.1 + + 0 + + 1 + m_spinCtrlDouble_SpreadFactor_Shadows + 1 + + + protected + 1 + + Resizable + 1 + 124,-1 + wxSP_ARROW_KEYS + ; ; forward_declare + 0 + Random direction factor of the cast rays + + + + + + + + 5 + wxEXPAND + 1 + + 0 + protected + 0 + + + + 5 + wxALIGN_CENTER_VERTICAL|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Reflections: + + 0 + + + 0 + + 1 + m_checkBoxRaytracing_showReflections + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 0 + 32 + + 0 + + 1 + + 0 + + 1 + m_spinCtrl_NrSamples_Reflections + 1 + + + protected + 1 + + Resizable + 1 + 124,-1 + wxSP_ARROW_KEYS + ; ; forward_declare + 0 + Number of rays that will be cast to evaluate a reflection point + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + 1 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 1 + 0 + 25 + + 0 + + 0.1 + + 0 + + 1 + m_spinCtrlDouble_SpreadFactor_Reflections + 1 + + + protected + 1 + + Resizable + 1 + 124,-1 + wxSP_ARROW_KEYS + ; ; forward_declare + 0 + Random direction factor of the cast rays + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 0 + 5 + + 0 + + 1 + + 0 + + 1 + m_spinCtrlRecursiveLevel_Reflections + 1 + + + protected + 1 + + Resizable + 1 + 124,-1 + wxSP_ARROW_KEYS + ; ; forward_declare + 0 + Interactions number that a ray can travel through objects. (higher number of levels improve results, specially on very transparent boards) + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Refractions: + + 0 + + + 0 + + 1 + m_checkBoxRaytracing_showRefractions + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 0 + 5 + + 0 + + 1 + + 0 + + 1 + m_spinCtrl_NrSamples_Refractions + 1 + + + protected + 1 + + Resizable + 1 + 124,-1 + wxSP_ARROW_KEYS + ; ; forward_declare + 0 + Number of rays that will be cast to evaluate a refraction point + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + 1 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 1 + 0 + 25 + + 0 + + 0.1 + + 0 + + 1 + m_spinCtrlDouble_SpreadFactor_Refractions + 1 + + + protected + 1 + + Resizable + 1 + 124,-1 + wxSP_ARROW_KEYS + ; ; forward_declare + 0 + Random direction factor of the cast rays + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 0 + 7 + + 0 + + 1 + + 0 + + 1 + m_spinCtrlRecursiveLevel_Refractions + 1 + + + protected + 1 + + Resizable + 1 + 124,-1 + wxSP_ARROW_KEYS + ; ; forward_declare + 0 + Number of bounces that a ray can hit reflective objects + + + + + + + + + + 5 + wxEXPAND + 0 + + 3 + protected + 0 + + + + + + 5 + wxEXPAND|wxTOP|wxRIGHT|wxLEFT + 0 + + wxID_ANY + Lights Configuration + -1,-1 + sbSizerRaytracingLightConfiguration + wxVERTICAL + 1 + none + + 5 + wxEXPAND|wxBOTTOM|wxRIGHT + 0 + + -1,-1 + bSizer11 + wxHORIZONTAL + none + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Ambient camera light: + 0 + + 0 + + + 0 + + 1 + m_staticText17 + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + 51,51,51 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_colourPickerCameraLight + 1 + + + protected + 1 + + Resizable + 1 + 72,-1 + wxCLRP_DEFAULT_STYLE + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + + 1 + + 0 + protected + 0 + + + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Top light: + 0 + + 0 + + + 0 + + 1 + m_staticText5 + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + 63,63,63 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_colourPickerTopLight + 1 + + + protected + 1 + + Resizable + 1 + 72,-1 + wxCLRP_DEFAULT_STYLE + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 5 + + 1 + + 0 + protected + 0 + + + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Bottom light: + 0 + + 0 + + + 0 + + 1 + m_staticText6 + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALIGN_CENTER_VERTICAL|wxRIGHT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + 63,63,63 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_colourPickerBottomLight + 1 + + + protected + 1 + + Resizable + 1 + 72,-1 + wxCLRP_DEFAULT_STYLE + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + + + 5 + wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 9 + wxHORIZONTAL + 4 + + 0 + + fgSizer11 + wxFLEX_GROWMODE_SPECIFIED + none + 0 + 0 + + 5 + + 0 + + 0 + protected + 0 + + + + 5 + + 0 + + 0 + protected + 0 + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Elevation (deg) + 0 + + 0 + + + 0 + + 1 + m_staticText20 + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Azimuth (deg) + 0 + + 0 + + + 0 + + 1 + m_staticText18 + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + + 0 + + 0 + protected + 0 + + + + 5 + + 0 + + 0 + protected + 0 + + + + 5 + + 0 + + 0 + protected + 0 + + + + 5 + wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Elevation (deg) + 0 + + 0 + + + 0 + + 1 + m_staticText27 + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Azimuth (deg) + 0 + + 0 + + + 0 + + 1 + m_staticText28 + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALIGN_CENTER|wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Light 1: + 0 + + 0 + + + 0 + + 1 + m_staticText21 + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_colourPickerLight1 + 1 + + + protected + 1 + + Resizable + 1 + 72,-1 + wxCLRP_DEFAULT_STYLE + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 1 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 0 + 90 + + 0 + + -90 + + 0 + + 1 + m_spinCtrlLightElevation1 + 1 + + + protected + 1 + + Resizable + 1 + 124,-1 + wxSP_ARROW_KEYS + ; ; forward_declare + 0 + + + + + + + + + 1 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 0 + 359 + + 0 + + 0 + + 0 + + 1 + m_spinCtrlLightAzimuth1 + 1 + + + protected + 1 + + Resizable + 1 + 124,-1 + wxSP_ARROW_KEYS|wxSP_WRAP + ; ; forward_declare + 0 + + + + + + + + + 5 + + 0 + + 0 + protected + 10 + + + + 5 + wxALIGN_CENTER|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Light 5: + 0 + + 0 + + + 0 + + 1 + m_staticText22 + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_colourPickerLight5 + 1 + + + protected + 1 + + Resizable + 1 + 72,-1 + wxCLRP_DEFAULT_STYLE + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 1 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 0 + 90 + + 0 + + -90 + + 0 + + 1 + m_spinCtrlLightElevation5 + 1 + + + protected + 1 + + Resizable + 1 + 124,-1 + wxSP_ARROW_KEYS + ; ; forward_declare + 0 + + + + + + + + + 1 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 0 + 359 + + 0 + + 0 + + 0 + + 1 + m_spinCtrlLightAzimuth5 + 1 + + + protected + 1 + + Resizable + 1 + 124,-1 + wxSP_ARROW_KEYS|wxSP_WRAP + ; ; forward_declare + 0 + + + + + + + + + 5 + wxALIGN_CENTER + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Light 2: + 0 + + 0 + + + 0 + + 1 + m_staticText23 + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_colourPickerLight2 + 1 + + + protected + 1 + + Resizable + 1 + 72,-1 + wxCLRP_DEFAULT_STYLE + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 1 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 0 + 90 + + 0 + + -90 + + 0 + + 1 + m_spinCtrlLightElevation2 + 1 + + + protected + 1 + + Resizable + 1 + 124,-1 + wxSP_ARROW_KEYS + ; ; forward_declare + 0 + + + + + + + + + 1 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 0 + 359 + + 0 + + 0 + + 0 + + 1 + m_spinCtrlLightAzimuth2 + 1 + + + protected + 1 + + Resizable + 1 + 124,-1 + wxSP_ARROW_KEYS|wxSP_WRAP + ; ; forward_declare + 0 + + + + + + + + + 5 + + 0 + + 0 + protected + 0 + + + + 5 + wxALIGN_CENTER|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Light 6: + 0 + + 0 + + + 0 + + 1 + m_staticText24 + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_colourPickerLight6 + 1 + + + protected + 1 + + Resizable + 1 + 72,-1 + wxCLRP_DEFAULT_STYLE + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 1 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 0 + 90 + + 0 + + -90 + + 0 + + 1 + m_spinCtrlLightElevation6 + 1 + + + protected + 1 + + Resizable + 1 + 124,-1 + wxSP_ARROW_KEYS + ; ; forward_declare + 0 + + + + + + + + + 1 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 0 + 359 + + 0 + + 0 + + 0 + + 1 + m_spinCtrlLightAzimuth6 + 1 + + + protected + 1 + + Resizable + 1 + 124,-1 + wxSP_ARROW_KEYS|wxSP_WRAP + ; ; forward_declare + 0 + + + + + + + + + 5 + wxALIGN_CENTER + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Light 3: + 0 + + 0 + + + 0 + + 1 + m_staticText25 + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_colourPickerLight3 + 1 + + + protected + 1 + + Resizable + 1 + 72,-1 + wxCLRP_DEFAULT_STYLE + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 1 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 0 + 90 + + 0 + + -90 + + 0 + + 1 + m_spinCtrlLightElevation3 + 1 + + + protected + 1 + + Resizable + 1 + 124,-1 + wxSP_ARROW_KEYS + ; ; forward_declare + 0 + + + + + + + + + 1 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 0 + 359 + + 0 + + 0 + + 0 + + 1 + m_spinCtrlLightAzimuth3 + 1 + + + protected + 1 + + Resizable + 1 + 124,-1 + wxSP_ARROW_KEYS|wxSP_WRAP + ; ; forward_declare + 0 + + + + + + + + + 5 + + 0 + + 0 + protected + 0 + + + + 5 + wxALIGN_CENTER|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Light 7: + 0 + + 0 + + + 0 + + 1 + m_staticText26 + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_colourPickerLight7 + 1 + + + protected + 1 + + Resizable + 1 + 72,-1 + wxCLRP_DEFAULT_STYLE + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 1 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 0 + 90 + + 0 + + -90 + + 0 + + 1 + m_spinCtrlLightElevation7 + 1 + + + protected + 1 + + Resizable + 1 + 124,-1 + wxSP_ARROW_KEYS + ; ; forward_declare + 0 + + + + + + + + + 1 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 0 + 359 + + 0 + + 0 + + 0 + + 1 + m_spinCtrlLightAzimuth7 + 1 + + + protected + 1 + + Resizable + 1 + 124,-1 + wxSP_ARROW_KEYS|wxSP_WRAP + ; ; forward_declare + 0 + + + + + + + + + 5 + wxALIGN_CENTER + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Light 4: + 0 + + 0 + + + 0 + + 1 + m_staticText171 + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_colourPickerLight4 + 1 + + + protected + 1 + + Resizable + 1 + 72,-1 + wxCLRP_DEFAULT_STYLE + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 1 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 0 + 90 + + 0 + + -90 + + 0 + + 1 + m_spinCtrlLightElevation4 + 1 + + + protected + 1 + + Resizable + 1 + 124,-1 + wxSP_ARROW_KEYS + ; ; forward_declare + 0 + + + + + + + + + 1 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 0 + 359 + + 0 + + 0 + + 0 + + 1 + m_spinCtrlLightAzimuth4 + 1 + + + protected + 1 + + Resizable + 1 + 124,-1 + wxSP_ARROW_KEYS|wxSP_WRAP + ; ; forward_declare + 0 + + + + + + + + + 5 + + 0 + + 0 + protected + 0 + + + + 5 + wxALIGN_CENTER|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Light 8: + 0 + + 0 + + + 0 + + 1 + m_staticText181 + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + + + -1 + + + + 5 + wxALIGN_CENTER_VERTICAL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + + 1 + m_colourPickerLight8 + 1 + + + protected + 1 + + Resizable + 1 + 72,-1 + wxCLRP_DEFAULT_STYLE + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + + + 1 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 0 + 90 + + 0 + + -90 + + 0 + + 1 + m_spinCtrlLightElevation8 + 1 + + + protected + 1 + + Resizable + 1 + 124,-1 + wxSP_ARROW_KEYS + ; ; forward_declare + 0 + + + + + + + + + 1 + wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + 0 + 359 + + 0 + + 0 + + 0 + + 1 + m_spinCtrlLightAzimuth8 + 1 + + + protected + 1 + + Resizable + 1 + 124,-1 + wxSP_ARROW_KEYS|wxSP_WRAP + ; ; forward_declare + 0 + + + + + + + + + + + + + + + + + diff --git a/3d-viewer/3d_viewer/dialogs/dialog_3D_view_option_base.h b/3d-viewer/3d_viewer/dialogs/panel_3D_raytracing_options_base.h similarity index 57% rename from 3d-viewer/3d_viewer/dialogs/dialog_3D_view_option_base.h rename to 3d-viewer/3d_viewer/dialogs/panel_3D_raytracing_options_base.h index 7183d8eca5..1e00bace2f 100644 --- a/3d-viewer/3d_viewer/dialogs/dialog_3D_view_option_base.h +++ b/3d-viewer/3d_viewer/dialogs/panel_3D_raytracing_options_base.h @@ -10,7 +10,7 @@ #include #include #include -#include "dialog_shim.h" +#include "widgets/resettable_panel.h" #include #include #include @@ -18,71 +18,23 @@ #include #include #include -#include #include #include -#include -#include -#include -#include -#include -#include -#include +#include #include -#include -#include -#include +#include /////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// -/// Class DIALOG_3D_VIEW_OPTIONS_BASE +/// Class PANEL_3D_RAYTRACING_OPTIONS_BASE /////////////////////////////////////////////////////////////////////////////// -class DIALOG_3D_VIEW_OPTIONS_BASE : public DIALOG_SHIM +class PANEL_3D_RAYTRACING_OPTIONS_BASE : public RESETTABLE_PANEL { private: protected: - wxNotebook* m_notebook; - wxPanel* m_panelDspOpt; - wxCheckBox* m_checkBox3DshapesTH; - wxCheckBox* m_checkBox3DshapesSMD; - wxCheckBox* m_checkBox3DshapesVirtual; - wxCheckBox* m_checkBoxSilkscreen; - wxCheckBox* m_checkBoxSolderMask; - wxCheckBox* m_checkBoxSolderpaste; - wxCheckBox* m_checkBoxAdhesive; - wxCheckBox* m_checkBoxComments; - wxCheckBox* m_checkBoxECO; - wxCheckBox* m_checkBoxRealisticMode; - wxCheckBox* m_checkBoxBoardBody; - wxCheckBox* m_checkBoxAreas; - wxCheckBox* m_checkBoxSubtractMaskFromSilk; - wxCheckBox* m_checkBoxClipSilkOnViaAnnulus; - wxCheckBox* m_checkBoxRenderPlatedPadsAsPlated; - wxStaticText* m_staticTextRotAngle; - wxSpinCtrlDouble* m_spinCtrlRotationAngle; - wxStaticText* m_staticTextRotAngleUnits; - wxStaticLine* m_staticline3; - wxCheckBox* m_checkBoxEnableAnimation; - wxStaticText* m_staticAnimationSpeed; - wxSlider* m_sliderAnimationSpeed; - wxPanel* m_panelOpenGL; - wxCheckBox* m_checkBoxBoundingBoxes; - wxCheckBox* m_checkBoxCuThickness; - wxCheckBox* m_checkBoxHighlightOnRollOver; - wxStaticText* m_staticText221; - wxChoice* m_choiceAntiAliasing; - wxStaticText* m_staticText231; - wxColourPickerCtrl* m_colourPickerSelection; - wxCheckBox* m_checkBoxDisableAAMove; - wxCheckBox* m_checkBoxDisableMoveThickness; - wxCheckBox* m_checkBoxDisableMoveVias; - wxCheckBox* m_checkBoxDisableMoveHoles; - wxPanel* m_panelRaytracing; - wxNotebook* m_notebook2; - wxPanel* m_panelRaytracingCfg; wxCheckBox* m_checkBoxRaytracing_proceduralTextures; wxCheckBox* m_checkBoxRaytracing_addFloor; wxCheckBox* m_checkBoxRaytracing_antiAliasing; @@ -101,7 +53,6 @@ class DIALOG_3D_VIEW_OPTIONS_BASE : public DIALOG_SHIM wxSpinCtrl* m_spinCtrl_NrSamples_Refractions; wxSpinCtrlDouble* m_spinCtrlDouble_SpreadFactor_Refractions; wxSpinCtrl* m_spinCtrlRecursiveLevel_Refractions; - wxPanel* m_panelLightsConfig; wxStaticText* m_staticText17; wxColourPickerCtrl* m_colourPickerCameraLight; wxStaticText* m_staticText5; @@ -144,21 +95,11 @@ class DIALOG_3D_VIEW_OPTIONS_BASE : public DIALOG_SHIM wxColourPickerCtrl* m_colourPickerLight8; wxSpinCtrl* m_spinCtrlLightElevation8; wxSpinCtrl* m_spinCtrlLightAzimuth8; - wxButton* m_buttonLightsResetToDefaults; - wxStdDialogButtonSizer* m_sdbSizer; - wxButton* m_sdbSizerOK; - wxButton* m_sdbSizerCancel; - - // Virtual event handlers, overide them in your derived class - virtual void OnCheckRealisticMode( wxCommandEvent& event ) { event.Skip(); } - virtual void OnCheckEnableAnimation( wxCommandEvent& event ) { event.Skip(); } - virtual void OnLightsResetToDefaults( wxCommandEvent& event ) { event.Skip(); } - public: - DIALOG_3D_VIEW_OPTIONS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("3D Display Options"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 810,484 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); - ~DIALOG_3D_VIEW_OPTIONS_BASE(); + PANEL_3D_RAYTRACING_OPTIONS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxTAB_TRAVERSAL, const wxString& name = wxEmptyString ); + ~PANEL_3D_RAYTRACING_OPTIONS_BASE(); }; diff --git a/3d-viewer/3d_viewer/eda_3d_viewer.cpp b/3d-viewer/3d_viewer/eda_3d_viewer.cpp index 23a242ec59..ec35465293 100644 --- a/3d-viewer/3d_viewer/eda_3d_viewer.cpp +++ b/3d-viewer/3d_viewer/eda_3d_viewer.cpp @@ -22,13 +22,13 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA */ -#include -#include #include #include #include #include #include +#include +#include #include "eda_3d_viewer.h" #include <3d_viewer_settings.h> #include <3d_viewer_id.h> @@ -38,8 +38,6 @@ #include #include #include -#include -#include #include #include #include @@ -53,8 +51,13 @@ #include #include #include +#include +#include +#include +#include +#include +#include #include -#include /** * Flag to enable 3D viewer main frame window debug tracing. @@ -74,8 +77,6 @@ BEGIN_EVENT_TABLE( EDA_3D_VIEWER, EDA_BASE_FRAME ) EVT_TOOL_RANGE( ID_START_COMMAND_3D, ID_MENU_COMMAND_END, EDA_3D_VIEWER::Process_Special_Functions ) - EVT_TOOL( ID_TOOL_SET_VISIBLE_ITEMS, EDA_3D_VIEWER::Install3DViewOptionDialog ) - EVT_MENU( wxID_CLOSE, EDA_3D_VIEWER::Exit3DFrame ) EVT_MENU( ID_RENDER_CURRENT_VIEW, EDA_3D_VIEWER::OnRenderEngineSelection ) EVT_MENU( ID_DISABLE_RAY_TRACING, EDA_3D_VIEWER::OnDisableRayTracing ) @@ -190,7 +191,6 @@ void EDA_3D_VIEWER::setupUIConditions() EDA_3D_CONDITIONS cond( &m_boardAdapter ); // Helper to define check conditions -#define MaterialCheck( x ) ACTION_CONDITIONS().Check( cond.MaterialMode( x ) ) #define FlagCheck( x ) ACTION_CONDITIONS().Check( cond.Flag( x ) ) #define GridSizeCheck( x ) ACTION_CONDITIONS().Check( cond.GridSize( x ) ) @@ -202,27 +202,6 @@ void EDA_3D_VIEWER::setupUIConditions() RegisterUIUpdateHandler( ID_RENDER_CURRENT_VIEW, ACTION_CONDITIONS().Check( raytracingCondition ) ); - mgr->SetConditions( EDA_3D_ACTIONS::materialNormal, - MaterialCheck( MATERIAL_MODE::NORMAL ) ); - mgr->SetConditions( EDA_3D_ACTIONS::materialDiffuse, - MaterialCheck( MATERIAL_MODE::DIFFUSE_ONLY ) ); - mgr->SetConditions( EDA_3D_ACTIONS::materialCAD, - MaterialCheck( MATERIAL_MODE::CAD_MODE ) ); - - mgr->SetConditions( EDA_3D_ACTIONS::renderShadows, - FlagCheck( FL_RENDER_RAYTRACING_SHADOWS ) ); - mgr->SetConditions( EDA_3D_ACTIONS::proceduralTextures, - FlagCheck( FL_RENDER_RAYTRACING_PROCEDURAL_TEXTURES ) ); - mgr->SetConditions( EDA_3D_ACTIONS::addFloor, - FlagCheck( FL_RENDER_RAYTRACING_BACKFLOOR ) ); - mgr->SetConditions( EDA_3D_ACTIONS::showRefractions, - FlagCheck( FL_RENDER_RAYTRACING_REFRACTIONS ) ); - mgr->SetConditions( EDA_3D_ACTIONS::showReflections, - FlagCheck( FL_RENDER_RAYTRACING_REFLECTIONS ) ); - mgr->SetConditions( EDA_3D_ACTIONS::antiAliasing, - FlagCheck( FL_RENDER_RAYTRACING_ANTI_ALIASING ) ); - mgr->SetConditions( EDA_3D_ACTIONS::postProcessing, - FlagCheck( FL_RENDER_RAYTRACING_POST_PROCESSING ) ); mgr->SetConditions( EDA_3D_ACTIONS::showBoundingBoxes, FlagCheck( FL_RENDER_OPENGL_SHOW_MODEL_BBOX ) ); mgr->SetConditions( EDA_3D_ACTIONS::showAxis, @@ -236,19 +215,32 @@ void EDA_3D_VIEWER::setupUIConditions() auto orthoCondition = - [this] ( const SELECTION& ) - { - return m_currentCamera.GetProjection() == PROJECTION_TYPE::ORTHO; - }; + [this]( const SELECTION& ) + { + return m_currentCamera.GetProjection() == PROJECTION_TYPE::ORTHO; + }; mgr->SetConditions( EDA_3D_ACTIONS::toggleOrtho, ACTION_CONDITIONS().Check( orthoCondition ) ); -#undef MaterialCheck #undef FlagCheck #undef GridSizeCheck } +void EDA_3D_VIEWER::InstallPreferences( PAGED_DIALOG* aParent, PANEL_HOTKEYS_EDITOR* aHotkeysPanel ) +{ + wxTreebook* book = aParent->GetTreebook(); + + book->AddPage( new wxPanel( book ), _( "3D Viewer" ) ); + book->AddSubPage( new PANEL_3D_DISPLAY_OPTIONS( this, aParent ), _( "Display Options" ) ); + book->AddSubPage( new PANEL_3D_OPENGL_OPTIONS( this, book ), _( "OpenGL" ) ); + book->AddSubPage( new PANEL_3D_RAYTRACING_OPTIONS( this, book ), _( "Raytracing" ) ); + book->AddSubPage( new PANEL_3D_COLORS( this, book ), _( "Colors" ) ); + + aHotkeysPanel->AddHotKeys( GetToolManager() ); +} + + void EDA_3D_VIEWER::ReloadRequest() { // This will schedule a request to load later @@ -332,43 +324,6 @@ void EDA_3D_VIEWER::Process_Special_Functions( wxCommandEvent &event ) takeScreenshot( event ); return; - case ID_MENU3D_BGCOLOR_BOTTOM: - if( Set3DColorFromUser( m_boardAdapter.m_BgColorBot, _( "Background Color, Bottom" ), - nullptr ) ) - refreshRender(); - return; - - case ID_MENU3D_BGCOLOR_TOP: - if( Set3DColorFromUser( m_boardAdapter.m_BgColorTop, _( "Background Color, Top" ), - nullptr ) ) - refreshRender(); - return; - - case ID_MENU3D_SILKSCREEN_COLOR: - Set3DSilkScreenColorFromUser(); - return; - - case ID_MENU3D_SOLDERMASK_COLOR: - Set3DSolderMaskColorFromUser(); - return; - - case ID_MENU3D_SOLDERPASTE_COLOR: - Set3DSolderPasteColorFromUser(); - return; - - case ID_MENU3D_COPPER_COLOR: - Set3DCopperColorFromUser(); - break; - - case ID_MENU3D_PCB_BODY_COLOR: - Set3DBoardBodyColorFromUser(); - break; - - case ID_MENU3D_STACKUP_COLORS: - SynchroniseColoursWithBoard(); - refreshRender(); - break; - case ID_MENU3D_RESET_DEFAULTS: { auto cfg = Pgm().GetSettingsManager().GetAppSettings(); @@ -719,73 +674,6 @@ void EDA_3D_VIEWER::SaveSettings( APP_SETTINGS_BASE *aCfg ) } -void EDA_3D_VIEWER::SynchroniseColoursWithBoard() -{ - BOARD* brd = GetBoard(); - const FAB_LAYER_COLOR* stdColors = GetColorStandardList(); - wxColour color; - - if( brd ) - { - const BOARD_STACKUP& stckp = brd->GetDesignSettings().GetStackupDescriptor(); - - for( const BOARD_STACKUP_ITEM* stckpItem : stckp.GetList() ) - { - wxString colorName = stckpItem->GetColor(); - - if( colorName.StartsWith( "#" ) ) // This is a user defined color. - { - color.Set( colorName ); - } - else - { - for( int i = 0; i < GetColorStandardListCount(); i++ ) - { - if( stdColors[i].m_ColorName == colorName ) - { - color = stdColors[i].m_Color; - break; - } - } - } - - if( color.IsOk() ) - { - switch( stckpItem->GetBrdLayerId() ) - { - case F_SilkS: - m_boardAdapter.m_SilkScreenColorTop.r = color.Red() / 255.0; - m_boardAdapter.m_SilkScreenColorTop.g = color.Green() / 255.0; - m_boardAdapter.m_SilkScreenColorTop.b = color.Blue() / 255.0; - break; - case B_SilkS: - m_boardAdapter.m_SilkScreenColorBot.r = color.Red() / 255.0; - m_boardAdapter.m_SilkScreenColorBot.g = color.Green() / 255.0; - m_boardAdapter.m_SilkScreenColorBot.b = color.Blue() / 255.0; - break; - case F_Mask: - m_boardAdapter.m_SolderMaskColorTop.r = color.Red() / 255.0; - m_boardAdapter.m_SolderMaskColorTop.g = color.Green() / 255.0; - m_boardAdapter.m_SolderMaskColorTop.b = color.Blue() / 255.0; - // Keep the previous alpha value - //m_boardAdapter.m_SolderMaskColorTop.a = color.Alpha() / 255.0; - break; - case B_Mask: - m_boardAdapter.m_SolderMaskColorBot.r = color.Red() / 255.0; - m_boardAdapter.m_SolderMaskColorBot.g = color.Green() / 255.0; - m_boardAdapter.m_SolderMaskColorBot.b = color.Blue() / 255.0; - // Keep the previous alpha value - //m_boardAdapter.m_SolderMaskColorBot.a = color.Alpha() / 255.0; - break; - default: - break; - } - } - } - } -} - - void EDA_3D_VIEWER::CommonSettingsChanged( bool aEnvVarsChanged, bool aTextVarsChanged ) { wxLogTrace( m_logTrace, "EDA_3D_VIEWER::CommonSettingsChanged" ); @@ -905,158 +793,6 @@ void EDA_3D_VIEWER::RenderEngineChanged() } -bool EDA_3D_VIEWER::Set3DColorFromUser( SFVEC4F &aColor, const wxString& aTitle, - CUSTOM_COLORS_LIST* aPredefinedColors, - bool aAllowOpacityControl, - KIGFX::COLOR4D aDefaultColor ) -{ - KIGFX::COLOR4D newcolor; - KIGFX::COLOR4D oldcolor( aColor.r,aColor.g, aColor.b, aColor.a ); - - DIALOG_COLOR_PICKER picker( this, oldcolor, aAllowOpacityControl, aPredefinedColors, - aDefaultColor ); - - if( picker.ShowModal() != wxID_OK ) - return false; - - newcolor = picker.GetColor(); - - if( newcolor == oldcolor ) - return false; - - aColor.r = newcolor.r; - aColor.g = newcolor.g; - aColor.b = newcolor.b; - aColor.a = newcolor.a; - - return true; -} - - -bool EDA_3D_VIEWER::Set3DSilkScreenColorFromUser() -{ - CUSTOM_COLORS_LIST colors; - - colors.push_back( CUSTOM_COLOR_ITEM( 241.0/255.0, 241.0/255.0, 241.0/255.0, "White" ) ); - colors.push_back( CUSTOM_COLOR_ITEM( 4.0/255.0, 18.0/255.0, 21.0/255.0, "Dark" ) ); - - if( Set3DColorFromUser( m_boardAdapter.m_SilkScreenColorTop, _( "Silkscreen Color" ), - &colors, false, colors[0].m_Color ) ) - { - m_boardAdapter.m_SilkScreenColorBot = m_boardAdapter.m_SilkScreenColorTop; - - refreshRender(); - - return true; - } - - return false; -} - - -bool EDA_3D_VIEWER::Set3DSolderMaskColorFromUser() -{ - CUSTOM_COLORS_LIST colors; - - colors.push_back( CUSTOM_COLOR_ITEM( 20/255.0, 51/255.0, 36/255.0, 0.83, "Green" ) ); - colors.push_back( CUSTOM_COLOR_ITEM( 91/255.0, 168/255.0, 12/255.0, 0.83, "Light Green" ) ); - colors.push_back( CUSTOM_COLOR_ITEM( 13/255.0, 104/255.0, 11/255.0, 0.83, - "Saturated Green" ) ); - colors.push_back( CUSTOM_COLOR_ITEM( 181/255.0, 19/255.0, 21/255.0, 0.83, "Red" ) ); - colors.push_back( CUSTOM_COLOR_ITEM( 239/255.0, 53/255.0, 41/255.0, 0.83, - "Red Light Orange" ) ); - colors.push_back( CUSTOM_COLOR_ITEM( 210/255.0, 40/255.0, 14/255.0, 0.83, "Red 2" ) ); - colors.push_back( CUSTOM_COLOR_ITEM( 2/255.0, 59/255.0, 162/255.0, 0.83, "Blue" ) ); - colors.push_back( CUSTOM_COLOR_ITEM( 54/255.0, 79/255.0, 116/255.0, 0.83, "Light blue 1" ) ); - colors.push_back( CUSTOM_COLOR_ITEM( 61/255.0, 85/255.0, 130/255.0, 0.83, "Light blue 2" ) ); - colors.push_back( CUSTOM_COLOR_ITEM( 21/255.0, 70/255.0, 80/255.0, 0.83, - "Green blue (dark)" ) ); - colors.push_back( CUSTOM_COLOR_ITEM( 11/255.0, 11/255.0, 11/255.0, 0.83, "Black" ) ); - colors.push_back( CUSTOM_COLOR_ITEM( 245/255.0, 245/255.0, 245/255.0, 0.83, "White" ) ); - colors.push_back( CUSTOM_COLOR_ITEM( 119/255.0, 31/255.0, 91/255.0, 0.83, "Purple" ) ); - colors.push_back( CUSTOM_COLOR_ITEM( 32/255.0, 2/255.0, 53/255.0, 0.83, "Purple Dark" ) ); - - if( Set3DColorFromUser( m_boardAdapter.m_SolderMaskColorTop, _( "Solder Mask Color" ), - &colors, true, colors[0].m_Color ) ) - { - m_boardAdapter.m_SolderMaskColorBot = m_boardAdapter.m_SolderMaskColorTop; - - refreshRender(); - - return true; - } - - return false; -} - - -bool EDA_3D_VIEWER::Set3DCopperColorFromUser() -{ - CUSTOM_COLORS_LIST colors; - - colors.push_back( CUSTOM_COLOR_ITEM( 184/255.0, 115/255.0, 50/255.0, "Copper" ) ); - colors.push_back( CUSTOM_COLOR_ITEM( 178/255.0, 156/255.0, 0.0, "Gold" ) ); - colors.push_back( CUSTOM_COLOR_ITEM( 213/255.0, 213/255.0, 213/255.0, "Silver" ) ); - colors.push_back( CUSTOM_COLOR_ITEM( 160/255.0, 160/255.0, 160/255.0, "Tin" ) ); - - if( Set3DColorFromUser( m_boardAdapter.m_CopperColor, _( "Copper Color" ), &colors, false, - colors[0].m_Color ) ) - { - refreshRender(); - - return true; - } - - return false; -} - - -bool EDA_3D_VIEWER::Set3DBoardBodyColorFromUser() -{ - CUSTOM_COLORS_LIST colors; - - colors.push_back( CUSTOM_COLOR_ITEM( 51/255.0, 43/255.0, 22/255.0, 0.9, - "FR4 natural, dark" ) ); - colors.push_back( CUSTOM_COLOR_ITEM( 109/255.0, 116/255.0, 75/255.0, 0.9, "FR4 natural" ) ); - colors.push_back( CUSTOM_COLOR_ITEM( 78/255.0, 14/255.0, 5/255.0, 0.9, "brown/red" ) ); - colors.push_back( CUSTOM_COLOR_ITEM( 146/255.0, 99/255.0, 47/255.0, 0.9, "brown 1" ) ); - colors.push_back( CUSTOM_COLOR_ITEM( 160/255.0, 123/255.0, 54/255.0, 0.9, "brown 2" ) ); - colors.push_back( CUSTOM_COLOR_ITEM( 146/255.0, 99/255.0, 47/255.0, 0.9, "brown 3" ) ); - colors.push_back( CUSTOM_COLOR_ITEM( 63/255.0, 126/255.0, 71/255.0, 0.9, "green 1" ) ); - colors.push_back( CUSTOM_COLOR_ITEM( 117/255.0, 122/255.0, 90/255.0, 0.9, "green 2" ) ); - - if( Set3DColorFromUser( m_boardAdapter.m_BoardBodyColor, _( "Board Body Color" ), &colors, - true, colors[0].m_Color ) ) - { - refreshRender(); - - return true; - } - - return false; -} - - -bool EDA_3D_VIEWER::Set3DSolderPasteColorFromUser() -{ - CUSTOM_COLORS_LIST colors; - - colors.push_back( CUSTOM_COLOR_ITEM( 128/255.0, 128/255.0, 128/255.0, "grey" ) ); - colors.push_back( CUSTOM_COLOR_ITEM( 213/255.0, 213/255.0, 213/255.0, "Silver" ) ); - colors.push_back( CUSTOM_COLOR_ITEM( 90/255.0, 90/255.0, 90/255.0, "grey 2" ) ); - - if( Set3DColorFromUser( m_boardAdapter.m_SolderPasteColor, _( "Solder Paste Color" ), &colors, - false, colors[0].m_Color ) ) - { - refreshRender(); - - return true; - } - - return false; -} - - void EDA_3D_VIEWER::loadCommonSettings() { wxCHECK_RET( m_canvas, "Cannot load settings to null canvas" ); diff --git a/3d-viewer/3d_viewer/eda_3d_viewer.h b/3d-viewer/3d_viewer/eda_3d_viewer.h index 26405ba56e..34655df846 100644 --- a/3d-viewer/3d_viewer/eda_3d_viewer.h +++ b/3d-viewer/3d_viewer/eda_3d_viewer.h @@ -47,10 +47,6 @@ #define KICAD_DEFAULT_3D_DRAWFRAME_STYLE (wxDEFAULT_FRAME_STYLE | wxWANTS_CHARS) -#define VIEWER3D_FRAMENAME wxT( "Viewer3DFrameName" ) -#define QUALIFIED_VIEWER3D_FRAMENAME( parent ) \ - ( wxString( VIEWER3D_FRAMENAME ) + wxT( ":" ) + parent->GetName() ) - enum EDA_3D_VIEWER_STATUSBAR { @@ -77,6 +73,8 @@ public: wxWindow* GetToolCanvas() const override { return m_canvas; } + void InstallPreferences( PAGED_DIALOG* aParent, PANEL_HOTKEYS_EDITOR* aHotkeysPanel ) override; + /** * Request reloading the 3D view. * @@ -108,54 +106,6 @@ public: EDA_3D_CANVAS* GetCanvas() { return m_canvas; } - /** - * Get a SFVEC3D from a color dialog. - * - * @param aColor is the SFVEC3D to change. - * @param aTitle is the title displayed in the colordialog selector. - * @param aPredefinedColors is a reference to a CUSTOM_COLOR_ITEM list which contains. - * a few predefined colors - */ - bool Set3DColorFromUser( SFVEC4F& aColor, const wxString& aTitle, - CUSTOM_COLORS_LIST* aPredefinedColors, - bool aAllowOpacityControl = false, - KIGFX::COLOR4D aDefaultColor = KIGFX::COLOR4D( 1.0, 1.0, 1.0, 1.0 ) ); - - /** - * Set the solder mask color from a set of colors. - * - * @return true if a new color is chosen, false if no change or aborted by user. - */ - bool Set3DSolderMaskColorFromUser(); - - /** - * Set the solder mask color from a set of colors. - * - * @return true if a new color is chosen, false if no change or aborted by user. - */ - bool Set3DSolderPasteColorFromUser(); - - /** - * Set the copper color from a set of colors. - * - * @return true if a new color is chosen, false if no change or aborted by user. - */ - bool Set3DCopperColorFromUser(); - - /** - * Set the copper color from a set of colors. - * - * @return true if a new color is chosen, false if no change or aborted by user. - */ - bool Set3DBoardBodyColorFromUser(); - - /** - * Set the silkscreen color from a set of colors. - * - * @return true if a new color is chosen, false if no change or aborted by user. - */ - bool Set3DSilkScreenColorFromUser(); - /** * Notification that common settings are updated. * @@ -164,9 +114,6 @@ public: */ void CommonSettingsChanged( bool aEnvVarsChanged, bool aTextVarsChanged ) override; - - void SynchroniseColoursWithBoard(); - protected: void setupUIConditions() override; diff --git a/3d-viewer/3d_viewer/tools/3d_actions.cpp b/3d-viewer/3d_viewer/tools/3d_actions.cpp index 98d89b3ac3..901eaab046 100644 --- a/3d-viewer/3d_viewer/tools/3d_actions.cpp +++ b/3d-viewer/3d_viewer/tools/3d_actions.cpp @@ -227,42 +227,6 @@ TOOL_ACTION EDA_3D_ACTIONS::showBoundingBoxes( "3DViewer.Control.showBoundingBox _( "Show Model Bounding Boxes" ), _( "Show Model Bounding Boxes" ), BITMAPS::ortho, AF_NONE, (void*) FL_RENDER_OPENGL_SHOW_MODEL_BBOX ); -TOOL_ACTION EDA_3D_ACTIONS::renderShadows( "3DViewer.Control.renderShadows", - AS_GLOBAL, 0, "", - _( "Render Shadows" ), _( "Render Shadows" ), - BITMAPS::INVALID_BITMAP, AF_NONE, (void*) FL_RENDER_RAYTRACING_SHADOWS ); - -TOOL_ACTION EDA_3D_ACTIONS::proceduralTextures( "3DViewer.Control.proceduralTextures", - AS_GLOBAL, 0, "", - _( "Procedural Textures" ), _( "Apply procedural textures to materials (slow)" ), - BITMAPS::INVALID_BITMAP, AF_NONE, (void*) FL_RENDER_RAYTRACING_PROCEDURAL_TEXTURES ); - -TOOL_ACTION EDA_3D_ACTIONS::addFloor( "3DViewer.Control.addFloor", - AS_GLOBAL, 0, "", - _( "Add Floor" ), _( "Adds a floor plane below the board (slow)"), - BITMAPS::INVALID_BITMAP, AF_NONE, (void*) FL_RENDER_RAYTRACING_BACKFLOOR ); - -TOOL_ACTION EDA_3D_ACTIONS::showRefractions( "3DViewer.Control.showRefractions", - AS_GLOBAL, 0, "", - _( "Refractions" ), _( "Render materials with refractive properties on final render (slow)" ), - BITMAPS::INVALID_BITMAP, AF_NONE, (void*) FL_RENDER_RAYTRACING_REFRACTIONS ); - -TOOL_ACTION EDA_3D_ACTIONS::showReflections( "3DViewer.Control.showReflections", - AS_GLOBAL, 0, "", - _( "Reflections" ), _( "Render materials with reflective properties on final render (slow)" ), - BITMAPS::INVALID_BITMAP, AF_NONE, (void*) FL_RENDER_RAYTRACING_REFLECTIONS ); - -TOOL_ACTION EDA_3D_ACTIONS::antiAliasing( "3DViewer.Control.antiAliasing", - AS_GLOBAL, 0, "", - _( "Anti-aliasing" ), _( "Render with improved quality on final render (slow)" ), - BITMAPS::INVALID_BITMAP, AF_NONE, (void*) FL_RENDER_RAYTRACING_ANTI_ALIASING ); - -TOOL_ACTION EDA_3D_ACTIONS::postProcessing( "3DViewer.Control.postProcessing", - AS_GLOBAL, 0, "", - _( "Post-processing" ), - _( "Apply Screen Space Ambient Occlusion and Global Illumination reflections on final render (slow)"), - BITMAPS::INVALID_BITMAP, AF_NONE, (void*) FL_RENDER_RAYTRACING_POST_PROCESSING ); - TOOL_ACTION EDA_3D_ACTIONS::toggleRealisticMode( "3DViewer.Control.toggleRealisticMode", AS_GLOBAL, 0, "", _( "Toggle realistic mode" ), _( "Toggle realistic mode" ), diff --git a/3d-viewer/3d_viewer/tools/3d_actions.h b/3d-viewer/3d_viewer/tools/3d_actions.h index 0a526ae905..94c517cc74 100644 --- a/3d-viewer/3d_viewer/tools/3d_actions.h +++ b/3d-viewer/3d_viewer/tools/3d_actions.h @@ -80,13 +80,6 @@ public: static TOOL_ACTION attributesSMD; static TOOL_ACTION attributesVirtual; static TOOL_ACTION showBoundingBoxes; - static TOOL_ACTION renderShadows; - static TOOL_ACTION proceduralTextures; - static TOOL_ACTION addFloor; - static TOOL_ACTION showRefractions; - static TOOL_ACTION showReflections; - static TOOL_ACTION antiAliasing; - static TOOL_ACTION postProcessing; static TOOL_ACTION toggleRealisticMode; static TOOL_ACTION toggleBoardBody; static TOOL_ACTION showAxis; diff --git a/3d-viewer/3d_viewer/tools/3d_controller.cpp b/3d-viewer/3d_viewer/tools/3d_controller.cpp index 03b6a19198..fe4c895d31 100644 --- a/3d-viewer/3d_viewer/tools/3d_controller.cpp +++ b/3d-viewer/3d_viewer/tools/3d_controller.cpp @@ -348,13 +348,6 @@ void EDA_3D_CONTROLLER::setTransitions() Go( &EDA_3D_CONTROLLER::ToggleVisibility, EDA_3D_ACTIONS::attributesSMD.MakeEvent() ); Go( &EDA_3D_CONTROLLER::ToggleVisibility, EDA_3D_ACTIONS::attributesVirtual.MakeEvent() ); Go( &EDA_3D_CONTROLLER::ToggleVisibility, EDA_3D_ACTIONS::showBoundingBoxes.MakeEvent() ); - Go( &EDA_3D_CONTROLLER::ToggleVisibility, EDA_3D_ACTIONS::renderShadows.MakeEvent() ); - Go( &EDA_3D_CONTROLLER::ToggleVisibility, EDA_3D_ACTIONS::proceduralTextures.MakeEvent() ); - Go( &EDA_3D_CONTROLLER::ToggleVisibility, EDA_3D_ACTIONS::addFloor.MakeEvent() ); - Go( &EDA_3D_CONTROLLER::ToggleVisibility, EDA_3D_ACTIONS::showRefractions.MakeEvent() ); - Go( &EDA_3D_CONTROLLER::ToggleVisibility, EDA_3D_ACTIONS::showReflections.MakeEvent() ); - Go( &EDA_3D_CONTROLLER::ToggleVisibility, EDA_3D_ACTIONS::antiAliasing.MakeEvent() ); - Go( &EDA_3D_CONTROLLER::ToggleVisibility, EDA_3D_ACTIONS::postProcessing.MakeEvent() ); Go( &EDA_3D_CONTROLLER::ToggleVisibility, EDA_3D_ACTIONS::toggleRealisticMode.MakeEvent() ); Go( &EDA_3D_CONTROLLER::ToggleVisibility, EDA_3D_ACTIONS::toggleBoardBody.MakeEvent() ); Go( &EDA_3D_CONTROLLER::ToggleVisibility, EDA_3D_ACTIONS::showAxis.MakeEvent() ); diff --git a/3d-viewer/3d_viewer_id.h b/3d-viewer/3d_viewer_id.h index 6f74cb24b5..1530c826d2 100644 --- a/3d-viewer/3d_viewer_id.h +++ b/3d-viewer/3d_viewer_id.h @@ -27,16 +27,6 @@ enum id_3dview_frm ID_VIEW3D_RESET, ID_VIEW3D_FLIP, ID_TOOL_SCREENCOPY_TOCLIBBOARD, - ID_MENU3D_COLOR, - ID_MENU3D_BGCOLOR, - ID_MENU3D_BGCOLOR_BOTTOM, - ID_MENU3D_BGCOLOR_TOP, - ID_MENU3D_SILKSCREEN_COLOR, - ID_MENU3D_SOLDERMASK_COLOR, - ID_MENU3D_SOLDERPASTE_COLOR, - ID_MENU3D_PCB_BODY_COLOR, - ID_MENU3D_COPPER_COLOR, - ID_MENU3D_STACKUP_COLORS, ID_MENU_SCREENCOPY_PNG, ID_MENU_SCREENCOPY_JPEG, @@ -49,8 +39,6 @@ enum id_3dview_frm ID_RENDER_CURRENT_VIEW, - ID_TOOL_SET_VISIBLE_ITEMS, - ID_DISABLE_RAY_TRACING, ID_CUSTOM_EVENT_1, // A id for a custom event (canvas refresh request) diff --git a/3d-viewer/CMakeLists.txt b/3d-viewer/CMakeLists.txt index 7ec25f4cc1..bc701c6103 100644 --- a/3d-viewer/CMakeLists.txt +++ b/3d-viewer/CMakeLists.txt @@ -87,8 +87,14 @@ set(3D-VIEWER_SRCS 3d_rendering/trackball.cpp 3d_viewer/3d_menubar.cpp 3d_viewer/3d_toolbar.cpp - 3d_viewer/dialogs/dialog_3D_view_option.cpp - 3d_viewer/dialogs/dialog_3D_view_option_base.cpp + 3d_viewer/dialogs/panel_3D_colors.cpp + 3d_viewer/dialogs/panel_3D_colors_base.cpp + 3d_viewer/dialogs/panel_3D_display_options.cpp + 3d_viewer/dialogs/panel_3D_display_options_base.cpp + 3d_viewer/dialogs/panel_3D_opengl_options.cpp + 3d_viewer/dialogs/panel_3D_opengl_options_base.cpp + 3d_viewer/dialogs/panel_3D_raytracing_options.cpp + 3d_viewer/dialogs/panel_3D_raytracing_options_base.cpp 3d_viewer/tools/3d_actions.cpp 3d_viewer/tools/3d_conditions.cpp 3d_viewer/tools/3d_controller.cpp diff --git a/common/eda_base_frame.cpp b/common/eda_base_frame.cpp index faba611fdf..e69d8e853f 100644 --- a/common/eda_base_frame.cpp +++ b/common/eda_base_frame.cpp @@ -931,14 +931,24 @@ void EDA_BASE_FRAME::OnPreferences( wxCommandEvent& event ) PANEL_HOTKEYS_EDITOR* hotkeysPanel = new PANEL_HOTKEYS_EDITOR( this, book, false ); book->AddPage( hotkeysPanel, _( "Hotkeys" ) ); + wxWindow* viewer3D = nullptr; + for( unsigned i = 0; i < KIWAY_PLAYER_COUNT; ++i ) { KIWAY_PLAYER* frame = dlg.Kiway().Player( (FRAME_T) i, false ); if( frame ) + { frame->InstallPreferences( &dlg, hotkeysPanel ); + + if( !viewer3D ) + viewer3D = wxFindWindowByName( QUALIFIED_VIEWER3D_FRAMENAME( frame ) ); + } } + if( viewer3D ) + static_cast( viewer3D )->InstallPreferences( &dlg, hotkeysPanel ); + // The Kicad manager frame is not a player so we have to add it by hand wxWindow* manager = wxFindWindowByName( KICAD_MANAGER_FRAME_NAME ); diff --git a/common/widgets/color_swatch.cpp b/common/widgets/color_swatch.cpp index 0f2a93f197..7d997e1bdc 100644 --- a/common/widgets/color_swatch.cpp +++ b/common/widgets/color_swatch.cpp @@ -273,7 +273,8 @@ void COLOR_SWATCH::GetNewSwatchColor() return; } - DIALOG_COLOR_PICKER dialog( ::wxGetTopLevelParent( this ), m_color, true, nullptr, m_default ); + DIALOG_COLOR_PICKER dialog( ::wxGetTopLevelParent( this ), m_color, m_supportsOpacity, + m_userColors, m_default ); if( dialog.ShowModal() == wxID_OK ) { diff --git a/include/eda_base_frame.h b/include/eda_base_frame.h index d9759e2472..67d63e7071 100644 --- a/include/eda_base_frame.h +++ b/include/eda_base_frame.h @@ -48,8 +48,13 @@ #define KICAD_DEFAULT_DRAWFRAME_STYLE wxDEFAULT_FRAME_STYLE | wxWANTS_CHARS +#define VIEWER3D_FRAMENAME wxT( "Viewer3DFrameName" ) +#define QUALIFIED_VIEWER3D_FRAMENAME( parent ) \ + ( wxString( VIEWER3D_FRAMENAME ) + wxT( ":" ) + parent->GetName() ) + #define KICAD_MANAGER_FRAME_NAME wxT( "KicadFrame" ) + class wxChoice; class wxEvent; class wxFileName; diff --git a/include/widgets/color_swatch.h b/include/widgets/color_swatch.h index c4c245c93a..9b267071a3 100644 --- a/include/widgets/color_swatch.h +++ b/include/widgets/color_swatch.h @@ -33,7 +33,7 @@ #include #include - +#include enum SWATCH_SIZE { @@ -89,6 +89,11 @@ public: */ void SetSwatchBackground( KIGFX::COLOR4D aBackground ); + /** + * Fetch a reference to the user colors list. + */ + void SetUserColors( CUSTOM_COLORS_LIST* aUserColors ) { m_userColors = aUserColors; } + /** * @return the current swatch color */ @@ -104,6 +109,8 @@ public: void SetReadOnly( bool aReadOnly = true ) { m_readOnly = aReadOnly; } bool IsReadOnly() const { return m_readOnly; } + void SetSupportsOpacity( bool aSupportsOpacity ) { m_supportsOpacity = aSupportsOpacity; } + /// Registers a handler for when the user tries to interact with a read-only swatch void SetReadOnlyCallback( std::function aCallback ) { m_readOnlyCallback = aCallback; } @@ -118,19 +125,23 @@ private: */ void rePostEvent( wxEvent& aEvent ); - KIGFX::COLOR4D m_color; - KIGFX::COLOR4D m_background; - KIGFX::COLOR4D m_default; + KIGFX::COLOR4D m_color; + KIGFX::COLOR4D m_background; + KIGFX::COLOR4D m_default; + CUSTOM_COLORS_LIST* m_userColors; - wxStaticBitmap* m_swatch; + wxStaticBitmap* m_swatch; - wxSize m_size; - wxSize m_checkerboardSize; - KIGFX::COLOR4D m_checkerboardBg; + wxSize m_size; + wxSize m_checkerboardSize; + KIGFX::COLOR4D m_checkerboardBg; /// A read-only swatch won't show the color chooser dialog but otherwise works normally - bool m_readOnly; + bool m_readOnly; std::function m_readOnlyCallback; + + /// If opacity is not supported the color chooser dialog will be displayed without it + bool m_supportsOpacity; }; diff --git a/pcbnew/dialogs/panel_display_options.cpp b/pcbnew/dialogs/panel_display_options.cpp index 6e92522211..1eb5e91da9 100644 --- a/pcbnew/dialogs/panel_display_options.cpp +++ b/pcbnew/dialogs/panel_display_options.cpp @@ -40,8 +40,7 @@ static const UTIL::CFG_MAP }; -PANEL_DISPLAY_OPTIONS::PANEL_DISPLAY_OPTIONS( PCB_BASE_FRAME* aFrame, - PAGED_DIALOG* aParent ) : +PANEL_DISPLAY_OPTIONS::PANEL_DISPLAY_OPTIONS( PCB_BASE_FRAME* aFrame, PAGED_DIALOG* aParent ) : PANEL_DISPLAY_OPTIONS_BASE( aParent->GetTreebook() ), m_frame( aFrame ) { diff --git a/qa/qa_utils/mocks.cpp b/qa/qa_utils/mocks.cpp index 372c5b56f9..e43859553d 100644 --- a/qa/qa_utils/mocks.cpp +++ b/qa/qa_utils/mocks.cpp @@ -297,8 +297,6 @@ BEGIN_EVENT_TABLE( EDA_3D_VIEWER, EDA_BASE_FRAME ) EVT_TOOL_RANGE( ID_START_COMMAND_3D, ID_MENU_COMMAND_END, EDA_3D_VIEWER::Process_Special_Functions ) - EVT_TOOL( ID_TOOL_SET_VISIBLE_ITEMS, EDA_3D_VIEWER::Install3DViewOptionDialog ) - EVT_MENU( wxID_CLOSE, EDA_3D_VIEWER::Exit3DFrame ) EVT_MENU( ID_RENDER_CURRENT_VIEW, EDA_3D_VIEWER::OnRenderEngineSelection ) EVT_MENU( ID_DISABLE_RAY_TRACING, EDA_3D_VIEWER::OnDisableRayTracing )