Pcbnew plot functions: code cleanup, coding and UI policy fixes and minor enhancements

This commit is contained in:
jean-pierre charras
2010-12-12 12:41:18 +01:00
23 changed files with 806 additions and 743 deletions
+43 -49
View File
@@ -27,14 +27,11 @@ enum PlotFormat {
PLOT_FORMAT_DXF
};
const int PLOT_MIROIR = 1;
class PLOTTER
{
public:
PlotFormat m_PlotType; // type of plot
public:
PLOTTER( PlotFormat aPlotType );
public: PLOTTER( PlotFormat aPlotType );
virtual ~PLOTTER()
{
@@ -92,8 +89,7 @@ public:
}
virtual void set_viewport( wxPoint offset,
double scale, int orient ) = 0;
virtual void set_viewport( wxPoint aOffset, double aScale, bool aMirror ) = 0;
// Standard primitives
virtual void rect( wxPoint p1, wxPoint p2, FILL_T fill,
@@ -121,6 +117,7 @@ public:
GRTraceMode trace_mode ) = 0;
virtual void flash_pad_rect( wxPoint pos, wxSize size,
int orient, GRTraceMode trace_mode ) = 0;
/** virtual function flash_pad_trapez
* flash a trapezoidal pad
* @param aPadPos = the position of the shape
@@ -176,7 +173,7 @@ public:
* by writing \%LPD*\% or \%LPC*\% to the Gerber file, respectively.
* @param aPositive is the layer polarity and true for positive.
*/
virtual void SetLayerPolarity( bool aPositive ) = 0;
virtual void SetLayerPolarity( bool aPositive ) = 0;
protected:
// These are marker subcomponents
@@ -206,8 +203,7 @@ protected:
int current_pen_width;
char pen_state;
wxPoint pen_lastpos;
// Other stuff
int plot_orient_options; // For now, mirror plot
bool plotMirror;
wxString creator;
wxString filename;
Ki_PageDescr* sheet;
@@ -216,11 +212,11 @@ protected:
class HPGL_PLOTTER : public PLOTTER
{
public:
HPGL_PLOTTER() : PLOTTER(PLOT_FORMAT_HPGL)
public: HPGL_PLOTTER() : PLOTTER( PLOT_FORMAT_HPGL )
{
}
virtual bool start_plot( FILE* fout );
virtual bool end_plot();
@@ -262,8 +258,7 @@ public:
}
virtual void set_viewport( wxPoint offset,
double scale, int orient );
virtual void set_viewport( wxPoint aOffset, double aScale, bool aMirror );
virtual void rect( wxPoint p1, wxPoint p2, FILL_T fill, int width = -1 );
virtual void circle( wxPoint pos, int diametre, FILL_T fill, int width = -1 );
virtual void poly( int nb_segm, int* coord, FILL_T fill, int width = -1 );
@@ -278,13 +273,14 @@ public:
GRTraceMode trace_mode );
virtual void flash_pad_rect( wxPoint pos, wxSize size,
int orient, GRTraceMode trace_mode );
virtual void flash_pad_trapez( wxPoint aPadPos, wxPoint aCorners[4],
int aPadOrient, GRTraceMode aTrace_Mode );
virtual void SetLayerPolarity( bool aPositive ) {}
protected:
void pen_control( int plume );
void pen_control( int plume );
int pen_speed;
int pen_number;
@@ -295,13 +291,13 @@ protected:
class PS_PLOTTER : public PLOTTER
{
public:
PS_PLOTTER() : PLOTTER(PLOT_FORMAT_POST)
public: PS_PLOTTER() : PLOTTER( PLOT_FORMAT_POST )
{
plot_scale_adjX = 1;
plot_scale_adjY = 1;
}
virtual bool start_plot( FILE* fout );
virtual bool end_plot();
virtual void set_current_line_width( int width );
@@ -316,8 +312,7 @@ public:
}
virtual void set_viewport( wxPoint offset,
double scale, int orient );
virtual void set_viewport( wxPoint aOffset, double aScale, bool aMirror );
virtual void rect( wxPoint p1, wxPoint p2, FILL_T fill, int width = -1 );
virtual void circle( wxPoint pos, int diametre, FILL_T fill, int width = -1 );
virtual void arc( wxPoint centre, int StAngle, int EndAngle, int rayon,
@@ -330,6 +325,7 @@ public:
GRTraceMode trace_mode );
virtual void flash_pad_rect( wxPoint pos, wxSize size,
int orient, GRTraceMode trace_mode );
virtual void flash_pad_trapez( wxPoint aPadPos, wxPoint aCorners[4],
int aPadOrient, GRTraceMode aTrace_Mode );
@@ -362,39 +358,37 @@ struct APERTURE
class GERBER_PLOTTER : public PLOTTER
{
public:
GERBER_PLOTTER() : PLOTTER(PLOT_FORMAT_GERBER)
public: GERBER_PLOTTER() : PLOTTER( PLOT_FORMAT_GERBER )
{
work_file = 0;
final_file = 0;
current_aperture = apertures.end();
}
virtual bool start_plot( FILE* fout );
virtual bool end_plot();
virtual void set_current_line_width( int width );
virtual void set_default_line_width( int width );
virtual bool start_plot( FILE* fout );
virtual bool end_plot();
virtual void set_current_line_width( int width );
virtual void set_default_line_width( int width );
/* RS274X has no dashing, nor colours */
virtual void set_dash( bool dashed ) {};
virtual void set_color( int color ) {};
virtual void set_viewport( wxPoint aOffset, double aScale, bool aMirror );
virtual void rect( wxPoint p1, wxPoint p2, FILL_T fill, int width = -1 );
virtual void circle( wxPoint pos, int diametre, FILL_T fill, int width = -1 );
virtual void poly( int nb_segm, int* coord, FILL_T fill, int width = -1 );
virtual void pen_to( wxPoint pos, char plume );
virtual void flash_pad_circle( wxPoint pos, int diametre,
GRTraceMode trace_mode );
virtual void flash_pad_oval( wxPoint pos, wxSize size, int orient,
GRTraceMode trace_mode );
virtual void flash_pad_rect( wxPoint pos, wxSize size,
int orient, GRTraceMode trace_mode );
// RS274X has no dashing, nor colours
virtual void set_dash( bool dashed ) {}
virtual void set_color( int color ) {}
virtual void set_viewport( wxPoint offset,
double scale, int orient );
virtual void rect( wxPoint p1, wxPoint p2, FILL_T fill, int width = -1 );
virtual void circle( wxPoint pos, int diametre, FILL_T fill, int width = -1 );
virtual void poly( int nb_segm, int* coord, FILL_T fill, int width = -1 );
virtual void pen_to( wxPoint pos, char plume );
virtual void flash_pad_circle( wxPoint pos, int diametre,
GRTraceMode trace_mode );
virtual void flash_pad_oval( wxPoint pos, wxSize size, int orient,
GRTraceMode trace_mode );
virtual void flash_pad_rect( wxPoint pos, wxSize size,
int orient, GRTraceMode trace_mode );
virtual void flash_pad_trapez( wxPoint aPadPos, wxPoint aCorners[4],
int aPadOrient, GRTraceMode aTrace_Mode );
virtual void flash_pad_trapez( wxPoint aPadPos, wxPoint aCorners[4],
int aPadOrient, GRTraceMode aTrace_Mode );
virtual void SetLayerPolarity( bool aPositive );
virtual void SetLayerPolarity( bool aPositive );
protected:
void select_aperture( const wxSize& size,
@@ -403,10 +397,10 @@ protected:
std::vector<APERTURE>::iterator
get_aperture( const wxSize& size, APERTURE::Aperture_Type type );
FILE* work_file, * final_file;
wxString m_workFilename;
FILE* work_file, * final_file;
wxString m_workFilename;
void write_aperture_list();
void write_aperture_list();
std::vector<APERTURE> apertures;
std::vector<APERTURE>::iterator current_aperture;
@@ -414,11 +408,11 @@ protected:
class DXF_PLOTTER : public PLOTTER
{
public:
DXF_PLOTTER() : PLOTTER(PLOT_FORMAT_DXF)
public: DXF_PLOTTER() : PLOTTER( PLOT_FORMAT_DXF )
{
}
virtual bool start_plot( FILE* fout );
virtual bool end_plot();
@@ -439,8 +433,7 @@ public:
virtual void set_color( int color );
virtual void set_viewport( wxPoint offset,
double scale, int orient );
virtual void set_viewport( wxPoint aOffset, double aScale, bool aMirror );
virtual void rect( wxPoint p1, wxPoint p2, FILL_T fill, int width = -1 );
virtual void circle( wxPoint pos, int diametre, FILL_T fill, int width = -1 );
virtual void poly( int nb_segm, int* coord, FILL_T fill, int width = -1 );
@@ -455,6 +448,7 @@ public:
GRTraceMode trace_mode );
virtual void flash_pad_rect( wxPoint pos, wxSize size,
int orient, GRTraceMode trace_mode );
virtual void flash_pad_trapez( wxPoint aPadPos, wxPoint aCorners[4],
int aPadOrient, GRTraceMode aTrace_Mode );