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;
|
||||
m_F_Cu_PlatedPads_poly = nullptr;
|
||||
|
||||
delete m_B_Cu_PlatedPads_poly;
|
||||
m_B_Cu_PlatedPads_poly = nullptr;
|
||||
|
||||
if( !m_layers_inner_holes_poly.empty() )
|
||||
{
|
||||
|
@ -91,7 +94,10 @@ void BOARD_ADAPTER::destroyLayers()
|
|||
}
|
||||
|
||||
delete m_platedpads_container2D_F_Cu;
|
||||
m_platedpads_container2D_F_Cu = nullptr;
|
||||
|
||||
delete m_platedpads_container2D_B_Cu;
|
||||
m_platedpads_container2D_B_Cu = nullptr;
|
||||
|
||||
if( !m_layers_holes2D.empty() )
|
||||
{
|
||||
|
@ -203,11 +209,15 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
|||
}
|
||||
}
|
||||
|
||||
m_F_Cu_PlatedPads_poly = new SHAPE_POLY_SET;
|
||||
m_B_Cu_PlatedPads_poly = new SHAPE_POLY_SET;
|
||||
if( GetFlag( FL_RENDER_PLATED_PADS_AS_PLATED ) )
|
||||
{
|
||||
m_F_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_B_Cu = new CBVHCONTAINER2D;
|
||||
m_platedpads_container2D_F_Cu = new CBVHCONTAINER2D;
|
||||
m_platedpads_container2D_B_Cu = new CBVHCONTAINER2D;
|
||||
|
||||
}
|
||||
|
||||
if( aStatusReporter )
|
||||
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
|
||||
for( PCB_LAYER_ID curr_layer_id : layer_id )
|
||||
{
|
||||
|
@ -525,7 +537,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
|||
curr_layer_id,
|
||||
0,
|
||||
true,
|
||||
true,
|
||||
renderPlatedPadsAsPlated,
|
||||
false );
|
||||
|
||||
// Micro-wave modules may have items on copper layers
|
||||
|
@ -536,24 +548,27 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
|||
}
|
||||
}
|
||||
|
||||
// ADD PLATED PADS
|
||||
for( MODULE* module : m_board->Modules() )
|
||||
if( renderPlatedPadsAsPlated )
|
||||
{
|
||||
AddPadsShapesWithClearanceToContainer( module,
|
||||
m_platedpads_container2D_F_Cu,
|
||||
F_Cu,
|
||||
0,
|
||||
true,
|
||||
false,
|
||||
true );
|
||||
// ADD PLATED PADS
|
||||
for( MODULE* module : m_board->Modules() )
|
||||
{
|
||||
AddPadsShapesWithClearanceToContainer( module,
|
||||
m_platedpads_container2D_F_Cu,
|
||||
F_Cu,
|
||||
0,
|
||||
true,
|
||||
false,
|
||||
true );
|
||||
|
||||
AddPadsShapesWithClearanceToContainer( module,
|
||||
m_platedpads_container2D_B_Cu,
|
||||
B_Cu,
|
||||
0,
|
||||
true,
|
||||
false,
|
||||
true );
|
||||
AddPadsShapesWithClearanceToContainer( module,
|
||||
m_platedpads_container2D_B_Cu,
|
||||
B_Cu,
|
||||
0,
|
||||
true,
|
||||
false,
|
||||
true );
|
||||
}
|
||||
}
|
||||
|
||||
// Add modules PADs poly contourns (vertical outlines)
|
||||
|
@ -573,26 +588,30 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
|||
// has same shape as its hole
|
||||
module->TransformPadsShapesWithClearanceToPolygon( curr_layer_id, *layerPoly,
|
||||
0, ARC_HIGH_DEF, true,
|
||||
true, false );
|
||||
renderPlatedPadsAsPlated,
|
||||
false );
|
||||
|
||||
transformGraphicModuleEdgeToPolygonSet( module, curr_layer_id, *layerPoly );
|
||||
}
|
||||
}
|
||||
|
||||
// ADD PLATED PADS contourns
|
||||
for( auto module : m_board->Modules() )
|
||||
if( renderPlatedPadsAsPlated )
|
||||
{
|
||||
module->TransformPadsShapesWithClearanceToPolygon( F_Cu, *m_F_Cu_PlatedPads_poly,
|
||||
0, ARC_HIGH_DEF, true,
|
||||
false, true );
|
||||
// ADD PLATED PADS contourns
|
||||
for( auto module : m_board->Modules() )
|
||||
{
|
||||
module->TransformPadsShapesWithClearanceToPolygon( F_Cu, *m_F_Cu_PlatedPads_poly,
|
||||
0, ARC_HIGH_DEF, true,
|
||||
false, true );
|
||||
|
||||
//transformGraphicModuleEdgeToPolygonSet( module, F_Cu, *m_F_Cu_PlatedPads_poly );
|
||||
//transformGraphicModuleEdgeToPolygonSet( module, F_Cu, *m_F_Cu_PlatedPads_poly );
|
||||
|
||||
module->TransformPadsShapesWithClearanceToPolygon( B_Cu, *m_B_Cu_PlatedPads_poly,
|
||||
0, ARC_HIGH_DEF, true,
|
||||
false, true );
|
||||
module->TransformPadsShapesWithClearanceToPolygon( B_Cu, *m_B_Cu_PlatedPads_poly,
|
||||
0, ARC_HIGH_DEF, true,
|
||||
false, true );
|
||||
|
||||
//transformGraphicModuleEdgeToPolygonSet( module, B_Cu, *m_B_Cu_PlatedPads_poly );
|
||||
//transformGraphicModuleEdgeToPolygonSet( module, B_Cu, *m_B_Cu_PlatedPads_poly );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -761,50 +780,60 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
|||
if( GetFlag( FL_RENDER_OPENGL_COPPER_THICKNESS )
|
||||
&& ( m_render_engine == RENDER_ENGINE::OPENGL_LEGACY ) )
|
||||
{
|
||||
if( m_F_Cu_PlatedPads_poly && ( m_layers_poly.find( F_Cu ) != m_layers_poly.end() ) )
|
||||
if( GetFlag( FL_RENDER_PLATED_PADS_AS_PLATED ) )
|
||||
{
|
||||
SHAPE_POLY_SET *layerPoly_F_Cu = m_layers_poly[F_Cu];
|
||||
layerPoly_F_Cu->BooleanSubtract( *m_F_Cu_PlatedPads_poly, SHAPE_POLY_SET::POLYGON_MODE::PM_FAST );
|
||||
if( m_F_Cu_PlatedPads_poly && ( m_layers_poly.find( F_Cu ) != m_layers_poly.end() ) )
|
||||
{
|
||||
SHAPE_POLY_SET *layerPoly_F_Cu = m_layers_poly[F_Cu];
|
||||
layerPoly_F_Cu->BooleanSubtract( *m_F_Cu_PlatedPads_poly, SHAPE_POLY_SET::POLYGON_MODE::PM_FAST );
|
||||
|
||||
m_F_Cu_PlatedPads_poly->Simplify( SHAPE_POLY_SET::PM_FAST );
|
||||
}
|
||||
|
||||
if( m_B_Cu_PlatedPads_poly && ( m_layers_poly.find( B_Cu ) != m_layers_poly.end() ) )
|
||||
{
|
||||
SHAPE_POLY_SET *layerPoly_B_Cu = m_layers_poly[B_Cu];
|
||||
layerPoly_B_Cu->BooleanSubtract( *m_B_Cu_PlatedPads_poly, SHAPE_POLY_SET::POLYGON_MODE::PM_FAST );
|
||||
|
||||
m_B_Cu_PlatedPads_poly->Simplify( SHAPE_POLY_SET::PM_FAST );
|
||||
m_F_Cu_PlatedPads_poly->Simplify( SHAPE_POLY_SET::PM_FAST );
|
||||
}
|
||||
|
||||
if( m_B_Cu_PlatedPads_poly && ( m_layers_poly.find( B_Cu ) != m_layers_poly.end() ) )
|
||||
{
|
||||
SHAPE_POLY_SET *layerPoly_B_Cu = m_layers_poly[B_Cu];
|
||||
layerPoly_B_Cu->BooleanSubtract( *m_B_Cu_PlatedPads_poly, SHAPE_POLY_SET::POLYGON_MODE::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;
|
||||
layer_id_without_F_and_B.clear();
|
||||
layer_id_without_F_and_B.reserve( layer_id.size() );
|
||||
|
||||
for( size_t i = 0; i < layer_id.size(); ++i )
|
||||
if( GetFlag( FL_RENDER_PLATED_PADS_AS_PLATED ) )
|
||||
{
|
||||
if( ( layer_id[i] != F_Cu ) &&
|
||||
( layer_id[i] != B_Cu ) )
|
||||
layer_id_without_F_and_B.push_back( layer_id[i] );
|
||||
layer_id_without_F_and_B.clear();
|
||||
layer_id_without_F_and_B.reserve( layer_id.size() );
|
||||
|
||||
for( size_t i = 0; i < layer_id.size(); ++i )
|
||||
{
|
||||
if( ( layer_id[i] != F_Cu ) &&
|
||||
( layer_id[i] != B_Cu ) )
|
||||
layer_id_without_F_and_B.push_back( layer_id[i] );
|
||||
}
|
||||
|
||||
selected_layer_id = layer_id_without_F_and_B;
|
||||
}
|
||||
|
||||
if( layer_id_without_F_and_B.size() > 0 )
|
||||
if( selected_layer_id.size() > 0 )
|
||||
{
|
||||
std::atomic<size_t> nextItem( 0 );
|
||||
std::atomic<size_t> threadsFinished( 0 );
|
||||
|
||||
size_t parallelThreadCount = std::min<size_t>(
|
||||
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 )
|
||||
{
|
||||
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 );
|
||||
i < layer_id_without_F_and_B.size();
|
||||
i < selected_layer_id.size();
|
||||
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() )
|
||||
// This will make a union of all added contours
|
||||
|
|
|
@ -51,6 +51,7 @@ enum DISPLAY3D_FLG
|
|||
FL_USE_REALISTIC_MODE,
|
||||
FL_SUBTRACT_MASK_FROM_SILK,
|
||||
FL_CLIP_SILK_ON_VIA_ANNULUS,
|
||||
FL_RENDER_PLATED_PADS_AS_PLATED,
|
||||
|
||||
// OpenGL options
|
||||
FL_RENDER_OPENGL_SHOW_MODEL_BBOX,
|
||||
|
|
|
@ -622,10 +622,13 @@ void C3D_RENDER_OGL_LEGACY::reload( REPORTER* aStatusReporter, REPORTER* aWarnin
|
|||
|
||||
}// for each layer on
|
||||
|
||||
m_ogl_disp_lists_platedPads_F_Cu = generateLayerListFromContainer( m_boardAdapter.GetPlatedPads_Front(),
|
||||
m_boardAdapter.GetPolyPlatedPads_Front(), F_Cu );
|
||||
m_ogl_disp_lists_platedPads_B_Cu = generateLayerListFromContainer( m_boardAdapter.GetPlatedPads_Back(),
|
||||
m_boardAdapter.GetPolyPlatedPads_Back(), B_Cu );
|
||||
if( m_boardAdapter.GetFlag( FL_RENDER_PLATED_PADS_AS_PLATED ) )
|
||||
{
|
||||
m_ogl_disp_lists_platedPads_F_Cu = generateLayerListFromContainer( m_boardAdapter.GetPlatedPads_Front(),
|
||||
m_boardAdapter.GetPolyPlatedPads_Front(), F_Cu );
|
||||
m_ogl_disp_lists_platedPads_B_Cu = generateLayerListFromContainer( m_boardAdapter.GetPlatedPads_Back(),
|
||||
m_boardAdapter.GetPolyPlatedPads_Back(), B_Cu );
|
||||
}
|
||||
|
||||
// Load 3D models
|
||||
// /////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
@ -733,7 +733,11 @@ bool C3D_RENDER_OGL_LEGACY::Redraw(
|
|||
|
||||
if( (layer_id >= F_Cu) && (layer_id <= B_Cu) )
|
||||
{
|
||||
setCopperMaterial();
|
||||
if( !m_boardAdapter.GetFlag( FL_USE_REALISTIC_MODE ) ||
|
||||
!m_boardAdapter.GetFlag( FL_RENDER_PLATED_PADS_AS_PLATED ) )
|
||||
set_layer_material( layer_id );
|
||||
else
|
||||
setCopperMaterial();
|
||||
|
||||
if( skipRenderHoles )
|
||||
{
|
||||
|
@ -1082,7 +1086,11 @@ void C3D_RENDER_OGL_LEGACY::ogl_free_all_display_lists()
|
|||
m_ogl_disp_lists_layers.clear();
|
||||
|
||||
delete m_ogl_disp_lists_platedPads_F_Cu;
|
||||
m_ogl_disp_lists_platedPads_F_Cu = nullptr;
|
||||
|
||||
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();
|
||||
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
|
||||
|
||||
// Create plated copper
|
||||
|
||||
SFVEC3F layerColor_F_Cu = m_boardAdapter.GetLayerColor( F_Cu );
|
||||
SFVEC3F layerColor_B_Cu = m_boardAdapter.GetLayerColor( B_Cu );
|
||||
|
||||
if( m_boardAdapter.GetFlag( FL_USE_REALISTIC_MODE ) )
|
||||
if( m_boardAdapter.GetFlag( FL_RENDER_PLATED_PADS_AS_PLATED ) )
|
||||
{
|
||||
layerColor_F_Cu = m_boardAdapter.m_CopperColor;;
|
||||
layerColor_B_Cu = layerColor_F_Cu;
|
||||
}
|
||||
SFVEC3F layerColor_F_Cu = m_boardAdapter.GetLayerColor( F_Cu );
|
||||
SFVEC3F layerColor_B_Cu = m_boardAdapter.GetLayerColor( B_Cu );
|
||||
|
||||
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 );
|
||||
if( m_boardAdapter.GetFlag( FL_USE_REALISTIC_MODE ) )
|
||||
{
|
||||
layerColor_F_Cu = m_boardAdapter.m_CopperColor;
|
||||
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_Back(), B_Cu, &m_materials.m_Copper, layerColor_B_Cu, -m_boardAdapter.GetCopperThickness3DU() * 0.1f );
|
||||
}
|
||||
|
||||
// Add Mask layer
|
||||
// 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_params.emplace_back( new PARAM<bool>( "render.clip_silk_on_via_annulus",
|
||||
&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_Camera.animation_enabled, true ) );
|
||||
m_params.emplace_back( new PARAM<int>( "camera.moving_speed_multiplier",
|
||||
|
|
|
@ -82,6 +82,7 @@ public:
|
|||
bool show_zones;
|
||||
bool subtract_mask_from_silk;
|
||||
bool clip_silk_on_via_annulus;
|
||||
bool renderPlatedPadsAsPlated;
|
||||
};
|
||||
|
||||
struct CAMERA_SETTINGS
|
||||
|
|
|
@ -198,6 +198,7 @@ bool DIALOG_3D_VIEW_OPTIONS::TransferDataToWindow()
|
|||
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 ) );
|
||||
|
@ -253,6 +254,7 @@ bool DIALOG_3D_VIEW_OPTIONS::TransferDataFromWindow()
|
|||
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_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 );
|
||||
fgSizerRenderOptions->Add( m_checkBoxClipSilkOnViaAnnulus, 0, wxALL, 5 );
|
||||
|
||||
wxFlexGridSizer* fgSizer3;
|
||||
fgSizer3 = new wxFlexGridSizer( 0, 2, 0, 0 );
|
||||
fgSizer3->SetFlexibleDirection( wxBOTH );
|
||||
fgSizer3->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||
|
||||
fgSizerRenderOptions->Add( 0, 0, 1, wxEXPAND, 5 );
|
||||
|
||||
|
||||
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 );
|
||||
|
|
|
@ -186,11 +186,11 @@
|
|||
<property name="name">bSizeLeft</property>
|
||||
<property name="orient">wxVERTICAL</property>
|
||||
<property name="permission">none</property>
|
||||
<object class="sizeritem" expanded="0">
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxALL|wxEXPAND</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxStaticBoxSizer" expanded="0">
|
||||
<object class="wxStaticBoxSizer" expanded="1">
|
||||
<property name="id">wxID_ANY</property>
|
||||
<property name="label">Render Options</property>
|
||||
<property name="minimum_size"></property>
|
||||
|
@ -198,11 +198,11 @@
|
|||
<property name="orient">wxVERTICAL</property>
|
||||
<property name="parent">1</property>
|
||||
<property name="permission">none</property>
|
||||
<object class="sizeritem" expanded="0">
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND|wxBOTTOM</property>
|
||||
<property name="proportion">0</property>
|
||||
<object class="wxFlexGridSizer" expanded="0">
|
||||
<object class="wxFlexGridSizer" expanded="1">
|
||||
<property name="cols">3</property>
|
||||
<property name="flexible_direction">wxBOTH</property>
|
||||
<property name="growablecols"></property>
|
||||
|
@ -875,22 +875,88 @@
|
|||
<property name="window_style"></property>
|
||||
</object>
|
||||
</object>
|
||||
<object class="sizeritem" expanded="0">
|
||||
<object class="sizeritem" expanded="1">
|
||||
<property name="border">5</property>
|
||||
<property name="flag">wxEXPAND</property>
|
||||
<property name="proportion">1</property>
|
||||
<object class="wxFlexGridSizer" expanded="0">
|
||||
<property name="cols">2</property>
|
||||
<property name="flexible_direction">wxBOTH</property>
|
||||
<property name="growablecols"></property>
|
||||
<property name="growablerows"></property>
|
||||
<property name="hgap">0</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">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="name">fgSizer3</property>
|
||||
<property name="non_flexible_grow_mode">wxFLEX_GROWMODE_SPECIFIED</property>
|
||||
<property name="permission">none</property>
|
||||
<property name="rows">0</property>
|
||||
<property name="vgap">0</property>
|
||||
<property name="moveable">1</property>
|
||||
<property name="name">m_checkBoxRenderPlatedPadsAsPlated</property>
|
||||
<property name="pane_border">1</property>
|
||||
<property name="pane_position"></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>
|
||||
|
|
|
@ -57,6 +57,7 @@ class DIALOG_3D_VIEW_OPTIONS_BASE : public DIALOG_SHIM
|
|||
wxCheckBox* m_checkBoxSubtractMaskFromSilk;
|
||||
wxStaticBitmap* m_bitmapClipSilkOnViaAnnulus;
|
||||
wxCheckBox* m_checkBoxClipSilkOnViaAnnulus;
|
||||
wxCheckBox* m_checkBoxRenderPlatedPadsAsPlated;
|
||||
wxStaticBitmap* m_bitmap3DshapesTH;
|
||||
wxCheckBox* m_checkBox3DshapesTH;
|
||||
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_SHOW_BOARD_BODY, show_board_body );
|
||||
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.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_board_body, FL_SHOW_BOARD_BODY );
|
||||
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_eco, FL_ECO );
|
||||
TRANSFER_SETTING( show_footprints_insert, FL_MODULE_ATTRIBUTES_NORMAL_INSERT );
|
||||
|
|
Loading…
Reference in New Issue