12PANEL_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 )
 
   14    wxBoxSizer* bSizerMain;
 
   15    bSizerMain = 
new wxBoxSizer( wxVERTICAL );
 
   17    m_renderingLabel = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Rendering Options"), wxDefaultPosition, wxDefaultSize, 0 );
 
   21    m_staticline1 = 
new wxStaticLine( 
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
 
   22    bSizerMain->Add( 
m_staticline1, 0, wxEXPAND|wxTOP|wxBOTTOM, 2 );
 
   25    bSizerMain->Add( 0, 5, 0, wxEXPAND, 5 );
 
   28    gSizer1 = 
new wxGridSizer( 0, 1, 0, 20 );
 
   34    m_cbRaytracing_addFloor = 
new wxCheckBox( 
this, wxID_ANY, 
_(
"Add floor (slow)"), wxDefaultPosition, wxDefaultSize, 0 );
 
   42    m_cbRaytracing_postProcessing = 
new wxCheckBox( 
this, wxID_ANY, 
_(
"Screen space ambient occlusions and global illumination reflections (slow)"), wxDefaultPosition, wxDefaultSize, 0 );
 
   47    bSizerMain->Add( gSizer1, 0, wxEXPAND|wxTOP|wxBOTTOM|wxLEFT, 5 );
 
   49    wxFlexGridSizer* fgSizer111;
 
   50    fgSizer111 = 
new wxFlexGridSizer( 0, 4, 4, 8 );
 
   51    fgSizer111->SetFlexibleDirection( wxBOTH );
 
   52    fgSizer111->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
 
   55    fgSizer111->Add( 0, 0, 1, wxEXPAND, 5 );
 
   57    m_staticText19 = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Number of Samples"), wxDefaultPosition, wxDefaultSize, 0 );
 
   59    fgSizer111->Add( 
m_staticText19, 0, wxLEFT|wxRIGHT|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5 );
 
   61    m_staticText201 = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Spread Factor %"), wxDefaultPosition, wxDefaultSize, 0 );
 
   63    fgSizer111->Add( 
m_staticText201, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
 
   65    m_staticText211 = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Recursion Level"), wxDefaultPosition, wxDefaultSize, 0 );
 
   67    fgSizer111->Add( 
m_staticText211, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
 
   73    m_numSamples_Shadows = 
new wxSpinCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, 1, 64, 0 );
 
   74    m_numSamples_Shadows->SetToolTip( 
_(
"Number of rays that will be cast, into light direction, to evaluate a shadow point") );
 
   78    m_spreadFactor_Shadows = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
   82    fgSizer111->Add( 0, 0, 1, wxEXPAND, 5 );
 
   88    m_numSamples_Reflections = 
new wxSpinCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, 1, 32, 0 );
 
   96    m_recursiveLevel_Reflections = 
new wxSpinCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, 1, 5, 0 );
 
   97    m_recursiveLevel_Reflections->SetToolTip( 
_(
"Interactions number that a ray can travel through objects. (higher number of levels improve results, specially on very transparent boards)") );
 
  105    m_numSamples_Refractions = 
new wxSpinCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, 1, 5, 0 );
 
  113    m_recursiveLevel_Refractions = 
new wxSpinCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize( 124,-1 ), wxSP_ARROW_KEYS, 1, 7, 0 );
 
  119    bSizerMain->Add( fgSizer111, 0, wxEXPAND|wxALL, 5 );
 
  122    bSizerMain->Add( 0, 20, 0, wxEXPAND, 5 );
 
  124    m_lightsLabel = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Lights Configuration"), wxDefaultPosition, wxDefaultSize, 0 );
 
  126    bSizerMain->Add( 
m_lightsLabel, 0, wxTOP|wxRIGHT|wxLEFT, 13 );
 
  128    m_staticline2 = 
new wxStaticLine( 
this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
 
  129    bSizerMain->Add( 
m_staticline2, 0, wxEXPAND|wxTOP|wxBOTTOM, 2 );
 
  131    wxBoxSizer* bLightsSizer;
 
  132    bLightsSizer = 
new wxBoxSizer( wxVERTICAL );
 
  134    wxBoxSizer* bTopLineSizer;
 
  135    bTopLineSizer = 
new wxBoxSizer( wxHORIZONTAL );
 
  137    m_staticText17 = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Ambient camera light:"), wxDefaultPosition, wxDefaultSize, 0 );
 
  139    bTopLineSizer->Add( 
m_staticText17, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
 
  147    bTopLineSizer->Add( 20, 0, 1, 0, 5 );
 
  149    m_staticText5 = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Top light:"), wxDefaultPosition, wxDefaultSize, 0 );
 
  151    bTopLineSizer->Add( 
m_staticText5, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
 
  159    bTopLineSizer->Add( 20, 0, 1, 0, 5 );
 
  161    m_staticText6 = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Bottom light:"), wxDefaultPosition, wxDefaultSize, 0 );
 
  163    bTopLineSizer->Add( 
m_staticText6, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
 
  171    bTopLineSizer->Add( 20, 0, 0, wxEXPAND, 5 );
 
  174    bLightsSizer->Add( bTopLineSizer, 0, wxEXPAND|wxALL, 5 );
 
  176    wxFlexGridSizer* fgSizer11;
 
  177    fgSizer11 = 
new wxFlexGridSizer( 0, 9, 3, 0 );
 
  178    fgSizer11->SetFlexibleDirection( wxHORIZONTAL );
 
  179    fgSizer11->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
 
  182    fgSizer11->Add( 0, 0, 0, 0, 5 );
 
  185    fgSizer11->Add( 0, 0, 0, 0, 5 );
 
  187    m_staticText20 = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Elevation (deg)"), wxDefaultPosition, wxDefaultSize, 0 );
 
  189    fgSizer11->Add( 
m_staticText20, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL, 5 );
 
  191    m_staticText18 = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Azimuth (deg)"), wxDefaultPosition, wxDefaultSize, 0 );
 
  193    fgSizer11->Add( 
m_staticText18, 0, wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
 
  196    fgSizer11->Add( 30, 0, 0, 0, 5 );
 
  199    fgSizer11->Add( 0, 0, 0, 0, 5 );
 
  202    fgSizer11->Add( 0, 0, 0, 0, 5 );
 
  204    m_staticText27 = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Elevation (deg)"), wxDefaultPosition, wxDefaultSize, 0 );
 
  206    fgSizer11->Add( 
m_staticText27, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 );
 
  208    m_staticText28 = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Azimuth (deg)"), wxDefaultPosition, wxDefaultSize, 0 );
 
  210    fgSizer11->Add( 
m_staticText28, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_CENTER_HORIZONTAL|wxRIGHT|wxLEFT, 5 );
 
  212    m_staticText21 = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Light 1:"), wxDefaultPosition, wxDefaultSize, 0 );
 
  214    fgSizer11->Add( 
m_staticText21, 0, wxALIGN_CENTER|wxALIGN_CENTER_VERTICAL|wxLEFT, 5 );
 
  221    m_lightElevation1 = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  222    fgSizer11->Add( 
m_lightElevation1, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT|wxEXPAND, 5 );
 
  224    m_lightAzimuth1 = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  225    fgSizer11->Add( 
m_lightAzimuth1, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT|wxEXPAND, 5 );
 
  228    fgSizer11->Add( 10, 0, 0, 0, 5 );
 
  230    m_staticText22 = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Light 5:"), wxDefaultPosition, wxDefaultSize, 0 );
 
  239    m_lightElevation5 = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  240    fgSizer11->Add( 
m_lightElevation5, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
 
  242    m_lightAzimuth5 = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  243    fgSizer11->Add( 
m_lightAzimuth5, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
 
  245    m_staticText23 = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Light 2:"), wxDefaultPosition, wxDefaultSize, 0 );
 
  254    m_lightElevation2 = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  255    fgSizer11->Add( 
m_lightElevation2, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
 
  257    m_lightAzimuth2 = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  258    fgSizer11->Add( 
m_lightAzimuth2, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
 
  261    fgSizer11->Add( 0, 0, 0, 0, 5 );
 
  263    m_staticText24 = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Light 6:"), wxDefaultPosition, wxDefaultSize, 0 );
 
  272    m_lightElevation6 = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  273    fgSizer11->Add( 
m_lightElevation6, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT|wxEXPAND, 5 );
 
  275    m_lightAzimuth6 = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  276    fgSizer11->Add( 
m_lightAzimuth6, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT|wxEXPAND, 5 );
 
  278    m_staticText25 = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Light 3:"), wxDefaultPosition, wxDefaultSize, 0 );
 
  287    m_lightElevation3 = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  288    fgSizer11->Add( 
m_lightElevation3, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT|wxEXPAND, 5 );
 
  290    m_lightAzimuth3 = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  291    fgSizer11->Add( 
m_lightAzimuth3, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
 
  294    fgSizer11->Add( 0, 0, 0, 0, 5 );
 
  296    m_staticText26 = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Light 7:"), wxDefaultPosition, wxDefaultSize, 0 );
 
  305    m_lightElevation7 = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  306    fgSizer11->Add( 
m_lightElevation7, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
 
  308    m_lightAzimuth7 = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  309    fgSizer11->Add( 
m_lightAzimuth7, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
 
  311    m_staticText171 = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Light 4:"), wxDefaultPosition, wxDefaultSize, 0 );
 
  320    m_lightElevation4 = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  321    fgSizer11->Add( 
m_lightElevation4, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
 
  323    m_lightAzimuth4 = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  324    fgSizer11->Add( 
m_lightAzimuth4, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
 
  327    fgSizer11->Add( 0, 0, 0, 0, 5 );
 
  329    m_staticText181 = 
new wxStaticText( 
this, wxID_ANY, 
_(
"Light 8:"), wxDefaultPosition, wxDefaultSize, 0 );
 
  338    m_lightElevation8 = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  339    fgSizer11->Add( 
m_lightElevation8, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
 
  341    m_lightAzimuth8 = 
new wxTextCtrl( 
this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
 
  342    fgSizer11->Add( 
m_lightAzimuth8, 0, wxALIGN_CENTER_VERTICAL|wxEXPAND|wxRIGHT|wxLEFT, 5 );
 
  345    bLightsSizer->Add( fgSizer11, 0, wxALL, 5 );
 
  348    bSizerMain->Add( bLightsSizer, 0, 0, 5 );
 
  351    this->SetSizer( bSizerMain );
 
  353    bSizerMain->Fit( 
this );