Remove realistic-mode (and duplicated settings from preferences).
Most of these settings are now available in the appearances panel. It was concluded in a Zulip discussion that any missing items can be added back in time if people find they need them (ie: complain). Also hooks up 3DViewer to the common language framework.
This commit is contained in:
parent
b9936b6d8a
commit
0c37e3c443
|
@ -251,8 +251,6 @@ bool BOARD_ADAPTER::Is3dLayerEnabled( PCB_LAYER_ID aLayer,
|
||||||
case Cmts_User: return aVisibilityFlags.test( LAYER_3D_USER_COMMENTS );
|
case Cmts_User: return aVisibilityFlags.test( LAYER_3D_USER_COMMENTS );
|
||||||
case Eco1_User: return aVisibilityFlags.test( LAYER_3D_USER_ECO1 );
|
case Eco1_User: return aVisibilityFlags.test( LAYER_3D_USER_ECO1 );
|
||||||
case Eco2_User: return aVisibilityFlags.test( LAYER_3D_USER_ECO2 );
|
case Eco2_User: return aVisibilityFlags.test( LAYER_3D_USER_ECO2 );
|
||||||
case Edge_Cuts: return !m_Cfg->m_Render.realistic && !m_Cfg->m_Render.show_board_body;
|
|
||||||
case Margin: return !m_Cfg->m_Render.realistic;
|
|
||||||
default: return m_board && m_board->IsLayerVisible( aLayer );
|
default: return m_board && m_board->IsLayerVisible( aLayer );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -330,11 +328,7 @@ void BOARD_ADAPTER::InitSettings( REPORTER* aStatusReporter, REPORTER* aWarningR
|
||||||
BOX2I bbbox;
|
BOX2I bbbox;
|
||||||
|
|
||||||
if( m_board )
|
if( m_board )
|
||||||
{
|
bbbox = m_board->ComputeBoundingBox( !m_board->IsFootprintHolder() && haveOutline );
|
||||||
bbbox = m_board->ComputeBoundingBox( !m_board->IsFootprintHolder()
|
|
||||||
&& m_Cfg->m_Render.realistic
|
|
||||||
&& haveOutline );
|
|
||||||
}
|
|
||||||
|
|
||||||
// Gives a non null size to avoid issues in zoom / scale calculations
|
// Gives a non null size to avoid issues in zoom / scale calculations
|
||||||
if( ( bbbox.GetWidth() == 0 ) && ( bbbox.GetHeight() == 0 ) )
|
if( ( bbbox.GetWidth() == 0 ) && ( bbbox.GetHeight() == 0 ) )
|
||||||
|
|
|
@ -215,7 +215,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( m_Cfg->m_Render.renderPlatedPadsAsPlated && m_Cfg->m_Render.realistic )
|
if( m_Cfg->m_Render.renderPlatedPadsAsPlated )
|
||||||
{
|
{
|
||||||
m_frontPlatedPadPolys = new SHAPE_POLY_SET;
|
m_frontPlatedPadPolys = new SHAPE_POLY_SET;
|
||||||
m_backPlatedPadPolys = new SHAPE_POLY_SET;
|
m_backPlatedPadPolys = new SHAPE_POLY_SET;
|
||||||
|
@ -314,9 +314,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||||
hole_inner_radius + thickness,
|
hole_inner_radius + thickness,
|
||||||
*track ) );
|
*track ) );
|
||||||
|
|
||||||
if( m_Cfg->m_Render.clip_silk_on_via_annulus
|
if( m_Cfg->m_Render.clip_silk_on_via_annulus && ring_radius > 0.0 )
|
||||||
&& m_Cfg->m_Render.realistic
|
|
||||||
&& ring_radius > 0.0 )
|
|
||||||
{
|
{
|
||||||
m_throughHoleAnnularRings.Add( new FILLED_CIRCLE_2D( via_center,
|
m_throughHoleAnnularRings.Add( new FILLED_CIRCLE_2D( via_center,
|
||||||
ring_radius,
|
ring_radius,
|
||||||
|
@ -406,7 +404,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||||
TransformCircleToPolygon( m_throughHoleViaOdPolys, via->GetStart(),
|
TransformCircleToPolygon( m_throughHoleViaOdPolys, via->GetStart(),
|
||||||
hole_outer_radius, maxError, ERROR_INSIDE );
|
hole_outer_radius, maxError, ERROR_INSIDE );
|
||||||
|
|
||||||
if( m_Cfg->m_Render.clip_silk_on_via_annulus && m_Cfg->m_Render.realistic )
|
if( m_Cfg->m_Render.clip_silk_on_via_annulus )
|
||||||
{
|
{
|
||||||
TransformCircleToPolygon( m_throughHoleAnnularRingPolys, via->GetStart(),
|
TransformCircleToPolygon( m_throughHoleAnnularRingPolys, via->GetStart(),
|
||||||
hole_outer_ring_radius, maxError, ERROR_INSIDE );
|
hole_outer_ring_radius, maxError, ERROR_INSIDE );
|
||||||
|
@ -468,7 +466,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||||
|
|
||||||
m_throughHoleOds.Add( createPadWithDrill( pad, inflate ) );
|
m_throughHoleOds.Add( createPadWithDrill( pad, inflate ) );
|
||||||
|
|
||||||
if( m_Cfg->m_Render.clip_silk_on_via_annulus && m_Cfg->m_Render.realistic )
|
if( m_Cfg->m_Render.clip_silk_on_via_annulus )
|
||||||
m_throughHoleAnnularRings.Add( createPadWithDrill( pad, inflate ) );
|
m_throughHoleAnnularRings.Add( createPadWithDrill( pad, inflate ) );
|
||||||
|
|
||||||
m_throughHoleIds.Add( createPadWithDrill( pad, 0 ) );
|
m_throughHoleIds.Add( createPadWithDrill( pad, 0 ) );
|
||||||
|
@ -493,7 +491,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||||
|
|
||||||
if( pad->GetAttribute () != PAD_ATTRIB::NPTH )
|
if( pad->GetAttribute () != PAD_ATTRIB::NPTH )
|
||||||
{
|
{
|
||||||
if( m_Cfg->m_Render.clip_silk_on_via_annulus && m_Cfg->m_Render.realistic )
|
if( m_Cfg->m_Render.clip_silk_on_via_annulus )
|
||||||
{
|
{
|
||||||
pad->TransformHoleToPolygon( m_throughHoleAnnularRingPolys, inflate, maxError,
|
pad->TransformHoleToPolygon( m_throughHoleAnnularRingPolys, inflate, maxError,
|
||||||
ERROR_INSIDE );
|
ERROR_INSIDE );
|
||||||
|
@ -505,7 +503,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// If not plated, no copper.
|
// If not plated, no copper.
|
||||||
if( m_Cfg->m_Render.clip_silk_on_via_annulus && m_Cfg->m_Render.realistic )
|
if( m_Cfg->m_Render.clip_silk_on_via_annulus )
|
||||||
{
|
{
|
||||||
pad->TransformHoleToPolygon( m_throughHoleAnnularRingPolys, 0, maxError,
|
pad->TransformHoleToPolygon( m_throughHoleAnnularRingPolys, 0, maxError,
|
||||||
ERROR_INSIDE );
|
ERROR_INSIDE );
|
||||||
|
@ -517,9 +515,6 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const bool renderPlatedPadsAsPlated = m_Cfg->m_Render.renderPlatedPadsAsPlated
|
|
||||||
&& m_Cfg->m_Render.realistic;
|
|
||||||
|
|
||||||
// Add footprints PADs objects to containers
|
// Add footprints PADs objects to containers
|
||||||
for( PCB_LAYER_ID layer : layer_ids )
|
for( PCB_LAYER_ID layer : layer_ids )
|
||||||
{
|
{
|
||||||
|
@ -530,14 +525,15 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||||
// ADD PADS
|
// ADD PADS
|
||||||
for( FOOTPRINT* footprint : m_board->Footprints() )
|
for( FOOTPRINT* footprint : m_board->Footprints() )
|
||||||
{
|
{
|
||||||
addPads( footprint, layerContainer, layer, renderPlatedPadsAsPlated, false );
|
addPads( footprint, layerContainer, layer, m_Cfg->m_Render.renderPlatedPadsAsPlated,
|
||||||
|
false );
|
||||||
|
|
||||||
// Micro-wave footprints may have items on copper layers
|
// Micro-wave footprints may have items on copper layers
|
||||||
addFootprintShapes( footprint, layerContainer, layer, visibilityFlags );
|
addFootprintShapes( footprint, layerContainer, layer, visibilityFlags );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( renderPlatedPadsAsPlated )
|
if( m_Cfg->m_Render.renderPlatedPadsAsPlated )
|
||||||
{
|
{
|
||||||
// ADD PLATED PADS
|
// ADD PLATED PADS
|
||||||
for( FOOTPRINT* footprint : m_board->Footprints() )
|
for( FOOTPRINT* footprint : m_board->Footprints() )
|
||||||
|
@ -565,13 +561,14 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||||
// Note: NPTH pads are not drawn on copper layers when the pad has same shape as
|
// Note: NPTH pads are not drawn on copper layers when the pad has same shape as
|
||||||
// its hole
|
// its hole
|
||||||
footprint->TransformPadsToPolySet( *layerPoly, layer, 0, maxError, ERROR_INSIDE,
|
footprint->TransformPadsToPolySet( *layerPoly, layer, 0, maxError, ERROR_INSIDE,
|
||||||
true, renderPlatedPadsAsPlated, false );
|
true, m_Cfg->m_Render.renderPlatedPadsAsPlated,
|
||||||
|
false );
|
||||||
|
|
||||||
transformFPShapesToPolySet( footprint, layer, *layerPoly );
|
transformFPShapesToPolySet( footprint, layer, *layerPoly );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( renderPlatedPadsAsPlated )
|
if( m_Cfg->m_Render.renderPlatedPadsAsPlated )
|
||||||
{
|
{
|
||||||
// ADD PLATED PADS contours
|
// ADD PLATED PADS contours
|
||||||
for( FOOTPRINT* footprint : m_board->Footprints() )
|
for( FOOTPRINT* footprint : m_board->Footprints() )
|
||||||
|
@ -749,7 +746,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||||
|
|
||||||
if( m_Cfg->m_Render.opengl_copper_thickness && m_Cfg->m_Render.engine == RENDER_ENGINE::OPENGL )
|
if( m_Cfg->m_Render.opengl_copper_thickness && m_Cfg->m_Render.engine == RENDER_ENGINE::OPENGL )
|
||||||
{
|
{
|
||||||
if( renderPlatedPadsAsPlated )
|
if( m_Cfg->m_Render.renderPlatedPadsAsPlated )
|
||||||
{
|
{
|
||||||
if( m_frontPlatedPadPolys && ( m_layers_poly.find( F_Cu ) != m_layers_poly.end() ) )
|
if( m_frontPlatedPadPolys && ( m_layers_poly.find( F_Cu ) != m_layers_poly.end() ) )
|
||||||
{
|
{
|
||||||
|
@ -777,7 +774,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||||
std::vector<PCB_LAYER_ID> &selected_layer_id = layer_ids;
|
std::vector<PCB_LAYER_ID> &selected_layer_id = layer_ids;
|
||||||
std::vector<PCB_LAYER_ID> layer_id_without_F_and_B;
|
std::vector<PCB_LAYER_ID> layer_id_without_F_and_B;
|
||||||
|
|
||||||
if( renderPlatedPadsAsPlated )
|
if( m_Cfg->m_Render.renderPlatedPadsAsPlated )
|
||||||
{
|
{
|
||||||
layer_id_without_F_and_B.clear();
|
layer_id_without_F_and_B.clear();
|
||||||
layer_id_without_F_and_B.reserve( layer_ids.size() );
|
layer_id_without_F_and_B.reserve( layer_ids.size() );
|
||||||
|
@ -887,9 +884,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||||
Dwgs_User,
|
Dwgs_User,
|
||||||
Cmts_User,
|
Cmts_User,
|
||||||
Eco1_User,
|
Eco1_User,
|
||||||
Eco2_User,
|
Eco2_User
|
||||||
Edge_Cuts,
|
|
||||||
Margin
|
|
||||||
};
|
};
|
||||||
|
|
||||||
for( LSEQ seq = LSET::AllNonCuMask().Seq( techLayerList, arrayDim( techLayerList ) );
|
for( LSEQ seq = LSET::AllNonCuMask().Seq( techLayerList, arrayDim( techLayerList ) );
|
||||||
|
|
|
@ -547,8 +547,6 @@ void EDA_3D_CANVAS::DoRePaint()
|
||||||
|
|
||||||
GL_CONTEXT_MANAGER::Get().UnlockCtx( m_glRC );
|
GL_CONTEXT_MANAGER::Get().UnlockCtx( m_glRC );
|
||||||
|
|
||||||
if( !activityReporter.HasMessage() )
|
|
||||||
{
|
|
||||||
if( m_mouse_was_moved || m_camera_is_moving )
|
if( m_mouse_was_moved || m_camera_is_moving )
|
||||||
{
|
{
|
||||||
// Calculation time in milliseconds
|
// Calculation time in milliseconds
|
||||||
|
@ -557,7 +555,6 @@ void EDA_3D_CANVAS::DoRePaint()
|
||||||
activityReporter.Report( wxString::Format( _( "Last render time %.0f ms" ),
|
activityReporter.Report( wxString::Format( _( "Last render time %.0f ms" ),
|
||||||
calculation_time ) );
|
calculation_time ) );
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// This will reset the flag of camera parameters changed
|
// This will reset the flag of camera parameters changed
|
||||||
m_camera.ParametersChanged();
|
m_camera.ParametersChanged();
|
||||||
|
|
|
@ -24,7 +24,6 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "render_3d_opengl.h"
|
#include "render_3d_opengl.h"
|
||||||
#include "opengl_utils.h"
|
|
||||||
#include <board.h>
|
#include <board.h>
|
||||||
#include <footprint.h>
|
#include <footprint.h>
|
||||||
#include "../../3d_math.h"
|
#include "../../3d_math.h"
|
||||||
|
@ -33,7 +32,6 @@
|
||||||
#include <project.h>
|
#include <project.h>
|
||||||
#include <profile.h> // To use GetRunningMicroSecs or another profiling utility
|
#include <profile.h> // To use GetRunningMicroSecs or another profiling utility
|
||||||
#include <fp_lib_table.h>
|
#include <fp_lib_table.h>
|
||||||
#include <eda_3d_canvas.h>
|
|
||||||
#include <eda_3d_viewer_frame.h>
|
#include <eda_3d_viewer_frame.h>
|
||||||
|
|
||||||
|
|
||||||
|
@ -468,8 +466,6 @@ void RENDER_3D_OPENGL::reload( REPORTER* aStatusReporter, REPORTER* aWarningRepo
|
||||||
// Create Board
|
// Create Board
|
||||||
m_board = createBoard( m_boardAdapter.GetBoardPoly(), &m_boardAdapter.GetThroughHoleIds() );
|
m_board = createBoard( m_boardAdapter.GetBoardPoly(), &m_boardAdapter.GetThroughHoleIds() );
|
||||||
|
|
||||||
if( m_boardAdapter.m_Cfg->m_Render.realistic )
|
|
||||||
{
|
|
||||||
m_antiBoardPolys.RemoveAllContours();
|
m_antiBoardPolys.RemoveAllContours();
|
||||||
m_antiBoardPolys.NewOutline();
|
m_antiBoardPolys.NewOutline();
|
||||||
m_antiBoardPolys.Append( VECTOR2I( -INT_MAX/2, -INT_MAX/2 ) );
|
m_antiBoardPolys.Append( VECTOR2I( -INT_MAX/2, -INT_MAX/2 ) );
|
||||||
|
@ -481,7 +477,6 @@ void RENDER_3D_OPENGL::reload( REPORTER* aStatusReporter, REPORTER* aWarningRepo
|
||||||
m_antiBoardPolys.BooleanSubtract( m_boardAdapter.GetBoardPoly(),
|
m_antiBoardPolys.BooleanSubtract( m_boardAdapter.GetBoardPoly(),
|
||||||
SHAPE_POLY_SET::PM_STRICTLY_SIMPLE );
|
SHAPE_POLY_SET::PM_STRICTLY_SIMPLE );
|
||||||
m_antiBoard = createBoard( m_antiBoardPolys );
|
m_antiBoard = createBoard( m_antiBoardPolys );
|
||||||
}
|
|
||||||
|
|
||||||
SHAPE_POLY_SET board_poly_with_holes = m_boardAdapter.GetBoardPoly().CloneDropTriangulation();
|
SHAPE_POLY_SET board_poly_with_holes = m_boardAdapter.GetBoardPoly().CloneDropTriangulation();
|
||||||
board_poly_with_holes.BooleanSubtract( m_boardAdapter.GetThroughHoleOdPolys(),
|
board_poly_with_holes.BooleanSubtract( m_boardAdapter.GetThroughHoleOdPolys(),
|
||||||
|
@ -500,11 +495,8 @@ void RENDER_3D_OPENGL::reload( REPORTER* aStatusReporter, REPORTER* aWarningRepo
|
||||||
|
|
||||||
SHAPE_POLY_SET outerPolyTHT = m_boardAdapter.GetThroughHoleOdPolys().CloneDropTriangulation();
|
SHAPE_POLY_SET outerPolyTHT = m_boardAdapter.GetThroughHoleOdPolys().CloneDropTriangulation();
|
||||||
|
|
||||||
if( m_boardAdapter.m_Cfg->m_Render.realistic )
|
|
||||||
{
|
|
||||||
outerPolyTHT.BooleanIntersection( m_boardAdapter.GetBoardPoly(),
|
outerPolyTHT.BooleanIntersection( m_boardAdapter.GetBoardPoly(),
|
||||||
SHAPE_POLY_SET::PM_STRICTLY_SIMPLE );
|
SHAPE_POLY_SET::PM_STRICTLY_SIMPLE );
|
||||||
}
|
|
||||||
|
|
||||||
m_outerThroughHoles = generateHoles( m_boardAdapter.GetThroughHoleOds().GetList(),
|
m_outerThroughHoles = generateHoles( m_boardAdapter.GetThroughHoleOds().GetList(),
|
||||||
outerPolyTHT, 1.0f, 0.0f, false,
|
outerPolyTHT, 1.0f, 0.0f, false,
|
||||||
|
@ -514,8 +506,7 @@ void RENDER_3D_OPENGL::reload( REPORTER* aStatusReporter, REPORTER* aWarningRepo
|
||||||
m_boardAdapter.GetThroughHoleViaOds().GetList(),
|
m_boardAdapter.GetThroughHoleViaOds().GetList(),
|
||||||
m_boardAdapter.GetThroughHoleViaOdPolys(), 1.0f, 0.0f, false );
|
m_boardAdapter.GetThroughHoleViaOdPolys(), 1.0f, 0.0f, false );
|
||||||
|
|
||||||
if( m_boardAdapter.m_Cfg->m_Render.clip_silk_on_via_annulus &&
|
if( m_boardAdapter.m_Cfg->m_Render.clip_silk_on_via_annulus )
|
||||||
m_boardAdapter.m_Cfg->m_Render.realistic )
|
|
||||||
{
|
{
|
||||||
m_outerThroughHoleRings = generateHoles(
|
m_outerThroughHoleRings = generateHoles(
|
||||||
m_boardAdapter.GetThroughHoleAnnularRings().GetList(),
|
m_boardAdapter.GetThroughHoleAnnularRings().GetList(),
|
||||||
|
@ -593,8 +584,6 @@ void RENDER_3D_OPENGL::reload( REPORTER* aStatusReporter, REPORTER* aWarningRepo
|
||||||
{
|
{
|
||||||
polyListSubtracted = *map_poly.at( layer_id );;
|
polyListSubtracted = *map_poly.at( layer_id );;
|
||||||
|
|
||||||
if( m_boardAdapter.m_Cfg->m_Render.realistic )
|
|
||||||
{
|
|
||||||
polyListSubtracted.BooleanIntersection( m_boardAdapter.GetBoardPoly(),
|
polyListSubtracted.BooleanIntersection( m_boardAdapter.GetBoardPoly(),
|
||||||
SHAPE_POLY_SET::PM_FAST );
|
SHAPE_POLY_SET::PM_FAST );
|
||||||
|
|
||||||
|
@ -619,7 +608,6 @@ void RENDER_3D_OPENGL::reload( REPORTER* aStatusReporter, REPORTER* aWarningRepo
|
||||||
SHAPE_POLY_SET::PM_FAST );
|
SHAPE_POLY_SET::PM_FAST );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
polyList = &polyListSubtracted;
|
polyList = &polyListSubtracted;
|
||||||
}
|
}
|
||||||
|
@ -632,8 +620,7 @@ void RENDER_3D_OPENGL::reload( REPORTER* aStatusReporter, REPORTER* aWarningRepo
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if( m_boardAdapter.m_Cfg->m_Render.renderPlatedPadsAsPlated
|
if( m_boardAdapter.m_Cfg->m_Render.renderPlatedPadsAsPlated )
|
||||||
&& m_boardAdapter.m_Cfg->m_Render.realistic )
|
|
||||||
{
|
{
|
||||||
const SHAPE_POLY_SET* frontPlatedPadPolys = m_boardAdapter.GetFrontPlatedPadPolys();
|
const SHAPE_POLY_SET* frontPlatedPadPolys = m_boardAdapter.GetFrontPlatedPadPolys();
|
||||||
const SHAPE_POLY_SET* backPlatedPadPolys = m_boardAdapter.GetBackPlatedPadPolys();
|
const SHAPE_POLY_SET* backPlatedPadPolys = m_boardAdapter.GetBackPlatedPadPolys();
|
||||||
|
@ -861,7 +848,6 @@ void RENDER_3D_OPENGL::generateViasAndPads()
|
||||||
// Subtract the holes
|
// Subtract the holes
|
||||||
tht_outer_holes_poly.BooleanSubtract( tht_inner_holes_poly, SHAPE_POLY_SET::PM_FAST );
|
tht_outer_holes_poly.BooleanSubtract( tht_inner_holes_poly, SHAPE_POLY_SET::PM_FAST );
|
||||||
|
|
||||||
if( m_boardAdapter.m_Cfg->m_Render.realistic )
|
|
||||||
tht_outer_holes_poly.BooleanSubtract( m_antiBoardPolys, SHAPE_POLY_SET::PM_FAST );
|
tht_outer_holes_poly.BooleanSubtract( m_antiBoardPolys, SHAPE_POLY_SET::PM_FAST );
|
||||||
|
|
||||||
CONTAINER_2D holesContainer;
|
CONTAINER_2D holesContainer;
|
||||||
|
|
|
@ -175,8 +175,6 @@ void RENDER_3D_OPENGL::setupMaterials()
|
||||||
{
|
{
|
||||||
m_materials = {};
|
m_materials = {};
|
||||||
|
|
||||||
if( m_boardAdapter.m_Cfg->m_Render.realistic )
|
|
||||||
{
|
|
||||||
// http://devernay.free.fr/cours/opengl/materials.html
|
// http://devernay.free.fr/cours/opengl/materials.html
|
||||||
|
|
||||||
// Plated copper
|
// Plated copper
|
||||||
|
@ -229,12 +227,9 @@ void RENDER_3D_OPENGL::setupMaterials()
|
||||||
m_boardAdapter.m_SilkScreenColorTop.b );
|
m_boardAdapter.m_SilkScreenColorTop.b );
|
||||||
|
|
||||||
m_materials.m_SilkSTop.m_Specular = SFVEC3F(
|
m_materials.m_SilkSTop.m_Specular = SFVEC3F(
|
||||||
m_boardAdapter.m_SilkScreenColorTop.r * m_boardAdapter.m_SilkScreenColorTop.r +
|
m_boardAdapter.m_SilkScreenColorTop.r * m_boardAdapter.m_SilkScreenColorTop.r + 0.10f,
|
||||||
0.10f,
|
m_boardAdapter.m_SilkScreenColorTop.g * m_boardAdapter.m_SilkScreenColorTop.g + 0.10f,
|
||||||
m_boardAdapter.m_SilkScreenColorTop.g * m_boardAdapter.m_SilkScreenColorTop.g +
|
m_boardAdapter.m_SilkScreenColorTop.b * m_boardAdapter.m_SilkScreenColorTop.b + 0.10f );
|
||||||
0.10f,
|
|
||||||
m_boardAdapter.m_SilkScreenColorTop.b * m_boardAdapter.m_SilkScreenColorTop.b +
|
|
||||||
0.10f );
|
|
||||||
|
|
||||||
m_materials.m_SilkSTop.m_Shininess = 0.078125f * 128.0f;
|
m_materials.m_SilkSTop.m_Shininess = 0.078125f * 128.0f;
|
||||||
m_materials.m_SilkSTop.m_Emissive = SFVEC3F( 0.0f, 0.0f, 0.0f );
|
m_materials.m_SilkSTop.m_Emissive = SFVEC3F( 0.0f, 0.0f, 0.0f );
|
||||||
|
@ -245,12 +240,9 @@ void RENDER_3D_OPENGL::setupMaterials()
|
||||||
m_boardAdapter.m_SilkScreenColorBot.b );
|
m_boardAdapter.m_SilkScreenColorBot.b );
|
||||||
|
|
||||||
m_materials.m_SilkSBot.m_Specular = SFVEC3F(
|
m_materials.m_SilkSBot.m_Specular = SFVEC3F(
|
||||||
m_boardAdapter.m_SilkScreenColorBot.r * m_boardAdapter.m_SilkScreenColorBot.r +
|
m_boardAdapter.m_SilkScreenColorBot.r * m_boardAdapter.m_SilkScreenColorBot.r + 0.10f,
|
||||||
0.10f,
|
m_boardAdapter.m_SilkScreenColorBot.g * m_boardAdapter.m_SilkScreenColorBot.g + 0.10f,
|
||||||
m_boardAdapter.m_SilkScreenColorBot.g * m_boardAdapter.m_SilkScreenColorBot.g +
|
m_boardAdapter.m_SilkScreenColorBot.b * m_boardAdapter.m_SilkScreenColorBot.b + 0.10f );
|
||||||
0.10f,
|
|
||||||
m_boardAdapter.m_SilkScreenColorBot.b * m_boardAdapter.m_SilkScreenColorBot.b +
|
|
||||||
0.10f );
|
|
||||||
|
|
||||||
m_materials.m_SilkSBot.m_Shininess = 0.078125f * 128.0f;
|
m_materials.m_SilkSBot.m_Shininess = 0.078125f * 128.0f;
|
||||||
m_materials.m_SilkSBot.m_Emissive = SFVEC3F( 0.0f, 0.0f, 0.0f );
|
m_materials.m_SilkSBot.m_Emissive = SFVEC3F( 0.0f, 0.0f, 0.0f );
|
||||||
|
@ -268,56 +260,6 @@ void RENDER_3D_OPENGL::setupMaterials()
|
||||||
m_materials.m_EpoxyBoard.m_Shininess = 0.1f * 128.0f;
|
m_materials.m_EpoxyBoard.m_Shininess = 0.1f * 128.0f;
|
||||||
m_materials.m_EpoxyBoard.m_Emissive = SFVEC3F( 0.0f, 0.0f, 0.0f );
|
m_materials.m_EpoxyBoard.m_Emissive = SFVEC3F( 0.0f, 0.0f, 0.0f );
|
||||||
}
|
}
|
||||||
else // Technical Mode
|
|
||||||
{
|
|
||||||
const SFVEC3F matAmbientColor = SFVEC3F( 0.10f );
|
|
||||||
const SFVEC3F matSpecularColor = SFVEC3F( 0.10f );
|
|
||||||
const float matShininess = 0.1f * 128.0f;
|
|
||||||
|
|
||||||
// Copper material
|
|
||||||
m_materials.m_Copper.m_Ambient = matAmbientColor;
|
|
||||||
m_materials.m_Copper.m_Specular = matSpecularColor;
|
|
||||||
m_materials.m_Copper.m_Shininess = matShininess;
|
|
||||||
m_materials.m_Copper.m_Emissive = SFVEC3F( 0.0f, 0.0f, 0.0f );
|
|
||||||
|
|
||||||
// Paste material
|
|
||||||
m_materials.m_Paste.m_Ambient = matAmbientColor;
|
|
||||||
m_materials.m_Paste.m_Specular = matSpecularColor;
|
|
||||||
m_materials.m_Paste.m_Shininess = matShininess;
|
|
||||||
m_materials.m_Paste.m_Emissive = SFVEC3F( 0.0f, 0.0f, 0.0f );
|
|
||||||
|
|
||||||
// Silk screen material
|
|
||||||
m_materials.m_SilkSTop.m_Ambient = matAmbientColor;
|
|
||||||
m_materials.m_SilkSTop.m_Specular = matSpecularColor;
|
|
||||||
m_materials.m_SilkSTop.m_Shininess = matShininess;
|
|
||||||
m_materials.m_SilkSTop.m_Emissive = SFVEC3F( 0.0f, 0.0f, 0.0f );
|
|
||||||
|
|
||||||
// Silk screen material
|
|
||||||
m_materials.m_SilkSBot.m_Ambient = matAmbientColor;
|
|
||||||
m_materials.m_SilkSBot.m_Specular = matSpecularColor;
|
|
||||||
m_materials.m_SilkSBot.m_Shininess = matShininess;
|
|
||||||
m_materials.m_SilkSBot.m_Emissive = SFVEC3F( 0.0f, 0.0f, 0.0f );
|
|
||||||
|
|
||||||
// Solder mask material
|
|
||||||
m_materials.m_SolderMask.m_Ambient = matAmbientColor;
|
|
||||||
m_materials.m_SolderMask.m_Specular = matSpecularColor;
|
|
||||||
m_materials.m_SolderMask.m_Shininess = matShininess;
|
|
||||||
m_materials.m_SolderMask.m_Emissive = SFVEC3F( 0.0f, 0.0f, 0.0f );
|
|
||||||
|
|
||||||
// Epoxy material
|
|
||||||
m_materials.m_EpoxyBoard.m_Ambient = matAmbientColor;
|
|
||||||
m_materials.m_EpoxyBoard.m_Specular = matSpecularColor;
|
|
||||||
m_materials.m_EpoxyBoard.m_Shininess = matShininess;
|
|
||||||
m_materials.m_EpoxyBoard.m_Emissive = SFVEC3F( 0.0f, 0.0f, 0.0f );
|
|
||||||
|
|
||||||
// Gray material (used for example in technical vias and pad holes)
|
|
||||||
m_materials.m_GrayMaterial.m_Ambient = SFVEC3F( 0.8f, 0.8f, 0.8f );
|
|
||||||
m_materials.m_GrayMaterial.m_Diffuse = SFVEC3F( 0.3f, 0.3f, 0.3f );
|
|
||||||
m_materials.m_GrayMaterial.m_Specular = SFVEC3F( 0.4f, 0.4f, 0.4f );
|
|
||||||
m_materials.m_GrayMaterial.m_Shininess = 0.01f * 128.0f;
|
|
||||||
m_materials.m_GrayMaterial.m_Emissive = SFVEC3F( 0.0f, 0.0f, 0.0f );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void RENDER_3D_OPENGL::setLayerMaterial( PCB_LAYER_ID aLayerID )
|
void RENDER_3D_OPENGL::setLayerMaterial( PCB_LAYER_ID aLayerID )
|
||||||
|
@ -327,20 +269,18 @@ void RENDER_3D_OPENGL::setLayerMaterial( PCB_LAYER_ID aLayerID )
|
||||||
case F_Mask:
|
case F_Mask:
|
||||||
case B_Mask:
|
case B_Mask:
|
||||||
{
|
{
|
||||||
const SFVEC4F layerColor = getLayerColor( aLayerID );
|
const SFVEC4F layerColor = aLayerID == F_Mask ? m_boardAdapter.m_SolderMaskColorTop
|
||||||
|
: m_boardAdapter.m_SolderMaskColorBot;
|
||||||
|
|
||||||
m_materials.m_SolderMask.m_Diffuse = layerColor;
|
m_materials.m_SolderMask.m_Diffuse = layerColor;
|
||||||
|
|
||||||
// Convert Opacity to Transparency
|
// Convert Opacity to Transparency
|
||||||
m_materials.m_SolderMask.m_Transparency = 1.0f - layerColor.a;
|
m_materials.m_SolderMask.m_Transparency = 1.0f - layerColor.a;
|
||||||
|
|
||||||
if( m_boardAdapter.m_Cfg->m_Render.realistic )
|
|
||||||
{
|
|
||||||
m_materials.m_SolderMask.m_Ambient = m_materials.m_SolderMask.m_Diffuse * 0.3f;
|
m_materials.m_SolderMask.m_Ambient = m_materials.m_SolderMask.m_Diffuse * 0.3f;
|
||||||
|
|
||||||
m_materials.m_SolderMask.m_Specular =
|
m_materials.m_SolderMask.m_Specular = m_materials.m_SolderMask.m_Diffuse
|
||||||
m_materials.m_SolderMask.m_Diffuse * m_materials.m_SolderMask.m_Diffuse;
|
* m_materials.m_SolderMask.m_Diffuse;
|
||||||
}
|
|
||||||
|
|
||||||
OglSetMaterial( m_materials.m_SolderMask, 1.0f );
|
OglSetMaterial( m_materials.m_SolderMask, 1.0f );
|
||||||
break;
|
break;
|
||||||
|
@ -348,17 +288,17 @@ void RENDER_3D_OPENGL::setLayerMaterial( PCB_LAYER_ID aLayerID )
|
||||||
|
|
||||||
case B_Paste:
|
case B_Paste:
|
||||||
case F_Paste:
|
case F_Paste:
|
||||||
m_materials.m_Paste.m_Diffuse = getLayerColor( aLayerID );
|
m_materials.m_Paste.m_Diffuse = m_boardAdapter.m_SolderPasteColor;
|
||||||
OglSetMaterial( m_materials.m_Paste, 1.0f );
|
OglSetMaterial( m_materials.m_Paste, 1.0f );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case B_SilkS:
|
case B_SilkS:
|
||||||
m_materials.m_SilkSBot.m_Diffuse = getLayerColor( aLayerID );
|
m_materials.m_SilkSBot.m_Diffuse = m_boardAdapter.m_SilkScreenColorBot;
|
||||||
OglSetMaterial( m_materials.m_SilkSBot, 1.0f );
|
OglSetMaterial( m_materials.m_SilkSBot, 1.0f );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case F_SilkS:
|
case F_SilkS:
|
||||||
m_materials.m_SilkSTop.m_Diffuse = getLayerColor( aLayerID );
|
m_materials.m_SilkSTop.m_Diffuse = m_boardAdapter.m_SilkScreenColorTop;
|
||||||
OglSetMaterial( m_materials.m_SilkSTop, 1.0f );
|
OglSetMaterial( m_materials.m_SilkSTop, 1.0f );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -374,7 +314,18 @@ void RENDER_3D_OPENGL::setLayerMaterial( PCB_LAYER_ID aLayerID )
|
||||||
case F_CrtYd:
|
case F_CrtYd:
|
||||||
case B_Fab:
|
case B_Fab:
|
||||||
case F_Fab:
|
case F_Fab:
|
||||||
m_materials.m_Plastic.m_Diffuse = getLayerColor( aLayerID );
|
switch( aLayerID )
|
||||||
|
{
|
||||||
|
case Dwgs_User: m_materials.m_Plastic.m_Diffuse = m_boardAdapter.m_UserDrawingsColor; break;
|
||||||
|
case Cmts_User: m_materials.m_Plastic.m_Diffuse = m_boardAdapter.m_UserCommentsColor; break;
|
||||||
|
case Eco1_User: m_materials.m_Plastic.m_Diffuse = m_boardAdapter.m_ECO1Color; break;
|
||||||
|
case Eco2_User: m_materials.m_Plastic.m_Diffuse = m_boardAdapter.m_ECO2Color; break;
|
||||||
|
case Edge_Cuts: m_materials.m_Plastic.m_Diffuse = m_boardAdapter.m_UserDrawingsColor; break;
|
||||||
|
case Margin: m_materials.m_Plastic.m_Diffuse = m_boardAdapter.m_UserDrawingsColor; break;
|
||||||
|
default:
|
||||||
|
m_materials.m_Plastic.m_Diffuse = m_boardAdapter.GetLayerColor( aLayerID );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
m_materials.m_Plastic.m_Ambient = SFVEC3F( m_materials.m_Plastic.m_Diffuse.r * 0.05f,
|
m_materials.m_Plastic.m_Ambient = SFVEC3F( m_materials.m_Plastic.m_Diffuse.r * 0.05f,
|
||||||
m_materials.m_Plastic.m_Diffuse.g * 0.05f,
|
m_materials.m_Plastic.m_Diffuse.g * 0.05f,
|
||||||
|
@ -390,82 +341,14 @@ void RENDER_3D_OPENGL::setLayerMaterial( PCB_LAYER_ID aLayerID )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
m_materials.m_Copper.m_Diffuse = getLayerColor( aLayerID );
|
m_materials.m_Copper.m_Diffuse = m_boardAdapter.m_CopperColor;
|
||||||
OglSetMaterial( m_materials.m_Copper, 1.0f );
|
OglSetMaterial( m_materials.m_Copper, 1.0f );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
SFVEC4F RENDER_3D_OPENGL::getLayerColor( PCB_LAYER_ID aLayerID )
|
void init_lights()
|
||||||
{
|
|
||||||
SFVEC4F layerColor = m_boardAdapter.GetLayerColor( aLayerID );
|
|
||||||
|
|
||||||
if( m_boardAdapter.m_Cfg->m_Render.realistic )
|
|
||||||
{
|
|
||||||
switch( aLayerID )
|
|
||||||
{
|
|
||||||
case B_Adhes:
|
|
||||||
case F_Adhes:
|
|
||||||
break;
|
|
||||||
|
|
||||||
case B_Mask:
|
|
||||||
layerColor = m_boardAdapter.m_SolderMaskColorBot;
|
|
||||||
break;
|
|
||||||
case F_Mask:
|
|
||||||
layerColor = m_boardAdapter.m_SolderMaskColorTop;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case B_Paste:
|
|
||||||
case F_Paste:
|
|
||||||
layerColor = m_boardAdapter.m_SolderPasteColor;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case B_SilkS:
|
|
||||||
layerColor = m_boardAdapter.m_SilkScreenColorBot;
|
|
||||||
break;
|
|
||||||
case F_SilkS:
|
|
||||||
layerColor = m_boardAdapter.m_SilkScreenColorTop;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case Dwgs_User:
|
|
||||||
layerColor = m_boardAdapter.m_UserDrawingsColor;
|
|
||||||
break;
|
|
||||||
case Cmts_User:
|
|
||||||
layerColor = m_boardAdapter.m_UserCommentsColor;
|
|
||||||
break;
|
|
||||||
case Eco1_User:
|
|
||||||
layerColor = m_boardAdapter.m_ECO1Color;
|
|
||||||
break;
|
|
||||||
case Eco2_User:
|
|
||||||
layerColor = m_boardAdapter.m_ECO2Color;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case Edge_Cuts:
|
|
||||||
case Margin:
|
|
||||||
layerColor = m_boardAdapter.m_UserDrawingsColor;
|
|
||||||
break;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case B_CrtYd:
|
|
||||||
case F_CrtYd:
|
|
||||||
break;
|
|
||||||
|
|
||||||
case B_Fab:
|
|
||||||
case F_Fab:
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
layerColor = m_boardAdapter.m_CopperColor;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return layerColor;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void init_lights( void )
|
|
||||||
{
|
{
|
||||||
// Setup light
|
// Setup light
|
||||||
// https://www.opengl.org/sdk/docs/man2/xhtml/glLight.xml
|
// https://www.opengl.org/sdk/docs/man2/xhtml/glLight.xml
|
||||||
|
@ -660,15 +543,7 @@ bool RENDER_3D_OPENGL::Redraw( bool aIsMoving, REPORTER* aStatusReporter,
|
||||||
|
|
||||||
bool drawMiddleSegments = !skipThickness;
|
bool drawMiddleSegments = !skipThickness;
|
||||||
|
|
||||||
if( m_boardAdapter.m_Cfg->m_Render.realistic )
|
|
||||||
{
|
|
||||||
// Draw vias and pad holes with copper material
|
|
||||||
setLayerMaterial( B_Cu );
|
setLayerMaterial( B_Cu );
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
OglSetMaterial( m_materials.m_GrayMaterial, 1.0f );
|
|
||||||
}
|
|
||||||
|
|
||||||
if( !( skipRenderVias || skipRenderHoles ) && m_vias )
|
if( !( skipRenderVias || skipRenderHoles ) && m_vias )
|
||||||
m_vias->DrawAll();
|
m_vias->DrawAll();
|
||||||
|
@ -703,15 +578,10 @@ bool RENDER_3D_OPENGL::Redraw( bool aIsMoving, REPORTER* aStatusReporter,
|
||||||
|
|
||||||
if( ( layer_id >= F_Cu ) && ( layer_id <= B_Cu ) )
|
if( ( layer_id >= F_Cu ) && ( layer_id <= B_Cu ) )
|
||||||
{
|
{
|
||||||
if( m_boardAdapter.m_Cfg->m_Render.renderPlatedPadsAsPlated
|
if( m_boardAdapter.m_Cfg->m_Render.renderPlatedPadsAsPlated )
|
||||||
&& m_boardAdapter.m_Cfg->m_Render.realistic )
|
|
||||||
{
|
|
||||||
setCopperMaterial();
|
setCopperMaterial();
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
|
||||||
setLayerMaterial( layer_id );
|
setLayerMaterial( layer_id );
|
||||||
}
|
|
||||||
|
|
||||||
if( skipRenderHoles )
|
if( skipRenderHoles )
|
||||||
{
|
{
|
||||||
|
@ -817,7 +687,6 @@ bool RENDER_3D_OPENGL::Redraw( bool aIsMoving, REPORTER* aStatusReporter,
|
||||||
OPENGL_RENDER_LIST* throughHolesOuter = m_outerThroughHoles;
|
OPENGL_RENDER_LIST* throughHolesOuter = m_outerThroughHoles;
|
||||||
|
|
||||||
if( m_boardAdapter.m_Cfg->m_Render.clip_silk_on_via_annulus
|
if( m_boardAdapter.m_Cfg->m_Render.clip_silk_on_via_annulus
|
||||||
&& m_boardAdapter.m_Cfg->m_Render.realistic
|
|
||||||
&& ( layer_id == B_SilkS || layer_id == F_SilkS ) )
|
&& ( layer_id == B_SilkS || layer_id == F_SilkS ) )
|
||||||
{
|
{
|
||||||
throughHolesOuter = m_outerThroughHoleRings;
|
throughHolesOuter = m_outerThroughHoleRings;
|
||||||
|
@ -850,7 +719,6 @@ bool RENDER_3D_OPENGL::Redraw( bool aIsMoving, REPORTER* aStatusReporter,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if( m_boardAdapter.m_Cfg->m_Render.subtract_mask_from_silk
|
else if( m_boardAdapter.m_Cfg->m_Render.subtract_mask_from_silk
|
||||||
&& m_boardAdapter.m_Cfg->m_Render.realistic
|
|
||||||
&& ( ( layer_id == B_SilkS && m_layers.find( B_Mask ) != m_layers.end() )
|
&& ( ( layer_id == B_SilkS && m_layers.find( B_Mask ) != m_layers.end() )
|
||||||
|| ( layer_id == F_SilkS && m_layers.find( F_Mask ) != m_layers.end() ) ) )
|
|| ( layer_id == F_SilkS && m_layers.find( F_Mask ) != m_layers.end() ) ) )
|
||||||
{
|
{
|
||||||
|
@ -865,13 +733,11 @@ bool RENDER_3D_OPENGL::Redraw( bool aIsMoving, REPORTER* aStatusReporter,
|
||||||
else if( throughHolesOuter )
|
else if( throughHolesOuter )
|
||||||
{
|
{
|
||||||
pLayerDispList->DrawAllCameraCulledSubtractLayer( drawMiddleSegments, nullptr,
|
pLayerDispList->DrawAllCameraCulledSubtractLayer( drawMiddleSegments, nullptr,
|
||||||
throughHolesOuter,
|
throughHolesOuter, anti_board );
|
||||||
anti_board );
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pLayerDispList->DrawAllCameraCulledSubtractLayer( drawMiddleSegments,
|
pLayerDispList->DrawAllCameraCulledSubtractLayer( drawMiddleSegments, anti_board );
|
||||||
anti_board );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1348,9 +1214,7 @@ void RENDER_3D_OPENGL::renderOpaqueModels( const glm::mat4 &aCameraViewMatrix )
|
||||||
MODEL_3D::BeginDrawMulti( false );
|
MODEL_3D::BeginDrawMulti( false );
|
||||||
|
|
||||||
for( const MODELTORENDER& mtr : renderList )
|
for( const MODELTORENDER& mtr : renderList )
|
||||||
{
|
|
||||||
renderModel( aCameraViewMatrix, mtr, selColor, nullptr );
|
renderModel( aCameraViewMatrix, mtr, selColor, nullptr );
|
||||||
}
|
|
||||||
|
|
||||||
MODEL_3D::EndDrawMulti();
|
MODEL_3D::EndDrawMulti();
|
||||||
}
|
}
|
||||||
|
@ -1364,9 +1228,7 @@ void RENDER_3D_OPENGL::renderOpaqueModels( const glm::mat4 &aCameraViewMatrix )
|
||||||
MODEL_3D::BeginDrawMulti( true );
|
MODEL_3D::BeginDrawMulti( true );
|
||||||
|
|
||||||
for( const MODELTORENDER& mtr : renderList )
|
for( const MODELTORENDER& mtr : renderList )
|
||||||
{
|
|
||||||
renderModel( aCameraViewMatrix, mtr, selColor, nullptr );
|
renderModel( aCameraViewMatrix, mtr, selColor, nullptr );
|
||||||
}
|
|
||||||
|
|
||||||
MODEL_3D::EndDrawMulti();
|
MODEL_3D::EndDrawMulti();
|
||||||
}
|
}
|
||||||
|
@ -1414,7 +1276,8 @@ void RENDER_3D_OPENGL::renderTransparentModels( const glm::mat4 &aCameraViewMatr
|
||||||
// Sort from back to front
|
// Sort from back to front
|
||||||
std::sort( transparentModelList.begin(), transparentModelList.end(),
|
std::sort( transparentModelList.begin(), transparentModelList.end(),
|
||||||
[&]( std::pair<const MODELTORENDER *, float>& a,
|
[&]( std::pair<const MODELTORENDER *, float>& a,
|
||||||
std::pair<const MODELTORENDER *, float>& b ) {
|
std::pair<const MODELTORENDER *, float>& b )
|
||||||
|
{
|
||||||
return a.second > b.second;
|
return a.second > b.second;
|
||||||
} );
|
} );
|
||||||
|
|
||||||
|
@ -1472,12 +1335,9 @@ void RENDER_3D_OPENGL::renderModel( const glm::mat4 &aCameraViewMatrix,
|
||||||
|
|
||||||
glLoadMatrixf( glm::value_ptr( modelviewMatrix ) );
|
glLoadMatrixf( glm::value_ptr( modelviewMatrix ) );
|
||||||
|
|
||||||
aModelToRender.m_model->Draw( aModelToRender.m_isTransparent,
|
aModelToRender.m_model->Draw( aModelToRender.m_isTransparent, aModelToRender.m_opacity,
|
||||||
aModelToRender.m_opacity,
|
aModelToRender.m_isSelected, aSelColor,
|
||||||
aModelToRender.m_isSelected,
|
&aModelToRender.m_modelWorldMat, aCameraWorldPos );
|
||||||
aSelColor,
|
|
||||||
&aModelToRender.m_modelWorldMat,
|
|
||||||
aCameraWorldPos );
|
|
||||||
|
|
||||||
if( m_boardAdapter.m_Cfg->m_Render.opengl_show_model_bbox )
|
if( m_boardAdapter.m_Cfg->m_Render.opengl_show_model_bbox )
|
||||||
{
|
{
|
||||||
|
@ -1500,11 +1360,9 @@ void RENDER_3D_OPENGL::renderModel( const glm::mat4 &aCameraViewMatrix,
|
||||||
glEnable( GL_LIGHTING );
|
glEnable( GL_LIGHTING );
|
||||||
|
|
||||||
if( !wasBlendEnabled )
|
if( !wasBlendEnabled )
|
||||||
{
|
|
||||||
glDisable( GL_BLEND );
|
glDisable( GL_BLEND );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void RENDER_3D_OPENGL::generate3dGrid( GRID3D_TYPE aGridType )
|
void RENDER_3D_OPENGL::generate3dGrid( GRID3D_TYPE aGridType )
|
||||||
|
@ -1541,21 +1399,13 @@ void RENDER_3D_OPENGL::generate3dGrid( GRID3D_TYPE aGridType )
|
||||||
|
|
||||||
switch( aGridType )
|
switch( aGridType )
|
||||||
{
|
{
|
||||||
|
case GRID3D_TYPE::GRID_1MM: griSizeMM = 1.0; break;
|
||||||
|
case GRID3D_TYPE::GRID_2P5MM: griSizeMM = 2.5; break;
|
||||||
|
case GRID3D_TYPE::GRID_5MM: griSizeMM = 5.0; break;
|
||||||
|
case GRID3D_TYPE::GRID_10MM: griSizeMM = 10.0; break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
case GRID3D_TYPE::NONE:
|
case GRID3D_TYPE::NONE: return;
|
||||||
return;
|
|
||||||
case GRID3D_TYPE::GRID_1MM:
|
|
||||||
griSizeMM = 1.0;
|
|
||||||
break;
|
|
||||||
case GRID3D_TYPE::GRID_2P5MM:
|
|
||||||
griSizeMM = 2.5;
|
|
||||||
break;
|
|
||||||
case GRID3D_TYPE::GRID_5MM:
|
|
||||||
griSizeMM = 5.0;
|
|
||||||
break;
|
|
||||||
case GRID3D_TYPE::GRID_10MM:
|
|
||||||
griSizeMM = 10.0;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
glNormal3f( 0.0, 0.0, 1.0 );
|
glNormal3f( 0.0, 0.0, 1.0 );
|
||||||
|
|
|
@ -189,7 +189,6 @@ private:
|
||||||
void unsetDepthOffset();
|
void unsetDepthOffset();
|
||||||
|
|
||||||
void setLayerMaterial( PCB_LAYER_ID aLayerID );
|
void setLayerMaterial( PCB_LAYER_ID aLayerID );
|
||||||
SFVEC4F getLayerColor( PCB_LAYER_ID aLayerID );
|
|
||||||
|
|
||||||
bool initializeOpenGL();
|
bool initializeOpenGL();
|
||||||
OPENGL_RENDER_LIST* createBoard( const SHAPE_POLY_SET& aBoardPoly,
|
OPENGL_RENDER_LIST* createBoard( const SHAPE_POLY_SET& aBoardPoly,
|
||||||
|
|
|
@ -275,7 +275,6 @@ void RENDER_3D_RAYTRACE::createItemsFromContainer( const BVH_CONTAINER_2D* aCont
|
||||||
// rather than the at the outer edge of the copper plating.
|
// rather than the at the outer edge of the copper plating.
|
||||||
const BVH_CONTAINER_2D& throughHoleOuter =
|
const BVH_CONTAINER_2D& throughHoleOuter =
|
||||||
m_boardAdapter.m_Cfg->m_Render.clip_silk_on_via_annulus
|
m_boardAdapter.m_Cfg->m_Render.clip_silk_on_via_annulus
|
||||||
&& m_boardAdapter.m_Cfg->m_Render.realistic
|
|
||||||
&& ( aLayer_id == B_SilkS || aLayer_id == F_SilkS ) ?
|
&& ( aLayer_id == B_SilkS || aLayer_id == F_SilkS ) ?
|
||||||
m_boardAdapter.GetThroughHoleAnnularRings() :
|
m_boardAdapter.GetThroughHoleAnnularRings() :
|
||||||
m_boardAdapter.GetThroughHoleOds();
|
m_boardAdapter.GetThroughHoleOds();
|
||||||
|
@ -305,7 +304,6 @@ void RENDER_3D_RAYTRACE::createItemsFromContainer( const BVH_CONTAINER_2D* aCont
|
||||||
const MAP_CONTAINER_2D_BASE& mapLayers = m_boardAdapter.GetLayerMap();
|
const MAP_CONTAINER_2D_BASE& mapLayers = m_boardAdapter.GetLayerMap();
|
||||||
|
|
||||||
if( m_boardAdapter.m_Cfg->m_Render.subtract_mask_from_silk
|
if( m_boardAdapter.m_Cfg->m_Render.subtract_mask_from_silk
|
||||||
&& m_boardAdapter.m_Cfg->m_Render.realistic
|
|
||||||
&& ( ( aLayer_id == B_SilkS && mapLayers.find( B_Mask ) != mapLayers.end() )
|
&& ( ( aLayer_id == B_SilkS && mapLayers.find( B_Mask ) != mapLayers.end() )
|
||||||
|| ( aLayer_id == F_SilkS && mapLayers.find( F_Mask ) != mapLayers.end() ) ) )
|
|| ( aLayer_id == F_SilkS && mapLayers.find( F_Mask ) != mapLayers.end() ) ) )
|
||||||
{
|
{
|
||||||
|
@ -587,32 +585,17 @@ void RENDER_3D_RAYTRACE::Reload( REPORTER* aStatusReporter, REPORTER* aWarningRe
|
||||||
case B_Paste:
|
case B_Paste:
|
||||||
case F_Paste:
|
case F_Paste:
|
||||||
materialLayer = &m_materials.m_Paste;
|
materialLayer = &m_materials.m_Paste;
|
||||||
|
|
||||||
if( m_boardAdapter.m_Cfg->m_Render.realistic )
|
|
||||||
layerColor = m_boardAdapter.m_SolderPasteColor;
|
layerColor = m_boardAdapter.m_SolderPasteColor;
|
||||||
else
|
|
||||||
layerColor = m_boardAdapter.GetLayerColor( layer_id );
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case B_SilkS:
|
case B_SilkS:
|
||||||
materialLayer = &m_materials.m_SilkS;
|
materialLayer = &m_materials.m_SilkS;
|
||||||
|
|
||||||
if( m_boardAdapter.m_Cfg->m_Render.realistic )
|
|
||||||
layerColor = m_boardAdapter.m_SilkScreenColorBot;
|
layerColor = m_boardAdapter.m_SilkScreenColorBot;
|
||||||
else
|
|
||||||
layerColor = m_boardAdapter.GetLayerColor( layer_id );
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case F_SilkS:
|
case F_SilkS:
|
||||||
materialLayer = &m_materials.m_SilkS;
|
materialLayer = &m_materials.m_SilkS;
|
||||||
|
|
||||||
if( m_boardAdapter.m_Cfg->m_Render.realistic )
|
|
||||||
layerColor = m_boardAdapter.m_SilkScreenColorTop;
|
layerColor = m_boardAdapter.m_SilkScreenColorTop;
|
||||||
else
|
|
||||||
layerColor = m_boardAdapter.GetLayerColor( layer_id );
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Dwgs_User:
|
case Dwgs_User:
|
||||||
|
@ -631,11 +614,6 @@ void RENDER_3D_RAYTRACE::Reload( REPORTER* aStatusReporter, REPORTER* aWarningRe
|
||||||
layerColor = m_boardAdapter.m_ECO2Color;
|
layerColor = m_boardAdapter.m_ECO2Color;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Edge_Cuts:
|
|
||||||
case Margin:
|
|
||||||
layerColor = m_boardAdapter.m_UserDrawingsColor;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case B_CrtYd:
|
case B_CrtYd:
|
||||||
case F_CrtYd:
|
case F_CrtYd:
|
||||||
break;
|
break;
|
||||||
|
@ -645,8 +623,6 @@ void RENDER_3D_RAYTRACE::Reload( REPORTER* aStatusReporter, REPORTER* aWarningRe
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
if( m_boardAdapter.m_Cfg->m_Render.realistic )
|
|
||||||
{
|
|
||||||
if( m_boardAdapter.m_Cfg->m_Render.renderPlatedPadsAsPlated )
|
if( m_boardAdapter.m_Cfg->m_Render.renderPlatedPadsAsPlated )
|
||||||
{
|
{
|
||||||
layerColor = SFVEC3F( 184.0f / 255.0f, 115.0f / 255.0f, 50.0f / 255.0f );
|
layerColor = SFVEC3F( 184.0f / 255.0f, 115.0f / 255.0f, 50.0f / 255.0f );
|
||||||
|
@ -657,11 +633,6 @@ void RENDER_3D_RAYTRACE::Reload( REPORTER* aStatusReporter, REPORTER* aWarningRe
|
||||||
layerColor = m_boardAdapter.m_CopperColor;
|
layerColor = m_boardAdapter.m_CopperColor;
|
||||||
materialLayer = &m_materials.m_Copper;
|
materialLayer = &m_materials.m_Copper;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
layerColor = m_boardAdapter.GetLayerColor( layer_id );
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -670,8 +641,7 @@ void RENDER_3D_RAYTRACE::Reload( REPORTER* aStatusReporter, REPORTER* aWarningRe
|
||||||
} // for each layer on map
|
} // for each layer on map
|
||||||
|
|
||||||
// Create plated copper
|
// Create plated copper
|
||||||
if( m_boardAdapter.m_Cfg->m_Render.renderPlatedPadsAsPlated
|
if( m_boardAdapter.m_Cfg->m_Render.renderPlatedPadsAsPlated )
|
||||||
&& m_boardAdapter.m_Cfg->m_Render.realistic )
|
|
||||||
{
|
{
|
||||||
createItemsFromContainer( m_boardAdapter.GetPlatedPadsFront(), F_Cu, &m_materials.m_Copper,
|
createItemsFromContainer( m_boardAdapter.GetPlatedPadsFront(), F_Cu, &m_materials.m_Copper,
|
||||||
m_boardAdapter.m_CopperColor,
|
m_boardAdapter.m_CopperColor,
|
||||||
|
@ -724,17 +694,10 @@ void RENDER_3D_RAYTRACE::Reload( REPORTER* aStatusReporter, REPORTER* aWarningRe
|
||||||
|
|
||||||
SFVEC3F layerColor;
|
SFVEC3F layerColor;
|
||||||
|
|
||||||
if( m_boardAdapter.m_Cfg->m_Render.realistic )
|
|
||||||
{
|
|
||||||
if( layer_id == B_Mask )
|
if( layer_id == B_Mask )
|
||||||
layerColor = m_boardAdapter.m_SolderMaskColorBot;
|
layerColor = m_boardAdapter.m_SolderMaskColorBot;
|
||||||
else
|
else
|
||||||
layerColor = m_boardAdapter.m_SolderMaskColorTop;
|
layerColor = m_boardAdapter.m_SolderMaskColorTop;
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
layerColor = m_boardAdapter.GetLayerColor( layer_id );
|
|
||||||
}
|
|
||||||
|
|
||||||
const float zLayerMin = m_boardAdapter.GetLayerBottomZPos( layer_id );
|
const float zLayerMin = m_boardAdapter.GetLayerBottomZPos( layer_id );
|
||||||
const float zLayerMax = m_boardAdapter.GetLayerTopZPos( layer_id );
|
const float zLayerMax = m_boardAdapter.GetLayerTopZPos( layer_id );
|
||||||
|
@ -1029,15 +992,7 @@ void RENDER_3D_RAYTRACE::insertHole( const PCB_VIA* aVia )
|
||||||
LAYER_ITEM* objPtr = new LAYER_ITEM( ring, topZ, botZ );
|
LAYER_ITEM* objPtr = new LAYER_ITEM( ring, topZ, botZ );
|
||||||
|
|
||||||
objPtr->SetMaterial( &m_materials.m_Copper );
|
objPtr->SetMaterial( &m_materials.m_Copper );
|
||||||
|
|
||||||
if( m_boardAdapter.m_Cfg->m_Render.realistic )
|
|
||||||
objPtr->SetColor( ConvertSRGBToLinear( m_boardAdapter.m_CopperColor ) );
|
objPtr->SetColor( ConvertSRGBToLinear( m_boardAdapter.m_CopperColor ) );
|
||||||
else if( aVia->GetViaType() == VIATYPE::MICROVIA )
|
|
||||||
objPtr->SetColor( ConvertSRGBToLinear( m_boardAdapter.GetItemColor( LAYER_VIA_MICROVIA ) ) );
|
|
||||||
else if( aVia->GetViaType() == VIATYPE::BLIND_BURIED )
|
|
||||||
objPtr->SetColor( ConvertSRGBToLinear( m_boardAdapter.GetItemColor( LAYER_VIA_BBLIND ) ) );
|
|
||||||
else
|
|
||||||
objPtr->SetColor( ConvertSRGBToLinear( m_boardAdapter.GetItemColor( LAYER_VIAS ) ) );
|
|
||||||
|
|
||||||
m_objectContainer.Add( objPtr );
|
m_objectContainer.Add( objPtr );
|
||||||
}
|
}
|
||||||
|
@ -1047,13 +1002,7 @@ void RENDER_3D_RAYTRACE::insertHole( const PAD* aPad )
|
||||||
{
|
{
|
||||||
const OBJECT_2D* object2d_A = nullptr;
|
const OBJECT_2D* object2d_A = nullptr;
|
||||||
|
|
||||||
SFVEC3F objColor;
|
SFVEC3F objColor = m_boardAdapter.m_CopperColor;
|
||||||
|
|
||||||
if( m_boardAdapter.m_Cfg->m_Render.realistic )
|
|
||||||
objColor = m_boardAdapter.m_CopperColor;
|
|
||||||
else
|
|
||||||
objColor = m_boardAdapter.GetItemColor( LAYER_PADS_TH );
|
|
||||||
|
|
||||||
const VECTOR2I drillsize = aPad->GetDrillSize();
|
const VECTOR2I drillsize = aPad->GetDrillSize();
|
||||||
const bool hasHole = drillsize.x && drillsize.y;
|
const bool hasHole = drillsize.x && drillsize.y;
|
||||||
|
|
||||||
|
|
|
@ -36,11 +36,12 @@
|
||||||
#include <widgets/wx_menubar.h>
|
#include <widgets/wx_menubar.h>
|
||||||
|
|
||||||
|
|
||||||
void EDA_3D_VIEWER_FRAME::CreateMenuBar()
|
void EDA_3D_VIEWER_FRAME::doReCreateMenuBar()
|
||||||
{
|
{
|
||||||
wxLogTrace( m_logTrace, wxT( "EDA_3D_VIEWER_FRAME::CreateMenuBar" ) );
|
wxLogTrace( m_logTrace, wxT( "EDA_3D_VIEWER_FRAME::CreateMenuBar" ) );
|
||||||
|
|
||||||
COMMON_CONTROL* tool = m_toolManager->GetTool<COMMON_CONTROL>();
|
COMMON_CONTROL* tool = m_toolManager->GetTool<COMMON_CONTROL>();
|
||||||
|
wxMenuBar* oldMenuBar = GetMenuBar();
|
||||||
WX_MENUBAR* menuBar = new WX_MENUBAR();
|
WX_MENUBAR* menuBar = new WX_MENUBAR();
|
||||||
|
|
||||||
|
|
||||||
|
@ -82,6 +83,20 @@ void EDA_3D_VIEWER_FRAME::CreateMenuBar()
|
||||||
viewMenu->Add( ACTIONS::zoomFitScreen );
|
viewMenu->Add( ACTIONS::zoomFitScreen );
|
||||||
viewMenu->Add( ACTIONS::zoomRedraw );
|
viewMenu->Add( ACTIONS::zoomRedraw );
|
||||||
|
|
||||||
|
// Grid submenu
|
||||||
|
ACTION_MENU* gridSubmenu = new ACTION_MENU( false, tool );
|
||||||
|
gridSubmenu->SetTitle( _( "3D Grid" ) );
|
||||||
|
gridSubmenu->SetIcon( BITMAPS::grid );
|
||||||
|
|
||||||
|
gridSubmenu->Add( EDA_3D_ACTIONS::noGrid, ACTION_MENU::CHECK);
|
||||||
|
gridSubmenu->Add( EDA_3D_ACTIONS::show10mmGrid, ACTION_MENU::CHECK);
|
||||||
|
gridSubmenu->Add( EDA_3D_ACTIONS::show5mmGrid, ACTION_MENU::CHECK);
|
||||||
|
gridSubmenu->Add( EDA_3D_ACTIONS::show2_5mmGrid, ACTION_MENU::CHECK);
|
||||||
|
gridSubmenu->Add( EDA_3D_ACTIONS::show1mmGrid, ACTION_MENU::CHECK);
|
||||||
|
|
||||||
|
viewMenu->AppendSeparator();
|
||||||
|
viewMenu->Add( gridSubmenu );
|
||||||
|
|
||||||
viewMenu->AppendSeparator();
|
viewMenu->AppendSeparator();
|
||||||
viewMenu->Add( EDA_3D_ACTIONS::rotateXCW );
|
viewMenu->Add( EDA_3D_ACTIONS::rotateXCW );
|
||||||
viewMenu->Add( EDA_3D_ACTIONS::rotateXCCW );
|
viewMenu->Add( EDA_3D_ACTIONS::rotateXCCW );
|
||||||
|
@ -118,30 +133,7 @@ void EDA_3D_VIEWER_FRAME::CreateMenuBar()
|
||||||
prefsMenu->Add( _( "Reset to Default Settings" ), ID_MENU3D_RESET_DEFAULTS, BITMAPS::tools );
|
prefsMenu->Add( _( "Reset to Default Settings" ), ID_MENU3D_RESET_DEFAULTS, BITMAPS::tools );
|
||||||
|
|
||||||
prefsMenu->AppendSeparator();
|
prefsMenu->AppendSeparator();
|
||||||
|
AddMenuLanguageList( prefsMenu, tool );
|
||||||
prefsMenu->Add( EDA_3D_ACTIONS::showTHT, ACTION_MENU::CHECK );
|
|
||||||
prefsMenu->Add( EDA_3D_ACTIONS::showSMD, ACTION_MENU::CHECK );
|
|
||||||
prefsMenu->Add( EDA_3D_ACTIONS::showVirtual, ACTION_MENU::CHECK );
|
|
||||||
prefsMenu->Add( EDA_3D_ACTIONS::showNotInPosFile, ACTION_MENU::CHECK );
|
|
||||||
prefsMenu->Add( EDA_3D_ACTIONS::showDNP, ACTION_MENU::CHECK );
|
|
||||||
|
|
||||||
prefsMenu->AppendSeparator();
|
|
||||||
|
|
||||||
prefsMenu->Add( EDA_3D_ACTIONS::showAxis, ACTION_MENU::CHECK );
|
|
||||||
prefsMenu->Add( EDA_3D_ACTIONS::showBBoxes, ACTION_MENU::CHECK );
|
|
||||||
|
|
||||||
// Grid submenu
|
|
||||||
ACTION_MENU* gridSubmenu = new ACTION_MENU( false, tool );
|
|
||||||
gridSubmenu->SetTitle( _( "3D Grid" ) );
|
|
||||||
gridSubmenu->SetIcon( BITMAPS::grid );
|
|
||||||
|
|
||||||
gridSubmenu->Add( EDA_3D_ACTIONS::noGrid, ACTION_MENU::CHECK);
|
|
||||||
gridSubmenu->Add( EDA_3D_ACTIONS::show10mmGrid, ACTION_MENU::CHECK);
|
|
||||||
gridSubmenu->Add( EDA_3D_ACTIONS::show5mmGrid, ACTION_MENU::CHECK);
|
|
||||||
gridSubmenu->Add( EDA_3D_ACTIONS::show2_5mmGrid, ACTION_MENU::CHECK);
|
|
||||||
gridSubmenu->Add( EDA_3D_ACTIONS::show1mmGrid, ACTION_MENU::CHECK);
|
|
||||||
|
|
||||||
prefsMenu->Add( gridSubmenu );
|
|
||||||
|
|
||||||
//-- Menubar -------------------------------------------------------------
|
//-- Menubar -------------------------------------------------------------
|
||||||
//
|
//
|
||||||
|
@ -152,4 +144,5 @@ void EDA_3D_VIEWER_FRAME::CreateMenuBar()
|
||||||
AddStandardHelpMenu( menuBar );
|
AddStandardHelpMenu( menuBar );
|
||||||
|
|
||||||
SetMenuBar( menuBar );
|
SetMenuBar( menuBar );
|
||||||
|
delete oldMenuBar;
|
||||||
}
|
}
|
||||||
|
|
|
@ -146,7 +146,7 @@ EDA_3D_VIEWER_FRAME::EDA_3D_VIEWER_FRAME( KIWAY* aKiway, PCB_BASE_FRAME* aParent
|
||||||
// Run the viewer control tool, it is supposed to be always active
|
// Run the viewer control tool, it is supposed to be always active
|
||||||
m_toolManager->InvokeTool( "3DViewer.Control" );
|
m_toolManager->InvokeTool( "3DViewer.Control" );
|
||||||
|
|
||||||
CreateMenuBar();
|
ReCreateMenuBar();
|
||||||
ReCreateMainToolbar();
|
ReCreateMainToolbar();
|
||||||
|
|
||||||
m_infoBar = new WX_INFOBAR( this, &m_auimgr );
|
m_infoBar = new WX_INFOBAR( this, &m_auimgr );
|
||||||
|
@ -581,24 +581,19 @@ void EDA_3D_VIEWER_FRAME::LoadSettings( APP_SETTINGS_BASE *aCfg )
|
||||||
|
|
||||||
if( cfg->m_CurrentPreset == LEGACY_PRESET_FLAG )
|
if( cfg->m_CurrentPreset == LEGACY_PRESET_FLAG )
|
||||||
{
|
{
|
||||||
COLOR_SETTINGS* colors = Pgm().GetSettingsManager().GetColorSettings();
|
wxString legacyColorsPresetName = _( "legacy colors" );
|
||||||
|
|
||||||
if( colors->GetUseBoardStackupColors() )
|
if( !cfg->FindPreset( legacyColorsPresetName ) )
|
||||||
|
{
|
||||||
|
cfg->m_LayerPresets.emplace_back( legacyColorsPresetName,
|
||||||
|
GetAdapter().GetVisibleLayers(),
|
||||||
|
GetAdapter().GetLayerColors() );
|
||||||
|
}
|
||||||
|
|
||||||
|
if( Pgm().GetSettingsManager().GetColorSettings()->GetUseBoardStackupColors() )
|
||||||
cfg->m_CurrentPreset = FOLLOW_PCB;
|
cfg->m_CurrentPreset = FOLLOW_PCB;
|
||||||
else
|
else
|
||||||
cfg->m_CurrentPreset = wxEmptyString;
|
cfg->m_CurrentPreset = legacyColorsPresetName;
|
||||||
|
|
||||||
if( cfg->m_Render.realistic )
|
|
||||||
{
|
|
||||||
// These settings are no longer dependent on realistic mode in 8.0 (you can use
|
|
||||||
// view presets to design whatever combinations you want), but we should at least
|
|
||||||
// default them to the same values as 7.0.
|
|
||||||
cfg->m_Render.show_comments = false;
|
|
||||||
cfg->m_Render.show_drawings = false;
|
|
||||||
cfg->m_Render.show_eco1 = false;
|
|
||||||
cfg->m_Render.show_eco2 = false;
|
|
||||||
cfg->m_Render.show_board_body = false;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
m_boardAdapter.InitSettings( nullptr, nullptr );
|
m_boardAdapter.InitSettings( nullptr, nullptr );
|
||||||
|
@ -655,6 +650,26 @@ void EDA_3D_VIEWER_FRAME::CommonSettingsChanged( bool aEnvVarsChanged, bool aTex
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void EDA_3D_VIEWER_FRAME::ShowChangedLanguage()
|
||||||
|
{
|
||||||
|
EDA_BASE_FRAME::ShowChangedLanguage();
|
||||||
|
|
||||||
|
SetTitle( _( "3D Viewer" ) );
|
||||||
|
ReCreateMainToolbar();
|
||||||
|
|
||||||
|
if( m_appearancePanel )
|
||||||
|
{
|
||||||
|
wxAuiPaneInfo& lm_pane_info = m_auimgr.GetPane( m_appearancePanel );
|
||||||
|
lm_pane_info.Caption( _( "Appearance" ) );
|
||||||
|
|
||||||
|
m_appearancePanel->OnLanguageChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
SetStatusText( wxEmptyString, ACTIVITY );
|
||||||
|
SetStatusText( wxEmptyString, HOVERED_ITEM );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void EDA_3D_VIEWER_FRAME::ToggleAppearanceManager()
|
void EDA_3D_VIEWER_FRAME::ToggleAppearanceManager()
|
||||||
{
|
{
|
||||||
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
|
||||||
|
|
|
@ -119,6 +119,7 @@ public:
|
||||||
* from the PCB frame because the 3D viewer isn't updated via the #KIWAY.
|
* from the PCB frame because the 3D viewer isn't updated via the #KIWAY.
|
||||||
*/
|
*/
|
||||||
void CommonSettingsChanged( bool aEnvVarsChanged, bool aTextVarsChanged ) override;
|
void CommonSettingsChanged( bool aEnvVarsChanged, bool aTextVarsChanged ) override;
|
||||||
|
void ShowChangedLanguage() override;
|
||||||
|
|
||||||
APPEARANCE_CONTROLS_3D* GetAppearanceManager() { return m_appearancePanel; }
|
APPEARANCE_CONTROLS_3D* GetAppearanceManager() { return m_appearancePanel; }
|
||||||
|
|
||||||
|
@ -147,7 +148,7 @@ private:
|
||||||
void OnActivate( wxActivateEvent& event );
|
void OnActivate( wxActivateEvent& event );
|
||||||
void OnSetFocus( wxFocusEvent& event );
|
void OnSetFocus( wxFocusEvent& event );
|
||||||
|
|
||||||
void CreateMenuBar();
|
void doReCreateMenuBar() override;
|
||||||
void ReCreateMainToolbar();
|
void ReCreateMainToolbar();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -314,8 +314,6 @@ EDA_3D_VIEWER_SETTINGS::EDA_3D_VIEWER_SETTINGS() :
|
||||||
&m_Render.raytrace_lightAzimuth,
|
&m_Render.raytrace_lightAzimuth,
|
||||||
default_azimuth ) );
|
default_azimuth ) );
|
||||||
|
|
||||||
m_params.emplace_back( new PARAM<bool>( "render.realistic",
|
|
||||||
&m_Render.realistic, true ) );
|
|
||||||
m_params.emplace_back( new PARAM<bool>( "render.show_adhesive",
|
m_params.emplace_back( new PARAM<bool>( "render.show_adhesive",
|
||||||
&m_Render.show_adhesive, true ) );
|
&m_Render.show_adhesive, true ) );
|
||||||
m_params.emplace_back( new PARAM<bool>( "render.show_axis",
|
m_params.emplace_back( new PARAM<bool>( "render.show_axis",
|
||||||
|
|
|
@ -351,7 +351,7 @@ TOOL_ACTION EDA_3D_ACTIONS::showBBoxes( TOOL_ACTION_ARGS()
|
||||||
.Name( "3DViewer.Control.showBoundingBoxes" )
|
.Name( "3DViewer.Control.showBoundingBoxes" )
|
||||||
.Scope( AS_GLOBAL )
|
.Scope( AS_GLOBAL )
|
||||||
.MenuText( _( "Show Model Bounding Boxes" ) )
|
.MenuText( _( "Show Model Bounding Boxes" ) )
|
||||||
.Tooltip( _( "Show 3D model bounding boxes" ) )
|
.Tooltip( _( "Show 3D model bounding boxes in realtime renderer" ) )
|
||||||
.Icon( BITMAPS::ortho )
|
.Icon( BITMAPS::ortho )
|
||||||
.Flags( AF_NONE ) );
|
.Flags( AF_NONE ) );
|
||||||
|
|
||||||
|
|
|
@ -388,9 +388,6 @@ void EDA_3D_CONTROLLER::setTransitions()
|
||||||
Go( &EDA_3D_CONTROLLER::ToggleVisibility, EDA_3D_ACTIONS::showVirtual.MakeEvent() );
|
Go( &EDA_3D_CONTROLLER::ToggleVisibility, EDA_3D_ACTIONS::showVirtual.MakeEvent() );
|
||||||
Go( &EDA_3D_CONTROLLER::ToggleVisibility, EDA_3D_ACTIONS::showNotInPosFile.MakeEvent() );
|
Go( &EDA_3D_CONTROLLER::ToggleVisibility, EDA_3D_ACTIONS::showNotInPosFile.MakeEvent() );
|
||||||
Go( &EDA_3D_CONTROLLER::ToggleVisibility, EDA_3D_ACTIONS::showDNP.MakeEvent() );
|
Go( &EDA_3D_CONTROLLER::ToggleVisibility, EDA_3D_ACTIONS::showDNP.MakeEvent() );
|
||||||
Go( &EDA_3D_CONTROLLER::ToggleVisibility, EDA_3D_ACTIONS::showVirtual.MakeEvent() );
|
|
||||||
Go( &EDA_3D_CONTROLLER::ToggleVisibility, EDA_3D_ACTIONS::showBBoxes.MakeEvent() );
|
|
||||||
Go( &EDA_3D_CONTROLLER::ToggleVisibility, EDA_3D_ACTIONS::showAxis.MakeEvent() );
|
|
||||||
Go( &EDA_3D_CONTROLLER::ToggleLayersManager,EDA_3D_ACTIONS::showLayersManager.MakeEvent() );
|
Go( &EDA_3D_CONTROLLER::ToggleLayersManager,EDA_3D_ACTIONS::showLayersManager.MakeEvent() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -98,8 +98,6 @@ set(3D-VIEWER_SRCS
|
||||||
dialogs/dialog_select_3d_model.cpp
|
dialogs/dialog_select_3d_model.cpp
|
||||||
dialogs/panel_preview_3d_model_base.cpp
|
dialogs/panel_preview_3d_model_base.cpp
|
||||||
dialogs/panel_preview_3d_model.cpp
|
dialogs/panel_preview_3d_model.cpp
|
||||||
dialogs/panel_3D_colors.cpp
|
|
||||||
dialogs/panel_3D_colors_base.cpp
|
|
||||||
dialogs/panel_3D_display_options.cpp
|
dialogs/panel_3D_display_options.cpp
|
||||||
dialogs/panel_3D_display_options_base.cpp
|
dialogs/panel_3D_display_options_base.cpp
|
||||||
dialogs/panel_3D_opengl_options.cpp
|
dialogs/panel_3D_opengl_options.cpp
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
#include <settings/color_settings.h>
|
#include <settings/color_settings.h>
|
||||||
#include <tool/tool_manager.h>
|
#include <tool/tool_manager.h>
|
||||||
#include <tools/pcb_actions.h>
|
#include <tools/pcb_actions.h>
|
||||||
|
#include <tools/eda_3d_actions.h>
|
||||||
#include <widgets/bitmap_toggle.h>
|
#include <widgets/bitmap_toggle.h>
|
||||||
#include <widgets/color_swatch.h>
|
#include <widgets/color_swatch.h>
|
||||||
#include <widgets/grid_bitmap_toggle.h>
|
#include <widgets/grid_bitmap_toggle.h>
|
||||||
|
@ -60,18 +61,18 @@ const APPEARANCE_CONTROLS_3D::APPEARANCE_SETTING_3D APPEARANCE_CONTROLS_3D::s_la
|
||||||
RR( _HKI( "User.Eco1" ), LAYER_3D_USER_ECO1, _HKI( "Show user ECO1 layer" ) ),
|
RR( _HKI( "User.Eco1" ), LAYER_3D_USER_ECO1, _HKI( "Show user ECO1 layer" ) ),
|
||||||
RR( _HKI( "User.Eco2" ), LAYER_3D_USER_ECO2, _HKI( "Show user ECO2 layer" ) ),
|
RR( _HKI( "User.Eco2" ), LAYER_3D_USER_ECO2, _HKI( "Show user ECO2 layer" ) ),
|
||||||
RR(),
|
RR(),
|
||||||
RR( _HKI( "Through-hole Models" ), LAYER_3D_TH_MODELS, _HKI( "Show models for 'Through hole' footprints" ) ),
|
RR( _HKI( "Through-hole Models" ), LAYER_3D_TH_MODELS, EDA_3D_ACTIONS::showTHT ),
|
||||||
RR( _HKI( "SMD Models" ), LAYER_3D_SMD_MODELS, _HKI( "Show models for 'SMD' footprints" ) ),
|
RR( _HKI( "SMD Models" ), LAYER_3D_SMD_MODELS, EDA_3D_ACTIONS::showSMD ),
|
||||||
RR( _HKI( "Virtual Models" ), LAYER_3D_VIRTUAL_MODELS, _HKI( "Show models for 'Unspecified' footprints" ) ),
|
RR( _HKI( "Virtual Models" ), LAYER_3D_VIRTUAL_MODELS, EDA_3D_ACTIONS::showVirtual ),
|
||||||
RR( _HKI( "Models not in POS File" ), LAYER_3D_MODELS_NOT_IN_POS, _HKI( "Show models even if not in POS file" ) ),
|
RR( _HKI( "Models not in POS File" ), LAYER_3D_MODELS_NOT_IN_POS, EDA_3D_ACTIONS::showNotInPosFile ),
|
||||||
RR( _HKI( "Models marked DNP" ), LAYER_3D_MODELS_MARKED_DNP, _HKI( "Show models even if marked as DNP" ) ),
|
RR( _HKI( "Models marked DNP" ), LAYER_3D_MODELS_MARKED_DNP, EDA_3D_ACTIONS::showDNP ),
|
||||||
RR( _HKI( "Model Bounding Boxes" ), LAYER_3D_BOUNDING_BOXES, _HKI( "Show model bounding boxes in realtime renderer" ) ),
|
RR( _HKI( "Model Bounding Boxes" ), LAYER_3D_BOUNDING_BOXES, EDA_3D_ACTIONS::showBBoxes ),
|
||||||
RR(),
|
RR(),
|
||||||
RR( _HKI( "Values" ), LAYER_FP_VALUES, _HKI( "Show footprint values" ) ),
|
RR( _HKI( "Values" ), LAYER_FP_VALUES, _HKI( "Show footprint values" ) ),
|
||||||
RR( _HKI( "References" ), LAYER_FP_REFERENCES, _HKI( "Show footprint references" ) ),
|
RR( _HKI( "References" ), LAYER_FP_REFERENCES, _HKI( "Show footprint references" ) ),
|
||||||
RR( _HKI( "Footprint Text" ), LAYER_FP_TEXT, _HKI( "Show all footprint text" ) ),
|
RR( _HKI( "Footprint Text" ), LAYER_FP_TEXT, _HKI( "Show all footprint text" ) ),
|
||||||
RR(),
|
RR(),
|
||||||
RR( _HKI( "3D Axis" ), LAYER_3D_AXES, _HKI( "Show 3D axes indicator" ) ),
|
RR( _HKI( "3D Axis" ), LAYER_3D_AXES, EDA_3D_ACTIONS::showAxis ),
|
||||||
RR( _HKI( "Background Start" ), LAYER_3D_BACKGROUND_TOP, _HKI( "Background gradient start color" ) ),
|
RR( _HKI( "Background Start" ), LAYER_3D_BACKGROUND_TOP, _HKI( "Background gradient start color" ) ),
|
||||||
RR( _HKI( "Background End" ), LAYER_3D_BACKGROUND_BOTTOM, _HKI( "Background gradient end color" ) ),
|
RR( _HKI( "Background End" ), LAYER_3D_BACKGROUND_BOTTOM, _HKI( "Background gradient end color" ) ),
|
||||||
};
|
};
|
||||||
|
@ -299,8 +300,12 @@ void APPEARANCE_CONTROLS_3D::OnLayerVisibilityChanged( int aLayer, bool isVisibl
|
||||||
case LAYER_FP_TEXT:
|
case LAYER_FP_TEXT:
|
||||||
// Because Footprint Text is a meta-control that also can disable values/references,
|
// Because Footprint Text is a meta-control that also can disable values/references,
|
||||||
// drag them along here so that the user is less likely to be confused.
|
// drag them along here so that the user is less likely to be confused.
|
||||||
visibleLayers.set( LAYER_FP_REFERENCES, isVisible );
|
if( !isVisible )
|
||||||
visibleLayers.set( LAYER_FP_VALUES, isVisible );
|
{
|
||||||
|
visibleLayers.set( LAYER_FP_REFERENCES, false );
|
||||||
|
visibleLayers.set( LAYER_FP_VALUES, false );
|
||||||
|
}
|
||||||
|
|
||||||
visibleLayers.set( LAYER_FP_TEXT, isVisible );
|
visibleLayers.set( LAYER_FP_TEXT, isVisible );
|
||||||
killFollow = true;
|
killFollow = true;
|
||||||
break;
|
break;
|
||||||
|
@ -310,7 +315,7 @@ void APPEARANCE_CONTROLS_3D::OnLayerVisibilityChanged( int aLayer, bool isVisibl
|
||||||
// In case that user changes Footprint Value/References when the Footprint Text
|
// In case that user changes Footprint Value/References when the Footprint Text
|
||||||
// meta-control is disabled, we should put it back on.
|
// meta-control is disabled, we should put it back on.
|
||||||
if( isVisible )
|
if( isVisible )
|
||||||
OnLayerVisibilityChanged( LAYER_FP_TEXT, isVisible );
|
visibleLayers.set( LAYER_FP_TEXT, true );
|
||||||
|
|
||||||
visibleLayers.set( aLayer, isVisible );
|
visibleLayers.set( aLayer, isVisible );
|
||||||
killFollow = true;
|
killFollow = true;
|
||||||
|
@ -403,8 +408,7 @@ void APPEARANCE_CONTROLS_3D::rebuildLayers()
|
||||||
COLOR_SWATCH* swatch = new COLOR_SWATCH( m_windowLayers, colors[ layer ], layer,
|
COLOR_SWATCH* swatch = new COLOR_SWATCH( m_windowLayers, colors[ layer ], layer,
|
||||||
COLOR4D::WHITE, defaultColors[ layer ],
|
COLOR4D::WHITE, defaultColors[ layer ],
|
||||||
SWATCH_SMALL );
|
SWATCH_SMALL );
|
||||||
swatch->SetToolTip( _( "Left double click or middle click for color change, "
|
swatch->SetToolTip( _( "Left double click or middle click to change color" ) );
|
||||||
"right click for menu" ) );
|
|
||||||
|
|
||||||
sizer->Add( swatch, 0, wxALIGN_CENTER_VERTICAL, 0 );
|
sizer->Add( swatch, 0, wxALIGN_CENTER_VERTICAL, 0 );
|
||||||
aSetting->ctl_color = swatch;
|
aSetting->ctl_color = swatch;
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
#include <layer_ids.h>
|
#include <layer_ids.h>
|
||||||
#include <3d_canvas/board_adapter.h>
|
#include <3d_canvas/board_adapter.h>
|
||||||
#include <dialogs/appearance_controls_3D_base.h>
|
#include <dialogs/appearance_controls_3D_base.h>
|
||||||
|
#include <tool/tool_action.h>
|
||||||
|
|
||||||
|
|
||||||
class BITMAP_TOGGLE;
|
class BITMAP_TOGGLE;
|
||||||
|
@ -67,6 +68,17 @@ public:
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
APPEARANCE_SETTING_3D( const wxString& aLabel, int aId, const TOOL_ACTION& aAction ) :
|
||||||
|
id( aId ),
|
||||||
|
label( aLabel ),
|
||||||
|
tooltip( aAction.GetTooltip( true ) ),
|
||||||
|
visible( true ),
|
||||||
|
spacer( false ),
|
||||||
|
ctl_visibility( nullptr ),
|
||||||
|
ctl_color( nullptr )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
APPEARANCE_SETTING_3D() :
|
APPEARANCE_SETTING_3D() :
|
||||||
id( -1 ),
|
id( -1 ),
|
||||||
visible( false ),
|
visible( false ),
|
||||||
|
|
|
@ -1,128 +0,0 @@
|
||||||
/*
|
|
||||||
* 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 <widgets/color_swatch.h>
|
|
||||||
#include <settings/settings_manager.h>
|
|
||||||
#include <pgm_base.h>
|
|
||||||
|
|
||||||
|
|
||||||
PANEL_3D_COLORS::PANEL_3D_COLORS( wxWindow* aParent ) :
|
|
||||||
PANEL_3D_COLORS_BASE( aParent )
|
|
||||||
{
|
|
||||||
m_backgroundTop->SetDefaultColor( BOARD_ADAPTER::g_DefaultBackgroundTop );
|
|
||||||
m_backgroundBottom->SetDefaultColor( BOARD_ADAPTER::g_DefaultBackgroundBot );
|
|
||||||
|
|
||||||
m_silkscreenTop->SetUserColors( &BOARD_ADAPTER::g_SilkColors );
|
|
||||||
m_silkscreenTop->SetDefaultColor( BOARD_ADAPTER::g_DefaultSilkscreen );
|
|
||||||
m_silkscreenBottom->SetUserColors( &BOARD_ADAPTER::g_SilkColors );
|
|
||||||
m_silkscreenBottom->SetDefaultColor( BOARD_ADAPTER::g_DefaultSilkscreen );
|
|
||||||
|
|
||||||
m_solderMaskTop->SetUserColors( &BOARD_ADAPTER::g_MaskColors );
|
|
||||||
m_solderMaskTop->SetDefaultColor( BOARD_ADAPTER::g_DefaultSolderMask );
|
|
||||||
m_solderMaskBottom->SetUserColors( &BOARD_ADAPTER::g_MaskColors );
|
|
||||||
m_solderMaskBottom->SetDefaultColor( BOARD_ADAPTER::g_DefaultSolderMask );
|
|
||||||
|
|
||||||
m_solderPaste->SetUserColors( &BOARD_ADAPTER::g_PasteColors );
|
|
||||||
m_solderPaste->SetDefaultColor( BOARD_ADAPTER::g_DefaultSolderPaste );
|
|
||||||
|
|
||||||
m_surfaceFinish->SetUserColors( &BOARD_ADAPTER::g_FinishColors );
|
|
||||||
m_surfaceFinish->SetDefaultColor( BOARD_ADAPTER::g_DefaultSurfaceFinish );
|
|
||||||
|
|
||||||
m_boardBody->SetUserColors( &BOARD_ADAPTER::g_BoardColors );
|
|
||||||
m_boardBody->SetDefaultColor( BOARD_ADAPTER::g_DefaultBoardBody );
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool PANEL_3D_COLORS::TransferDataToWindow()
|
|
||||||
{
|
|
||||||
COLOR_SETTINGS* colors = Pgm().GetSettingsManager().GetColorSettings();
|
|
||||||
|
|
||||||
m_backgroundTop->SetSupportsOpacity( false );
|
|
||||||
m_backgroundBottom->SetSupportsOpacity( false );
|
|
||||||
m_silkscreenTop->SetSupportsOpacity( false );
|
|
||||||
m_silkscreenBottom->SetSupportsOpacity( false );
|
|
||||||
m_solderMaskTop->SetBackgroundColour( *wxWHITE );
|
|
||||||
m_solderMaskBottom->SetBackgroundColour( *wxWHITE );
|
|
||||||
m_solderPaste->SetSupportsOpacity( false );
|
|
||||||
m_surfaceFinish->SetSupportsOpacity( false );
|
|
||||||
m_boardBody->SetBackgroundColour( *wxWHITE );
|
|
||||||
|
|
||||||
m_backgroundTop->SetSwatchColor( colors->GetColor( LAYER_3D_BACKGROUND_TOP ), false );
|
|
||||||
m_backgroundBottom->SetSwatchColor( colors->GetColor( LAYER_3D_BACKGROUND_BOTTOM ), false );
|
|
||||||
m_silkscreenTop->SetSwatchColor( colors->GetColor( LAYER_3D_SILKSCREEN_TOP ), false );
|
|
||||||
m_silkscreenBottom->SetSwatchColor( colors->GetColor( LAYER_3D_SILKSCREEN_BOTTOM ), false );
|
|
||||||
m_solderMaskTop->SetSwatchColor( colors->GetColor( LAYER_3D_SOLDERMASK_TOP ), false );
|
|
||||||
m_solderMaskBottom->SetSwatchColor( colors->GetColor( LAYER_3D_SOLDERMASK_BOTTOM ), false );
|
|
||||||
m_solderPaste->SetSwatchColor( colors->GetColor( LAYER_3D_SOLDERPASTE ), false );
|
|
||||||
m_surfaceFinish->SetSwatchColor( colors->GetColor( LAYER_3D_COPPER_TOP ), false );
|
|
||||||
m_boardBody->SetSwatchColor( colors->GetColor( LAYER_3D_BOARD ), false );
|
|
||||||
|
|
||||||
if( colors->GetUseBoardStackupColors() )
|
|
||||||
m_boardStackupRB->SetValue( true );
|
|
||||||
else
|
|
||||||
m_specificColorsRB->SetValue( true );
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool PANEL_3D_COLORS::TransferDataFromWindow()
|
|
||||||
{
|
|
||||||
COLOR_SETTINGS* colors = Pgm().GetSettingsManager().GetColorSettings();
|
|
||||||
|
|
||||||
colors->SetColor( LAYER_3D_BACKGROUND_TOP, m_backgroundTop->GetSwatchColor() );
|
|
||||||
colors->SetColor( LAYER_3D_BACKGROUND_BOTTOM, m_backgroundBottom->GetSwatchColor() );
|
|
||||||
colors->SetColor( LAYER_3D_SILKSCREEN_TOP, m_silkscreenTop->GetSwatchColor() );
|
|
||||||
colors->SetColor( LAYER_3D_SILKSCREEN_BOTTOM, m_silkscreenBottom->GetSwatchColor() );
|
|
||||||
colors->SetColor( LAYER_3D_SOLDERMASK_TOP, m_solderMaskTop->GetSwatchColor() );
|
|
||||||
colors->SetColor( LAYER_3D_SOLDERMASK_BOTTOM, m_solderMaskBottom->GetSwatchColor() );
|
|
||||||
colors->SetColor( LAYER_3D_SOLDERPASTE, m_solderPaste->GetSwatchColor() );
|
|
||||||
colors->SetColor( LAYER_3D_COPPER_TOP, m_surfaceFinish->GetSwatchColor() );
|
|
||||||
colors->SetColor( LAYER_3D_COPPER_BOTTOM, m_surfaceFinish->GetSwatchColor() );
|
|
||||||
colors->SetColor( LAYER_3D_BOARD, m_boardBody->GetSwatchColor() );
|
|
||||||
|
|
||||||
colors->SetUseBoardStackupColors( m_boardStackupRB->GetValue() );
|
|
||||||
|
|
||||||
Pgm().GetSettingsManager().SaveColorSettings( colors, "3d_viewer" );
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void PANEL_3D_COLORS::ResetPanel()
|
|
||||||
{
|
|
||||||
COLOR_SETTINGS* colors = Pgm().GetSettingsManager().GetColorSettings();
|
|
||||||
|
|
||||||
m_backgroundTop->SetSwatchColor( colors->GetDefaultColor( LAYER_3D_BACKGROUND_TOP ), false );
|
|
||||||
m_backgroundBottom->SetSwatchColor( colors->GetDefaultColor( LAYER_3D_BACKGROUND_BOTTOM ), false );
|
|
||||||
m_silkscreenTop->SetSwatchColor( colors->GetDefaultColor( LAYER_3D_SILKSCREEN_TOP ), false );
|
|
||||||
m_silkscreenBottom->SetSwatchColor( colors->GetDefaultColor( LAYER_3D_SILKSCREEN_BOTTOM ), false );
|
|
||||||
m_solderMaskTop->SetSwatchColor( colors->GetDefaultColor( LAYER_3D_SOLDERMASK_TOP ), false );
|
|
||||||
m_solderMaskBottom->SetSwatchColor( colors->GetDefaultColor( LAYER_3D_SOLDERMASK_BOTTOM ), false );
|
|
||||||
m_solderPaste->SetSwatchColor( colors->GetDefaultColor( LAYER_3D_SOLDERPASTE ), false );
|
|
||||||
m_surfaceFinish->SetSwatchColor( colors->GetDefaultColor( LAYER_3D_COPPER_TOP ), false );
|
|
||||||
m_boardBody->SetSwatchColor( colors->GetDefaultColor( LAYER_3D_BOARD ), false );
|
|
||||||
|
|
||||||
m_boardStackupRB->SetValue( true );
|
|
||||||
}
|
|
|
@ -1,42 +0,0 @@
|
||||||
/*
|
|
||||||
* 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_frame.h>
|
|
||||||
|
|
||||||
class PANEL_3D_COLORS : public PANEL_3D_COLORS_BASE
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
explicit PANEL_3D_COLORS( wxWindow* aParent );
|
|
||||||
|
|
||||||
bool TransferDataFromWindow() override;
|
|
||||||
bool TransferDataToWindow() override;
|
|
||||||
|
|
||||||
void ResetPanel() override;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
#endif // PANEL_3D_COLORS_H
|
|
|
@ -1,153 +0,0 @@
|
||||||
///////////////////////////////////////////////////////////////////////////
|
|
||||||
// C++ code generated with wxFormBuilder (version 3.10.1-0-g8feb16b)
|
|
||||||
// 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 ) : RESETTABLE_PANEL( parent, id, pos, size, style, name )
|
|
||||||
{
|
|
||||||
wxBoxSizer* bSizerMain;
|
|
||||||
bSizerMain = new wxBoxSizer( wxVERTICAL );
|
|
||||||
|
|
||||||
m_environmentLable = new wxStaticText( this, wxID_ANY, _("Environment Colors"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_environmentLable->Wrap( -1 );
|
|
||||||
bSizerMain->Add( m_environmentLable, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND, 13 );
|
|
||||||
|
|
||||||
m_staticline1 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
|
|
||||||
bSizerMain->Add( m_staticline1, 0, wxEXPAND|wxBOTTOM, 5 );
|
|
||||||
|
|
||||||
wxFlexGridSizer* fgSizer1;
|
|
||||||
fgSizer1 = new wxFlexGridSizer( 0, 2, 5, 0 );
|
|
||||||
fgSizer1->SetFlexibleDirection( wxBOTH );
|
|
||||||
fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
|
||||||
|
|
||||||
backgroundTopLabel = new wxStaticText( this, wxID_ANY, _("Background gradient start:"), 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 gradient end:"), 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, 6, 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 );
|
|
||||||
|
|
||||||
|
|
||||||
bSizerMain->Add( fgSizer1, 0, wxTOP|wxBOTTOM|wxLEFT, 5 );
|
|
||||||
|
|
||||||
|
|
||||||
bSizerMain->Add( 0, 15, 0, wxEXPAND, 5 );
|
|
||||||
|
|
||||||
m_boardColorsLabel = new wxStaticText( this, wxID_ANY, _("Board Colors"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_boardColorsLabel->Wrap( -1 );
|
|
||||||
bSizerMain->Add( m_boardColorsLabel, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND, 13 );
|
|
||||||
|
|
||||||
m_staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
|
|
||||||
bSizerMain->Add( m_staticline2, 0, wxEXPAND|wxBOTTOM, 5 );
|
|
||||||
|
|
||||||
m_boardStackupRB = new wxRadioButton( this, wxID_ANY, _("Use board stackup colors"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
bSizerMain->Add( m_boardStackupRB, 0, wxTOP|wxBOTTOM|wxLEFT, 8 );
|
|
||||||
|
|
||||||
m_specificColorsRB = new wxRadioButton( this, wxID_ANY, _("Use colors:"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
bSizerMain->Add( m_specificColorsRB, 0, wxTOP|wxBOTTOM|wxLEFT, 8 );
|
|
||||||
|
|
||||||
wxFlexGridSizer* fgSizer2;
|
|
||||||
fgSizer2 = new wxFlexGridSizer( 0, 2, 5, 0 );
|
|
||||||
fgSizer2->SetFlexibleDirection( wxBOTH );
|
|
||||||
fgSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
|
||||||
|
|
||||||
silkscreenTopLabel = new wxStaticText( this, wxID_ANY, _("Silkscreen top:"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
silkscreenTopLabel->Wrap( -1 );
|
|
||||||
fgSizer2->Add( silkscreenTopLabel, 0, wxLEFT|wxALIGN_CENTER_VERTICAL, 20 );
|
|
||||||
|
|
||||||
m_silkscreenTop = new COLOR_SWATCH( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
fgSizer2->Add( m_silkscreenTop, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
|
|
||||||
|
|
||||||
silkscreenBottomLabel = new wxStaticText( this, wxID_ANY, _("Silkscreen bottom:"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
silkscreenBottomLabel->Wrap( -1 );
|
|
||||||
fgSizer2->Add( silkscreenBottomLabel, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 20 );
|
|
||||||
|
|
||||||
m_silkscreenBottom = new COLOR_SWATCH( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
fgSizer2->Add( m_silkscreenBottom, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
|
|
||||||
|
|
||||||
|
|
||||||
fgSizer2->Add( 0, 6, 1, wxEXPAND, 5 );
|
|
||||||
|
|
||||||
|
|
||||||
fgSizer2->Add( 0, 0, 1, wxEXPAND, 5 );
|
|
||||||
|
|
||||||
solderMaskTopLabel = new wxStaticText( this, wxID_ANY, _("Solder mask top:"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
solderMaskTopLabel->Wrap( -1 );
|
|
||||||
fgSizer2->Add( solderMaskTopLabel, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 20 );
|
|
||||||
|
|
||||||
m_solderMaskTop = new COLOR_SWATCH( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
fgSizer2->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 );
|
|
||||||
fgSizer2->Add( solderMaskBottomLabel, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 20 );
|
|
||||||
|
|
||||||
m_solderMaskBottom = new COLOR_SWATCH( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
fgSizer2->Add( m_solderMaskBottom, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
|
|
||||||
|
|
||||||
|
|
||||||
fgSizer2->Add( 0, 6, 1, wxEXPAND, 5 );
|
|
||||||
|
|
||||||
|
|
||||||
fgSizer2->Add( 0, 0, 1, wxEXPAND, 5 );
|
|
||||||
|
|
||||||
surfaceFinishLabel = new wxStaticText( this, wxID_ANY, _("Copper/surface finish:"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
surfaceFinishLabel->Wrap( -1 );
|
|
||||||
fgSizer2->Add( surfaceFinishLabel, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 20 );
|
|
||||||
|
|
||||||
m_surfaceFinish = new COLOR_SWATCH( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
fgSizer2->Add( m_surfaceFinish, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 5 );
|
|
||||||
|
|
||||||
|
|
||||||
fgSizer2->Add( 0, 6, 1, wxEXPAND, 5 );
|
|
||||||
|
|
||||||
|
|
||||||
fgSizer2->Add( 0, 0, 1, wxEXPAND, 5 );
|
|
||||||
|
|
||||||
boardBodyLabel = new wxStaticText( this, wxID_ANY, _("Board body:"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
boardBodyLabel->Wrap( -1 );
|
|
||||||
fgSizer2->Add( boardBodyLabel, 0, wxALIGN_CENTER_VERTICAL|wxLEFT, 20 );
|
|
||||||
|
|
||||||
m_boardBody = new COLOR_SWATCH( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
fgSizer2->Add( m_boardBody, 0, wxALIGN_CENTER_VERTICAL|wxBOTTOM|wxLEFT|wxRIGHT, 5 );
|
|
||||||
|
|
||||||
|
|
||||||
bSizerMain->Add( fgSizer2, 1, wxEXPAND|wxLEFT, 8 );
|
|
||||||
|
|
||||||
|
|
||||||
this->SetSizer( bSizerMain );
|
|
||||||
this->Layout();
|
|
||||||
bSizerMain->Fit( this );
|
|
||||||
}
|
|
||||||
|
|
||||||
PANEL_3D_COLORS_BASE::~PANEL_3D_COLORS_BASE()
|
|
||||||
{
|
|
||||||
}
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,70 +0,0 @@
|
||||||
///////////////////////////////////////////////////////////////////////////
|
|
||||||
// C++ code generated with wxFormBuilder (version 3.10.1-0-g8feb16b)
|
|
||||||
// http://www.wxformbuilder.org/
|
|
||||||
//
|
|
||||||
// PLEASE DO *NOT* EDIT THIS FILE!
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include <wx/artprov.h>
|
|
||||||
#include <wx/xrc/xmlres.h>
|
|
||||||
#include <wx/intl.h>
|
|
||||||
class COLOR_SWATCH;
|
|
||||||
|
|
||||||
#include "widgets/resettable_panel.h"
|
|
||||||
#include <wx/string.h>
|
|
||||||
#include <wx/stattext.h>
|
|
||||||
#include <wx/gdicmn.h>
|
|
||||||
#include <wx/font.h>
|
|
||||||
#include <wx/colour.h>
|
|
||||||
#include <wx/settings.h>
|
|
||||||
#include <wx/statline.h>
|
|
||||||
#include <wx/sizer.h>
|
|
||||||
#include <wx/radiobut.h>
|
|
||||||
#include <wx/panel.h>
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
/// Class PANEL_3D_COLORS_BASE
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
class PANEL_3D_COLORS_BASE : public RESETTABLE_PANEL
|
|
||||||
{
|
|
||||||
private:
|
|
||||||
|
|
||||||
protected:
|
|
||||||
wxStaticText* m_environmentLable;
|
|
||||||
wxStaticLine* m_staticline1;
|
|
||||||
wxStaticText* backgroundTopLabel;
|
|
||||||
COLOR_SWATCH* m_backgroundTop;
|
|
||||||
wxStaticText* backgroundBotLabel;
|
|
||||||
COLOR_SWATCH* m_backgroundBottom;
|
|
||||||
wxStaticText* solderPasteLabel;
|
|
||||||
COLOR_SWATCH* m_solderPaste;
|
|
||||||
wxStaticText* m_boardColorsLabel;
|
|
||||||
wxStaticLine* m_staticline2;
|
|
||||||
wxRadioButton* m_boardStackupRB;
|
|
||||||
wxRadioButton* m_specificColorsRB;
|
|
||||||
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* surfaceFinishLabel;
|
|
||||||
COLOR_SWATCH* m_surfaceFinish;
|
|
||||||
wxStaticText* boardBodyLabel;
|
|
||||||
COLOR_SWATCH* m_boardBody;
|
|
||||||
|
|
||||||
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();
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
|
@ -45,33 +45,8 @@ void PANEL_3D_DISPLAY_OPTIONS::OnCheckEnableAnimation( wxCommandEvent& event )
|
||||||
void PANEL_3D_DISPLAY_OPTIONS::loadViewSettings( EDA_3D_VIEWER_SETTINGS* aCfg )
|
void PANEL_3D_DISPLAY_OPTIONS::loadViewSettings( EDA_3D_VIEWER_SETTINGS* aCfg )
|
||||||
{
|
{
|
||||||
// Check/uncheck checkboxes
|
// Check/uncheck checkboxes
|
||||||
m_checkBoxRealisticMode->SetValue( aCfg->m_Render.realistic );
|
|
||||||
m_checkBoxBoardBody->SetValue( aCfg->m_Render.show_board_body );
|
|
||||||
m_checkBoxAreas->SetValue( aCfg->m_Render.show_zones );
|
m_checkBoxAreas->SetValue( aCfg->m_Render.show_zones );
|
||||||
|
|
||||||
if( aCfg->m_Render.show_silkscreen_top == aCfg->m_Render.show_silkscreen_bottom )
|
|
||||||
m_checkBoxSilkscreen->SetValue( aCfg->m_Render.show_silkscreen_top );
|
|
||||||
else
|
|
||||||
m_checkBoxSilkscreen->Set3StateValue( wxCHK_UNDETERMINED );
|
|
||||||
|
|
||||||
if( aCfg->m_Render.show_soldermask_top == aCfg->m_Render.show_soldermask_bottom )
|
|
||||||
m_checkBoxSolderMask->SetValue( aCfg->m_Render.show_soldermask_top );
|
|
||||||
else
|
|
||||||
m_checkBoxSolderMask->Set3StateValue( wxCHK_UNDETERMINED );
|
|
||||||
|
|
||||||
m_checkBoxSolderpaste->SetValue( aCfg->m_Render.show_solderpaste );
|
|
||||||
m_checkBoxAdhesive->SetValue( aCfg->m_Render.show_adhesive );
|
|
||||||
|
|
||||||
if( aCfg->m_Render.show_comments == aCfg->m_Render.show_drawings )
|
|
||||||
m_checkBoxComments->SetValue( aCfg->m_Render.show_comments );
|
|
||||||
else
|
|
||||||
m_checkBoxComments->Set3StateValue( wxCHK_UNDETERMINED );
|
|
||||||
|
|
||||||
if( aCfg->m_Render.show_eco1 == aCfg->m_Render.show_eco2 )
|
|
||||||
m_checkBoxECO->SetValue( aCfg->m_Render.show_eco1 );
|
|
||||||
else
|
|
||||||
m_checkBoxECO->Set3StateValue( wxCHK_UNDETERMINED );
|
|
||||||
|
|
||||||
m_checkBoxSubtractMaskFromSilk->SetValue( aCfg->m_Render.subtract_mask_from_silk );
|
m_checkBoxSubtractMaskFromSilk->SetValue( aCfg->m_Render.subtract_mask_from_silk );
|
||||||
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 );
|
||||||
|
@ -101,11 +76,7 @@ bool PANEL_3D_DISPLAY_OPTIONS::TransferDataFromWindow()
|
||||||
{
|
{
|
||||||
EDA_3D_VIEWER_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<EDA_3D_VIEWER_SETTINGS>();
|
EDA_3D_VIEWER_SETTINGS* cfg = Pgm().GetSettingsManager().GetAppSettings<EDA_3D_VIEWER_SETTINGS>();
|
||||||
|
|
||||||
// Set render mode
|
|
||||||
cfg->m_Render.realistic = m_checkBoxRealisticMode->GetValue();
|
|
||||||
|
|
||||||
// Set visibility of items
|
// Set visibility of items
|
||||||
cfg->m_Render.show_board_body = m_checkBoxBoardBody->GetValue();
|
|
||||||
cfg->m_Render.show_zones = m_checkBoxAreas->GetValue();
|
cfg->m_Render.show_zones = m_checkBoxAreas->GetValue();
|
||||||
cfg->m_Render.subtract_mask_from_silk = m_checkBoxSubtractMaskFromSilk->GetValue();
|
cfg->m_Render.subtract_mask_from_silk = m_checkBoxSubtractMaskFromSilk->GetValue();
|
||||||
cfg->m_Render.clip_silk_on_via_annulus = m_checkBoxClipSilkOnViaAnnulus->GetValue();
|
cfg->m_Render.clip_silk_on_via_annulus = m_checkBoxClipSilkOnViaAnnulus->GetValue();
|
||||||
|
@ -113,34 +84,6 @@ bool PANEL_3D_DISPLAY_OPTIONS::TransferDataFromWindow()
|
||||||
|
|
||||||
cfg->m_Render.material_mode = static_cast<MATERIAL_MODE>( m_materialProperties->GetSelection() );
|
cfg->m_Render.material_mode = static_cast<MATERIAL_MODE>( m_materialProperties->GetSelection() );
|
||||||
|
|
||||||
// Set Layer visibility
|
|
||||||
if( m_checkBoxSilkscreen->Get3StateValue() != wxCHK_UNDETERMINED )
|
|
||||||
{
|
|
||||||
cfg->m_Render.show_silkscreen_top = m_checkBoxSilkscreen->GetValue();
|
|
||||||
cfg->m_Render.show_silkscreen_bottom = m_checkBoxSilkscreen->GetValue();
|
|
||||||
}
|
|
||||||
|
|
||||||
if( m_checkBoxSolderMask->Get3StateValue() != wxCHK_UNDETERMINED )
|
|
||||||
{
|
|
||||||
cfg->m_Render.show_soldermask_top = m_checkBoxSolderMask->GetValue();
|
|
||||||
cfg->m_Render.show_soldermask_bottom = m_checkBoxSolderMask->GetValue();
|
|
||||||
}
|
|
||||||
|
|
||||||
cfg->m_Render.show_solderpaste = m_checkBoxSolderpaste->GetValue();
|
|
||||||
cfg->m_Render.show_adhesive = m_checkBoxAdhesive->GetValue();
|
|
||||||
|
|
||||||
if( m_checkBoxComments->Get3StateValue() != wxCHK_UNDETERMINED )
|
|
||||||
{
|
|
||||||
cfg->m_Render.show_comments = m_checkBoxComments->GetValue();
|
|
||||||
cfg->m_Render.show_drawings = m_checkBoxComments->GetValue();
|
|
||||||
}
|
|
||||||
|
|
||||||
if( m_checkBoxECO->Get3StateValue() != wxCHK_UNDETERMINED )
|
|
||||||
{
|
|
||||||
cfg->m_Render.show_eco1 = m_checkBoxECO->GetValue( );
|
|
||||||
cfg->m_Render.show_eco2 = m_checkBoxECO->GetValue( );
|
|
||||||
}
|
|
||||||
|
|
||||||
// Camera Options
|
// Camera Options
|
||||||
cfg->m_Camera.animation_enabled = m_checkBoxEnableAnimation->GetValue();
|
cfg->m_Camera.animation_enabled = m_checkBoxEnableAnimation->GetValue();
|
||||||
cfg->m_Camera.moving_speed_multiplier = m_sliderAnimationSpeed->GetValue();
|
cfg->m_Camera.moving_speed_multiplier = m_sliderAnimationSpeed->GetValue();
|
||||||
|
|
|
@ -15,69 +15,11 @@ PANEL_3D_DISPLAY_OPTIONS_BASE::PANEL_3D_DISPLAY_OPTIONS_BASE( wxWindow* parent,
|
||||||
bSizerMain = new wxBoxSizer( wxHORIZONTAL );
|
bSizerMain = new wxBoxSizer( wxHORIZONTAL );
|
||||||
|
|
||||||
wxBoxSizer* bSizer7;
|
wxBoxSizer* bSizer7;
|
||||||
bSizer7 = new wxBoxSizer( wxHORIZONTAL );
|
bSizer7 = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
wxBoxSizer* bSizeLeft;
|
wxBoxSizer* bSizeLeft;
|
||||||
bSizeLeft = new wxBoxSizer( wxVERTICAL );
|
bSizeLeft = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
m_boardLayersLabel = new wxStaticText( this, wxID_ANY, _("Board Layers"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_boardLayersLabel->Wrap( -1 );
|
|
||||||
bSizeLeft->Add( m_boardLayersLabel, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND, 13 );
|
|
||||||
|
|
||||||
m_staticline2 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
|
|
||||||
bSizeLeft->Add( m_staticline2, 0, wxEXPAND|wxBOTTOM, 5 );
|
|
||||||
|
|
||||||
wxFlexGridSizer* fgSizer1;
|
|
||||||
fgSizer1 = new wxFlexGridSizer( 0, 1, 4, 0 );
|
|
||||||
fgSizer1->SetFlexibleDirection( wxBOTH );
|
|
||||||
fgSizer1->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
|
||||||
|
|
||||||
m_checkBoxSilkscreen = new wxCheckBox( this, wxID_ANY, _("Show silkscreen layers"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE );
|
|
||||||
fgSizer1->Add( m_checkBoxSilkscreen, 0, wxLEFT, 5 );
|
|
||||||
|
|
||||||
m_checkBoxSubtractMaskFromSilk = new wxCheckBox( this, wxID_ANY, _("Clip silkscreen at solder mask edges"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
fgSizer1->Add( m_checkBoxSubtractMaskFromSilk, 0, wxLEFT, 25 );
|
|
||||||
|
|
||||||
m_checkBoxClipSilkOnViaAnnulus = new wxCheckBox( this, wxID_ANY, _("Clip silkscreen at via annuli"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
fgSizer1->Add( m_checkBoxClipSilkOnViaAnnulus, 0, wxLEFT, 25 );
|
|
||||||
|
|
||||||
m_checkBoxSolderMask = new wxCheckBox( this, wxID_ANY, _("Show solder mask layers"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE );
|
|
||||||
fgSizer1->Add( m_checkBoxSolderMask, 0, wxTOP|wxLEFT, 5 );
|
|
||||||
|
|
||||||
m_checkBoxSolderpaste = new wxCheckBox( this, wxID_ANY, _("Show solder paste layers"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
fgSizer1->Add( m_checkBoxSolderpaste, 0, wxLEFT, 5 );
|
|
||||||
|
|
||||||
m_checkBoxAdhesive = new wxCheckBox( this, wxID_ANY, _("Show adhesive layers"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
fgSizer1->Add( m_checkBoxAdhesive, 0, wxLEFT, 5 );
|
|
||||||
|
|
||||||
|
|
||||||
bSizeLeft->Add( fgSizer1, 0, wxEXPAND|wxALL, 5 );
|
|
||||||
|
|
||||||
|
|
||||||
bSizeLeft->Add( 0, 15, 0, wxEXPAND, 5 );
|
|
||||||
|
|
||||||
m_userLayersLabel = new wxStaticText( this, wxID_ANY, _("User Layers"), wxDefaultPosition, wxDefaultSize, 0 );
|
|
||||||
m_userLayersLabel->Wrap( -1 );
|
|
||||||
bSizeLeft->Add( m_userLayersLabel, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 13 );
|
|
||||||
|
|
||||||
m_staticline31 = new wxStaticLine( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLI_HORIZONTAL );
|
|
||||||
bSizeLeft->Add( m_staticline31, 0, wxEXPAND|wxBOTTOM, 5 );
|
|
||||||
|
|
||||||
|
|
||||||
bSizeLeft->Add( 0, 5, 0, wxEXPAND, 5 );
|
|
||||||
|
|
||||||
m_checkBoxComments = new wxCheckBox( this, wxID_ANY, _("Show comment and drawing layers"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE );
|
|
||||||
bSizeLeft->Add( m_checkBoxComments, 0, wxRIGHT|wxLEFT, 10 );
|
|
||||||
|
|
||||||
|
|
||||||
bSizeLeft->Add( 0, 4, 0, wxEXPAND, 5 );
|
|
||||||
|
|
||||||
m_checkBoxECO = new wxCheckBox( this, wxID_ANY, _("Show ECO layers"), wxDefaultPosition, wxDefaultSize, wxCHK_3STATE );
|
|
||||||
bSizeLeft->Add( m_checkBoxECO, 0, wxRIGHT|wxLEFT, 10 );
|
|
||||||
|
|
||||||
|
|
||||||
bSizeLeft->Add( 0, 15, 0, wxEXPAND, 5 );
|
|
||||||
|
|
||||||
m_renderOptionsLabel = new wxStaticText( this, wxID_ANY, _("Render Options"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_renderOptionsLabel = new wxStaticText( this, wxID_ANY, _("Render Options"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
m_renderOptionsLabel->Wrap( -1 );
|
m_renderOptionsLabel->Wrap( -1 );
|
||||||
bSizeLeft->Add( m_renderOptionsLabel, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND, 13 );
|
bSizeLeft->Add( m_renderOptionsLabel, 0, wxTOP|wxRIGHT|wxLEFT|wxEXPAND, 13 );
|
||||||
|
@ -90,11 +32,11 @@ PANEL_3D_DISPLAY_OPTIONS_BASE::PANEL_3D_DISPLAY_OPTIONS_BASE( wxWindow* parent,
|
||||||
fgSizer2->SetFlexibleDirection( wxBOTH );
|
fgSizer2->SetFlexibleDirection( wxBOTH );
|
||||||
fgSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
fgSizer2->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
|
||||||
|
|
||||||
m_checkBoxBoardBody = new wxCheckBox( this, wxID_ANY, _("Show board body"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_checkBoxClipSilkOnViaAnnulus = new wxCheckBox( this, wxID_ANY, _("Clip silkscreen at via annuli"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
fgSizer2->Add( m_checkBoxBoardBody, 0, wxRIGHT|wxLEFT, 5 );
|
fgSizer2->Add( m_checkBoxClipSilkOnViaAnnulus, 0, wxLEFT, 5 );
|
||||||
|
|
||||||
m_checkBoxRealisticMode = new wxCheckBox( this, wxID_ANY, _("Realistic mode"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_checkBoxSubtractMaskFromSilk = new wxCheckBox( this, wxID_ANY, _("Clip silkscreen at solder mask edges"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
fgSizer2->Add( m_checkBoxRealisticMode, 0, wxRIGHT|wxLEFT, 5 );
|
fgSizer2->Add( m_checkBoxSubtractMaskFromSilk, 0, wxLEFT, 5 );
|
||||||
|
|
||||||
m_checkBoxAreas = new wxCheckBox( this, wxID_ANY, _("Show filled areas in zones"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_checkBoxAreas = new wxCheckBox( this, wxID_ANY, _("Show filled areas in zones"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
fgSizer2->Add( m_checkBoxAreas, 0, wxRIGHT|wxLEFT, 5 );
|
fgSizer2->Add( m_checkBoxAreas, 0, wxRIGHT|wxLEFT, 5 );
|
||||||
|
@ -180,7 +122,7 @@ PANEL_3D_DISPLAY_OPTIONS_BASE::PANEL_3D_DISPLAY_OPTIONS_BASE( wxWindow* parent,
|
||||||
bSizerRight->Add( bSizerSlider, 0, wxEXPAND|wxLEFT, 5 );
|
bSizerRight->Add( bSizerSlider, 0, wxEXPAND|wxLEFT, 5 );
|
||||||
|
|
||||||
|
|
||||||
bSizer7->Add( bSizerRight, 0, wxEXPAND, 15 );
|
bSizer7->Add( bSizerRight, 0, wxEXPAND|wxTOP, 15 );
|
||||||
|
|
||||||
|
|
||||||
bSizerMain->Add( bSizer7, 1, 0, 5 );
|
bSizerMain->Add( bSizer7, 1, 0, 5 );
|
||||||
|
@ -191,14 +133,12 @@ PANEL_3D_DISPLAY_OPTIONS_BASE::PANEL_3D_DISPLAY_OPTIONS_BASE( wxWindow* parent,
|
||||||
bSizerMain->Fit( this );
|
bSizerMain->Fit( this );
|
||||||
|
|
||||||
// Connect Events
|
// 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 );
|
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()
|
PANEL_3D_DISPLAY_OPTIONS_BASE::~PANEL_3D_DISPLAY_OPTIONS_BASE()
|
||||||
{
|
{
|
||||||
// Disconnect Events
|
// 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 );
|
m_checkBoxEnableAnimation->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( PANEL_3D_DISPLAY_OPTIONS_BASE::OnCheckEnableAnimation ), NULL, this );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,7 +64,7 @@
|
||||||
<object class="wxBoxSizer" expanded="1">
|
<object class="wxBoxSizer" expanded="1">
|
||||||
<property name="minimum_size"></property>
|
<property name="minimum_size"></property>
|
||||||
<property name="name">bSizer7</property>
|
<property name="name">bSizer7</property>
|
||||||
<property name="orient">wxHORIZONTAL</property>
|
<property name="orient">wxVERTICAL</property>
|
||||||
<property name="permission">none</property>
|
<property name="permission">none</property>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="sizeritem" expanded="1">
|
||||||
<property name="border">20</property>
|
<property name="border">20</property>
|
||||||
|
@ -75,814 +75,6 @@
|
||||||
<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="1">
|
|
||||||
<property name="border">13</property>
|
|
||||||
<property name="flag">wxTOP|wxRIGHT|wxLEFT|wxEXPAND</property>
|
|
||||||
<property name="proportion">0</property>
|
|
||||||
<object class="wxStaticText" 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="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">Board Layers</property>
|
|
||||||
<property name="markup">0</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="moveable">1</property>
|
|
||||||
<property name="name">m_boardLayersLabel</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"></property>
|
|
||||||
<property name="window_extra_style"></property>
|
|
||||||
<property name="window_name"></property>
|
|
||||||
<property name="window_style"></property>
|
|
||||||
<property name="wrap">-1</property>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="sizeritem" expanded="1">
|
|
||||||
<property name="border">5</property>
|
|
||||||
<property name="flag">wxEXPAND|wxBOTTOM</property>
|
|
||||||
<property name="proportion">0</property>
|
|
||||||
<object class="wxStaticLine" 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="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="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="moveable">1</property>
|
|
||||||
<property name="name">m_staticline2</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">wxLI_HORIZONTAL</property>
|
|
||||||
<property name="subclass">; ; forward_declare</property>
|
|
||||||
<property name="toolbar_pane">0</property>
|
|
||||||
<property name="tooltip"></property>
|
|
||||||
<property name="window_extra_style"></property>
|
|
||||||
<property name="window_name"></property>
|
|
||||||
<property name="window_style"></property>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="sizeritem" expanded="1">
|
|
||||||
<property name="border">5</property>
|
|
||||||
<property name="flag">wxEXPAND|wxALL</property>
|
|
||||||
<property name="proportion">0</property>
|
|
||||||
<object class="wxFlexGridSizer" expanded="1">
|
|
||||||
<property name="cols">1</property>
|
|
||||||
<property name="flexible_direction">wxBOTH</property>
|
|
||||||
<property name="growablecols"></property>
|
|
||||||
<property name="growablerows"></property>
|
|
||||||
<property name="hgap">0</property>
|
|
||||||
<property name="minimum_size"></property>
|
|
||||||
<property name="name">fgSizer1</property>
|
|
||||||
<property name="non_flexible_grow_mode">wxFLEX_GROWMODE_SPECIFIED</property>
|
|
||||||
<property name="permission">none</property>
|
|
||||||
<property name="rows">0</property>
|
|
||||||
<property name="vgap">4</property>
|
|
||||||
<object class="sizeritem" expanded="0">
|
|
||||||
<property name="border">5</property>
|
|
||||||
<property name="flag">wxLEFT</property>
|
|
||||||
<property name="proportion">0</property>
|
|
||||||
<object class="wxCheckBox" expanded="0">
|
|
||||||
<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">Show silkscreen layers</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="moveable">1</property>
|
|
||||||
<property name="name">m_checkBoxSilkscreen</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">wxCHK_3STATE</property>
|
|
||||||
<property name="subclass"></property>
|
|
||||||
<property name="toolbar_pane">0</property>
|
|
||||||
<property name="tooltip"></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 class="sizeritem" expanded="0">
|
|
||||||
<property name="border">25</property>
|
|
||||||
<property name="flag">wxLEFT</property>
|
|
||||||
<property name="proportion">0</property>
|
|
||||||
<object class="wxCheckBox" expanded="0">
|
|
||||||
<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">Clip silkscreen at solder mask edges</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="moveable">1</property>
|
|
||||||
<property name="name">m_checkBoxSubtractMaskFromSilk</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"></property>
|
|
||||||
<property name="toolbar_pane">0</property>
|
|
||||||
<property name="tooltip"></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 class="sizeritem" expanded="0">
|
|
||||||
<property name="border">25</property>
|
|
||||||
<property name="flag">wxLEFT</property>
|
|
||||||
<property name="proportion">0</property>
|
|
||||||
<object class="wxCheckBox" expanded="0">
|
|
||||||
<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">Clip silkscreen at via annuli</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="moveable">1</property>
|
|
||||||
<property name="name">m_checkBoxClipSilkOnViaAnnulus</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"></property>
|
|
||||||
<property name="toolbar_pane">0</property>
|
|
||||||
<property name="tooltip"></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 class="sizeritem" expanded="0">
|
|
||||||
<property name="border">5</property>
|
|
||||||
<property name="flag">wxTOP|wxLEFT</property>
|
|
||||||
<property name="proportion">0</property>
|
|
||||||
<object class="wxCheckBox" expanded="0">
|
|
||||||
<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">Show solder mask layers</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="moveable">1</property>
|
|
||||||
<property name="name">m_checkBoxSolderMask</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">wxCHK_3STATE</property>
|
|
||||||
<property name="subclass"></property>
|
|
||||||
<property name="toolbar_pane">0</property>
|
|
||||||
<property name="tooltip"></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 class="sizeritem" expanded="0">
|
|
||||||
<property name="border">5</property>
|
|
||||||
<property name="flag">wxLEFT</property>
|
|
||||||
<property name="proportion">0</property>
|
|
||||||
<object class="wxCheckBox" expanded="0">
|
|
||||||
<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">Show solder paste layers</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="moveable">1</property>
|
|
||||||
<property name="name">m_checkBoxSolderpaste</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"></property>
|
|
||||||
<property name="toolbar_pane">0</property>
|
|
||||||
<property name="tooltip"></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 class="sizeritem" expanded="0">
|
|
||||||
<property name="border">5</property>
|
|
||||||
<property name="flag">wxLEFT</property>
|
|
||||||
<property name="proportion">0</property>
|
|
||||||
<object class="wxCheckBox" expanded="0">
|
|
||||||
<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">Show adhesive layers</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="moveable">1</property>
|
|
||||||
<property name="name">m_checkBoxAdhesive</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"></property>
|
|
||||||
<property name="toolbar_pane">0</property>
|
|
||||||
<property name="tooltip"></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 class="sizeritem" expanded="1">
|
|
||||||
<property name="border">5</property>
|
|
||||||
<property name="flag">wxEXPAND</property>
|
|
||||||
<property name="proportion">0</property>
|
|
||||||
<object class="spacer" expanded="1">
|
|
||||||
<property name="height">15</property>
|
|
||||||
<property name="permission">protected</property>
|
|
||||||
<property name="width">0</property>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="sizeritem" expanded="1">
|
|
||||||
<property name="border">13</property>
|
|
||||||
<property name="flag">wxEXPAND|wxTOP|wxRIGHT|wxLEFT</property>
|
|
||||||
<property name="proportion">0</property>
|
|
||||||
<object class="wxStaticText" 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="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">User Layers</property>
|
|
||||||
<property name="markup">0</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="moveable">1</property>
|
|
||||||
<property name="name">m_userLayersLabel</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"></property>
|
|
||||||
<property name="window_extra_style"></property>
|
|
||||||
<property name="window_name"></property>
|
|
||||||
<property name="window_style"></property>
|
|
||||||
<property name="wrap">-1</property>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="sizeritem" expanded="1">
|
|
||||||
<property name="border">5</property>
|
|
||||||
<property name="flag">wxEXPAND|wxBOTTOM</property>
|
|
||||||
<property name="proportion">0</property>
|
|
||||||
<object class="wxStaticLine" 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="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="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="moveable">1</property>
|
|
||||||
<property name="name">m_staticline31</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">wxLI_HORIZONTAL</property>
|
|
||||||
<property name="subclass">; ; forward_declare</property>
|
|
||||||
<property name="toolbar_pane">0</property>
|
|
||||||
<property name="tooltip"></property>
|
|
||||||
<property name="window_extra_style"></property>
|
|
||||||
<property name="window_name"></property>
|
|
||||||
<property name="window_style"></property>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="sizeritem" expanded="1">
|
|
||||||
<property name="border">5</property>
|
|
||||||
<property name="flag">wxEXPAND</property>
|
|
||||||
<property name="proportion">0</property>
|
|
||||||
<object class="spacer" expanded="1">
|
|
||||||
<property name="height">5</property>
|
|
||||||
<property name="permission">protected</property>
|
|
||||||
<property name="width">0</property>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="sizeritem" expanded="0">
|
|
||||||
<property name="border">10</property>
|
|
||||||
<property name="flag">wxRIGHT|wxLEFT</property>
|
|
||||||
<property name="proportion">0</property>
|
|
||||||
<object class="wxCheckBox" expanded="0">
|
|
||||||
<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">Show comment and drawing layers</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="moveable">1</property>
|
|
||||||
<property name="name">m_checkBoxComments</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">wxCHK_3STATE</property>
|
|
||||||
<property name="subclass"></property>
|
|
||||||
<property name="toolbar_pane">0</property>
|
|
||||||
<property name="tooltip"></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 class="sizeritem" expanded="1">
|
|
||||||
<property name="border">5</property>
|
|
||||||
<property name="flag">wxEXPAND</property>
|
|
||||||
<property name="proportion">0</property>
|
|
||||||
<object class="spacer" expanded="1">
|
|
||||||
<property name="height">4</property>
|
|
||||||
<property name="permission">protected</property>
|
|
||||||
<property name="width">0</property>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="sizeritem" expanded="0">
|
|
||||||
<property name="border">10</property>
|
|
||||||
<property name="flag">wxRIGHT|wxLEFT</property>
|
|
||||||
<property name="proportion">0</property>
|
|
||||||
<object class="wxCheckBox" expanded="0">
|
|
||||||
<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">Show ECO layers</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="moveable">1</property>
|
|
||||||
<property name="name">m_checkBoxECO</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">wxCHK_3STATE</property>
|
|
||||||
<property name="subclass"></property>
|
|
||||||
<property name="toolbar_pane">0</property>
|
|
||||||
<property name="tooltip"></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 class="sizeritem" expanded="1">
|
|
||||||
<property name="border">5</property>
|
|
||||||
<property name="flag">wxEXPAND</property>
|
|
||||||
<property name="proportion">0</property>
|
|
||||||
<object class="spacer" expanded="1">
|
|
||||||
<property name="height">15</property>
|
|
||||||
<property name="permission">protected</property>
|
|
||||||
<property name="width">0</property>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="sizeritem" expanded="1">
|
||||||
<property name="border">13</property>
|
<property name="border">13</property>
|
||||||
<property name="flag">wxTOP|wxRIGHT|wxLEFT|wxEXPAND</property>
|
<property name="flag">wxTOP|wxRIGHT|wxLEFT|wxEXPAND</property>
|
||||||
|
@ -1020,7 +212,7 @@
|
||||||
<property name="vgap">4</property>
|
<property name="vgap">4</property>
|
||||||
<object class="sizeritem" expanded="0">
|
<object class="sizeritem" expanded="0">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxRIGHT|wxLEFT</property>
|
<property name="flag">wxLEFT</property>
|
||||||
<property name="proportion">0</property>
|
<property name="proportion">0</property>
|
||||||
<object class="wxCheckBox" expanded="0">
|
<object class="wxCheckBox" expanded="0">
|
||||||
<property name="BottomDockable">1</property>
|
<property name="BottomDockable">1</property>
|
||||||
|
@ -1051,7 +243,7 @@
|
||||||
<property name="gripper">0</property>
|
<property name="gripper">0</property>
|
||||||
<property name="hidden">0</property>
|
<property name="hidden">0</property>
|
||||||
<property name="id">wxID_ANY</property>
|
<property name="id">wxID_ANY</property>
|
||||||
<property name="label">Show board body</property>
|
<property name="label">Clip silkscreen at via annuli</property>
|
||||||
<property name="max_size"></property>
|
<property name="max_size"></property>
|
||||||
<property name="maximize_button">0</property>
|
<property name="maximize_button">0</property>
|
||||||
<property name="maximum_size"></property>
|
<property name="maximum_size"></property>
|
||||||
|
@ -1059,7 +251,7 @@
|
||||||
<property name="minimize_button">0</property>
|
<property name="minimize_button">0</property>
|
||||||
<property name="minimum_size"></property>
|
<property name="minimum_size"></property>
|
||||||
<property name="moveable">1</property>
|
<property name="moveable">1</property>
|
||||||
<property name="name">m_checkBoxBoardBody</property>
|
<property name="name">m_checkBoxClipSilkOnViaAnnulus</property>
|
||||||
<property name="pane_border">1</property>
|
<property name="pane_border">1</property>
|
||||||
<property name="pane_position"></property>
|
<property name="pane_position"></property>
|
||||||
<property name="pane_size"></property>
|
<property name="pane_size"></property>
|
||||||
|
@ -1084,7 +276,7 @@
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="0">
|
<object class="sizeritem" expanded="0">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxRIGHT|wxLEFT</property>
|
<property name="flag">wxLEFT</property>
|
||||||
<property name="proportion">0</property>
|
<property name="proportion">0</property>
|
||||||
<object class="wxCheckBox" expanded="0">
|
<object class="wxCheckBox" expanded="0">
|
||||||
<property name="BottomDockable">1</property>
|
<property name="BottomDockable">1</property>
|
||||||
|
@ -1115,7 +307,7 @@
|
||||||
<property name="gripper">0</property>
|
<property name="gripper">0</property>
|
||||||
<property name="hidden">0</property>
|
<property name="hidden">0</property>
|
||||||
<property name="id">wxID_ANY</property>
|
<property name="id">wxID_ANY</property>
|
||||||
<property name="label">Realistic mode</property>
|
<property name="label">Clip silkscreen at solder mask edges</property>
|
||||||
<property name="max_size"></property>
|
<property name="max_size"></property>
|
||||||
<property name="maximize_button">0</property>
|
<property name="maximize_button">0</property>
|
||||||
<property name="maximum_size"></property>
|
<property name="maximum_size"></property>
|
||||||
|
@ -1123,7 +315,7 @@
|
||||||
<property name="minimize_button">0</property>
|
<property name="minimize_button">0</property>
|
||||||
<property name="minimum_size"></property>
|
<property name="minimum_size"></property>
|
||||||
<property name="moveable">1</property>
|
<property name="moveable">1</property>
|
||||||
<property name="name">m_checkBoxRealisticMode</property>
|
<property name="name">m_checkBoxSubtractMaskFromSilk</property>
|
||||||
<property name="pane_border">1</property>
|
<property name="pane_border">1</property>
|
||||||
<property name="pane_position"></property>
|
<property name="pane_position"></property>
|
||||||
<property name="pane_size"></property>
|
<property name="pane_size"></property>
|
||||||
|
@ -1144,7 +336,6 @@
|
||||||
<property name="window_extra_style"></property>
|
<property name="window_extra_style"></property>
|
||||||
<property name="window_name"></property>
|
<property name="window_name"></property>
|
||||||
<property name="window_style"></property>
|
<property name="window_style"></property>
|
||||||
<event name="OnCheckBox">OnCheckRealisticMode</event>
|
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="0">
|
<object class="sizeritem" expanded="0">
|
||||||
|
@ -1417,7 +608,7 @@
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="sizeritem" expanded="1">
|
||||||
<property name="border">15</property>
|
<property name="border">15</property>
|
||||||
<property name="flag">wxEXPAND</property>
|
<property name="flag">wxEXPAND|wxTOP</property>
|
||||||
<property name="proportion">0</property>
|
<property name="proportion">0</property>
|
||||||
<object class="wxBoxSizer" expanded="1">
|
<object class="wxBoxSizer" expanded="1">
|
||||||
<property name="minimum_size"></property>
|
<property name="minimum_size"></property>
|
||||||
|
|
|
@ -19,8 +19,8 @@
|
||||||
#include <wx/settings.h>
|
#include <wx/settings.h>
|
||||||
#include <wx/statline.h>
|
#include <wx/statline.h>
|
||||||
#include <wx/checkbox.h>
|
#include <wx/checkbox.h>
|
||||||
#include <wx/sizer.h>
|
|
||||||
#include <wx/choice.h>
|
#include <wx/choice.h>
|
||||||
|
#include <wx/sizer.h>
|
||||||
#include <wx/spinctrl.h>
|
#include <wx/spinctrl.h>
|
||||||
#include <wx/slider.h>
|
#include <wx/slider.h>
|
||||||
#include <wx/panel.h>
|
#include <wx/panel.h>
|
||||||
|
@ -36,22 +36,10 @@ class PANEL_3D_DISPLAY_OPTIONS_BASE : public RESETTABLE_PANEL
|
||||||
private:
|
private:
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
wxStaticText* m_boardLayersLabel;
|
|
||||||
wxStaticLine* m_staticline2;
|
|
||||||
wxCheckBox* m_checkBoxSilkscreen;
|
|
||||||
wxCheckBox* m_checkBoxSubtractMaskFromSilk;
|
|
||||||
wxCheckBox* m_checkBoxClipSilkOnViaAnnulus;
|
|
||||||
wxCheckBox* m_checkBoxSolderMask;
|
|
||||||
wxCheckBox* m_checkBoxSolderpaste;
|
|
||||||
wxCheckBox* m_checkBoxAdhesive;
|
|
||||||
wxStaticText* m_userLayersLabel;
|
|
||||||
wxStaticLine* m_staticline31;
|
|
||||||
wxCheckBox* m_checkBoxComments;
|
|
||||||
wxCheckBox* m_checkBoxECO;
|
|
||||||
wxStaticText* m_renderOptionsLabel;
|
wxStaticText* m_renderOptionsLabel;
|
||||||
wxStaticLine* m_staticline4;
|
wxStaticLine* m_staticline4;
|
||||||
wxCheckBox* m_checkBoxBoardBody;
|
wxCheckBox* m_checkBoxClipSilkOnViaAnnulus;
|
||||||
wxCheckBox* m_checkBoxRealisticMode;
|
wxCheckBox* m_checkBoxSubtractMaskFromSilk;
|
||||||
wxCheckBox* m_checkBoxAreas;
|
wxCheckBox* m_checkBoxAreas;
|
||||||
wxCheckBox* m_checkBoxRenderPlatedPadsAsPlated;
|
wxCheckBox* m_checkBoxRenderPlatedPadsAsPlated;
|
||||||
wxStaticText* m_materialPropertiesLabel;
|
wxStaticText* m_materialPropertiesLabel;
|
||||||
|
@ -66,7 +54,6 @@ class PANEL_3D_DISPLAY_OPTIONS_BASE : public RESETTABLE_PANEL
|
||||||
wxSlider* m_sliderAnimationSpeed;
|
wxSlider* m_sliderAnimationSpeed;
|
||||||
|
|
||||||
// Virtual event handlers, override them in your derived class
|
// Virtual event handlers, override them in your derived class
|
||||||
virtual void OnCheckRealisticMode( wxCommandEvent& event ) { event.Skip(); }
|
|
||||||
virtual void OnCheckEnableAnimation( wxCommandEvent& event ) { event.Skip(); }
|
virtual void OnCheckEnableAnimation( wxCommandEvent& event ) { event.Skip(); }
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -237,7 +237,6 @@ void PANEL_PREVIEW_3D_MODEL::loadSettings()
|
||||||
cfg->m_Render.show_solderpaste = m_bodyStyleShowAll;
|
cfg->m_Render.show_solderpaste = m_bodyStyleShowAll;
|
||||||
cfg->m_Render.show_zones = m_bodyStyleShowAll;
|
cfg->m_Render.show_zones = m_bodyStyleShowAll;
|
||||||
cfg->m_Render.show_board_body = m_bodyStyleShowAll;
|
cfg->m_Render.show_board_body = m_bodyStyleShowAll;
|
||||||
cfg->m_Render.realistic = m_bodyStyleShowAll;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -404,7 +403,6 @@ void PANEL_PREVIEW_3D_MODEL::setBodyStyleView( wxCommandEvent& event )
|
||||||
cfg->m_Render.show_solderpaste = m_bodyStyleShowAll;
|
cfg->m_Render.show_solderpaste = m_bodyStyleShowAll;
|
||||||
cfg->m_Render.show_zones = m_bodyStyleShowAll;
|
cfg->m_Render.show_zones = m_bodyStyleShowAll;
|
||||||
cfg->m_Render.show_board_body = m_bodyStyleShowAll;
|
cfg->m_Render.show_board_body = m_bodyStyleShowAll;
|
||||||
cfg->m_Render.realistic = m_bodyStyleShowAll;
|
|
||||||
|
|
||||||
m_previewPane->ReloadRequest();
|
m_previewPane->ReloadRequest();
|
||||||
m_previewPane->Refresh();
|
m_previewPane->Refresh();
|
||||||
|
|
|
@ -1162,7 +1162,6 @@ void EDA_BASE_FRAME::ShowPreferences( wxString aStartPage, wxString aStartParent
|
||||||
book->AddLazySubPage( LAZY_CTOR( PANEL_3DV_DISPLAY_OPTIONS ), _( "General" ) );
|
book->AddLazySubPage( LAZY_CTOR( PANEL_3DV_DISPLAY_OPTIONS ), _( "General" ) );
|
||||||
book->AddLazySubPage( LAZY_CTOR( PANEL_3DV_OPENGL ), _( "Realtime Renderer" ) );
|
book->AddLazySubPage( LAZY_CTOR( PANEL_3DV_OPENGL ), _( "Realtime Renderer" ) );
|
||||||
book->AddLazySubPage( LAZY_CTOR( PANEL_3DV_RAYTRACING ), _( "Raytracing Renderer" ) );
|
book->AddLazySubPage( LAZY_CTOR( PANEL_3DV_RAYTRACING ), _( "Raytracing Renderer" ) );
|
||||||
book->AddLazySubPage( LAZY_CTOR( PANEL_3DV_COLORS ), _( "Colors" ) );
|
|
||||||
}
|
}
|
||||||
catch( ... )
|
catch( ... )
|
||||||
{
|
{
|
||||||
|
|
|
@ -222,7 +222,7 @@ REPORTER& STATUSBAR_REPORTER::Report( const wxString& aText, SEVERITY aSeverity
|
||||||
bool STATUSBAR_REPORTER::HasMessage() const
|
bool STATUSBAR_REPORTER::HasMessage() const
|
||||||
{
|
{
|
||||||
if( m_statusBar )
|
if( m_statusBar )
|
||||||
return m_statusBar->GetStatusText().IsEmpty();
|
return !m_statusBar->GetStatusText( m_position ).IsEmpty();
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -89,7 +89,6 @@ enum FRAME_T
|
||||||
PANEL_3DV_DISPLAY_OPTIONS,
|
PANEL_3DV_DISPLAY_OPTIONS,
|
||||||
PANEL_3DV_OPENGL,
|
PANEL_3DV_OPENGL,
|
||||||
PANEL_3DV_RAYTRACING,
|
PANEL_3DV_RAYTRACING,
|
||||||
PANEL_3DV_COLORS,
|
|
||||||
|
|
||||||
PANEL_GBR_DISPLAY_OPTIONS,
|
PANEL_GBR_DISPLAY_OPTIONS,
|
||||||
PANEL_GBR_EDIT_OPTIONS,
|
PANEL_GBR_EDIT_OPTIONS,
|
||||||
|
|
|
@ -703,6 +703,11 @@ void PCB_BASE_FRAME::ShowChangedLanguage()
|
||||||
|
|
||||||
// tooltips in toolbars
|
// tooltips in toolbars
|
||||||
RecreateToolbars();
|
RecreateToolbars();
|
||||||
|
|
||||||
|
EDA_3D_VIEWER_FRAME* viewer3D = Get3DViewerFrame();
|
||||||
|
|
||||||
|
if( viewer3D )
|
||||||
|
viewer3D->ShowChangedLanguage();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -57,7 +57,6 @@
|
||||||
#include <panel_3D_display_options.h>
|
#include <panel_3D_display_options.h>
|
||||||
#include <panel_3D_opengl_options.h>
|
#include <panel_3D_opengl_options.h>
|
||||||
#include <panel_3D_raytracing_options.h>
|
#include <panel_3D_raytracing_options.h>
|
||||||
#include <panel_3D_colors.h>
|
|
||||||
#include <python_scripting.h>
|
#include <python_scripting.h>
|
||||||
|
|
||||||
#include "invoke_pcb_dialog.h"
|
#include "invoke_pcb_dialog.h"
|
||||||
|
@ -236,9 +235,6 @@ static struct IFACE : public KIFACE_BASE, public UNITS_PROVIDER
|
||||||
case PANEL_3DV_RAYTRACING:
|
case PANEL_3DV_RAYTRACING:
|
||||||
return new PANEL_3D_RAYTRACING_OPTIONS( aParent );
|
return new PANEL_3D_RAYTRACING_OPTIONS( aParent );
|
||||||
|
|
||||||
case PANEL_3DV_COLORS:
|
|
||||||
return new PANEL_3D_COLORS( aParent );
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue