Move DebugZoneFiller to advanced config.

This will hopefully keep it from accidentally getting checked in
again.
This commit is contained in:
Jeff Young 2020-09-23 10:35:13 +01:00
parent 524603de14
commit 7d3eee8cf9
5 changed files with 26 additions and 14 deletions

View File

@ -138,6 +138,8 @@ static const wxChar PluginAltiumSch[] = wxT( "PluginAltiumSch" );
*/ */
static const wxChar MinPlotPenWidth[] = wxT( "MinPlotPenWidth" ); static const wxChar MinPlotPenWidth[] = wxT( "MinPlotPenWidth" );
static const wxChar DebugZoneFiller[] = wxT( "DebugZoneFiller" );
} // namespace KEYS } // namespace KEYS
@ -233,6 +235,8 @@ ADVANCED_CFG::ADVANCED_CFG()
m_MinPlotPenWidth = 0.0212; // 1 pixel at 1200dpi. m_MinPlotPenWidth = 0.0212; // 1 pixel at 1200dpi.
m_DebugZoneFiller = false;
loadFromConfigFile(); loadFromConfigFile();
} }
@ -307,6 +311,9 @@ void ADVANCED_CFG::loadSettings( wxConfigBase& aCfg )
configParams.push_back( new PARAM_CFG_DOUBLE( true, AC_KEYS::MinPlotPenWidth, configParams.push_back( new PARAM_CFG_DOUBLE( true, AC_KEYS::MinPlotPenWidth,
&m_MinPlotPenWidth, 0.0212, 0.0, 1.0 ) ); &m_MinPlotPenWidth, 0.0212, 0.0, 1.0 ) );
configParams.push_back( new PARAM_CFG_BOOL( true, AC_KEYS::DebugZoneFiller,
&m_DebugZoneFiller, false ) );
wxConfigLoadSetups( &aCfg, configParams ); wxConfigLoadSetups( &aCfg, configParams );
for( PARAM_CFG* param : configParams ) for( PARAM_CFG* param : configParams )

View File

@ -62,16 +62,15 @@ public:
* Get the singleton instance's config, which is shared by all * Get the singleton instance's config, which is shared by all
* consumers of advanced config. * consumers of advanced config.
* *
* This configuration is read-only - to set options, users should * This configuration is read-only - to set options, users should add the parameters to
* add the parameters to their config files at ~/.config/kicad/advanced, or the * their config files at ~/.config/kicad/advanced, or the platform equivalent.
* platform equivalent.
*/ */
static const ADVANCED_CFG& GetCfg(); static const ADVANCED_CFG& GetCfg();
/** /**
* For drawsegments - arcs. * For drawsegments - arcs.
* Distance from an arc end point and the estimated end point, * Distance from an arc end point and the estimated end point, when rotating from the
* when rotating from the start point to the end point. * start point to the end point.
*/ */
double m_drawArcAccuracy; double m_drawArcAccuracy;
@ -138,6 +137,11 @@ public:
*/ */
double m_MinPlotPenWidth; double m_MinPlotPenWidth;
/**
* A mode that dumps the various stages of a F_Cu fill into In1_Cu through In9_Cu.
*/
bool m_DebugZoneFiller;
private: private:
ADVANCED_CFG(); ADVANCED_CFG();

View File

@ -27,7 +27,7 @@
#include <fctsys.h> #include <fctsys.h>
#include <geometry/geometry_utils.h> #include <geometry/geometry_utils.h>
#include <geometry/shape_null.h> #include <geometry/shape_null.h>
#include <advanced_config.h>
#include <pcb_base_frame.h> #include <pcb_base_frame.h>
#include <pcb_screen.h> #include <pcb_screen.h>
#include <class_board.h> #include <class_board.h>
@ -36,7 +36,6 @@
#include <math_for_graphics.h> #include <math_for_graphics.h>
#include <settings/color_settings.h> #include <settings/color_settings.h>
#include <settings/settings_manager.h> #include <settings/settings_manager.h>
#include "zone_filler.h"
ZONE_CONTAINER::ZONE_CONTAINER( BOARD_ITEM_CONTAINER* aParent, bool aInModule ) ZONE_CONTAINER::ZONE_CONTAINER( BOARD_ITEM_CONTAINER* aParent, bool aInModule )
: BOARD_CONNECTED_ITEM( aParent, aInModule ? PCB_MODULE_ZONE_AREA_T : PCB_ZONE_AREA_T ), : BOARD_CONNECTED_ITEM( aParent, aInModule ? PCB_MODULE_ZONE_AREA_T : PCB_ZONE_AREA_T ),
@ -365,7 +364,7 @@ void ZONE_CONTAINER::SetCornerRadius( unsigned int aRadius )
bool ZONE_CONTAINER::GetFilledPolysUseThickness( PCB_LAYER_ID aLayer ) const bool ZONE_CONTAINER::GetFilledPolysUseThickness( PCB_LAYER_ID aLayer ) const
{ {
if( ZONE_FILLER::s_DumpZonesWhenFilling && LSET::InternalCuMask().Contains( aLayer ) ) if( ADVANCED_CFG::GetCfg().m_DebugZoneFiller && LSET::InternalCuMask().Contains( aLayer ) )
return false; return false;
return GetFilledPolysUseThickness(); return GetFilledPolysUseThickness();

View File

@ -58,6 +58,8 @@ ZONE_FILLER::ZONE_FILLER( BOARD* aBoard, COMMIT* aCommit ) :
m_progressReporter( nullptr ), m_progressReporter( nullptr ),
m_maxError( ARC_HIGH_DEF ) m_maxError( ARC_HIGH_DEF )
{ {
// To enable add "DebugZoneFiller=true" to kicad_advanced settings file.
m_debugZoneFiller = ADVANCED_CFG::GetCfg().m_DebugZoneFiller;
} }
@ -322,7 +324,7 @@ bool ZONE_FILLER::Fill( std::vector<ZONE_CONTAINER*>& aZones, bool aCheck, wxWin
{ {
for( PCB_LAYER_ID layer : zone.m_zone->GetLayerSet().Seq() ) for( PCB_LAYER_ID layer : zone.m_zone->GetLayerSet().Seq() )
{ {
if( s_DumpZonesWhenFilling && LSET::InternalCuMask().Contains( layer ) ) if( m_debugZoneFiller && LSET::InternalCuMask().Contains( layer ) )
continue; continue;
if( !zone.m_islands.count( layer ) ) if( !zone.m_islands.count( layer ) )
@ -363,7 +365,7 @@ bool ZONE_FILLER::Fill( std::vector<ZONE_CONTAINER*>& aZones, bool aCheck, wxWin
{ {
for( PCB_LAYER_ID layer : zone->GetLayerSet().Seq() ) for( PCB_LAYER_ID layer : zone->GetLayerSet().Seq() )
{ {
if( s_DumpZonesWhenFilling && LSET::InternalCuMask().Contains( layer ) ) if( m_debugZoneFiller && LSET::InternalCuMask().Contains( layer ) )
continue; continue;
SHAPE_POLY_SET poly = zone->GetFilledPolysList( layer ); SHAPE_POLY_SET poly = zone->GetFilledPolysList( layer );
@ -898,7 +900,7 @@ void ZONE_FILLER::buildCopperItemClearances( const ZONE_CONTAINER* aZone, PCB_LA
#define DUMP_POLYS_TO_COPPER_LAYER( a, b, c ) \ #define DUMP_POLYS_TO_COPPER_LAYER( a, b, c ) \
{ if( s_DumpZonesWhenFilling && dumpLayer == b ) \ { if( m_debugZoneFiller && dumpLayer == b ) \
{ \ { \
m_board->SetLayerName( b, c ); \ m_board->SetLayerName( b, c ); \
a.Simplify( SHAPE_POLY_SET::PM_STRICTLY_SIMPLE ); \ a.Simplify( SHAPE_POLY_SET::PM_STRICTLY_SIMPLE ); \
@ -927,7 +929,7 @@ void ZONE_FILLER::computeRawFilledArea( const ZONE_CONTAINER* aZone, PCB_LAYER_I
{ {
PCB_LAYER_ID dumpLayer = aLayer; PCB_LAYER_ID dumpLayer = aLayer;
if( s_DumpZonesWhenFilling && LSET::InternalCuMask().Contains( aLayer ) ) if( m_debugZoneFiller && LSET::InternalCuMask().Contains( aLayer ) )
aLayer = F_Cu; aLayer = F_Cu;
m_maxError = m_board->GetDesignSettings().m_MaxError; m_maxError = m_board->GetDesignSettings().m_MaxError;

View File

@ -47,8 +47,6 @@ public:
bool Fill( std::vector<ZONE_CONTAINER*>& aZones, bool aCheck = false, bool Fill( std::vector<ZONE_CONTAINER*>& aZones, bool aCheck = false,
wxWindow* aParent = nullptr ); wxWindow* aParent = nullptr );
static const bool s_DumpZonesWhenFilling = false;
private: private:
void addKnockout( D_PAD* aPad, PCB_LAYER_ID aLayer, int aGap, SHAPE_POLY_SET& aHoles ); void addKnockout( D_PAD* aPad, PCB_LAYER_ID aLayer, int aGap, SHAPE_POLY_SET& aHoles );
@ -120,6 +118,8 @@ private:
std::unique_ptr<WX_PROGRESS_REPORTER> m_uniqueReporter; std::unique_ptr<WX_PROGRESS_REPORTER> m_uniqueReporter;
int m_maxError; int m_maxError;
bool m_debugZoneFiller;
}; };
#endif #endif