Use enums for 3d Viewer settings instead of ints
This commit is contained in:
parent
59a495948e
commit
9e6446a8dc
|
@ -41,39 +41,37 @@ enum class ROTATION_DIR
|
||||||
Z_CCW
|
Z_CCW
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/// Camera types
|
/// Camera types
|
||||||
enum class CAMERA_TYPE
|
enum class CAMERA_TYPE
|
||||||
{
|
{
|
||||||
TRACKBALL
|
TRACKBALL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Do not modify the following enum numbers, they are saved in the config file and used in the UI
|
||||||
|
|
||||||
/// Grid types
|
/// Grid types
|
||||||
enum GRID3D_TYPE
|
enum class GRID3D_TYPE
|
||||||
{
|
{
|
||||||
NONE,
|
NONE = 0,
|
||||||
GRID_1MM,
|
GRID_1MM = 1,
|
||||||
GRID_2P5MM,
|
GRID_2P5MM = 2,
|
||||||
GRID_5MM,
|
GRID_5MM = 3,
|
||||||
GRID_10MM
|
GRID_10MM = 4
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/// Render engine mode
|
/// Render engine mode
|
||||||
enum RENDER_ENGINE
|
enum class RENDER_ENGINE
|
||||||
{
|
{
|
||||||
OPENGL,
|
OPENGL = 0,
|
||||||
RAYTRACING,
|
RAYTRACING = 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/// Render 3d model shape materials mode
|
/// Render 3d model shape materials mode
|
||||||
enum MATERIAL_MODE
|
enum class MATERIAL_MODE
|
||||||
{
|
{
|
||||||
NORMAL, ///< Use all material properties from model file
|
NORMAL = 0, ///< Use all material properties from model file
|
||||||
DIFFUSE_ONLY, ///< Use only diffuse material properties
|
DIFFUSE_ONLY = 1, ///< Use only diffuse material properties
|
||||||
CAD_MODE ///< Use a gray shading based on diffuse material
|
CAD_MODE = 2 ///< Use a gray shading based on diffuse material
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // _3D_ENUMS_H_
|
#endif // _3D_ENUMS_H_
|
||||||
|
|
|
@ -920,8 +920,8 @@ void RENDER_3D_OPENGL::load3dModels( REPORTER* aStatusReporter )
|
||||||
// only add it if the return is not NULL
|
// only add it if the return is not NULL
|
||||||
if( modelPtr )
|
if( modelPtr )
|
||||||
{
|
{
|
||||||
int materialMode = m_boardAdapter.m_Cfg->m_Render.material_mode;
|
MATERIAL_MODE materialMode = m_boardAdapter.m_Cfg->m_Render.material_mode;
|
||||||
MODEL_3D* model = new MODEL_3D( *modelPtr, (MATERIAL_MODE) materialMode );
|
MODEL_3D* model = new MODEL_3D( *modelPtr, materialMode );
|
||||||
|
|
||||||
m_3dModelMap[ fp_model.m_Filename ] = model;
|
m_3dModelMap[ fp_model.m_Filename ] = model;
|
||||||
}
|
}
|
||||||
|
|
|
@ -346,7 +346,7 @@ void EDA_3D_VIEWER_FRAME::Process_Special_Functions( wxCommandEvent &event )
|
||||||
|
|
||||||
void EDA_3D_VIEWER_FRAME::OnRenderEngineSelection( wxCommandEvent &event )
|
void EDA_3D_VIEWER_FRAME::OnRenderEngineSelection( wxCommandEvent &event )
|
||||||
{
|
{
|
||||||
int old_engine = m_boardAdapter.m_Cfg->m_Render.engine;
|
RENDER_ENGINE old_engine = m_boardAdapter.m_Cfg->m_Render.engine;
|
||||||
|
|
||||||
if( old_engine == RENDER_ENGINE::OPENGL )
|
if( old_engine == RENDER_ENGINE::OPENGL )
|
||||||
m_boardAdapter.m_Cfg->m_Render.engine = RENDER_ENGINE::RAYTRACING;
|
m_boardAdapter.m_Cfg->m_Render.engine = RENDER_ENGINE::RAYTRACING;
|
||||||
|
|
|
@ -37,25 +37,27 @@ EDA_3D_VIEWER_SETTINGS::EDA_3D_VIEWER_SETTINGS()
|
||||||
m_Render(),
|
m_Render(),
|
||||||
m_Camera()
|
m_Camera()
|
||||||
{
|
{
|
||||||
m_params.emplace_back( new PARAM<int>( "render.engine", &m_Render.engine,
|
m_params.emplace_back( new PARAM_ENUM<RENDER_ENGINE>( "render.engine", &m_Render.engine,
|
||||||
static_cast<int>( RENDER_ENGINE::OPENGL ),
|
RENDER_ENGINE::OPENGL,
|
||||||
static_cast<int>( RENDER_ENGINE::OPENGL ),
|
RENDER_ENGINE::OPENGL,
|
||||||
static_cast<int>( RENDER_ENGINE::RAYTRACING ) ) );
|
RENDER_ENGINE::RAYTRACING ) );
|
||||||
|
|
||||||
m_params.emplace_back( new PARAM<int>( "render.grid_type", &m_Render.grid_type,
|
m_params.emplace_back( new PARAM_ENUM<GRID3D_TYPE>( "render.grid_type", &m_Render.grid_type,
|
||||||
static_cast<int>( GRID3D_TYPE::NONE ),
|
GRID3D_TYPE::NONE,
|
||||||
static_cast<int>( GRID3D_TYPE::NONE ),
|
GRID3D_TYPE::NONE,
|
||||||
static_cast<int>( GRID3D_TYPE::GRID_10MM ) ) );
|
GRID3D_TYPE::GRID_10MM ) );
|
||||||
|
|
||||||
m_params.emplace_back( new PARAM<int>( "render.material_mode", &m_Render.material_mode,
|
m_params.emplace_back( new PARAM_ENUM<MATERIAL_MODE>( "render.material_mode",
|
||||||
static_cast<int>( MATERIAL_MODE::NORMAL ),
|
&m_Render.material_mode,
|
||||||
static_cast<int>( MATERIAL_MODE::NORMAL ),
|
MATERIAL_MODE::NORMAL,
|
||||||
static_cast<int>( MATERIAL_MODE::CAD_MODE ) ) );
|
MATERIAL_MODE::NORMAL,
|
||||||
|
MATERIAL_MODE::CAD_MODE ) );
|
||||||
|
|
||||||
m_params.emplace_back( new PARAM<int>( "render.opengl_AA_mode", &m_Render.opengl_AA_mode,
|
m_params.emplace_back( new PARAM_ENUM<ANTIALIASING_MODE>( "render.opengl_AA_mode",
|
||||||
static_cast<int>( ANTIALIASING_MODE::AA_8X ),
|
&m_Render.opengl_AA_mode,
|
||||||
static_cast<int>( ANTIALIASING_MODE::AA_NONE ),
|
ANTIALIASING_MODE::AA_8X,
|
||||||
static_cast<int>( ANTIALIASING_MODE::AA_8X ) ) );
|
ANTIALIASING_MODE::AA_NONE,
|
||||||
|
ANTIALIASING_MODE::AA_8X ) );
|
||||||
|
|
||||||
m_params.emplace_back( new PARAM<COLOR4D>( "render.opengl_selection_color",
|
m_params.emplace_back( new PARAM<COLOR4D>( "render.opengl_selection_color",
|
||||||
&m_Render.opengl_selection_color,
|
&m_Render.opengl_selection_color,
|
||||||
|
|
|
@ -21,19 +21,23 @@
|
||||||
#ifndef EDA_3D_VIEWER_SETTINGS_H_
|
#ifndef EDA_3D_VIEWER_SETTINGS_H_
|
||||||
#define EDA_3D_VIEWER_SETTINGS_H_
|
#define EDA_3D_VIEWER_SETTINGS_H_
|
||||||
|
|
||||||
|
#include <3d_enums.h>
|
||||||
|
#include <common_ogl/ogl_attr_list.h>
|
||||||
|
#include <plugins/3dapi/xv3d_types.h>
|
||||||
#include <settings/app_settings.h>
|
#include <settings/app_settings.h>
|
||||||
#include <settings/parameters.h>
|
#include <settings/parameters.h>
|
||||||
#include <plugins/3dapi/xv3d_types.h>
|
|
||||||
|
|
||||||
class EDA_3D_VIEWER_SETTINGS : public APP_SETTINGS_BASE
|
class EDA_3D_VIEWER_SETTINGS : public APP_SETTINGS_BASE
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
struct RENDER_SETTINGS
|
struct RENDER_SETTINGS
|
||||||
{
|
{
|
||||||
int engine;
|
RENDER_ENGINE engine;
|
||||||
int grid_type;
|
GRID3D_TYPE grid_type;
|
||||||
int opengl_AA_mode;
|
ANTIALIASING_MODE opengl_AA_mode;
|
||||||
int material_mode;
|
MATERIAL_MODE material_mode;
|
||||||
|
|
||||||
bool opengl_AA_disableOnMove;
|
bool opengl_AA_disableOnMove;
|
||||||
bool opengl_thickness_disableOnMove;
|
bool opengl_thickness_disableOnMove;
|
||||||
bool opengl_vias_disableOnMove;
|
bool opengl_vias_disableOnMove;
|
||||||
|
|
|
@ -33,10 +33,11 @@
|
||||||
/// Anti-aliasing options
|
/// Anti-aliasing options
|
||||||
enum class ANTIALIASING_MODE
|
enum class ANTIALIASING_MODE
|
||||||
{
|
{
|
||||||
AA_NONE,
|
// Do not change these numbers, they are stored in the config file
|
||||||
AA_2X,
|
AA_NONE = 0,
|
||||||
AA_4X,
|
AA_2X = 1,
|
||||||
AA_8X
|
AA_4X = 2,
|
||||||
|
AA_8X = 3
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <3d_enums.h>
|
||||||
#include <pgm_base.h>
|
#include <pgm_base.h>
|
||||||
#include <settings/settings_manager.h>
|
#include <settings/settings_manager.h>
|
||||||
#include <eda_3d_viewer_settings.h>
|
#include <eda_3d_viewer_settings.h>
|
||||||
|
@ -57,7 +58,7 @@ void PANEL_3D_DISPLAY_OPTIONS::loadViewSettings( EDA_3D_VIEWER_SETTINGS* aCfg )
|
||||||
m_checkBoxClipSilkOnViaAnnulus->SetValue( aCfg->m_Render.clip_silk_on_via_annulus );
|
m_checkBoxClipSilkOnViaAnnulus->SetValue( aCfg->m_Render.clip_silk_on_via_annulus );
|
||||||
m_checkBoxRenderPlatedPadsAsPlated->SetValue( aCfg->m_Render.renderPlatedPadsAsPlated );
|
m_checkBoxRenderPlatedPadsAsPlated->SetValue( aCfg->m_Render.renderPlatedPadsAsPlated );
|
||||||
|
|
||||||
m_materialProperties->SetSelection( aCfg->m_Render.material_mode );
|
m_materialProperties->SetSelection( static_cast<int>( aCfg->m_Render.material_mode ) );
|
||||||
|
|
||||||
// Camera Options
|
// Camera Options
|
||||||
m_checkBoxEnableAnimation->SetValue( aCfg->m_Camera.animation_enabled );
|
m_checkBoxEnableAnimation->SetValue( aCfg->m_Camera.animation_enabled );
|
||||||
|
@ -92,7 +93,7 @@ bool PANEL_3D_DISPLAY_OPTIONS::TransferDataFromWindow()
|
||||||
cfg->m_Render.clip_silk_on_via_annulus = m_checkBoxClipSilkOnViaAnnulus->GetValue();
|
cfg->m_Render.clip_silk_on_via_annulus = m_checkBoxClipSilkOnViaAnnulus->GetValue();
|
||||||
cfg->m_Render.renderPlatedPadsAsPlated = m_checkBoxRenderPlatedPadsAsPlated->GetValue();
|
cfg->m_Render.renderPlatedPadsAsPlated = m_checkBoxRenderPlatedPadsAsPlated->GetValue();
|
||||||
|
|
||||||
cfg->m_Render.material_mode = m_materialProperties->GetSelection();
|
cfg->m_Render.material_mode = static_cast<MATERIAL_MODE>( m_materialProperties->GetSelection() );
|
||||||
|
|
||||||
// Set Layer visibility
|
// Set Layer visibility
|
||||||
cfg->m_Render.show_silkscreen = m_checkBoxSilkscreen->GetValue();
|
cfg->m_Render.show_silkscreen = m_checkBoxSilkscreen->GetValue();
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <3d_enums.h>
|
||||||
#include <pgm_base.h>
|
#include <pgm_base.h>
|
||||||
#include <settings/settings_manager.h>
|
#include <settings/settings_manager.h>
|
||||||
#include <eda_3d_viewer_settings.h>
|
#include <eda_3d_viewer_settings.h>
|
||||||
|
@ -43,7 +44,7 @@ void PANEL_3D_OPENGL_OPTIONS::loadSettings( EDA_3D_VIEWER_SETTINGS* aCfg )
|
||||||
m_checkBoxBoundingBoxes->SetValue( aCfg->m_Render.opengl_show_model_bbox );
|
m_checkBoxBoundingBoxes->SetValue( aCfg->m_Render.opengl_show_model_bbox );
|
||||||
m_checkBoxHighlightOnRollOver->SetValue( aCfg->m_Render.opengl_highlight_on_rollover );
|
m_checkBoxHighlightOnRollOver->SetValue( aCfg->m_Render.opengl_highlight_on_rollover );
|
||||||
|
|
||||||
m_choiceAntiAliasing->SetSelection( aCfg->m_Render.opengl_AA_mode );
|
m_choiceAntiAliasing->SetSelection( static_cast<int>( aCfg->m_Render.opengl_AA_mode ) );
|
||||||
m_selectionColorSwatch->SetSwatchColor( aCfg->m_Render.opengl_selection_color, false );
|
m_selectionColorSwatch->SetSwatchColor( aCfg->m_Render.opengl_selection_color, false );
|
||||||
|
|
||||||
m_checkBoxDisableAAMove->SetValue( aCfg->m_Render.opengl_AA_disableOnMove );
|
m_checkBoxDisableAAMove->SetValue( aCfg->m_Render.opengl_AA_disableOnMove );
|
||||||
|
@ -71,7 +72,7 @@ bool PANEL_3D_OPENGL_OPTIONS::TransferDataFromWindow()
|
||||||
cfg->m_Render.opengl_show_model_bbox = m_checkBoxBoundingBoxes->GetValue();
|
cfg->m_Render.opengl_show_model_bbox = m_checkBoxBoundingBoxes->GetValue();
|
||||||
cfg->m_Render.opengl_highlight_on_rollover = m_checkBoxHighlightOnRollOver->GetValue();
|
cfg->m_Render.opengl_highlight_on_rollover = m_checkBoxHighlightOnRollOver->GetValue();
|
||||||
|
|
||||||
cfg->m_Render.opengl_AA_mode = m_choiceAntiAliasing->GetSelection();
|
cfg->m_Render.opengl_AA_mode = static_cast<ANTIALIASING_MODE>( m_choiceAntiAliasing->GetSelection() );
|
||||||
cfg->m_Render.opengl_selection_color = m_selectionColorSwatch->GetSwatchColor();
|
cfg->m_Render.opengl_selection_color = m_selectionColorSwatch->GetSwatchColor();
|
||||||
|
|
||||||
cfg->m_Render.opengl_AA_disableOnMove = m_checkBoxDisableAAMove->GetValue();
|
cfg->m_Render.opengl_AA_disableOnMove = m_checkBoxDisableAAMove->GetValue();
|
||||||
|
|
Loading…
Reference in New Issue