3D-Viewer: add an option to enable render of plated pads
by default this option is disabled and will render as in previous version.
This commit is contained in:
parent
9544c58bd7
commit
0ab82ef66a
|
@ -64,7 +64,10 @@ void BOARD_ADAPTER::destroyLayers()
|
||||||
}
|
}
|
||||||
|
|
||||||
delete m_F_Cu_PlatedPads_poly;
|
delete m_F_Cu_PlatedPads_poly;
|
||||||
|
m_F_Cu_PlatedPads_poly = nullptr;
|
||||||
|
|
||||||
delete m_B_Cu_PlatedPads_poly;
|
delete m_B_Cu_PlatedPads_poly;
|
||||||
|
m_B_Cu_PlatedPads_poly = nullptr;
|
||||||
|
|
||||||
if( !m_layers_inner_holes_poly.empty() )
|
if( !m_layers_inner_holes_poly.empty() )
|
||||||
{
|
{
|
||||||
|
@ -91,7 +94,10 @@ void BOARD_ADAPTER::destroyLayers()
|
||||||
}
|
}
|
||||||
|
|
||||||
delete m_platedpads_container2D_F_Cu;
|
delete m_platedpads_container2D_F_Cu;
|
||||||
|
m_platedpads_container2D_F_Cu = nullptr;
|
||||||
|
|
||||||
delete m_platedpads_container2D_B_Cu;
|
delete m_platedpads_container2D_B_Cu;
|
||||||
|
m_platedpads_container2D_B_Cu = nullptr;
|
||||||
|
|
||||||
if( !m_layers_holes2D.empty() )
|
if( !m_layers_holes2D.empty() )
|
||||||
{
|
{
|
||||||
|
@ -203,12 +209,16 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( GetFlag( FL_RENDER_PLATED_PADS_AS_PLATED ) )
|
||||||
|
{
|
||||||
m_F_Cu_PlatedPads_poly = new SHAPE_POLY_SET;
|
m_F_Cu_PlatedPads_poly = new SHAPE_POLY_SET;
|
||||||
m_B_Cu_PlatedPads_poly = new SHAPE_POLY_SET;
|
m_B_Cu_PlatedPads_poly = new SHAPE_POLY_SET;
|
||||||
|
|
||||||
m_platedpads_container2D_F_Cu = new CBVHCONTAINER2D;
|
m_platedpads_container2D_F_Cu = new CBVHCONTAINER2D;
|
||||||
m_platedpads_container2D_B_Cu = new CBVHCONTAINER2D;
|
m_platedpads_container2D_B_Cu = new CBVHCONTAINER2D;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
if( aStatusReporter )
|
if( aStatusReporter )
|
||||||
aStatusReporter->Report( _( "Create tracks and vias" ) );
|
aStatusReporter->Report( _( "Create tracks and vias" ) );
|
||||||
|
|
||||||
|
@ -508,6 +518,8 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const bool renderPlatedPadsAsPlated = GetFlag( FL_RENDER_PLATED_PADS_AS_PLATED );
|
||||||
|
|
||||||
// Add modules PADs objects to containers
|
// Add modules PADs objects to containers
|
||||||
for( PCB_LAYER_ID curr_layer_id : layer_id )
|
for( PCB_LAYER_ID curr_layer_id : layer_id )
|
||||||
{
|
{
|
||||||
|
@ -525,7 +537,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||||
curr_layer_id,
|
curr_layer_id,
|
||||||
0,
|
0,
|
||||||
true,
|
true,
|
||||||
true,
|
renderPlatedPadsAsPlated,
|
||||||
false );
|
false );
|
||||||
|
|
||||||
// Micro-wave modules may have items on copper layers
|
// Micro-wave modules may have items on copper layers
|
||||||
|
@ -536,6 +548,8 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( renderPlatedPadsAsPlated )
|
||||||
|
{
|
||||||
// ADD PLATED PADS
|
// ADD PLATED PADS
|
||||||
for( MODULE* module : m_board->Modules() )
|
for( MODULE* module : m_board->Modules() )
|
||||||
{
|
{
|
||||||
|
@ -555,6 +569,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||||
false,
|
false,
|
||||||
true );
|
true );
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Add modules PADs poly contourns (vertical outlines)
|
// Add modules PADs poly contourns (vertical outlines)
|
||||||
if( GetFlag( FL_RENDER_OPENGL_COPPER_THICKNESS )
|
if( GetFlag( FL_RENDER_OPENGL_COPPER_THICKNESS )
|
||||||
|
@ -573,12 +588,15 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||||
// has same shape as its hole
|
// has same shape as its hole
|
||||||
module->TransformPadsShapesWithClearanceToPolygon( curr_layer_id, *layerPoly,
|
module->TransformPadsShapesWithClearanceToPolygon( curr_layer_id, *layerPoly,
|
||||||
0, ARC_HIGH_DEF, true,
|
0, ARC_HIGH_DEF, true,
|
||||||
true, false );
|
renderPlatedPadsAsPlated,
|
||||||
|
false );
|
||||||
|
|
||||||
transformGraphicModuleEdgeToPolygonSet( module, curr_layer_id, *layerPoly );
|
transformGraphicModuleEdgeToPolygonSet( module, curr_layer_id, *layerPoly );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if( renderPlatedPadsAsPlated )
|
||||||
|
{
|
||||||
// ADD PLATED PADS contourns
|
// ADD PLATED PADS contourns
|
||||||
for( auto module : m_board->Modules() )
|
for( auto module : m_board->Modules() )
|
||||||
{
|
{
|
||||||
|
@ -595,6 +613,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||||
//transformGraphicModuleEdgeToPolygonSet( module, B_Cu, *m_B_Cu_PlatedPads_poly );
|
//transformGraphicModuleEdgeToPolygonSet( module, B_Cu, *m_B_Cu_PlatedPads_poly );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// Add graphic item on copper layers to object containers
|
// Add graphic item on copper layers to object containers
|
||||||
|
@ -760,6 +779,8 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||||
|
|
||||||
if( GetFlag( FL_RENDER_OPENGL_COPPER_THICKNESS )
|
if( GetFlag( FL_RENDER_OPENGL_COPPER_THICKNESS )
|
||||||
&& ( m_render_engine == RENDER_ENGINE::OPENGL_LEGACY ) )
|
&& ( m_render_engine == RENDER_ENGINE::OPENGL_LEGACY ) )
|
||||||
|
{
|
||||||
|
if( GetFlag( FL_RENDER_PLATED_PADS_AS_PLATED ) )
|
||||||
{
|
{
|
||||||
if( m_F_Cu_PlatedPads_poly && ( m_layers_poly.find( F_Cu ) != m_layers_poly.end() ) )
|
if( m_F_Cu_PlatedPads_poly && ( m_layers_poly.find( F_Cu ) != m_layers_poly.end() ) )
|
||||||
{
|
{
|
||||||
|
@ -776,8 +797,13 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||||
|
|
||||||
m_B_Cu_PlatedPads_poly->Simplify( SHAPE_POLY_SET::PM_FAST );
|
m_B_Cu_PlatedPads_poly->Simplify( SHAPE_POLY_SET::PM_FAST );
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector< PCB_LAYER_ID > &selected_layer_id = layer_id;
|
||||||
std::vector< PCB_LAYER_ID > layer_id_without_F_and_B;
|
std::vector< PCB_LAYER_ID > layer_id_without_F_and_B;
|
||||||
|
|
||||||
|
if( GetFlag( FL_RENDER_PLATED_PADS_AS_PLATED ) )
|
||||||
|
{
|
||||||
layer_id_without_F_and_B.clear();
|
layer_id_without_F_and_B.clear();
|
||||||
layer_id_without_F_and_B.reserve( layer_id.size() );
|
layer_id_without_F_and_B.reserve( layer_id.size() );
|
||||||
|
|
||||||
|
@ -788,23 +814,26 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||||
layer_id_without_F_and_B.push_back( layer_id[i] );
|
layer_id_without_F_and_B.push_back( layer_id[i] );
|
||||||
}
|
}
|
||||||
|
|
||||||
if( layer_id_without_F_and_B.size() > 0 )
|
selected_layer_id = layer_id_without_F_and_B;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( selected_layer_id.size() > 0 )
|
||||||
{
|
{
|
||||||
std::atomic<size_t> nextItem( 0 );
|
std::atomic<size_t> nextItem( 0 );
|
||||||
std::atomic<size_t> threadsFinished( 0 );
|
std::atomic<size_t> threadsFinished( 0 );
|
||||||
|
|
||||||
size_t parallelThreadCount = std::min<size_t>(
|
size_t parallelThreadCount = std::min<size_t>(
|
||||||
std::max<size_t>( std::thread::hardware_concurrency(), 2 ),
|
std::max<size_t>( std::thread::hardware_concurrency(), 2 ),
|
||||||
layer_id_without_F_and_B.size() );
|
selected_layer_id.size() );
|
||||||
for( size_t ii = 0; ii < parallelThreadCount; ++ii )
|
for( size_t ii = 0; ii < parallelThreadCount; ++ii )
|
||||||
{
|
{
|
||||||
std::thread t = std::thread( [&nextItem, &threadsFinished, &layer_id_without_F_and_B, this]()
|
std::thread t = std::thread( [&nextItem, &threadsFinished, &selected_layer_id, this]()
|
||||||
{
|
{
|
||||||
for( size_t i = nextItem.fetch_add( 1 );
|
for( size_t i = nextItem.fetch_add( 1 );
|
||||||
i < layer_id_without_F_and_B.size();
|
i < selected_layer_id.size();
|
||||||
i = nextItem.fetch_add( 1 ) )
|
i = nextItem.fetch_add( 1 ) )
|
||||||
{
|
{
|
||||||
auto layerPoly = m_layers_poly.find( layer_id_without_F_and_B[i] );
|
auto layerPoly = m_layers_poly.find( selected_layer_id[i] );
|
||||||
|
|
||||||
if( layerPoly != m_layers_poly.end() )
|
if( layerPoly != m_layers_poly.end() )
|
||||||
// This will make a union of all added contours
|
// This will make a union of all added contours
|
||||||
|
|
|
@ -51,6 +51,7 @@ enum DISPLAY3D_FLG
|
||||||
FL_USE_REALISTIC_MODE,
|
FL_USE_REALISTIC_MODE,
|
||||||
FL_SUBTRACT_MASK_FROM_SILK,
|
FL_SUBTRACT_MASK_FROM_SILK,
|
||||||
FL_CLIP_SILK_ON_VIA_ANNULUS,
|
FL_CLIP_SILK_ON_VIA_ANNULUS,
|
||||||
|
FL_RENDER_PLATED_PADS_AS_PLATED,
|
||||||
|
|
||||||
// OpenGL options
|
// OpenGL options
|
||||||
FL_RENDER_OPENGL_SHOW_MODEL_BBOX,
|
FL_RENDER_OPENGL_SHOW_MODEL_BBOX,
|
||||||
|
|
|
@ -622,10 +622,13 @@ void C3D_RENDER_OGL_LEGACY::reload( REPORTER* aStatusReporter, REPORTER* aWarnin
|
||||||
|
|
||||||
}// for each layer on
|
}// for each layer on
|
||||||
|
|
||||||
|
if( m_boardAdapter.GetFlag( FL_RENDER_PLATED_PADS_AS_PLATED ) )
|
||||||
|
{
|
||||||
m_ogl_disp_lists_platedPads_F_Cu = generateLayerListFromContainer( m_boardAdapter.GetPlatedPads_Front(),
|
m_ogl_disp_lists_platedPads_F_Cu = generateLayerListFromContainer( m_boardAdapter.GetPlatedPads_Front(),
|
||||||
m_boardAdapter.GetPolyPlatedPads_Front(), F_Cu );
|
m_boardAdapter.GetPolyPlatedPads_Front(), F_Cu );
|
||||||
m_ogl_disp_lists_platedPads_B_Cu = generateLayerListFromContainer( m_boardAdapter.GetPlatedPads_Back(),
|
m_ogl_disp_lists_platedPads_B_Cu = generateLayerListFromContainer( m_boardAdapter.GetPlatedPads_Back(),
|
||||||
m_boardAdapter.GetPolyPlatedPads_Back(), B_Cu );
|
m_boardAdapter.GetPolyPlatedPads_Back(), B_Cu );
|
||||||
|
}
|
||||||
|
|
||||||
// Load 3D models
|
// Load 3D models
|
||||||
// /////////////////////////////////////////////////////////////////////////
|
// /////////////////////////////////////////////////////////////////////////
|
||||||
|
|
|
@ -733,6 +733,10 @@ bool C3D_RENDER_OGL_LEGACY::Redraw(
|
||||||
|
|
||||||
if( (layer_id >= F_Cu) && (layer_id <= B_Cu) )
|
if( (layer_id >= F_Cu) && (layer_id <= B_Cu) )
|
||||||
{
|
{
|
||||||
|
if( !m_boardAdapter.GetFlag( FL_USE_REALISTIC_MODE ) ||
|
||||||
|
!m_boardAdapter.GetFlag( FL_RENDER_PLATED_PADS_AS_PLATED ) )
|
||||||
|
set_layer_material( layer_id );
|
||||||
|
else
|
||||||
setCopperMaterial();
|
setCopperMaterial();
|
||||||
|
|
||||||
if( skipRenderHoles )
|
if( skipRenderHoles )
|
||||||
|
@ -1082,7 +1086,11 @@ void C3D_RENDER_OGL_LEGACY::ogl_free_all_display_lists()
|
||||||
m_ogl_disp_lists_layers.clear();
|
m_ogl_disp_lists_layers.clear();
|
||||||
|
|
||||||
delete m_ogl_disp_lists_platedPads_F_Cu;
|
delete m_ogl_disp_lists_platedPads_F_Cu;
|
||||||
|
m_ogl_disp_lists_platedPads_F_Cu = nullptr;
|
||||||
|
|
||||||
delete m_ogl_disp_lists_platedPads_B_Cu;
|
delete m_ogl_disp_lists_platedPads_B_Cu;
|
||||||
|
m_ogl_disp_lists_platedPads_B_Cu = nullptr;
|
||||||
|
|
||||||
|
|
||||||
for( MAP_OGL_DISP_LISTS::const_iterator ii = m_ogl_disp_lists_layers_holes_outer.begin();
|
for( MAP_OGL_DISP_LISTS::const_iterator ii = m_ogl_disp_lists_layers_holes_outer.begin();
|
||||||
ii != m_ogl_disp_lists_layers_holes_outer.end();
|
ii != m_ogl_disp_lists_layers_holes_outer.end();
|
||||||
|
|
|
@ -703,18 +703,20 @@ void C3D_RENDER_RAYTRACING::reload( REPORTER* aStatusReporter, REPORTER* aWarnin
|
||||||
}// for each layer on map
|
}// for each layer on map
|
||||||
|
|
||||||
// Create plated copper
|
// Create plated copper
|
||||||
|
if( m_boardAdapter.GetFlag( FL_RENDER_PLATED_PADS_AS_PLATED ) )
|
||||||
|
{
|
||||||
SFVEC3F layerColor_F_Cu = m_boardAdapter.GetLayerColor( F_Cu );
|
SFVEC3F layerColor_F_Cu = m_boardAdapter.GetLayerColor( F_Cu );
|
||||||
SFVEC3F layerColor_B_Cu = m_boardAdapter.GetLayerColor( B_Cu );
|
SFVEC3F layerColor_B_Cu = m_boardAdapter.GetLayerColor( B_Cu );
|
||||||
|
|
||||||
if( m_boardAdapter.GetFlag( FL_USE_REALISTIC_MODE ) )
|
if( m_boardAdapter.GetFlag( FL_USE_REALISTIC_MODE ) )
|
||||||
{
|
{
|
||||||
layerColor_F_Cu = m_boardAdapter.m_CopperColor;;
|
layerColor_F_Cu = m_boardAdapter.m_CopperColor;
|
||||||
layerColor_B_Cu = layerColor_F_Cu;
|
layerColor_B_Cu = layerColor_F_Cu;
|
||||||
}
|
}
|
||||||
|
|
||||||
createItemsFromContainer( m_boardAdapter.GetPlatedPads_Front(), F_Cu, &m_materials.m_Copper, layerColor_F_Cu, +m_boardAdapter.GetCopperThickness3DU() * 0.1f );
|
createItemsFromContainer( m_boardAdapter.GetPlatedPads_Front(), F_Cu, &m_materials.m_Copper, layerColor_F_Cu, +m_boardAdapter.GetCopperThickness3DU() * 0.1f );
|
||||||
createItemsFromContainer( m_boardAdapter.GetPlatedPads_Back(), B_Cu, &m_materials.m_Copper, layerColor_B_Cu, -m_boardAdapter.GetCopperThickness3DU() * 0.1f );
|
createItemsFromContainer( m_boardAdapter.GetPlatedPads_Back(), B_Cu, &m_materials.m_Copper, layerColor_B_Cu, -m_boardAdapter.GetCopperThickness3DU() * 0.1f );
|
||||||
|
}
|
||||||
|
|
||||||
// Add Mask layer
|
// Add Mask layer
|
||||||
// Solder mask layers are "negative" layers so the elements that we have
|
// Solder mask layers are "negative" layers so the elements that we have
|
||||||
|
|
|
@ -179,7 +179,8 @@ EDA_3D_VIEWER_SETTINGS::EDA_3D_VIEWER_SETTINGS()
|
||||||
&m_Render.subtract_mask_from_silk, false ) );
|
&m_Render.subtract_mask_from_silk, false ) );
|
||||||
m_params.emplace_back( new PARAM<bool>( "render.clip_silk_on_via_annulus",
|
m_params.emplace_back( new PARAM<bool>( "render.clip_silk_on_via_annulus",
|
||||||
&m_Render.clip_silk_on_via_annulus, false ) );
|
&m_Render.clip_silk_on_via_annulus, false ) );
|
||||||
|
m_params.emplace_back( new PARAM<bool>( "render.plated_and_bare_copper",
|
||||||
|
&m_Render.renderPlatedPadsAsPlated, false ) );
|
||||||
m_params.emplace_back( new PARAM<bool>( "camera.animation_enabled",
|
m_params.emplace_back( new PARAM<bool>( "camera.animation_enabled",
|
||||||
&m_Camera.animation_enabled, true ) );
|
&m_Camera.animation_enabled, true ) );
|
||||||
m_params.emplace_back( new PARAM<int>( "camera.moving_speed_multiplier",
|
m_params.emplace_back( new PARAM<int>( "camera.moving_speed_multiplier",
|
||||||
|
|
|
@ -82,6 +82,7 @@ public:
|
||||||
bool show_zones;
|
bool show_zones;
|
||||||
bool subtract_mask_from_silk;
|
bool subtract_mask_from_silk;
|
||||||
bool clip_silk_on_via_annulus;
|
bool clip_silk_on_via_annulus;
|
||||||
|
bool renderPlatedPadsAsPlated;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct CAMERA_SETTINGS
|
struct CAMERA_SETTINGS
|
||||||
|
|
|
@ -198,6 +198,7 @@ bool DIALOG_3D_VIEW_OPTIONS::TransferDataToWindow()
|
||||||
m_checkBoxECO->SetValue( m_settings.GetFlag( FL_ECO ) );
|
m_checkBoxECO->SetValue( m_settings.GetFlag( FL_ECO ) );
|
||||||
m_checkBoxSubtractMaskFromSilk->SetValue( m_settings.GetFlag( FL_SUBTRACT_MASK_FROM_SILK ) );
|
m_checkBoxSubtractMaskFromSilk->SetValue( m_settings.GetFlag( FL_SUBTRACT_MASK_FROM_SILK ) );
|
||||||
m_checkBoxClipSilkOnViaAnnulus->SetValue( m_settings.GetFlag( FL_CLIP_SILK_ON_VIA_ANNULUS ) );
|
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
|
// OpenGL options
|
||||||
m_checkBoxCuThickness->SetValue( m_settings.GetFlag( FL_RENDER_OPENGL_COPPER_THICKNESS ) );
|
m_checkBoxCuThickness->SetValue( m_settings.GetFlag( FL_RENDER_OPENGL_COPPER_THICKNESS ) );
|
||||||
|
@ -253,6 +254,7 @@ bool DIALOG_3D_VIEW_OPTIONS::TransferDataFromWindow()
|
||||||
m_settings.SetFlag( FL_ZONE, m_checkBoxAreas->GetValue() );
|
m_settings.SetFlag( FL_ZONE, m_checkBoxAreas->GetValue() );
|
||||||
m_settings.SetFlag( FL_SUBTRACT_MASK_FROM_SILK, m_checkBoxSubtractMaskFromSilk->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_CLIP_SILK_ON_VIA_ANNULUS, m_checkBoxClipSilkOnViaAnnulus->GetValue() );
|
||||||
|
m_settings.SetFlag( FL_RENDER_PLATED_PADS_AS_PLATED, m_checkBoxRenderPlatedPadsAsPlated->GetValue() );
|
||||||
|
|
||||||
// Set 3D shapes visibility
|
// Set 3D shapes visibility
|
||||||
m_settings.SetFlag( FL_MODULE_ATTRIBUTES_NORMAL, m_checkBox3DshapesTH->GetValue() );
|
m_settings.SetFlag( FL_MODULE_ATTRIBUTES_NORMAL, m_checkBox3DshapesTH->GetValue() );
|
||||||
|
|
|
@ -77,13 +77,16 @@ DIALOG_3D_VIEW_OPTIONS_BASE::DIALOG_3D_VIEW_OPTIONS_BASE( wxWindow* parent, wxWi
|
||||||
m_checkBoxClipSilkOnViaAnnulus = new wxCheckBox( sbSizer1->GetStaticBox(), wxID_ANY, _("Clip silkscreen at via annulus"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_checkBoxClipSilkOnViaAnnulus = new wxCheckBox( sbSizer1->GetStaticBox(), wxID_ANY, _("Clip silkscreen at via annulus"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
fgSizerRenderOptions->Add( m_checkBoxClipSilkOnViaAnnulus, 0, wxALL, 5 );
|
fgSizerRenderOptions->Add( m_checkBoxClipSilkOnViaAnnulus, 0, wxALL, 5 );
|
||||||
|
|
||||||
wxFlexGridSizer* fgSizer3;
|
|
||||||
fgSizer3 = new wxFlexGridSizer( 0, 2, 0, 0 );
|
fgSizerRenderOptions->Add( 0, 0, 1, wxEXPAND, 5 );
|
||||||
fgSizer3->SetFlexibleDirection( wxBOTH );
|
|
||||||
fgSizer3->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
|
||||||
|
|
||||||
|
|
||||||
fgSizerRenderOptions->Add( fgSizer3, 1, wxEXPAND, 5 );
|
fgSizerRenderOptions->Add( 0, 0, 1, wxEXPAND, 5 );
|
||||||
|
|
||||||
|
m_checkBoxRenderPlatedPadsAsPlated = new wxCheckBox( sbSizer1->GetStaticBox(), wxID_ANY, _("Non plated pads copper as bare copper"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_checkBoxRenderPlatedPadsAsPlated->SetToolTip( _("Display plated pads as plated but other copper as raw copper material. (Slow)") );
|
||||||
|
|
||||||
|
fgSizerRenderOptions->Add( m_checkBoxRenderPlatedPadsAsPlated, 0, wxALL, 5 );
|
||||||
|
|
||||||
|
|
||||||
sbSizer1->Add( fgSizerRenderOptions, 0, wxEXPAND|wxBOTTOM, 5 );
|
sbSizer1->Add( fgSizerRenderOptions, 0, wxEXPAND|wxBOTTOM, 5 );
|
||||||
|
|
|
@ -186,11 +186,11 @@
|
||||||
<property name="name">bSizeLeft</property>
|
<property name="name">bSizeLeft</property>
|
||||||
<property name="orient">wxVERTICAL</property>
|
<property name="orient">wxVERTICAL</property>
|
||||||
<property name="permission">none</property>
|
<property name="permission">none</property>
|
||||||
<object class="sizeritem" expanded="0">
|
<object class="sizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxALL|wxEXPAND</property>
|
<property name="flag">wxALL|wxEXPAND</property>
|
||||||
<property name="proportion">0</property>
|
<property name="proportion">0</property>
|
||||||
<object class="wxStaticBoxSizer" expanded="0">
|
<object class="wxStaticBoxSizer" expanded="1">
|
||||||
<property name="id">wxID_ANY</property>
|
<property name="id">wxID_ANY</property>
|
||||||
<property name="label">Render Options</property>
|
<property name="label">Render Options</property>
|
||||||
<property name="minimum_size"></property>
|
<property name="minimum_size"></property>
|
||||||
|
@ -198,11 +198,11 @@
|
||||||
<property name="orient">wxVERTICAL</property>
|
<property name="orient">wxVERTICAL</property>
|
||||||
<property name="parent">1</property>
|
<property name="parent">1</property>
|
||||||
<property name="permission">none</property>
|
<property name="permission">none</property>
|
||||||
<object class="sizeritem" expanded="0">
|
<object class="sizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxEXPAND|wxBOTTOM</property>
|
<property name="flag">wxEXPAND|wxBOTTOM</property>
|
||||||
<property name="proportion">0</property>
|
<property name="proportion">0</property>
|
||||||
<object class="wxFlexGridSizer" expanded="0">
|
<object class="wxFlexGridSizer" expanded="1">
|
||||||
<property name="cols">3</property>
|
<property name="cols">3</property>
|
||||||
<property name="flexible_direction">wxBOTH</property>
|
<property name="flexible_direction">wxBOTH</property>
|
||||||
<property name="growablecols"></property>
|
<property name="growablecols"></property>
|
||||||
|
@ -875,22 +875,88 @@
|
||||||
<property name="window_style"></property>
|
<property name="window_style"></property>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="0">
|
<object class="sizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxEXPAND</property>
|
<property name="flag">wxEXPAND</property>
|
||||||
<property name="proportion">1</property>
|
<property name="proportion">1</property>
|
||||||
<object class="wxFlexGridSizer" expanded="0">
|
<object class="spacer" expanded="1">
|
||||||
<property name="cols">2</property>
|
<property name="height">0</property>
|
||||||
<property name="flexible_direction">wxBOTH</property>
|
<property name="permission">protected</property>
|
||||||
<property name="growablecols"></property>
|
<property name="width">0</property>
|
||||||
<property name="growablerows"></property>
|
</object>
|
||||||
<property name="hgap">0</property>
|
</object>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxEXPAND</property>
|
||||||
|
<property name="proportion">1</property>
|
||||||
|
<object class="spacer" expanded="1">
|
||||||
|
<property name="height">0</property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="width">0</property>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxALL</property>
|
||||||
|
<property name="proportion">0</property>
|
||||||
|
<object class="wxCheckBox" expanded="1">
|
||||||
|
<property name="BottomDockable">1</property>
|
||||||
|
<property name="LeftDockable">1</property>
|
||||||
|
<property name="RightDockable">1</property>
|
||||||
|
<property name="TopDockable">1</property>
|
||||||
|
<property name="aui_layer"></property>
|
||||||
|
<property name="aui_name"></property>
|
||||||
|
<property name="aui_position"></property>
|
||||||
|
<property name="aui_row"></property>
|
||||||
|
<property name="best_size"></property>
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="caption"></property>
|
||||||
|
<property name="caption_visible">1</property>
|
||||||
|
<property name="center_pane">0</property>
|
||||||
|
<property name="checked">0</property>
|
||||||
|
<property name="close_button">1</property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="context_menu">1</property>
|
||||||
|
<property name="default_pane">0</property>
|
||||||
|
<property name="dock">Dock</property>
|
||||||
|
<property name="dock_fixed">0</property>
|
||||||
|
<property name="docking">Left</property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="floatable">1</property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="gripper">0</property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">wxID_ANY</property>
|
||||||
|
<property name="label">Non plated pads copper as bare copper</property>
|
||||||
|
<property name="max_size"></property>
|
||||||
|
<property name="maximize_button">0</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="min_size"></property>
|
||||||
|
<property name="minimize_button">0</property>
|
||||||
<property name="minimum_size"></property>
|
<property name="minimum_size"></property>
|
||||||
<property name="name">fgSizer3</property>
|
<property name="moveable">1</property>
|
||||||
<property name="non_flexible_grow_mode">wxFLEX_GROWMODE_SPECIFIED</property>
|
<property name="name">m_checkBoxRenderPlatedPadsAsPlated</property>
|
||||||
<property name="permission">none</property>
|
<property name="pane_border">1</property>
|
||||||
<property name="rows">0</property>
|
<property name="pane_position"></property>
|
||||||
<property name="vgap">0</property>
|
<property name="pane_size"></property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="pin_button">1</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="resize">Resizable</property>
|
||||||
|
<property name="show">1</property>
|
||||||
|
<property name="size"></property>
|
||||||
|
<property name="style"></property>
|
||||||
|
<property name="subclass">; ; forward_declare</property>
|
||||||
|
<property name="toolbar_pane">0</property>
|
||||||
|
<property name="tooltip">Display plated pads as plated but other copper as raw copper material. (Slow)</property>
|
||||||
|
<property name="validator_data_type"></property>
|
||||||
|
<property name="validator_style">wxFILTER_NONE</property>
|
||||||
|
<property name="validator_type">wxDefaultValidator</property>
|
||||||
|
<property name="validator_variable"></property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
|
|
|
@ -57,6 +57,7 @@ class DIALOG_3D_VIEW_OPTIONS_BASE : public DIALOG_SHIM
|
||||||
wxCheckBox* m_checkBoxSubtractMaskFromSilk;
|
wxCheckBox* m_checkBoxSubtractMaskFromSilk;
|
||||||
wxStaticBitmap* m_bitmapClipSilkOnViaAnnulus;
|
wxStaticBitmap* m_bitmapClipSilkOnViaAnnulus;
|
||||||
wxCheckBox* m_checkBoxClipSilkOnViaAnnulus;
|
wxCheckBox* m_checkBoxClipSilkOnViaAnnulus;
|
||||||
|
wxCheckBox* m_checkBoxRenderPlatedPadsAsPlated;
|
||||||
wxStaticBitmap* m_bitmap3DshapesTH;
|
wxStaticBitmap* m_bitmap3DshapesTH;
|
||||||
wxCheckBox* m_checkBox3DshapesTH;
|
wxCheckBox* m_checkBox3DshapesTH;
|
||||||
wxStaticBitmap* m_bitmap3DshapesSMD;
|
wxStaticBitmap* m_bitmap3DshapesSMD;
|
||||||
|
|
|
@ -528,6 +528,7 @@ void EDA_3D_VIEWER::LoadSettings( APP_SETTINGS_BASE *aCfg )
|
||||||
TRANSFER_SETTING( FL_ECO, show_eco );
|
TRANSFER_SETTING( FL_ECO, show_eco );
|
||||||
TRANSFER_SETTING( FL_SHOW_BOARD_BODY, show_board_body );
|
TRANSFER_SETTING( FL_SHOW_BOARD_BODY, show_board_body );
|
||||||
TRANSFER_SETTING( FL_CLIP_SILK_ON_VIA_ANNULUS, clip_silk_on_via_annulus );
|
TRANSFER_SETTING( FL_CLIP_SILK_ON_VIA_ANNULUS, clip_silk_on_via_annulus );
|
||||||
|
TRANSFER_SETTING( FL_RENDER_PLATED_PADS_AS_PLATED, renderPlatedPadsAsPlated );
|
||||||
|
|
||||||
m_boardAdapter.GridSet( static_cast<GRID3D_TYPE>( cfg->m_Render.grid_type ) );
|
m_boardAdapter.GridSet( static_cast<GRID3D_TYPE>( cfg->m_Render.grid_type ) );
|
||||||
m_boardAdapter.AntiAliasingSet( static_cast<ANTIALIASING_MODE>( cfg->m_Render.opengl_AA_mode ) );
|
m_boardAdapter.AntiAliasingSet( static_cast<ANTIALIASING_MODE>( cfg->m_Render.opengl_AA_mode ) );
|
||||||
|
@ -676,6 +677,7 @@ void EDA_3D_VIEWER::SaveSettings( APP_SETTINGS_BASE *aCfg )
|
||||||
TRANSFER_SETTING( show_axis, FL_AXIS );
|
TRANSFER_SETTING( show_axis, FL_AXIS );
|
||||||
TRANSFER_SETTING( show_board_body, FL_SHOW_BOARD_BODY );
|
TRANSFER_SETTING( show_board_body, FL_SHOW_BOARD_BODY );
|
||||||
TRANSFER_SETTING( clip_silk_on_via_annulus, FL_CLIP_SILK_ON_VIA_ANNULUS );
|
TRANSFER_SETTING( clip_silk_on_via_annulus, FL_CLIP_SILK_ON_VIA_ANNULUS );
|
||||||
|
TRANSFER_SETTING( renderPlatedPadsAsPlated, FL_RENDER_PLATED_PADS_AS_PLATED );
|
||||||
TRANSFER_SETTING( show_comments, FL_COMMENTS );
|
TRANSFER_SETTING( show_comments, FL_COMMENTS );
|
||||||
TRANSFER_SETTING( show_eco, FL_ECO );
|
TRANSFER_SETTING( show_eco, FL_ECO );
|
||||||
TRANSFER_SETTING( show_footprints_insert, FL_MODULE_ATTRIBUTES_NORMAL_INSERT );
|
TRANSFER_SETTING( show_footprints_insert, FL_MODULE_ATTRIBUTES_NORMAL_INSERT );
|
||||||
|
|
Loading…
Reference in New Issue