Commit daeb1901 authored by charras's avatar charras

minor changes

parent 2a801170
......@@ -8,7 +8,7 @@
#include "appl_wxstruct.h"
#define BUILD_VERSION "(20090621-unstable)"
#define BUILD_VERSION "(20090628-unstable)"
#ifdef HAVE_SVN_VERSION
......@@ -133,6 +133,7 @@ void InitKiCadAbout( wxAboutDialogInfo& info )
info.AddDeveloper( SetMsg( wxT( "Jerry Jacobs <jerkejacobs@gmail.com>" ) ) );
info.AddDeveloper( SetMsg( wxT( "Jonas Diemer <diemer@gmx.de>" ) ) );
info.AddDeveloper( SetMsg( wxT( "KBool Library <http://boolean.klaasholwerda.nl/bool.html>" ) ) );
info.AddDeveloper( SetMsg( wxT( "Lorenzo <lomarcan@tin.it>" ) ) );
info.AddDeveloper( SetMsg( wxT( "Marco Serantoni <marco.serantoni@gmail.com>" ) ) );
info.AddDeveloper( SetMsg( wxT( "Rok Markovic <rok@kanardia.eu>" ) ) );
info.AddDeveloper( SetMsg( wxT( "Tim Hanson <sideskate@gmail.com>" ) ) );
......
......@@ -24,20 +24,21 @@ void Gerber_Plotter::set_viewport( wxPoint offset,
* @param aScale = coordinate scale (scale coefficient for coordinates)
*/
{
wxASSERT(!output_file);
wxASSERT(orient == 0);
wxASSERT( !output_file );
wxASSERT( orient == 0 );
plot_orient_options = 0;
plot_offset = offset;
wxASSERT(aScale == 1);
wxASSERT( aScale == 1 );
plot_scale = 1;
device_scale = 1;
set_default_line_width(100); /* epaisseur du trait standard en 1/1000 pouce */
set_default_line_width( 100 ); /* epaisseur du trait standard en 1/1000 pouce */
}
/******************************************************************/
void Gerber_Plotter::start_plot( FILE *aFile )
void Gerber_Plotter::start_plot( FILE* aFile )
/*****************************************************************/
/** Function start_plot
* Write GERBER header to file
* initialize global variable g_Plot_PlotOutputFile
......@@ -46,7 +47,7 @@ void Gerber_Plotter::start_plot( FILE *aFile )
{
char Line[1024];
wxASSERT(!output_file);
wxASSERT( !output_file );
final_file = aFile;
work_file = tmpfile();
output_file = work_file;
......@@ -60,24 +61,25 @@ void Gerber_Plotter::start_plot( FILE *aFile )
/* Set gerber format to 3.4 */
fputs( "G04 Gerber Fmt 3.4, Leading zero omitted, Abs format*\n%FSLAX34Y34*%\n",
output_file);
output_file );
fputs( "G04 APERTURE LIST*\n", output_file );
/* Select the default aperture */
set_current_line_width(-1);
set_current_line_width( -1 );
}
/******************************************************************/
void Gerber_Plotter::end_plot( )
void Gerber_Plotter::end_plot()
/*****************************************************************/
{
char line[1024];
wxString msg;
wxASSERT(output_file);
wxASSERT( output_file );
/* Outfile is actually a temporary file! */
fputs( "M02*\n", output_file );
fflush(output_file);
fflush( output_file );
rewind( work_file ); // work_file == output_file !!!
output_file = final_file;
......@@ -98,6 +100,7 @@ void Gerber_Plotter::end_plot( )
output_file = 0;
}
/*************************************************************************************/
void Gerber_Plotter::set_default_line_width( int width )
/*************************************************************************************/
......@@ -109,6 +112,7 @@ void Gerber_Plotter::set_default_line_width( int width )
current_aperture = apertures.end();
}
/***************************************/
void Gerber_Plotter::set_current_line_width( int width )
/***************************************/
......@@ -123,67 +127,75 @@ void Gerber_Plotter::set_current_line_width( int width )
else
pen_width = default_pen_width;
select_aperture(wxSize(pen_width, pen_width), Aperture::Plotting);
select_aperture( wxSize( pen_width, pen_width ), Aperture::Plotting );
current_pen_width = pen_width;
}
/******************************************************/
vector<Aperture>::iterator Gerber_Plotter::get_aperture(const wxSize &size,
Aperture::Aperture_Type type)
vector<Aperture>::iterator Gerber_Plotter::get_aperture( const wxSize& size,
Aperture::Aperture_Type type )
/******************************************************/
{
int last_D_code = 9;
// Search an existing aperture
vector<Aperture>::iterator tool = apertures.begin();
while (tool != apertures.end()) {
while( tool != apertures.end() )
{
last_D_code = tool->D_code;
if ((tool->type == type)
&& (tool->size == size))
if( (tool->type == type)
&& (tool->size == size) )
return tool;
tool++;
}
// Allocate a new aperture
Aperture new_tool;
new_tool.size = size;
new_tool.type = type;
new_tool.D_code = last_D_code+1;
apertures.push_back(new_tool);
return apertures.end()-1;
new_tool.D_code = last_D_code + 1;
apertures.push_back( new_tool );
return apertures.end() - 1;
}
/******************************************************/
void Gerber_Plotter::select_aperture(const wxSize &size, Aperture::Aperture_Type type)
void Gerber_Plotter::select_aperture( const wxSize& size, Aperture::Aperture_Type type )
/******************************************************/
{
wxASSERT(output_file);
if ((current_aperture == apertures.end())
wxASSERT( output_file );
if( ( current_aperture == apertures.end() )
|| (current_aperture->type != type)
|| (current_aperture->size != size)) {
|| (current_aperture->size != size) )
{
/* Pick an existing aperture or create a new one */
current_aperture = get_aperture(size, type);
current_aperture = get_aperture( size, type );
fprintf( output_file, "G54D%d*\n", current_aperture->D_code );
}
}
/******************************************************/
void Gerber_Plotter::write_aperture_list( )
void Gerber_Plotter::write_aperture_list()
/******************************************************/
/* Genere la liste courante des D_CODES
* Retourne le nombre de D_Codes utilises
* Genere une sequence RS274X
*/
{
wxASSERT(output_file);
wxASSERT( output_file );
char cbuf[1024];
/* Init : */
for (vector<Aperture>::iterator tool=apertures.begin();
tool != apertures.end(); tool++)
for( vector<Aperture>::iterator tool = apertures.begin();
tool != apertures.end(); tool++ )
{
const float fscale = 0.0001f * plot_scale; // For 3.4 format
char* text;
text = cbuf + sprintf( cbuf, "%%ADD%d", tool->D_code);
text = cbuf + sprintf( cbuf, "%%ADD%d", tool->D_code );
switch( tool->type )
{
......@@ -210,13 +222,14 @@ void Gerber_Plotter::write_aperture_list( )
}
}
/**********************************************/
void Gerber_Plotter::pen_to( wxPoint aPos, char plume )
{
wxASSERT(output_file);
wxASSERT( output_file );
user_to_device_coordinates( aPos );
switch ( plume )
switch( plume )
{
case 'Z':
break;
......@@ -228,49 +241,54 @@ void Gerber_Plotter::pen_to( wxPoint aPos, char plume )
case 'D':
fprintf( output_file, "X%5.5dY%5.5dD01*\n", aPos.x, aPos.y );
}
pen_state = plume;
}
/************************************************************/
/**************************************************************************/
void Gerber_Plotter::rect( wxPoint p1, wxPoint p2, FILL_T fill, int width )
/************************************************************/
/**************************************************************************/
{
wxASSERT(output_file);
int coord[10] = {
wxASSERT( output_file );
int coord[10] =
{
p1.x, p1.y,
p1.x, p2.y,
p2.x, p2.y,
p2.x, p1.y,
p1.x, p1.y
};
poly( 5, coord, fill, width);
poly( 5, coord, fill, width );
}
/********************************************************************/
void Gerber_Plotter::circle( wxPoint pos, int diametre, FILL_T fill, int width )
/********************************************************************/
/** Function PlotCircle_GERBER
/*************************************************************************************/
void Gerber_Plotter::circle( wxPoint aCentre, int aDiameter, FILL_T fill, int aWidth )
/*************************************************************************************/
/** Function circle
* writes a non filled circle to output file
* Plot one circle as segments (6 to 16 depending on its radius
* @param aCentre = centre coordintes
* @param aRadius = radius of the circle
* @param aDiameter = diameter of the circle
* @param aWidth = line width
*/
*/
{
wxASSERT(output_file);
wxPoint start,end;
double aRadius = diametre / 2;
const int delta = 3600/32; /* increment (in 0.1 degrees) to draw circles */
start.x = pos.x + aRadius;
start.y = pos.y;
set_current_line_width(width);
move_to(start);
for(int ii = delta; ii < 3600; ii += delta )
wxASSERT( output_file );
wxPoint start, end;
double radius = aDiameter / 2;
const int delta = 3600 / 32; /* increment (in 0.1 degrees) to draw circles */
start.x = aCentre.x + radius;
start.y = aCentre.y;
set_current_line_width( aWidth );
move_to( start );
for( int ii = delta; ii < 3600; ii += delta )
{
end.x = pos.x + (int) (aRadius * fcosinus[ii]);
end.y = pos.y + (int) (aRadius * fsinus[ii]);
line_to(end);
end.x = aCentre.x + (int) ( radius * fcosinus[ii] );
end.y = aCentre.y + (int) ( radius * fsinus[ii] );
line_to( end );
}
finish_to( start );
......@@ -278,32 +296,36 @@ void Gerber_Plotter::circle( wxPoint pos, int diametre, FILL_T fill, int width )
/***************************************************************/
void Gerber_Plotter::poly( int nb_segm, int* coord, FILL_T fill, int width )
void Gerber_Plotter::poly( int aCornersCount, int* aCoord, FILL_T aFill, int aWidth )
/***************************************************************/
/** Function PlotFilledPolygon_GERBER
* writes a filled polyline to output file
* @param aCornersCount = numer of corners
* @param aCoord = buffer of corners coordinates
*/
* @param aFill = plot option (NO_FILL, FILLED_SHAPE, FILLED_WITH_BG_BODYCOLOR)
* @param aCoord = buffer of corners coordinates
*/
{
wxASSERT(output_file);
wxASSERT( output_file );
wxPoint pos, startpos;
set_current_line_width(width);
set_current_line_width( aWidth );
if (fill)
if( aFill )
fputs( "G36*\n", output_file );
startpos.x = *coord++;
startpos.y = *coord++;
move_to(startpos);
for(int ii = 1; ii < nb_segm; ii++ )
startpos.x = *aCoord++;
startpos.y = *aCoord++;
move_to( startpos );
for( int ii = 1; ii < aCornersCount; ii++ )
{
pos.x = *coord++;
pos.y = *coord++;
pos.x = *aCoord++;
pos.y = *aCoord++;
line_to( pos );
}
if (fill)
if( aFill )
{
finish_to(startpos);
finish_to( startpos );
fputs( "G37*\n", output_file );
}
else
......@@ -312,31 +334,36 @@ void Gerber_Plotter::poly( int nb_segm, int* coord, FILL_T fill, int width )
}
}
void Gerber_Plotter::flash_pad_circle(wxPoint pos, int diametre,
GRTraceMode trace_mode)
/* Plot a circular pad or via at the user position pos
/* Function flash_pad_circle
* Plot a circular pad or via at the user position pos
*/
void Gerber_Plotter::flash_pad_circle( wxPoint pos, int diametre,
GRTraceMode trace_mode )
{
wxASSERT(output_file);
wxASSERT( output_file );
wxSize size( diametre, diametre );
switch (trace_mode)
switch( trace_mode )
{
case FILAIRE:
case SKETCH:
set_current_line_width(-1);
circle(pos, diametre-current_pen_width, NO_FILL);
set_current_line_width( -1 );
circle( pos, diametre - current_pen_width, NO_FILL );
break;
case FILLED:
user_to_device_coordinates( pos );
select_aperture(size, Aperture::Circle);
select_aperture( size, Aperture::Circle );
fprintf( output_file, "X%5.5dY%5.5dD03*\n", pos.x, pos.y );
break;
}
}
void Gerber_Plotter::flash_pad_oval(wxPoint pos, wxSize size, int orient,
GRTraceMode trace_mode)
void Gerber_Plotter::flash_pad_oval( wxPoint pos, wxSize size, int orient,
GRTraceMode trace_mode )
/* Trace 1 pastille PAD_OVAL en position pos_X,Y:
* dimensions dx, dy,
* orientation orient
......@@ -344,17 +371,17 @@ void Gerber_Plotter::flash_pad_oval(wxPoint pos, wxSize size, int orient,
* Pour une orientation quelconque la forme est tracee comme un segment
*/
{
wxASSERT(output_file);
wxASSERT( output_file );
int x0, y0, x1, y1, delta;
/* Trace de la forme flashee */
if(( orient == 0 || orient == 900 || orient == 1800 || orient == 2700 )
&& trace_mode == FILLED)
if( ( orient == 0 || orient == 900 || orient == 1800 || orient == 2700 )
&& trace_mode == FILLED )
{
if( orient == 900 || orient == 2700 ) /* orient tournee de 90 deg */
EXCHG( size.x, size.y );
user_to_device_coordinates( pos );
select_aperture(size, Aperture::Oval);
select_aperture( size, Aperture::Oval );
fprintf( output_file, "X%5.5dY%5.5dD03*\n", pos.x, pos.y );
}
else /* Forme tracee comme un segment */
......@@ -367,7 +394,7 @@ void Gerber_Plotter::flash_pad_oval(wxPoint pos, wxSize size, int orient,
else
orient -= 2700;
}
if (trace_mode == FILLED)
if( trace_mode == FILLED )
{
/* la pastille est ramenee a une pastille ovale avec dy > dx */
delta = size.y - size.x;
......@@ -380,20 +407,23 @@ void Gerber_Plotter::flash_pad_oval(wxPoint pos, wxSize size, int orient,
thick_segment( wxPoint( pos.x + x0, pos.y + y0 ),
wxPoint( pos.x + x1, pos.y + y1 ),
size.x, trace_mode );
} else
sketch_oval(pos, size, orient, -1);
}
else
sketch_oval( pos, size, orient, -1 );
}
}
void Gerber_Plotter::flash_pad_rect(wxPoint pos, wxSize size,
int orient, GRTraceMode trace_mode)
void Gerber_Plotter::flash_pad_rect( wxPoint pos, wxSize size,
int orient, GRTraceMode trace_mode )
/* Plot 1 rectangular pad
* donne par son centre, ses dimensions, et son orientation
* For a vertical or horizontal shape, the shape is an aperture (Dcode) and it is flashed
* For others orientations the shape is plotted as a polygon
*/
{
wxASSERT(output_file);
wxASSERT( output_file );
/* Trace de la forme flashee */
switch( orient )
{
......@@ -405,22 +435,25 @@ void Gerber_Plotter::flash_pad_rect(wxPoint pos, wxSize size,
case 0:
case 1800:
switch (trace_mode) {
switch( trace_mode )
{
case FILAIRE:
case SKETCH:
set_current_line_width(-1);
rect(wxPoint(pos.x-(size.x-current_pen_width)/2,
pos.y-(size.y-current_pen_width)/2),
wxPoint(pos.x+(size.x-current_pen_width)/2,
pos.y+(size.y-current_pen_width)/2),
NO_FILL);
set_current_line_width( -1 );
rect( wxPoint( pos.x - (size.x - current_pen_width) / 2,
pos.y - (size.y - current_pen_width) / 2 ),
wxPoint( pos.x + (size.x - current_pen_width) / 2,
pos.y + (size.y - current_pen_width) / 2 ),
NO_FILL );
break;
case FILLED:
user_to_device_coordinates( pos );
select_aperture(size, Aperture::Rect);
select_aperture( size, Aperture::Rect );
fprintf( output_file, "X%5.5dY%5.5dD03*\n", pos.x, pos.y );
break;
}
break;
default: /* plot pad shape as polygon */
......@@ -429,8 +462,10 @@ void Gerber_Plotter::flash_pad_rect(wxPoint pos, wxSize size,
}
}
void Gerber_Plotter::flash_pad_trapez(wxPoint pos, wxSize size, wxSize delta,
int orient, GRTraceMode trace_mode)
void Gerber_Plotter::flash_pad_trapez( wxPoint pos, wxSize size, wxSize delta,
int orient, GRTraceMode trace_mode )
/* Trace 1 pad trapezoidal donne par :
* son centre pos.x,pos.y
* ses dimensions size.x et size.y
......@@ -472,7 +507,7 @@ void Gerber_Plotter::flash_pad_trapez(wxPoint pos, wxSize size, wxSize delta,
* " 1 "
*/
{
wxASSERT(output_file);
wxASSERT( output_file );
int ii, jj;
int dx, dy;
wxPoint polygon[4]; /* polygon corners */
......@@ -507,10 +542,10 @@ void Gerber_Plotter::flash_pad_trapez(wxPoint pos, wxSize size, wxSize delta,
coord[jj] = polygon[ii].y += pos.y;
jj++;
}
coord[8]=coord[0];
coord[9]=coord[1];
set_current_line_width(-1);
poly( 5, coord, trace_mode==FILLED?FILLED_SHAPE:NO_FILL );
}
coord[8] = coord[0];
coord[9] = coord[1];
set_current_line_width( -1 );
poly( 5, coord, trace_mode==FILLED ? FILLED_SHAPE : NO_FILL );
}
......@@ -17,17 +17,17 @@
#include "protos.h"
/* Local Variables : */
static void Plot_Hierarchical_PIN_Sheet(Plotter *plotter,
static void Plot_Hierarchical_PIN_Sheet( Plotter* plotter,
Hierarchical_PIN_Sheet_Struct* Struct );
static void PlotTextField(Plotter *plotter, SCH_COMPONENT* DrawLibItem,
static void PlotTextField( Plotter* plotter, SCH_COMPONENT* DrawLibItem,
int FieldNumber, int IsMulti, int DrawMode );
static void PlotPinSymbol(Plotter *plotter, const wxPoint& pos,
static void PlotPinSymbol( Plotter* plotter, const wxPoint& pos,
int len, int orient, int Shape );
/***/
/**********************************************************/
static void PlotNoConnectStruct(Plotter *plotter, DrawNoConnectStruct* Struct )
static void PlotNoConnectStruct( Plotter* plotter, DrawNoConnectStruct* Struct )
/**********************************************************/
/* Routine de dessin des symboles de "No Connexion" ..
......@@ -47,7 +47,7 @@ static void PlotNoConnectStruct(Plotter *plotter, DrawNoConnectStruct* Struct )
/*************************************************/
static void PlotLibPart(Plotter *plotter, SCH_COMPONENT* DrawLibItem )
static void PlotLibPart( Plotter* plotter, SCH_COMPONENT* DrawLibItem )
/*************************************************/
/* Polt a component */
{
......@@ -65,7 +65,7 @@ static void PlotLibPart(Plotter *plotter, SCH_COMPONENT* DrawLibItem )
Multi = DrawLibItem->m_Multi;
convert = DrawLibItem->m_Convert;
for(LibEDA_BaseStruct* DEntry = Entry->m_Drawings;
for( LibEDA_BaseStruct* DEntry = Entry->m_Drawings;
DEntry != NULL; DEntry = DEntry->Next() )
{
/* Elimination des elements non relatifs a l'unite */
......@@ -167,7 +167,7 @@ static void PlotLibPart(Plotter *plotter, SCH_COMPONENT* DrawLibItem )
pos = TransformCoordinate( TransMat, Pin->m_Pos ) + DrawLibItem->m_Pos;
/* Dessin de la pin et du symbole special associe */
PlotPinSymbol(plotter, pos, Pin->m_PinLen, orient, Pin->m_PinShape );
PlotPinSymbol( plotter, pos, Pin->m_PinLen, orient, Pin->m_PinShape );
int thickness = g_DrawDefaultLineThickness;
Pin->PlotPinTexts( plotter, pos, orient,
Entry->m_TextInside,
......@@ -180,7 +180,7 @@ static void PlotLibPart(Plotter *plotter, SCH_COMPONENT* DrawLibItem )
{
LibDrawPolyline* polyline = (LibDrawPolyline*) DEntry;
Poly = (int*) MyMalloc( sizeof(int) * 2 * polyline->GetCornerCount() );
for(ii = 0; ii < (int) polyline->GetCornerCount(); ii++ )
for( ii = 0; ii < (int) polyline->GetCornerCount(); ii++ )
{
pos = polyline->m_PolyPoints[ii];
pos = TransformCoordinate( TransMat, pos ) + DrawLibItem->m_Pos;
......@@ -238,23 +238,23 @@ static void PlotLibPart(Plotter *plotter, SCH_COMPONENT* DrawLibItem )
if( (Entry->m_Prefix.m_Attributs & TEXT_NO_VISIBLE) == 0 )
{
if( Entry->m_UnitCount > 1 )
PlotTextField(plotter, DrawLibItem, REFERENCE, 1, 0 );
PlotTextField( plotter, DrawLibItem, REFERENCE, 1, 0 );
else
PlotTextField(plotter, DrawLibItem, REFERENCE, 0, 0 );
PlotTextField( plotter, DrawLibItem, REFERENCE, 0, 0 );
}
if( (Entry->m_Name.m_Attributs & TEXT_NO_VISIBLE) == 0 )
PlotTextField(plotter, DrawLibItem, VALUE, 0, 0 );
PlotTextField( plotter, DrawLibItem, VALUE, 0, 0 );
for( ii = 2; ii < NUMBER_OF_FIELDS; ii++ )
{
PlotTextField(plotter, DrawLibItem, ii, 0, 0 );
PlotTextField( plotter, DrawLibItem, ii, 0, 0 );
}
}
/*************************************************************/
static void PlotTextField( Plotter *plotter, SCH_COMPONENT* DrawLibItem,
static void PlotTextField( Plotter* plotter, SCH_COMPONENT* DrawLibItem,
int FieldNumber, int IsMulti, int DrawMode )
/**************************************************************/
......@@ -402,7 +402,7 @@ static void PlotTextField( Plotter *plotter, SCH_COMPONENT* DrawLibItem,
/**************************************************************************/
static void PlotPinSymbol(Plotter *plotter, const wxPoint& pos,
static void PlotPinSymbol( Plotter* plotter, const wxPoint& pos,
int len, int orient, int Shape )
/**************************************************************************/
......@@ -448,7 +448,7 @@ static void PlotPinSymbol(Plotter *plotter, const wxPoint& pos,
-1 ); // width
plotter->move_to( wxPoint( MapX1 * INVERT_PIN_RADIUS * 2 + x1,
MapY1 * INVERT_PIN_RADIUS * 2 + y1 ));
MapY1 * INVERT_PIN_RADIUS * 2 + y1 ) );
plotter->finish_to( pos );
}
else
......@@ -509,7 +509,7 @@ static void PlotPinSymbol(Plotter *plotter, const wxPoint& pos,
/*******************************************/
static void PlotTextStruct(Plotter *plotter, EDA_BaseStruct* Struct )
static void PlotTextStruct( Plotter* plotter, EDA_BaseStruct* Struct )
/*******************************************/
/*
......@@ -561,7 +561,6 @@ static void PlotTextStruct(Plotter *plotter, EDA_BaseStruct* Struct )
delete (list);
}
else
plotter->text( textpos,
color, schText->m_Text, schText->m_Orient, schText->m_Size,
......@@ -583,7 +582,7 @@ static void PlotTextStruct(Plotter *plotter, EDA_BaseStruct* Struct )
/*****************************************************************************************/
static void Plot_Hierarchical_PIN_Sheet(Plotter *plotter,
static void Plot_Hierarchical_PIN_Sheet( Plotter* plotter,
Hierarchical_PIN_Sheet_Struct* aHierarchical_PIN )
/****************************************************************************************/
......@@ -612,8 +611,12 @@ static void Plot_Hierarchical_PIN_Sheet(Plotter *plotter,
side = GR_TEXT_HJUSTIFY_LEFT;
}
int thickness = (aHierarchical_PIN->m_Width == 0) ? g_DrawDefaultLineThickness : aHierarchical_PIN->m_Width;
thickness = Clamp_Text_PenSize( thickness, aHierarchical_PIN->m_Size, aHierarchical_PIN->m_Bold );
int thickness =
(aHierarchical_PIN->m_Width ==
0) ? g_DrawDefaultLineThickness : aHierarchical_PIN->m_Width;
thickness = Clamp_Text_PenSize( thickness,
aHierarchical_PIN->m_Size,
aHierarchical_PIN->m_Bold );
plotter->set_current_line_width( thickness );
plotter->text( wxPoint( tposx, posy ), txtcolor,
......@@ -629,7 +632,7 @@ static void Plot_Hierarchical_PIN_Sheet(Plotter *plotter,
/*************************************************/
static void PlotSheetStruct(Plotter *plotter, DrawSheetStruct* Struct )
static void PlotSheetStruct( Plotter* plotter, DrawSheetStruct* Struct )
/*************************************************/
/* Routine de dessin du bloc type hierarchie */
{
......@@ -691,13 +694,14 @@ static void PlotSheetStruct(Plotter *plotter, DrawSheetStruct* Struct )
while( SheetLabelStruct != NULL )
{
Plot_Hierarchical_PIN_Sheet(plotter, SheetLabelStruct );
Plot_Hierarchical_PIN_Sheet( plotter, SheetLabelStruct );
SheetLabelStruct = SheetLabelStruct->Next();
}
}
/*************************************************/
void PlotDrawlist(Plotter *plotter, SCH_ITEM* drawlist )
void PlotDrawlist( Plotter* plotter, SCH_ITEM* drawlist )
/*************************************************/
{
while( drawlist ) /* tracage */
......@@ -718,30 +722,28 @@ void PlotDrawlist(Plotter *plotter, SCH_ITEM* drawlist )
case DRAW_SEGMENT_STRUCT_TYPE:
#undef STRUCT
#define STRUCT ( (EDA_DrawLineStruct*) drawlist )
if( drawlist->Type() == DRAW_SEGMENT_STRUCT_TYPE )
{
StartPos = STRUCT->m_Start;
EndPos = STRUCT->m_End;
layer = STRUCT->GetLayer();
}
plotter->set_color( ReturnLayerColor( layer ) );
switch( layer )
{
case LAYER_NOTES: /* Trace en pointilles */
plotter->set_current_line_width( g_DrawDefaultLineThickness );
plotter->set_dash(true);
plotter->set_dash( true );
plotter->move_to( StartPos );
plotter->finish_to( EndPos );
plotter->set_dash(false);
plotter->set_dash( false );
break;
case LAYER_BUS: /* Trait large */
{
int thickness = wxRound( g_DrawDefaultLineThickness * 2 );
if ( thickness < 3 ) thickness = 3;
if( thickness < 3 )
thickness = 3;
/* We NEED it to be thick, even on HPGL */
plotter->thick_segment(StartPos, EndPos, thickness, FILLED);
plotter->thick_segment( StartPos, EndPos, thickness, FILLED );
plotter->set_current_line_width( g_DrawDefaultLineThickness );
}
break;
......@@ -752,6 +754,7 @@ void PlotDrawlist(Plotter *plotter, SCH_ITEM* drawlist )
plotter->finish_to( EndPos );
break;
}
break;
case DRAW_JUNCTION_STRUCT_TYPE:
......@@ -765,12 +768,12 @@ void PlotDrawlist(Plotter *plotter, SCH_ITEM* drawlist )
case TYPE_SCH_LABEL:
case TYPE_SCH_GLOBALLABEL:
case TYPE_SCH_HIERLABEL:
PlotTextStruct(plotter, drawlist );
PlotTextStruct( plotter, drawlist );
break;
case TYPE_SCH_COMPONENT:
DrawLibItem = (SCH_COMPONENT*) drawlist;
PlotLibPart(plotter, DrawLibItem );
PlotLibPart( plotter, DrawLibItem );
break;
case DRAW_PICK_ITEM_STRUCT_TYPE:
......@@ -788,14 +791,14 @@ void PlotDrawlist(Plotter *plotter, SCH_ITEM* drawlist )
case DRAW_SHEET_STRUCT_TYPE:
#undef STRUCT
#define STRUCT ( (DrawSheetStruct*) drawlist )
PlotSheetStruct(plotter, STRUCT );
PlotSheetStruct( plotter, STRUCT );
break;
case DRAW_NOCONNECT_STRUCT_TYPE:
#undef STRUCT
#define STRUCT ( (DrawNoConnectStruct*) drawlist )
plotter->set_color( ReturnLayerColor( LAYER_NOCONNECT ) );
PlotNoConnectStruct(plotter, STRUCT );
PlotNoConnectStruct( plotter, STRUCT );
break;
default:
......@@ -804,4 +807,3 @@ void PlotDrawlist(Plotter *plotter, SCH_ITEM* drawlist )
drawlist = drawlist->Next();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment