3d-viewer: add option to clip silkscreen around via annular ring
Add more conservative clipping of silkscreen layers around vias. Clips at outside of annular ring rather than outside of copper plating.
This commit is contained in:
parent
944c9eac7c
commit
ad99d85390
|
@ -74,6 +74,7 @@ BOARD_ADAPTER::BOARD_ADAPTER() :
|
||||||
|
|
||||||
m_through_holes_inner.Clear();
|
m_through_holes_inner.Clear();
|
||||||
m_through_holes_outer.Clear();
|
m_through_holes_outer.Clear();
|
||||||
|
m_through_holes_outer_ring.Clear();
|
||||||
|
|
||||||
m_copperLayersCount = -1;
|
m_copperLayersCount = -1;
|
||||||
m_epoxyThickness3DU = 0.0f;
|
m_epoxyThickness3DU = 0.0f;
|
||||||
|
@ -94,6 +95,7 @@ BOARD_ADAPTER::BOARD_ADAPTER() :
|
||||||
SetFlag( FL_USE_REALISTIC_MODE, true );
|
SetFlag( FL_USE_REALISTIC_MODE, true );
|
||||||
SetFlag( FL_MODULE_ATTRIBUTES_NORMAL, true );
|
SetFlag( FL_MODULE_ATTRIBUTES_NORMAL, true );
|
||||||
SetFlag( FL_SHOW_BOARD_BODY, true );
|
SetFlag( FL_SHOW_BOARD_BODY, true );
|
||||||
|
SetFlag( FL_CLIP_SILK_ON_VIA_ANNULUS, false );
|
||||||
SetFlag( FL_MODULE_ATTRIBUTES_NORMAL, true );
|
SetFlag( FL_MODULE_ATTRIBUTES_NORMAL, true );
|
||||||
SetFlag( FL_MODULE_ATTRIBUTES_NORMAL_INSERT, true );
|
SetFlag( FL_MODULE_ATTRIBUTES_NORMAL_INSERT, true );
|
||||||
SetFlag( FL_MODULE_ATTRIBUTES_VIRTUAL, true );
|
SetFlag( FL_MODULE_ATTRIBUTES_VIRTUAL, true );
|
||||||
|
|
|
@ -380,6 +380,16 @@ class BOARD_ADAPTER
|
||||||
return m_through_holes_outer;
|
return m_through_holes_outer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief GetThroughHole_Outer_Ring - Get the ThroughHole container that
|
||||||
|
* include the width of the annular ring.
|
||||||
|
* @return a container with holes.
|
||||||
|
*/
|
||||||
|
const CBVHCONTAINER2D& GetThroughHole_Outer_Ring() const noexcept
|
||||||
|
{
|
||||||
|
return m_through_holes_outer_ring;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief GetThroughHole_Outer_poly -
|
* @brief GetThroughHole_Outer_poly -
|
||||||
* @return
|
* @return
|
||||||
|
@ -407,6 +417,15 @@ class BOARD_ADAPTER
|
||||||
return m_through_holes_vias_outer;
|
return m_through_holes_vias_outer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief GetThroughHole_Vias_Outer_Ring -
|
||||||
|
* @return a container with via THT holes only, including annular ring size
|
||||||
|
*/
|
||||||
|
const CBVHCONTAINER2D& GetThroughHole_Vias_Outer_Ring() const noexcept
|
||||||
|
{
|
||||||
|
return m_through_holes_vias_outer_ring;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief GetThroughHole_Vias_Inner -
|
* @brief GetThroughHole_Vias_Inner -
|
||||||
* @return a container with via THT holes only
|
* @return a container with via THT holes only
|
||||||
|
@ -424,6 +443,14 @@ class BOARD_ADAPTER
|
||||||
return m_through_outer_holes_vias_poly;
|
return m_through_outer_holes_vias_poly;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief GetThroughHole_Vias_Outer_Ring_poly -
|
||||||
|
*/
|
||||||
|
const SHAPE_POLY_SET& GetThroughHole_Vias_Outer_Ring_poly() const noexcept
|
||||||
|
{
|
||||||
|
return m_through_outer_ring_holes_vias_poly;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief GetThroughHole_Vias_Inner_poly -
|
* @brief GetThroughHole_Vias_Inner_poly -
|
||||||
*/
|
*/
|
||||||
|
@ -672,6 +699,9 @@ private:
|
||||||
/// It contains polygon contours for through holes vias (outer cylinder)
|
/// It contains polygon contours for through holes vias (outer cylinder)
|
||||||
SHAPE_POLY_SET m_through_outer_holes_vias_poly;
|
SHAPE_POLY_SET m_through_outer_holes_vias_poly;
|
||||||
|
|
||||||
|
/// It contains polygon contours for through holes vias (outer annular ring)
|
||||||
|
SHAPE_POLY_SET m_through_outer_ring_holes_vias_poly;
|
||||||
|
|
||||||
/// It contains polygon contours for through holes vias (inner cylinder)
|
/// It contains polygon contours for through holes vias (inner cylinder)
|
||||||
SHAPE_POLY_SET m_through_inner_holes_vias_poly;
|
SHAPE_POLY_SET m_through_inner_holes_vias_poly;
|
||||||
|
|
||||||
|
@ -691,6 +721,10 @@ private:
|
||||||
/// the radius of the hole is inflated with the copper tickness
|
/// the radius of the hole is inflated with the copper tickness
|
||||||
CBVHCONTAINER2D m_through_holes_outer;
|
CBVHCONTAINER2D m_through_holes_outer;
|
||||||
|
|
||||||
|
/// It contains the list of throughHoles of the board,
|
||||||
|
/// the radius of the hole is inflated with the annular ring size
|
||||||
|
CBVHCONTAINER2D m_through_holes_outer_ring;
|
||||||
|
|
||||||
/// It contains the list of throughHoles of the board,
|
/// It contains the list of throughHoles of the board,
|
||||||
/// the radius is the inner hole
|
/// the radius is the inner hole
|
||||||
CBVHCONTAINER2D m_through_holes_inner;
|
CBVHCONTAINER2D m_through_holes_inner;
|
||||||
|
@ -699,6 +733,10 @@ private:
|
||||||
/// the radius of the hole is inflated with the copper tickness
|
/// the radius of the hole is inflated with the copper tickness
|
||||||
CBVHCONTAINER2D m_through_holes_vias_outer;
|
CBVHCONTAINER2D m_through_holes_vias_outer;
|
||||||
|
|
||||||
|
/// It contains the list of throughHoles vias of the board,
|
||||||
|
/// the radius of the hole is inflated with the annular ring size
|
||||||
|
CBVHCONTAINER2D m_through_holes_vias_outer_ring;
|
||||||
|
|
||||||
/// It contains the list of throughHoles vias of the board,
|
/// It contains the list of throughHoles vias of the board,
|
||||||
/// the radius of the hole
|
/// the radius of the hole
|
||||||
CBVHCONTAINER2D m_through_holes_vias_inner;
|
CBVHCONTAINER2D m_through_holes_vias_inner;
|
||||||
|
|
|
@ -97,13 +97,16 @@ void BOARD_ADAPTER::destroyLayers()
|
||||||
|
|
||||||
m_through_holes_inner.Clear();
|
m_through_holes_inner.Clear();
|
||||||
m_through_holes_outer.Clear();
|
m_through_holes_outer.Clear();
|
||||||
|
m_through_holes_outer_ring.Clear();
|
||||||
m_through_holes_vias_outer.Clear();
|
m_through_holes_vias_outer.Clear();
|
||||||
|
m_through_holes_vias_outer_ring.Clear();
|
||||||
m_through_holes_vias_inner.Clear();
|
m_through_holes_vias_inner.Clear();
|
||||||
m_through_outer_holes_poly_NPTH.RemoveAllContours();
|
m_through_outer_holes_poly_NPTH.RemoveAllContours();
|
||||||
m_through_outer_holes_poly.RemoveAllContours();
|
m_through_outer_holes_poly.RemoveAllContours();
|
||||||
//m_through_inner_holes_poly.RemoveAllContours();
|
//m_through_inner_holes_poly.RemoveAllContours();
|
||||||
|
|
||||||
m_through_outer_holes_vias_poly.RemoveAllContours();
|
m_through_outer_holes_vias_poly.RemoveAllContours();
|
||||||
|
m_through_outer_ring_holes_vias_poly.RemoveAllContours();
|
||||||
m_through_inner_holes_vias_poly.RemoveAllContours();
|
m_through_inner_holes_vias_poly.RemoveAllContours();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -260,6 +263,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||||
const float holediameter = via->GetDrillValue() * BiuTo3Dunits();
|
const float holediameter = via->GetDrillValue() * BiuTo3Dunits();
|
||||||
const float thickness = GetCopperThickness3DU();
|
const float thickness = GetCopperThickness3DU();
|
||||||
const float hole_inner_radius = ( holediameter / 2.0f );
|
const float hole_inner_radius = ( holediameter / 2.0f );
|
||||||
|
const float ring_radius = via->GetWidth() * BiuTo3Dunits() / 2.0f;
|
||||||
|
|
||||||
const SFVEC2F via_center(
|
const SFVEC2F via_center(
|
||||||
via->GetStart().x * m_biuTo3Dunits, -via->GetStart().y * m_biuTo3Dunits );
|
via->GetStart().x * m_biuTo3Dunits, -via->GetStart().y * m_biuTo3Dunits );
|
||||||
|
@ -297,12 +301,19 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||||
m_through_holes_outer.Add( new CFILLEDCIRCLE2D( via_center,
|
m_through_holes_outer.Add( new CFILLEDCIRCLE2D( via_center,
|
||||||
hole_inner_radius + thickness,
|
hole_inner_radius + thickness,
|
||||||
*track ) );
|
*track ) );
|
||||||
|
|
||||||
m_through_holes_vias_outer.Add(
|
m_through_holes_vias_outer.Add(
|
||||||
new CFILLEDCIRCLE2D( via_center,
|
new CFILLEDCIRCLE2D( via_center,
|
||||||
hole_inner_radius + thickness,
|
hole_inner_radius + thickness,
|
||||||
*track ) );
|
*track ) );
|
||||||
|
|
||||||
|
if( GetFlag( FL_CLIP_SILK_ON_VIA_ANNULUS ) )
|
||||||
|
{
|
||||||
|
m_through_holes_outer_ring.Add(
|
||||||
|
new CFILLEDCIRCLE2D( via_center, ring_radius, *track ) );
|
||||||
|
m_through_holes_vias_outer_ring.Add(
|
||||||
|
new CFILLEDCIRCLE2D( via_center, ring_radius, *track ) );
|
||||||
|
}
|
||||||
|
|
||||||
m_through_holes_inner.Add( new CFILLEDCIRCLE2D( via_center,
|
m_through_holes_inner.Add( new CFILLEDCIRCLE2D( via_center,
|
||||||
hole_inner_radius,
|
hole_inner_radius,
|
||||||
*track ) );
|
*track ) );
|
||||||
|
@ -388,6 +399,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||||
{
|
{
|
||||||
const int holediameter = via->GetDrillValue();
|
const int holediameter = via->GetDrillValue();
|
||||||
const int hole_outer_radius = (holediameter / 2)+ GetCopperThicknessBIU();
|
const int hole_outer_radius = (holediameter / 2)+ GetCopperThicknessBIU();
|
||||||
|
const int hole_outer_ring_radius = via->GetWidth() / 2.0f;
|
||||||
|
|
||||||
// Add through hole contourns
|
// Add through hole contourns
|
||||||
// /////////////////////////////////////////////////////////
|
// /////////////////////////////////////////////////////////
|
||||||
|
@ -399,8 +411,13 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||||
|
|
||||||
// Add samething for vias only
|
// Add samething for vias only
|
||||||
|
|
||||||
TransformCircleToPolygon( m_through_outer_holes_vias_poly, via->GetStart(),
|
TransformCircleToPolygon( m_through_outer_holes_vias_poly,
|
||||||
hole_outer_radius, ARC_HIGH_DEF );
|
via->GetStart(), hole_outer_radius, ARC_HIGH_DEF );
|
||||||
|
if( GetFlag( FL_CLIP_SILK_ON_VIA_ANNULUS ) )
|
||||||
|
{
|
||||||
|
TransformCircleToPolygon( m_through_outer_ring_holes_vias_poly,
|
||||||
|
via->GetStart(), hole_outer_ring_radius, ARC_HIGH_DEF );
|
||||||
|
}
|
||||||
|
|
||||||
//TransformCircleToPolygon( m_through_inner_holes_vias_poly,
|
//TransformCircleToPolygon( m_through_inner_holes_vias_poly,
|
||||||
// via->GetStart(),
|
// via->GetStart(),
|
||||||
|
@ -469,6 +486,10 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||||
pad->GetDrillSize().y ) / 2.0f ) * m_biuTo3Dunits;
|
pad->GetDrillSize().y ) / 2.0f ) * m_biuTo3Dunits;
|
||||||
|
|
||||||
m_through_holes_outer.Add( createNewPadDrill( pad, inflate ) );
|
m_through_holes_outer.Add( createNewPadDrill( pad, inflate ) );
|
||||||
|
if( GetFlag( FL_CLIP_SILK_ON_VIA_ANNULUS ) )
|
||||||
|
{
|
||||||
|
m_through_holes_outer_ring.Add( createNewPadDrill( pad, inflate ) );
|
||||||
|
}
|
||||||
m_through_holes_inner.Add( createNewPadDrill( pad, 0 ) );
|
m_through_holes_inner.Add( createNewPadDrill( pad, 0 ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -835,6 +856,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||||
m_through_outer_holes_poly.Simplify( SHAPE_POLY_SET::PM_FAST );
|
m_through_outer_holes_poly.Simplify( SHAPE_POLY_SET::PM_FAST );
|
||||||
m_through_outer_holes_poly_NPTH.Simplify( SHAPE_POLY_SET::PM_FAST );
|
m_through_outer_holes_poly_NPTH.Simplify( SHAPE_POLY_SET::PM_FAST );
|
||||||
m_through_outer_holes_vias_poly.Simplify( SHAPE_POLY_SET::PM_FAST );
|
m_through_outer_holes_vias_poly.Simplify( SHAPE_POLY_SET::PM_FAST );
|
||||||
|
m_through_outer_ring_holes_vias_poly.Simplify( SHAPE_POLY_SET::PM_FAST );
|
||||||
//m_through_inner_holes_vias_poly.Simplify( SHAPE_POLY_SET::PM_FAST ); // Not in use
|
//m_through_inner_holes_vias_poly.Simplify( SHAPE_POLY_SET::PM_FAST ); // Not in use
|
||||||
|
|
||||||
#ifdef PRINT_STATISTICS_3D_VIEWER
|
#ifdef PRINT_STATISTICS_3D_VIEWER
|
||||||
|
@ -1049,6 +1071,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||||
|
|
||||||
m_through_holes_inner.BuildBVH();
|
m_through_holes_inner.BuildBVH();
|
||||||
m_through_holes_outer.BuildBVH();
|
m_through_holes_outer.BuildBVH();
|
||||||
|
m_through_holes_outer_ring.BuildBVH();
|
||||||
|
|
||||||
if( !m_layers_holes2D.empty() )
|
if( !m_layers_holes2D.empty() )
|
||||||
{
|
{
|
||||||
|
|
|
@ -31,7 +31,8 @@
|
||||||
#define _3D_ENUMS_H_
|
#define _3D_ENUMS_H_
|
||||||
|
|
||||||
/// Flags used in rendering options
|
/// Flags used in rendering options
|
||||||
enum DISPLAY3D_FLG {
|
enum DISPLAY3D_FLG
|
||||||
|
{
|
||||||
FL_AXIS = 0,
|
FL_AXIS = 0,
|
||||||
FL_ZONE,
|
FL_ZONE,
|
||||||
FL_ADHESIVE,
|
FL_ADHESIVE,
|
||||||
|
@ -49,6 +50,7 @@ enum DISPLAY3D_FLG {
|
||||||
FL_MOUSEWHEEL_PANNING,
|
FL_MOUSEWHEEL_PANNING,
|
||||||
FL_USE_REALISTIC_MODE,
|
FL_USE_REALISTIC_MODE,
|
||||||
FL_SUBTRACT_MASK_FROM_SILK,
|
FL_SUBTRACT_MASK_FROM_SILK,
|
||||||
|
FL_CLIP_SILK_ON_VIA_ANNULUS,
|
||||||
|
|
||||||
// OpenGL options
|
// OpenGL options
|
||||||
FL_RENDER_OPENGL_SHOW_MODEL_BBOX,
|
FL_RENDER_OPENGL_SHOW_MODEL_BBOX,
|
||||||
|
|
|
@ -462,6 +462,16 @@ void C3D_RENDER_OGL_LEGACY::reload( REPORTER* aStatusReporter, REPORTER* aWarnin
|
||||||
0.0f,
|
0.0f,
|
||||||
false );
|
false );
|
||||||
|
|
||||||
|
if( m_boardAdapter.GetFlag( FL_CLIP_SILK_ON_VIA_ANNULUS ) )
|
||||||
|
{
|
||||||
|
m_ogl_disp_list_through_holes_vias_outer_ring = generate_holes_display_list(
|
||||||
|
m_boardAdapter.GetThroughHole_Vias_Outer_Ring().GetList(),
|
||||||
|
m_boardAdapter.GetThroughHole_Vias_Outer_Ring_poly(),
|
||||||
|
1.0f,
|
||||||
|
0.0f,
|
||||||
|
false );
|
||||||
|
}
|
||||||
|
|
||||||
// Not in use
|
// Not in use
|
||||||
//m_ogl_disp_list_through_holes_vias_inner = generate_holes_display_list(
|
//m_ogl_disp_list_through_holes_vias_inner = generate_holes_display_list(
|
||||||
// m_boardAdapter.GetThroughHole_Vias_Inner().GetList(),
|
// m_boardAdapter.GetThroughHole_Vias_Inner().GetList(),
|
||||||
|
|
|
@ -63,6 +63,7 @@ C3D_RENDER_OGL_LEGACY::C3D_RENDER_OGL_LEGACY( BOARD_ADAPTER& aAdapter, CCAMERA&
|
||||||
m_ogl_disp_list_through_holes_outer_with_npth = NULL;
|
m_ogl_disp_list_through_holes_outer_with_npth = NULL;
|
||||||
m_ogl_disp_list_through_holes_outer = NULL;
|
m_ogl_disp_list_through_holes_outer = NULL;
|
||||||
m_ogl_disp_list_through_holes_vias_outer = NULL;
|
m_ogl_disp_list_through_holes_vias_outer = NULL;
|
||||||
|
m_ogl_disp_list_through_holes_vias_outer_ring = NULL;
|
||||||
//m_ogl_disp_list_through_holes_vias_inner = NULL;
|
//m_ogl_disp_list_through_holes_vias_inner = NULL;
|
||||||
m_ogl_disp_list_via = NULL;
|
m_ogl_disp_list_via = NULL;
|
||||||
m_ogl_disp_list_pads_holes = NULL;
|
m_ogl_disp_list_pads_holes = NULL;
|
||||||
|
@ -771,9 +772,14 @@ bool C3D_RENDER_OGL_LEGACY::Redraw(
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if( m_ogl_disp_list_through_holes_vias_outer )
|
CLAYERS_OGL_DISP_LISTS* dispListThoughHolesOuter =
|
||||||
m_ogl_disp_list_through_holes_vias_outer->ApplyScalePosition(
|
( m_boardAdapter.GetFlag( FL_CLIP_SILK_ON_VIA_ANNULUS )
|
||||||
pLayerDispList->GetZBot(),
|
&& ( ( layer_id == B_SilkS ) || ( layer_id == F_SilkS ) ) ) ?
|
||||||
|
m_ogl_disp_list_through_holes_vias_outer_ring :
|
||||||
|
m_ogl_disp_list_through_holes_vias_outer;
|
||||||
|
|
||||||
|
if( dispListThoughHolesOuter )
|
||||||
|
dispListThoughHolesOuter->ApplyScalePosition( pLayerDispList->GetZBot(),
|
||||||
pLayerDispList->GetZTop() - pLayerDispList->GetZBot() );
|
pLayerDispList->GetZTop() - pLayerDispList->GetZBot() );
|
||||||
|
|
||||||
if( (!skipRenderHoles) &&
|
if( (!skipRenderHoles) &&
|
||||||
|
@ -789,13 +795,13 @@ bool C3D_RENDER_OGL_LEGACY::Redraw(
|
||||||
|
|
||||||
pLayerDispList->DrawAllCameraCulledSubtractLayer(
|
pLayerDispList->DrawAllCameraCulledSubtractLayer(
|
||||||
pLayerDispListMask,
|
pLayerDispListMask,
|
||||||
m_ogl_disp_list_through_holes_vias_outer,
|
dispListThoughHolesOuter,
|
||||||
drawMiddleSegments );
|
drawMiddleSegments );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if( (!skipRenderHoles) &&
|
if( (!skipRenderHoles) &&
|
||||||
m_ogl_disp_list_through_holes_vias_outer &&
|
dispListThoughHolesOuter &&
|
||||||
( ( layer_id == B_SilkS ) || ( layer_id == F_SilkS )
|
( ( layer_id == B_SilkS ) || ( layer_id == F_SilkS )
|
||||||
// Remove vias on SolderPaste can be added as an option in future
|
// Remove vias on SolderPaste can be added as an option in future
|
||||||
// ( layer_id == B_Paste ) || ( layer_id == F_Paste ) )
|
// ( layer_id == B_Paste ) || ( layer_id == F_Paste ) )
|
||||||
|
@ -803,7 +809,7 @@ bool C3D_RENDER_OGL_LEGACY::Redraw(
|
||||||
{
|
{
|
||||||
pLayerDispList->DrawAllCameraCulledSubtractLayer(
|
pLayerDispList->DrawAllCameraCulledSubtractLayer(
|
||||||
NULL,
|
NULL,
|
||||||
m_ogl_disp_list_through_holes_vias_outer,
|
dispListThoughHolesOuter,
|
||||||
drawMiddleSegments );
|
drawMiddleSegments );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1069,6 +1075,9 @@ void C3D_RENDER_OGL_LEGACY::ogl_free_all_display_lists()
|
||||||
delete m_ogl_disp_list_through_holes_vias_outer;
|
delete m_ogl_disp_list_through_holes_vias_outer;
|
||||||
m_ogl_disp_list_through_holes_vias_outer = 0;
|
m_ogl_disp_list_through_holes_vias_outer = 0;
|
||||||
|
|
||||||
|
delete m_ogl_disp_list_through_holes_vias_outer_ring;
|
||||||
|
m_ogl_disp_list_through_holes_vias_outer_ring = 0;
|
||||||
|
|
||||||
delete m_ogl_disp_list_via;
|
delete m_ogl_disp_list_via;
|
||||||
m_ogl_disp_list_via = 0;
|
m_ogl_disp_list_via = 0;
|
||||||
|
|
||||||
|
|
|
@ -86,6 +86,7 @@ private:
|
||||||
CLAYERS_OGL_DISP_LISTS* m_ogl_disp_list_through_holes_outer_with_npth;
|
CLAYERS_OGL_DISP_LISTS* m_ogl_disp_list_through_holes_outer_with_npth;
|
||||||
|
|
||||||
CLAYERS_OGL_DISP_LISTS* m_ogl_disp_list_through_holes_vias_outer;
|
CLAYERS_OGL_DISP_LISTS* m_ogl_disp_list_through_holes_vias_outer;
|
||||||
|
CLAYERS_OGL_DISP_LISTS* m_ogl_disp_list_through_holes_vias_outer_ring;
|
||||||
//CLAYERS_OGL_DISP_LISTS* m_ogl_disp_list_through_holes_vias_inner; // Not in use
|
//CLAYERS_OGL_DISP_LISTS* m_ogl_disp_list_through_holes_vias_inner; // Not in use
|
||||||
|
|
||||||
// This is for pads holes of the modules
|
// This is for pads holes of the modules
|
||||||
|
|
|
@ -582,13 +582,22 @@ void C3D_RENDER_RAYTRACING::reload( REPORTER* aStatusReporter, REPORTER* aWarnin
|
||||||
|
|
||||||
// Check if there are any THT that intersects this object
|
// Check if there are any THT that intersects this object
|
||||||
// /////////////////////////////////////////////////////////////
|
// /////////////////////////////////////////////////////////////
|
||||||
if( !m_boardAdapter.GetThroughHole_Outer().GetList().empty() )
|
|
||||||
|
// If we're processing a silk screen layer and the flag is set, then
|
||||||
|
// clip the silk screening at the outer edge of the annular ring, rather
|
||||||
|
// than the at the outer edge of the copper plating.
|
||||||
|
const CBVHCONTAINER2D& throughHoleOuter =
|
||||||
|
( m_boardAdapter.GetFlag( FL_CLIP_SILK_ON_VIA_ANNULUS )
|
||||||
|
&& ( ( layer_id == B_SilkS ) || ( layer_id == F_SilkS ) ) ) ?
|
||||||
|
m_boardAdapter.GetThroughHole_Outer_Ring() :
|
||||||
|
m_boardAdapter.GetThroughHole_Outer();
|
||||||
|
|
||||||
|
if( !throughHoleOuter.GetList().empty() )
|
||||||
{
|
{
|
||||||
CONST_LIST_OBJECT2D intersectionList;
|
CONST_LIST_OBJECT2D intersectionList;
|
||||||
|
|
||||||
m_boardAdapter.GetThroughHole_Outer().GetListObjectsIntersects(
|
throughHoleOuter.GetListObjectsIntersects(
|
||||||
object2d_A->GetBBox(),
|
object2d_A->GetBBox(), intersectionList );
|
||||||
intersectionList );
|
|
||||||
|
|
||||||
if( !intersectionList.empty() )
|
if( !intersectionList.empty() )
|
||||||
{
|
{
|
||||||
|
|
|
@ -112,6 +112,8 @@ EDA_3D_VIEWER_SETTINGS::EDA_3D_VIEWER_SETTINGS()
|
||||||
m_params.emplace_back( new PARAM<bool>( "render.show_zones", &m_Render.show_zones, true ) );
|
m_params.emplace_back( new PARAM<bool>( "render.show_zones", &m_Render.show_zones, true ) );
|
||||||
m_params.emplace_back( new PARAM<bool>( "render.subtract_mask_from_silk",
|
m_params.emplace_back( new PARAM<bool>( "render.subtract_mask_from_silk",
|
||||||
&m_Render.subtract_mask_from_silk, false ) );
|
&m_Render.subtract_mask_from_silk, false ) );
|
||||||
|
m_params.emplace_back( new PARAM<bool>( "render.clip_silk_on_via_annulus",
|
||||||
|
&m_Render.clip_silk_on_via_annulus, false ) );
|
||||||
|
|
||||||
m_params.emplace_back( new PARAM<bool>( "camera.animation_enabled",
|
m_params.emplace_back( new PARAM<bool>( "camera.animation_enabled",
|
||||||
&m_Camera.animation_enabled, true ) );
|
&m_Camera.animation_enabled, true ) );
|
||||||
|
|
|
@ -62,6 +62,7 @@ public:
|
||||||
bool show_solderpaste;
|
bool show_solderpaste;
|
||||||
bool show_zones;
|
bool show_zones;
|
||||||
bool subtract_mask_from_silk;
|
bool subtract_mask_from_silk;
|
||||||
|
bool clip_silk_on_via_annulus;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct CAMERA_SETTINGS
|
struct CAMERA_SETTINGS
|
||||||
|
|
|
@ -97,6 +97,7 @@ void DIALOG_3D_VIEW_OPTIONS::initDialog()
|
||||||
m_bitmapComments->SetBitmap( KiBitmap( editor_xpm ) );
|
m_bitmapComments->SetBitmap( KiBitmap( editor_xpm ) );
|
||||||
m_bitmapECO->SetBitmap( KiBitmap( editor_xpm ) );
|
m_bitmapECO->SetBitmap( KiBitmap( editor_xpm ) );
|
||||||
m_bitmapSubtractMaskFromSilk->SetBitmap( KiBitmap( use_3D_copper_thickness_xpm ) );
|
m_bitmapSubtractMaskFromSilk->SetBitmap( KiBitmap( use_3D_copper_thickness_xpm ) );
|
||||||
|
m_bitmapClipSilkOnViaAnnulus->SetBitmap( KiBitmap( use_3D_copper_thickness_xpm ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
void DIALOG_3D_VIEW_OPTIONS::OnCheckEnableAnimation( wxCommandEvent& event )
|
void DIALOG_3D_VIEW_OPTIONS::OnCheckEnableAnimation( wxCommandEvent& event )
|
||||||
|
@ -123,6 +124,7 @@ bool DIALOG_3D_VIEW_OPTIONS::TransferDataToWindow()
|
||||||
m_checkBoxComments->SetValue( m_settings.GetFlag( FL_COMMENTS ) );
|
m_checkBoxComments->SetValue( m_settings.GetFlag( FL_COMMENTS ) );
|
||||||
m_checkBoxECO->SetValue( m_settings.GetFlag( FL_ECO ) );
|
m_checkBoxECO->SetValue( m_settings.GetFlag( FL_ECO ) );
|
||||||
m_checkBoxSubtractMaskFromSilk->SetValue( m_settings.GetFlag( FL_SUBTRACT_MASK_FROM_SILK ) );
|
m_checkBoxSubtractMaskFromSilk->SetValue( m_settings.GetFlag( FL_SUBTRACT_MASK_FROM_SILK ) );
|
||||||
|
m_checkBoxClipSilkOnViaAnnulus->SetValue( m_settings.GetFlag( FL_CLIP_SILK_ON_VIA_ANNULUS ) );
|
||||||
|
|
||||||
// OpenGL options
|
// OpenGL options
|
||||||
m_checkBoxCuThickness->SetValue( m_settings.GetFlag( FL_RENDER_OPENGL_COPPER_THICKNESS ) );
|
m_checkBoxCuThickness->SetValue( m_settings.GetFlag( FL_RENDER_OPENGL_COPPER_THICKNESS ) );
|
||||||
|
@ -164,6 +166,7 @@ bool DIALOG_3D_VIEW_OPTIONS::TransferDataFromWindow()
|
||||||
m_settings.SetFlag( FL_SHOW_BOARD_BODY, m_checkBoxBoardBody->GetValue() );
|
m_settings.SetFlag( FL_SHOW_BOARD_BODY, m_checkBoxBoardBody->GetValue() );
|
||||||
m_settings.SetFlag( FL_ZONE, m_checkBoxAreas->GetValue() );
|
m_settings.SetFlag( FL_ZONE, m_checkBoxAreas->GetValue() );
|
||||||
m_settings.SetFlag( FL_SUBTRACT_MASK_FROM_SILK, m_checkBoxSubtractMaskFromSilk->GetValue() );
|
m_settings.SetFlag( FL_SUBTRACT_MASK_FROM_SILK, m_checkBoxSubtractMaskFromSilk->GetValue() );
|
||||||
|
m_settings.SetFlag( FL_CLIP_SILK_ON_VIA_ANNULUS, m_checkBoxClipSilkOnViaAnnulus->GetValue() );
|
||||||
|
|
||||||
// Set 3D shapes visibility
|
// Set 3D shapes visibility
|
||||||
m_settings.SetFlag( FL_MODULE_ATTRIBUTES_NORMAL, m_checkBox3DshapesTH->GetValue() );
|
m_settings.SetFlag( FL_MODULE_ATTRIBUTES_NORMAL, m_checkBox3DshapesTH->GetValue() );
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// C++ code generated with wxFormBuilder (version Oct 26 2018)
|
// C++ code generated with wxFormBuilder (version 3.9.0 Jul 15 2020)
|
||||||
// http://www.wxformbuilder.org/
|
// http://www.wxformbuilder.org/
|
||||||
//
|
//
|
||||||
// PLEASE DO *NOT* EDIT THIS FILE!
|
// PLEASE DO *NOT* EDIT THIS FILE!
|
||||||
|
@ -60,13 +60,22 @@ DIALOG_3D_VIEW_OPTIONS_BASE::DIALOG_3D_VIEW_OPTIONS_BASE( wxWindow* parent, wxWi
|
||||||
fgSizerRenderOptions->Add( m_checkBoxAreas, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
|
fgSizerRenderOptions->Add( m_checkBoxAreas, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
|
|
||||||
fgSizerRenderOptions->Add( 0, 0, 0, wxALIGN_LEFT|wxALIGN_RIGHT, 10 );
|
fgSizerRenderOptions->Add( 0, 0, 0, wxRIGHT|wxLEFT, 10 );
|
||||||
|
|
||||||
m_bitmapSubtractMaskFromSilk = new wxStaticBitmap( sbSizer1->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
|
m_bitmapSubtractMaskFromSilk = new wxStaticBitmap( sbSizer1->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
fgSizerRenderOptions->Add( m_bitmapSubtractMaskFromSilk, 0, wxALL, 5 );
|
fgSizerRenderOptions->Add( m_bitmapSubtractMaskFromSilk, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
m_checkBoxSubtractMaskFromSilk = new wxCheckBox( sbSizer1->GetStaticBox(), wxID_ANY, _("Subtract soldermask from silkscreen"), wxDefaultPosition, wxDefaultSize, 0 );
|
m_checkBoxSubtractMaskFromSilk = new wxCheckBox( sbSizer1->GetStaticBox(), wxID_ANY, _("Subtract soldermask from silkscreen"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
fgSizerRenderOptions->Add( m_checkBoxSubtractMaskFromSilk, 0, wxALL, 5 );
|
fgSizerRenderOptions->Add( m_checkBoxSubtractMaskFromSilk, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5 );
|
||||||
|
|
||||||
|
|
||||||
|
fgSizerRenderOptions->Add( 0, 0, 0, wxALIGN_LEFT|wxALIGN_RIGHT, 10 );
|
||||||
|
|
||||||
|
m_bitmapClipSilkOnViaAnnulus = new wxStaticBitmap( sbSizer1->GetStaticBox(), wxID_ANY, wxNullBitmap, wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
fgSizerRenderOptions->Add( m_bitmapClipSilkOnViaAnnulus, 0, wxALL, 5 );
|
||||||
|
|
||||||
|
m_checkBoxClipSilkOnViaAnnulus = new wxCheckBox( sbSizer1->GetStaticBox(), wxID_ANY, _("Clip silkscreen at via annulus"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
fgSizerRenderOptions->Add( m_checkBoxClipSilkOnViaAnnulus, 0, wxALL, 5 );
|
||||||
|
|
||||||
wxFlexGridSizer* fgSizer3;
|
wxFlexGridSizer* fgSizer3;
|
||||||
fgSizer3 = new wxFlexGridSizer( 0, 2, 0, 0 );
|
fgSizer3 = new wxFlexGridSizer( 0, 2, 0, 0 );
|
||||||
|
|
|
@ -611,7 +611,7 @@
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="0">
|
<object class="sizeritem" expanded="0">
|
||||||
<property name="border">10</property>
|
<property name="border">10</property>
|
||||||
<property name="flag">wxALIGN_LEFT|wxALIGN_RIGHT</property>
|
<property name="flag">wxRIGHT|wxLEFT</property>
|
||||||
<property name="proportion">0</property>
|
<property name="proportion">0</property>
|
||||||
<object class="spacer" expanded="0">
|
<object class="spacer" expanded="0">
|
||||||
<property name="height">0</property>
|
<property name="height">0</property>
|
||||||
|
@ -621,7 +621,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">wxALL</property>
|
<property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</property>
|
||||||
<property name="proportion">0</property>
|
<property name="proportion">0</property>
|
||||||
<object class="wxStaticBitmap" expanded="0">
|
<object class="wxStaticBitmap" expanded="0">
|
||||||
<property name="BottomDockable">1</property>
|
<property name="BottomDockable">1</property>
|
||||||
|
@ -679,7 +679,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">wxALL</property>
|
<property name="flag">wxALL|wxALIGN_CENTER_VERTICAL</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>
|
||||||
|
@ -741,6 +741,138 @@
|
||||||
<property name="window_style"></property>
|
<property name="window_style"></property>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="sizeritem" expanded="0">
|
||||||
|
<property name="border">10</property>
|
||||||
|
<property name="flag">wxALIGN_LEFT|wxALIGN_RIGHT</property>
|
||||||
|
<property name="proportion">0</property>
|
||||||
|
<object class="spacer" expanded="0">
|
||||||
|
<property name="height">0</property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="width">0</property>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="sizeritem" expanded="0">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxALL</property>
|
||||||
|
<property name="proportion">0</property>
|
||||||
|
<object class="wxStaticBitmap" 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="bitmap"></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_bitmapClipSilkOnViaAnnulus</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="subclass"></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="0">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxALL</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 annulus</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">
|
<object class="sizeritem" expanded="0">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxEXPAND</property>
|
<property name="flag">wxEXPAND</property>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
// C++ code generated with wxFormBuilder (version Oct 26 2018)
|
// C++ code generated with wxFormBuilder (version 3.9.0 Jul 15 2020)
|
||||||
// http://www.wxformbuilder.org/
|
// http://www.wxformbuilder.org/
|
||||||
//
|
//
|
||||||
// PLEASE DO *NOT* EDIT THIS FILE!
|
// PLEASE DO *NOT* EDIT THIS FILE!
|
||||||
|
@ -54,6 +54,8 @@ class DIALOG_3D_VIEW_OPTIONS_BASE : public DIALOG_SHIM
|
||||||
wxCheckBox* m_checkBoxAreas;
|
wxCheckBox* m_checkBoxAreas;
|
||||||
wxStaticBitmap* m_bitmapSubtractMaskFromSilk;
|
wxStaticBitmap* m_bitmapSubtractMaskFromSilk;
|
||||||
wxCheckBox* m_checkBoxSubtractMaskFromSilk;
|
wxCheckBox* m_checkBoxSubtractMaskFromSilk;
|
||||||
|
wxStaticBitmap* m_bitmapClipSilkOnViaAnnulus;
|
||||||
|
wxCheckBox* m_checkBoxClipSilkOnViaAnnulus;
|
||||||
wxStaticBitmap* m_bitmap3DshapesTH;
|
wxStaticBitmap* m_bitmap3DshapesTH;
|
||||||
wxCheckBox* m_checkBox3DshapesTH;
|
wxCheckBox* m_checkBox3DshapesTH;
|
||||||
wxStaticBitmap* m_bitmap3DshapesSMD;
|
wxStaticBitmap* m_bitmap3DshapesSMD;
|
||||||
|
|
|
@ -457,6 +457,7 @@ void EDA_3D_VIEWER::LoadSettings( APP_SETTINGS_BASE *aCfg )
|
||||||
TRANSFER_SETTING( FL_COMMENTS, show_comments );
|
TRANSFER_SETTING( FL_COMMENTS, show_comments );
|
||||||
TRANSFER_SETTING( FL_ECO, show_eco );
|
TRANSFER_SETTING( FL_ECO, show_eco );
|
||||||
TRANSFER_SETTING( FL_SHOW_BOARD_BODY, show_board_body );
|
TRANSFER_SETTING( FL_SHOW_BOARD_BODY, show_board_body );
|
||||||
|
TRANSFER_SETTING( FL_CLIP_SILK_ON_VIA_ANNULUS, clip_silk_on_via_annulus );
|
||||||
|
|
||||||
m_boardAdapter.GridSet( static_cast<GRID3D_TYPE>( cfg->m_Render.grid_type ) );
|
m_boardAdapter.GridSet( static_cast<GRID3D_TYPE>( cfg->m_Render.grid_type ) );
|
||||||
m_boardAdapter.AntiAliasingSet( static_cast<ANTIALIASING_MODE>( cfg->m_Render.opengl_AA_mode ) );
|
m_boardAdapter.AntiAliasingSet( static_cast<ANTIALIASING_MODE>( cfg->m_Render.opengl_AA_mode ) );
|
||||||
|
@ -545,6 +546,7 @@ void EDA_3D_VIEWER::SaveSettings( APP_SETTINGS_BASE *aCfg )
|
||||||
TRANSFER_SETTING( show_adhesive, FL_ADHESIVE );
|
TRANSFER_SETTING( show_adhesive, FL_ADHESIVE );
|
||||||
TRANSFER_SETTING( show_axis, FL_AXIS );
|
TRANSFER_SETTING( show_axis, FL_AXIS );
|
||||||
TRANSFER_SETTING( show_board_body, FL_SHOW_BOARD_BODY );
|
TRANSFER_SETTING( show_board_body, FL_SHOW_BOARD_BODY );
|
||||||
|
TRANSFER_SETTING( clip_silk_on_via_annulus, FL_CLIP_SILK_ON_VIA_ANNULUS );
|
||||||
TRANSFER_SETTING( show_comments, FL_COMMENTS );
|
TRANSFER_SETTING( show_comments, FL_COMMENTS );
|
||||||
TRANSFER_SETTING( show_eco, FL_ECO );
|
TRANSFER_SETTING( show_eco, FL_ECO );
|
||||||
TRANSFER_SETTING( show_footprints_insert, FL_MODULE_ATTRIBUTES_NORMAL_INSERT );
|
TRANSFER_SETTING( show_footprints_insert, FL_MODULE_ATTRIBUTES_NORMAL_INSERT );
|
||||||
|
|
Loading…
Reference in New Issue