Loading include/wxBasePcbFrame.h +1 −2 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ /* Forward declarations of classes. */ class WinEDA_CvpcbFrame; class FOOTPRINT_EDIT_FRAME; class BOARD; class MODULE; Loading Loading @@ -461,7 +460,7 @@ public: bool aPlotVia, GRTraceMode aPlotMode, bool aSkipNPTH_Pads = false ); void Plot_Serigraphie( PLOTTER* plotter, int masque_layer, GRTraceMode trace_mode ); void PlotSilkScreen( PLOTTER* plotter, int masque_layer, GRTraceMode trace_mode ); /** * Function PlotDrillMark Loading include/wxPcbStruct.h +3 −3 Original line number Diff line number Diff line Loading @@ -1145,9 +1145,9 @@ public: void Delete_Drawings_All_Layer( int aLayer ); // Dimension handling: void Install_Edit_Dimension( DIMENSION* Dimension, wxDC* DC ); DIMENSION* Begin_Dimension( DIMENSION* Dimension, wxDC* DC ); void Delete_Dimension( DIMENSION* Dimension, wxDC* DC ); void ShowDimensionPropertyDialog( DIMENSION* aDimension, wxDC* aDC ); DIMENSION* EditDimension( DIMENSION* aDimension, wxDC* aDC ); void DeleteDimension( DIMENSION* aDimension, wxDC* aDC ); // netlist handling: void InstallNetlistFrame( wxDC* DC ); Loading pcbnew/class_dimension.cpp +251 −297 File changed.Preview size limit exceeded, changes collapsed. Show changes pcbnew/class_dimension.h +17 −12 Original line number Diff line number Diff line /******************************/ /* DIMENSION class definition */ /******************************/ /** * @file class_dimension.h * @brief DIMENSION class definition. */ #ifndef DIMENSION_H #define DIMENSION_H #include "base_struct.h" #include "richio.h" #include "class_board_item.h" class EDA_RECT; class READER; class EDA_DRAW_PANEL; class DIMENSION : public BOARD_ITEM Loading @@ -19,13 +24,13 @@ public: int m_Value; /* value of PCB dimensions. */ TEXTE_PCB* m_Text; int Barre_ox, Barre_oy, Barre_fx, Barre_fy; int TraitG_ox, TraitG_oy, TraitG_fx, TraitG_fy; int TraitD_ox, TraitD_oy, TraitD_fx, TraitD_fy; int FlecheD1_ox, FlecheD1_oy, FlecheD1_fx, FlecheD1_fy; int FlecheD2_ox, FlecheD2_oy, FlecheD2_fx, FlecheD2_fy; int FlecheG1_ox, FlecheG1_oy, FlecheG1_fx, FlecheG1_fy; int FlecheG2_ox, FlecheG2_oy, FlecheG2_fx, FlecheG2_fy; int m_crossBarOx, m_crossBarOy, m_crossBarFx, m_crossBarFy; int m_featureLineGOx, m_featureLineGOy, m_featureLineGFx, m_featureLineGFy; int m_featureLineDOx, m_featureLineDOy, m_featureLineDFx, m_featureLineDFy; int m_arrowD1Ox, m_arrowD1Oy, m_arrowD1Fx, m_arrowD1Fy; int m_arrowD2Ox, m_arrowD2Oy, m_arrowD2Fx, m_arrowD2Fy; int m_arrowG1Ox, m_arrowG1Oy, m_arrowG1Fx, m_arrowG1Fy; int m_arrowG2Ox, m_arrowG2Oy, m_arrowG2Fx, m_arrowG2Fy; public: DIMENSION( BOARD_ITEM* aParent ); Loading pcbnew/class_zone.h +81 −59 Original line number Diff line number Diff line Loading @@ -10,11 +10,11 @@ #include <vector> #include "gr_basic.h" #include "PolyLine.h" #include "richio.h" #include "class_zone_setting.h" class EDA_RECT; class LINE_READER; class EDA_DRAW_FRAME; class EDA_DRAW_PANEL; class PCB_EDIT_FRAME; Loading @@ -32,6 +32,7 @@ public: public: SEGMENT() {} SEGMENT( const wxPoint& aStart, const wxPoint& aEnd) { m_Start = aStart; Loading @@ -40,48 +41,66 @@ public: }; /************************/ /* class ZONE_CONTAINER */ /************************/ /* handle a list of polygons delimiting a copper zone * a zone is described by a main polygon, a time stamp, a layer and a net name. * others polygons inside this main polygon are holes. /** * Class ZONE_CONTAINER * handles a list of polygons defining a copper zone. * A zone is described by a main polygon, a time stamp, a layer, and a net name. * Other polygons inside the main polygon are holes in the zone. */ class ZONE_CONTAINER : public BOARD_CONNECTED_ITEM { public: wxString m_Netname; // Net Name CPolyLine* m_Poly; // outlines int m_CornerSelection; // For corner moving, corner index to drag, or -1 if no selection // For corner moving, corner index to drag, or -1 if no selection. int m_CornerSelection; int m_ZoneClearance; // clearance value int m_ZoneMinThickness; // Min thickness value in filled areas int m_FillMode; // How to fill areas: 0 = use filled polygons, != 0 fill with segments int m_ArcToSegmentsCount; // number of segments to convert a circle to a polygon // (uses ARC_APPROX_SEGMENTS_COUNT_LOW_DEF or ARC_APPROX_SEGMENTS_COUNT_HIGHT_DEF) int m_PadOption; // int m_ThermalReliefGapValue; // thickness of the gap in thermal reliefs int m_ThermalReliefCopperBridgeValue; // thickness of the copper bridge in thermal reliefs // How to fill areas: 0 = use filled polygons, != 0 fill with segments. int m_FillMode; // number of segments to convert a circle to a polygon (uses //ARC_APPROX_SEGMENTS_COUNT_LOW_DEF or ARC_APPROX_SEGMENTS_COUNT_HIGHT_DEF) int m_ArcToSegmentsCount; int m_PadOption; // thickness of the gap in thermal reliefs. int m_ThermalReliefGapValue; // thickness of the copper bridge in thermal reliefs int m_ThermalReliefCopperBridgeValue; int utility, utility2; // flags used in polygon calculations bool m_IsFilled; // true when a zone was filled, false after deleting the filled areas std::vector <CPolyPt> m_FilledPolysList; /* set of filled polygons used to draw a zone as a filled area. * from outlines (m_Poly) but unlike m_Poly these filled polygons have no hole (they are all in one piece) * In very simple cases m_FilledPolysList is same as m_Poly * In less simple cases (when m_Poly has holes) m_FilledPolysList is a polygon equivalent to m_Poly, without holes * but with extra outline segment connecting "holes" with external main outline * In complex cases an outline described by m_Poly can have many filled areas */ std::vector <SEGMENT> m_FillSegmList; /* set of segments used to fill area, when fill zone by segment is used. // true when a zone was filled, false after deleting the filled areas bool m_IsFilled; /* set of filled polygons used to draw a zone as a filled area. * from outlines (m_Poly) but unlike m_Poly these filled polygons have no hole * (they are* all in one piece) In very simple cases m_FilledPolysList is same * as m_Poly. In less simple cases (when m_Poly has holes) m_FilledPolysList is * a polygon equivalent to m_Poly, without holes but with extra outline segment * connecting "holes" with external main outline. In complex cases an outline * described by m_Poly can have many filled areas */ std::vector <CPolyPt> m_FilledPolysList; /* set of segments used to fill area, when fill zone by segment is used. * ( m_FillMode == 1 ) * in this case segments have m_ZoneMinThickness width */ std::vector <SEGMENT> m_FillSegmList; private: CPolyLine* smoothedPoly; // Corner-smoothed version of m_Poly int cornerSmoothingType; unsigned int cornerRadius; public: ZONE_CONTAINER( BOARD* parent ); ~ZONE_CONTAINER(); bool Save( FILE* aFile ) const; Loading @@ -94,12 +113,12 @@ public: */ int ReadDescr( LINE_READER* aReader ); /** virtual function GetPosition /** * Function GetPosition * @return a wxPoint, position of the first point of the outline */ wxPoint& GetPosition(); /** * Function copy * copy useful data from the source. Loading Loading @@ -137,9 +156,9 @@ public: /** * Function DrawWhileCreateOutline * Draws the zone outline when ir is created. * The moving edges are in XOR graphic mode, old segment in draw_mode graphic mode (usually GR_OR) * The closing edge has its own shape * Draws the zone outline when it is created. * The moving edges are in XOR graphic mode, old segment in draw_mode graphic mode * (usually GR_OR). The closing edge has its own shape. * @param panel = current Draw Panel * @param DC = current Device Context * @param draw_mode = draw mode: OR, XOR .. Loading @@ -164,9 +183,11 @@ public: /** * Function CalculateSubAreaBoundaryBox * Calculates the bounding box of a a filled area ( list of CPolyPt ) * use m_FilledPolysList as list of CPolyPt (that are the corners of one or more polygons or filled areas ) * use m_FilledPolysList as list of CPolyPt (that are the corners of one or more * polygons or filled areas ) * @return an EDA_RECT as bounding box * @param aIndexStart = index of the first corner of a polygon (filled area) in m_FilledPolysList * @param aIndexStart = index of the first corner of a polygon (filled area) * in m_FilledPolysList * @param aIndexEnd = index of the last corner of a polygon in m_FilledPolysList */ EDA_RECT CalculateSubAreaBoundaryBox( int aIndexStart, int aIndexEnd ); Loading Loading @@ -275,7 +296,7 @@ public: bool HitTestForEdge( const wxPoint& refPos ); /** * Function HitTest (overlayed) * Function HitTest (overloaded) * tests if the given EDA_RECT contains the bounds of this object. * @param refArea : the given EDA_RECT * @return bool - true if a hit, else false Loading Loading @@ -427,6 +448,7 @@ public: }; void SetCornerSmoothingType( int aType ) { cornerSmoothingType = aType; }; int GetCornerSmoothingType() const { return cornerSmoothingType; }; void SetCornerRadius( unsigned int aRadius ) Loading Loading
include/wxBasePcbFrame.h +1 −2 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ /* Forward declarations of classes. */ class WinEDA_CvpcbFrame; class FOOTPRINT_EDIT_FRAME; class BOARD; class MODULE; Loading Loading @@ -461,7 +460,7 @@ public: bool aPlotVia, GRTraceMode aPlotMode, bool aSkipNPTH_Pads = false ); void Plot_Serigraphie( PLOTTER* plotter, int masque_layer, GRTraceMode trace_mode ); void PlotSilkScreen( PLOTTER* plotter, int masque_layer, GRTraceMode trace_mode ); /** * Function PlotDrillMark Loading
include/wxPcbStruct.h +3 −3 Original line number Diff line number Diff line Loading @@ -1145,9 +1145,9 @@ public: void Delete_Drawings_All_Layer( int aLayer ); // Dimension handling: void Install_Edit_Dimension( DIMENSION* Dimension, wxDC* DC ); DIMENSION* Begin_Dimension( DIMENSION* Dimension, wxDC* DC ); void Delete_Dimension( DIMENSION* Dimension, wxDC* DC ); void ShowDimensionPropertyDialog( DIMENSION* aDimension, wxDC* aDC ); DIMENSION* EditDimension( DIMENSION* aDimension, wxDC* aDC ); void DeleteDimension( DIMENSION* aDimension, wxDC* aDC ); // netlist handling: void InstallNetlistFrame( wxDC* DC ); Loading
pcbnew/class_dimension.cpp +251 −297 File changed.Preview size limit exceeded, changes collapsed. Show changes
pcbnew/class_dimension.h +17 −12 Original line number Diff line number Diff line /******************************/ /* DIMENSION class definition */ /******************************/ /** * @file class_dimension.h * @brief DIMENSION class definition. */ #ifndef DIMENSION_H #define DIMENSION_H #include "base_struct.h" #include "richio.h" #include "class_board_item.h" class EDA_RECT; class READER; class EDA_DRAW_PANEL; class DIMENSION : public BOARD_ITEM Loading @@ -19,13 +24,13 @@ public: int m_Value; /* value of PCB dimensions. */ TEXTE_PCB* m_Text; int Barre_ox, Barre_oy, Barre_fx, Barre_fy; int TraitG_ox, TraitG_oy, TraitG_fx, TraitG_fy; int TraitD_ox, TraitD_oy, TraitD_fx, TraitD_fy; int FlecheD1_ox, FlecheD1_oy, FlecheD1_fx, FlecheD1_fy; int FlecheD2_ox, FlecheD2_oy, FlecheD2_fx, FlecheD2_fy; int FlecheG1_ox, FlecheG1_oy, FlecheG1_fx, FlecheG1_fy; int FlecheG2_ox, FlecheG2_oy, FlecheG2_fx, FlecheG2_fy; int m_crossBarOx, m_crossBarOy, m_crossBarFx, m_crossBarFy; int m_featureLineGOx, m_featureLineGOy, m_featureLineGFx, m_featureLineGFy; int m_featureLineDOx, m_featureLineDOy, m_featureLineDFx, m_featureLineDFy; int m_arrowD1Ox, m_arrowD1Oy, m_arrowD1Fx, m_arrowD1Fy; int m_arrowD2Ox, m_arrowD2Oy, m_arrowD2Fx, m_arrowD2Fy; int m_arrowG1Ox, m_arrowG1Oy, m_arrowG1Fx, m_arrowG1Fy; int m_arrowG2Ox, m_arrowG2Oy, m_arrowG2Fx, m_arrowG2Fy; public: DIMENSION( BOARD_ITEM* aParent ); Loading
pcbnew/class_zone.h +81 −59 Original line number Diff line number Diff line Loading @@ -10,11 +10,11 @@ #include <vector> #include "gr_basic.h" #include "PolyLine.h" #include "richio.h" #include "class_zone_setting.h" class EDA_RECT; class LINE_READER; class EDA_DRAW_FRAME; class EDA_DRAW_PANEL; class PCB_EDIT_FRAME; Loading @@ -32,6 +32,7 @@ public: public: SEGMENT() {} SEGMENT( const wxPoint& aStart, const wxPoint& aEnd) { m_Start = aStart; Loading @@ -40,48 +41,66 @@ public: }; /************************/ /* class ZONE_CONTAINER */ /************************/ /* handle a list of polygons delimiting a copper zone * a zone is described by a main polygon, a time stamp, a layer and a net name. * others polygons inside this main polygon are holes. /** * Class ZONE_CONTAINER * handles a list of polygons defining a copper zone. * A zone is described by a main polygon, a time stamp, a layer, and a net name. * Other polygons inside the main polygon are holes in the zone. */ class ZONE_CONTAINER : public BOARD_CONNECTED_ITEM { public: wxString m_Netname; // Net Name CPolyLine* m_Poly; // outlines int m_CornerSelection; // For corner moving, corner index to drag, or -1 if no selection // For corner moving, corner index to drag, or -1 if no selection. int m_CornerSelection; int m_ZoneClearance; // clearance value int m_ZoneMinThickness; // Min thickness value in filled areas int m_FillMode; // How to fill areas: 0 = use filled polygons, != 0 fill with segments int m_ArcToSegmentsCount; // number of segments to convert a circle to a polygon // (uses ARC_APPROX_SEGMENTS_COUNT_LOW_DEF or ARC_APPROX_SEGMENTS_COUNT_HIGHT_DEF) int m_PadOption; // int m_ThermalReliefGapValue; // thickness of the gap in thermal reliefs int m_ThermalReliefCopperBridgeValue; // thickness of the copper bridge in thermal reliefs // How to fill areas: 0 = use filled polygons, != 0 fill with segments. int m_FillMode; // number of segments to convert a circle to a polygon (uses //ARC_APPROX_SEGMENTS_COUNT_LOW_DEF or ARC_APPROX_SEGMENTS_COUNT_HIGHT_DEF) int m_ArcToSegmentsCount; int m_PadOption; // thickness of the gap in thermal reliefs. int m_ThermalReliefGapValue; // thickness of the copper bridge in thermal reliefs int m_ThermalReliefCopperBridgeValue; int utility, utility2; // flags used in polygon calculations bool m_IsFilled; // true when a zone was filled, false after deleting the filled areas std::vector <CPolyPt> m_FilledPolysList; /* set of filled polygons used to draw a zone as a filled area. * from outlines (m_Poly) but unlike m_Poly these filled polygons have no hole (they are all in one piece) * In very simple cases m_FilledPolysList is same as m_Poly * In less simple cases (when m_Poly has holes) m_FilledPolysList is a polygon equivalent to m_Poly, without holes * but with extra outline segment connecting "holes" with external main outline * In complex cases an outline described by m_Poly can have many filled areas */ std::vector <SEGMENT> m_FillSegmList; /* set of segments used to fill area, when fill zone by segment is used. // true when a zone was filled, false after deleting the filled areas bool m_IsFilled; /* set of filled polygons used to draw a zone as a filled area. * from outlines (m_Poly) but unlike m_Poly these filled polygons have no hole * (they are* all in one piece) In very simple cases m_FilledPolysList is same * as m_Poly. In less simple cases (when m_Poly has holes) m_FilledPolysList is * a polygon equivalent to m_Poly, without holes but with extra outline segment * connecting "holes" with external main outline. In complex cases an outline * described by m_Poly can have many filled areas */ std::vector <CPolyPt> m_FilledPolysList; /* set of segments used to fill area, when fill zone by segment is used. * ( m_FillMode == 1 ) * in this case segments have m_ZoneMinThickness width */ std::vector <SEGMENT> m_FillSegmList; private: CPolyLine* smoothedPoly; // Corner-smoothed version of m_Poly int cornerSmoothingType; unsigned int cornerRadius; public: ZONE_CONTAINER( BOARD* parent ); ~ZONE_CONTAINER(); bool Save( FILE* aFile ) const; Loading @@ -94,12 +113,12 @@ public: */ int ReadDescr( LINE_READER* aReader ); /** virtual function GetPosition /** * Function GetPosition * @return a wxPoint, position of the first point of the outline */ wxPoint& GetPosition(); /** * Function copy * copy useful data from the source. Loading Loading @@ -137,9 +156,9 @@ public: /** * Function DrawWhileCreateOutline * Draws the zone outline when ir is created. * The moving edges are in XOR graphic mode, old segment in draw_mode graphic mode (usually GR_OR) * The closing edge has its own shape * Draws the zone outline when it is created. * The moving edges are in XOR graphic mode, old segment in draw_mode graphic mode * (usually GR_OR). The closing edge has its own shape. * @param panel = current Draw Panel * @param DC = current Device Context * @param draw_mode = draw mode: OR, XOR .. Loading @@ -164,9 +183,11 @@ public: /** * Function CalculateSubAreaBoundaryBox * Calculates the bounding box of a a filled area ( list of CPolyPt ) * use m_FilledPolysList as list of CPolyPt (that are the corners of one or more polygons or filled areas ) * use m_FilledPolysList as list of CPolyPt (that are the corners of one or more * polygons or filled areas ) * @return an EDA_RECT as bounding box * @param aIndexStart = index of the first corner of a polygon (filled area) in m_FilledPolysList * @param aIndexStart = index of the first corner of a polygon (filled area) * in m_FilledPolysList * @param aIndexEnd = index of the last corner of a polygon in m_FilledPolysList */ EDA_RECT CalculateSubAreaBoundaryBox( int aIndexStart, int aIndexEnd ); Loading Loading @@ -275,7 +296,7 @@ public: bool HitTestForEdge( const wxPoint& refPos ); /** * Function HitTest (overlayed) * Function HitTest (overloaded) * tests if the given EDA_RECT contains the bounds of this object. * @param refArea : the given EDA_RECT * @return bool - true if a hit, else false Loading Loading @@ -427,6 +448,7 @@ public: }; void SetCornerSmoothingType( int aType ) { cornerSmoothingType = aType; }; int GetCornerSmoothingType() const { return cornerSmoothingType; }; void SetCornerRadius( unsigned int aRadius ) Loading