ZONE_SETTINGS::ZONE_SETTINGS() { m_ZonePriority = 0; m_FillMode = 0; // Mode for filling zone : 1 use segments, 0 use polygons // Clearance value m_ZoneClearance = Mils2iu( ZONE_CLEARANCE_MIL ); // Min thickness value in filled areas (this is the minimum width of copper to fill solid areas) : m_ZoneMinThickness = Mils2iu( ZONE_THICKNESS_MIL ); m_NetcodeSelection = 0; // Net code selection for the current zone m_CurrentZone_Layer = FIRST_LAYER; // Layer used to create the current zone m_Zone_HatchingStyle = CPolyLine::DIAGONAL_EDGE; // Option to show the zone area (outlines only, short hatches or full hatches m_ArcToSegmentsCount = ARC_APPROX_SEGMENTS_COUNT_LOW_DEF; // Option to select number of segments to approximate a circle // ARC_APPROX_SEGMENTS_COUNT_LOW_DEF // or ARC_APPROX_SEGMENTS_COUNT_HIGHT_DEF segments // thickness of the gap in thermal reliefs: m_ThermalReliefGap = Mils2iu( ZONE_THERMAL_RELIEF_GAP_MIL ); // thickness of the copper bridge in thermal reliefs: m_ThermalReliefCopperBridge = Mils2iu( ZONE_THERMAL_RELIEF_COPPER_WIDTH_MIL ); m_PadConnection = THERMAL_PAD; // How pads are covered by copper in zone m_Zone_45_Only = false; m_cornerSmoothingType = SMOOTHING_NONE; m_cornerRadius = 0; SetIsKeepout( false ); SetDoNotAllowCopperPour( false ); SetDoNotAllowVias( true ); SetDoNotAllowTracks( true ); }
ZONE_CONTAINER::ZONE_CONTAINER( BOARD* aBoard ) : BOARD_CONNECTED_ITEM( aBoard, PCB_ZONE_AREA_T ) { m_CornerSelection = -1; m_IsFilled = false; // fill status : true when the zone is filled m_FillMode = 0; // How to fill areas: 0 = use filled polygons, != 0 fill with segments m_priority = 0; m_smoothedPoly = NULL; m_cornerSmoothingType = ZONE_SETTINGS::SMOOTHING_NONE; SetIsKeepout( false ); SetDoNotAllowCopperPour( false ); // has meaning only if m_isKeepout == true SetDoNotAllowVias( true ); // has meaning only if m_isKeepout == true SetDoNotAllowTracks( true ); // has meaning only if m_isKeepout == true m_cornerRadius = 0; SetLocalFlags( 0 ); // flags tempoarry used in zone calculations m_Poly = new CPolyLine(); // Outlines aBoard->GetZoneSettings().ExportSetting( *this ); }