mirror of
https://gitlab.com/kicad/code/kicad.git
synced 2025-09-14 02:03:12 +02:00
Use board layer names when available.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/20360
This commit is contained in:
parent
142f8265c5
commit
6307f0aee8
@ -267,7 +267,7 @@ bool BOARD_ADAPTER::Is3dLayerEnabled( PCB_LAYER_ID aLayer,
|
||||
case Eco2_User: return aVisibilityFlags.test( LAYER_3D_USER_ECO2 );
|
||||
default:
|
||||
{
|
||||
int layer3D = MapPCBUserLayerTo3DLayer( aLayer );
|
||||
int layer3D = MapPCBLayerTo3DLayer( aLayer );
|
||||
|
||||
if( layer3D != UNDEFINED_LAYER )
|
||||
return aVisibilityFlags.test( layer3D );
|
||||
@ -922,7 +922,7 @@ std::bitset<LAYER_3D_END> BOARD_ADAPTER::GetVisibleLayers() const
|
||||
ret.set( LAYER_3D_USER_ECO2, layers.test( Eco2_User ) );
|
||||
|
||||
for( int layer = LAYER_3D_USER_1; layer <= LAYER_3D_USER_45; ++layer )
|
||||
ret.set( layer, layers.test( Map3DUserLayerToPCBLayer( layer ) ) );
|
||||
ret.set( layer, layers.test( Map3DLayerToPCBLayer( layer ) ) );
|
||||
|
||||
ret.set( LAYER_FP_REFERENCES, plotParams.GetPlotReference() );
|
||||
ret.set( LAYER_FP_VALUES, plotParams.GetPlotValue() );
|
||||
@ -1047,7 +1047,7 @@ float BOARD_ADAPTER::GetFootprintZPos( bool aIsFlipped ) const
|
||||
SFVEC4F BOARD_ADAPTER::GetLayerColor( int aLayerId ) const
|
||||
{
|
||||
if( aLayerId >= LAYER_3D_USER_1 && aLayerId <= LAYER_3D_USER_45 )
|
||||
aLayerId = Map3DUserLayerToPCBLayer( aLayerId );
|
||||
aLayerId = Map3DLayerToPCBLayer( aLayerId );
|
||||
|
||||
wxASSERT( aLayerId < PCB_LAYER_ID_COUNT );
|
||||
|
||||
|
@ -361,11 +361,11 @@ void RENDER_3D_OPENGL::setLayerMaterial( PCB_LAYER_ID aLayerID )
|
||||
|
||||
default:
|
||||
{
|
||||
int layer3D = MapPCBUserLayerTo3DLayer( aLayerID );
|
||||
int layer3D = MapPCBLayerTo3DLayer( aLayerID );
|
||||
|
||||
if( layer3D != UNDEFINED_LAYER )
|
||||
{
|
||||
// Note: MUST do this in LAYER_3D space; User_1..User_45 are NOT contiguous
|
||||
if( layer3D >= LAYER_3D_USER_1 && layer3D <= LAYER_3D_USER_45 )
|
||||
{
|
||||
int user_idx = layer3D - LAYER_3D_USER_1;
|
||||
|
||||
m_materials.m_Plastic.m_Diffuse = m_boardAdapter.m_UserDefinedLayerColor[ user_idx ];
|
||||
|
@ -633,11 +633,11 @@ void RENDER_3D_RAYTRACE_BASE::Reload( REPORTER* aStatusReporter, REPORTER* aWarn
|
||||
|
||||
default:
|
||||
{
|
||||
int layer3D = MapPCBUserLayerTo3DLayer( layer_id );
|
||||
int layer3D = MapPCBLayerTo3DLayer( layer_id );
|
||||
|
||||
if( layer3D != UNDEFINED_LAYER )
|
||||
{
|
||||
// Note: MUST do this in LAYER_3D space; User_1..User_45 are NOT contiguous
|
||||
if( layer3D >= LAYER_3D_USER_1 && layer3D <= LAYER_3D_USER_45 )
|
||||
{
|
||||
layerColor = m_boardAdapter.m_UserDefinedLayerColor[ layer3D - LAYER_3D_USER_1 ];
|
||||
}
|
||||
else if( m_boardAdapter.m_Cfg->m_Render.differentiate_plated_copper )
|
||||
|
@ -579,8 +579,13 @@ void APPEARANCE_CONTROLS_3D::rebuildLayers()
|
||||
|
||||
sizer->AddSpacer( 5 );
|
||||
|
||||
wxStaticText* label = new wxStaticText( m_windowLayers, layer,
|
||||
aSetting->GetLabel() );
|
||||
wxString layerName = aSetting->GetLabel();
|
||||
PCB_LAYER_ID boardLayer = Map3DLayerToPCBLayer( layer );
|
||||
|
||||
if( boardLayer != UNDEFINED_LAYER )
|
||||
layerName = m_frame->GetBoard()->GetLayerName( boardLayer );
|
||||
|
||||
wxStaticText* label = new wxStaticText( m_windowLayers, layer, layerName );
|
||||
label->Wrap( -1 );
|
||||
label->SetToolTip( aSetting->GetTooltip() );
|
||||
|
||||
@ -630,7 +635,7 @@ void APPEARANCE_CONTROLS_3D::rebuildLayers()
|
||||
}
|
||||
else if( setting->m_Id >= LAYER_3D_USER_1 && setting->m_Id <= LAYER_3D_USER_45 )
|
||||
{
|
||||
if( enabled.test( Map3DUserLayerToPCBLayer( setting->m_Id ) ) )
|
||||
if( enabled.test( Map3DLayerToPCBLayer( setting->m_Id ) ) )
|
||||
appendLayer( setting );
|
||||
}
|
||||
else
|
||||
|
@ -262,12 +262,22 @@ PCB_LAYER_ID BoardLayerFromLegacyId( int aLegacyId )
|
||||
}
|
||||
|
||||
|
||||
PCB_LAYER_ID Map3DUserLayerToPCBLayer( int aLayer )
|
||||
PCB_LAYER_ID Map3DLayerToPCBLayer( int aLayer )
|
||||
{
|
||||
// NOTE: User_1..User45 are NOT consecutive numbers!
|
||||
|
||||
switch( aLayer )
|
||||
{
|
||||
case LAYER_3D_COPPER_TOP: return F_Cu;
|
||||
case LAYER_3D_COPPER_BOTTOM: return B_Cu;
|
||||
case LAYER_3D_SILKSCREEN_BOTTOM: return B_SilkS;
|
||||
case LAYER_3D_SILKSCREEN_TOP: return F_SilkS;
|
||||
case LAYER_3D_SOLDERMASK_BOTTOM: return B_Mask;
|
||||
case LAYER_3D_SOLDERMASK_TOP: return F_Mask;
|
||||
case LAYER_3D_USER_COMMENTS: return Cmts_User;
|
||||
case LAYER_3D_USER_DRAWINGS: return Dwgs_User;
|
||||
case LAYER_3D_USER_ECO1: return Eco1_User;
|
||||
case LAYER_3D_USER_ECO2: return Eco2_User;
|
||||
case LAYER_3D_USER_1: return User_1;
|
||||
case LAYER_3D_USER_2: return User_2;
|
||||
case LAYER_3D_USER_3: return User_3;
|
||||
@ -318,12 +328,22 @@ PCB_LAYER_ID Map3DUserLayerToPCBLayer( int aLayer )
|
||||
}
|
||||
|
||||
|
||||
int MapPCBUserLayerTo3DLayer( PCB_LAYER_ID aLayer )
|
||||
int MapPCBLayerTo3DLayer( PCB_LAYER_ID aLayer )
|
||||
{
|
||||
// NOTE: User_1..User45 are NOT consecutive numbers!
|
||||
|
||||
switch( aLayer )
|
||||
{
|
||||
case F_Cu: return LAYER_3D_COPPER_TOP;
|
||||
case B_Cu: return LAYER_3D_COPPER_BOTTOM;
|
||||
case B_SilkS: return LAYER_3D_SILKSCREEN_BOTTOM;
|
||||
case F_SilkS: return LAYER_3D_SILKSCREEN_TOP;
|
||||
case B_Mask: return LAYER_3D_SOLDERMASK_BOTTOM;
|
||||
case F_Mask: return LAYER_3D_SOLDERMASK_TOP;
|
||||
case Cmts_User: return LAYER_3D_USER_COMMENTS;
|
||||
case Dwgs_User: return LAYER_3D_USER_DRAWINGS;
|
||||
case Eco1_User: return LAYER_3D_USER_ECO1;
|
||||
case Eco2_User: return LAYER_3D_USER_ECO2;
|
||||
case User_1: return LAYER_3D_USER_1;
|
||||
case User_2: return LAYER_3D_USER_2;
|
||||
case User_3: return LAYER_3D_USER_3;
|
||||
|
@ -253,7 +253,7 @@ COLOR_SETTINGS::COLOR_SETTINGS( const wxString& aFilename, bool aAbsolutePath )
|
||||
for( int layer = LAYER_3D_USER_1; layer <= LAYER_3D_USER_45; ++layer )
|
||||
{
|
||||
int idx = layer - LAYER_3D_USER_1;
|
||||
PCB_LAYER_ID pcb_layer = Map3DUserLayerToPCBLayer( layer );
|
||||
PCB_LAYER_ID pcb_layer = Map3DLayerToPCBLayer( layer );
|
||||
|
||||
m_params.emplace_back( new COLOR_MAP_PARAM( "3d_viewer.user_" + std::to_string( idx + 1 ),
|
||||
layer, s_defaultTheme.at( pcb_layer ),
|
||||
|
@ -908,8 +908,8 @@ inline size_t CopperLayerToOrdinal( PCB_LAYER_ID aLayer )
|
||||
KICOMMON_API PCB_LAYER_ID BoardLayerFromLegacyId( int aLegacyId );
|
||||
|
||||
|
||||
KICOMMON_API PCB_LAYER_ID Map3DUserLayerToPCBLayer( int aLayer );
|
||||
KICOMMON_API int MapPCBUserLayerTo3DLayer( PCB_LAYER_ID aLayer );
|
||||
KICOMMON_API PCB_LAYER_ID Map3DLayerToPCBLayer( int aLayer );
|
||||
KICOMMON_API int MapPCBLayerTo3DLayer( PCB_LAYER_ID aLayer );
|
||||
|
||||
|
||||
KICOMMON_API PCB_LAYER_ID ToLAYER_ID( int aLayer );
|
||||
|
Loading…
x
Reference in New Issue
Block a user