Fioxed issues in 3D viewer. Added patch for orthographic 3D view

This commit is contained in:
jean-pierre charras 2010-10-04 15:00:34 +02:00
commit f3922c4c31
36 changed files with 144 additions and 102 deletions

View File

@ -57,6 +57,7 @@ Pcb3D_GLCanvas::Pcb3D_GLCanvas( WinEDA3D_DrawFrame* parent ) :
m_init = FALSE; m_init = FALSE;
m_gllist = 0; m_gllist = 0;
m_Parent = parent; m_Parent = parent;
m_ortho = false;
#if wxCHECK_VERSION( 2, 9, 0 ) #if wxCHECK_VERSION( 2, 9, 0 )
@ -498,32 +499,44 @@ void Pcb3D_GLCanvas::InitGL()
glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA ); glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
} }
/* set viewing projection */ // set viewing projection
// Ratio width / height of the window display
double ratio_HV = (double) size.x / size.y;
glMatrixMode( GL_PROJECTION ); glMatrixMode( GL_PROJECTION );
glLoadIdentity(); glLoadIdentity();
#define MAX_VIEW_ANGLE 160.0 / 45.0 #define MAX_VIEW_ANGLE 160.0 / 45.0
if( g_Parm_3D_Visu.m_Zoom > MAX_VIEW_ANGLE ) if( g_Parm_3D_Visu.m_Zoom > MAX_VIEW_ANGLE )
g_Parm_3D_Visu.m_Zoom = MAX_VIEW_ANGLE; g_Parm_3D_Visu.m_Zoom = MAX_VIEW_ANGLE;
if( ModeIsOrtho() )
{
// OrthoReductionFactor is chosen so as to provide roughly the same size as Perspective View
const double orthoReductionFactor = 400/g_Parm_3D_Visu.m_Zoom;
// Initialize Projection Matrix for Ortographic View
glOrtho(-size.x/orthoReductionFactor, size.x/orthoReductionFactor, -size.y/orthoReductionFactor, size.y/orthoReductionFactor, 1, 10);
}
else
{
// Ratio width / height of the window display
double ratio_HV = (double) size.x / size.y;
// Initialize Projection Matrix for Perspective View
gluPerspective( 45.0 * g_Parm_3D_Visu.m_Zoom, ratio_HV, 1, 10 ); gluPerspective( 45.0 * g_Parm_3D_Visu.m_Zoom, ratio_HV, 1, 10 );
}
// glFrustum(-1., 1.1F, -1.1F, 1.1F, ZBottom, ZTop);
/* position viewer */ // position viewer
glMatrixMode( GL_MODELVIEW ); glMatrixMode( GL_MODELVIEW );
glLoadIdentity(); glLoadIdentity();
glTranslatef( 0.0F, 0.0F, -( ZBottom + ZTop) / 2 ); glTranslatef( 0.0F, 0.0F, -( ZBottom + ZTop) / 2 );
/* clear color and depth buffers */ // clear color and depth buffers
glClearColor( g_Parm_3D_Visu.m_BgColor.m_Red, glClearColor( g_Parm_3D_Visu.m_BgColor.m_Red,
g_Parm_3D_Visu.m_BgColor.m_Green, g_Parm_3D_Visu.m_BgColor.m_Green,
g_Parm_3D_Visu.m_BgColor.m_Blue, 1 ); g_Parm_3D_Visu.m_BgColor.m_Blue, 1 );
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
/* Setup light souces: */ // Setup light souces:
SetLights(); SetLights();
} }
@ -582,17 +595,7 @@ void Pcb3D_GLCanvas::TakeScreenshot( wxCommandEvent& event )
return; return;
} }
Redraw( true );
wxSize image_size = GetClientSize(); wxSize image_size = GetClientSize();
#ifndef __WXMAC__
wxClientDC dc( this );
wxBitmap bitmap( image_size.x, image_size.y );
wxMemoryDC memdc;
memdc.SelectObject( bitmap );
memdc.Blit( 0, 0, image_size.x, image_size.y, &dc, 0, 0 );
memdc.SelectObject( wxNullBitmap );
#else
struct vieport_params struct vieport_params
{ {
GLint originx; GLint originx;
@ -601,6 +604,7 @@ void Pcb3D_GLCanvas::TakeScreenshot( wxCommandEvent& event )
GLint y; GLint y;
} viewport; } viewport;
// Build image from the 3D buffer
wxWindowUpdateLocker noUpdates( this ); wxWindowUpdateLocker noUpdates( this );
glGetIntegerv( GL_VIEWPORT, (GLint*) &viewport ); glGetIntegerv( GL_VIEWPORT, (GLint*) &viewport );
@ -610,27 +614,18 @@ void Pcb3D_GLCanvas::TakeScreenshot( wxCommandEvent& event )
glPixelStorei( GL_PACK_ALIGNMENT, 1 ); glPixelStorei( GL_PACK_ALIGNMENT, 1 );
glReadBuffer( GL_BACK_LEFT ); glReadBuffer( GL_BACK_LEFT );
glReadPixels( viewport.originx, glReadPixels( viewport.originx, viewport.originy,
viewport.originy, viewport.x, viewport.y,
viewport.x, GL_RGB, GL_UNSIGNED_BYTE, pixelbuffer );
viewport.y, glReadPixels( viewport.originx, viewport.originy,
GL_RGB, viewport.x, viewport.y,
GL_UNSIGNED_BYTE, GL_ALPHA, GL_UNSIGNED_BYTE, alphabuffer );
pixelbuffer );
glReadPixels( viewport.originx,
viewport.originy,
viewport.x,
viewport.y,
GL_ALPHA,
GL_UNSIGNED_BYTE,
alphabuffer );
image.SetData( pixelbuffer ); image.SetData( pixelbuffer );
image.SetAlpha( alphabuffer ); image.SetAlpha( alphabuffer );
image = image.Mirror( false ); image = image.Mirror( false );
wxBitmap bitmap( image ); wxBitmap bitmap( image );
#endif
if( event.GetId() == ID_TOOL_SCREENCOPY_TOCLIBBOARD ) if( event.GetId() == ID_TOOL_SCREENCOPY_TOCLIBBOARD )
{ {

View File

@ -293,6 +293,10 @@ void WinEDA3D_DrawFrame::Process_Special_Functions( wxCommandEvent& event )
m_Canvas->SetView3D( WXK_DOWN ); m_Canvas->SetView3D( WXK_DOWN );
return; return;
case ID_ORTHO:
m_Canvas->ToggleOrtho();
return;
case ID_TOOL_SCREENCOPY_TOCLIBBOARD: case ID_TOOL_SCREENCOPY_TOCLIBBOARD:
case ID_MENU_SCREENCOPY_PNG: case ID_MENU_SCREENCOPY_PNG:
case ID_MENU_SCREENCOPY_JPEG: case ID_MENU_SCREENCOPY_JPEG:

View File

@ -2,12 +2,6 @@
// Name: 3d_read_mesh.cpp // Name: 3d_read_mesh.cpp
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation
#pragma interface
#endif
#include "fctsys.h" #include "fctsys.h"
#include "common.h" #include "common.h"
#include "macros.h" #include "macros.h"
@ -417,7 +411,7 @@ int S3D_MASTER::ReadGeometry( FILE* file, int* LineNum )
int coord_number; int coord_number;
double* buf_points = ReadCoordsList( file, line, &coord_number, double* buf_points = ReadCoordsList( file, line, &coord_number,
LineNum ); LineNum );
continue; // Do something if needed
free( buf_points ); free( buf_points );
continue; continue;
} }
@ -445,7 +439,7 @@ int S3D_MASTER::ReadGeometry( FILE* file, int* LineNum )
int coord_number; int coord_number;
double* buf_points = ReadCoordsList( file, line, &coord_number, double* buf_points = ReadCoordsList( file, line, &coord_number,
LineNum ); LineNum );
continue; // Do something if needed
free( buf_points ); free( buf_points );
continue; continue;
} }

View File

@ -89,6 +89,11 @@ void WinEDA3D_DrawFrame::ReCreateHToolbar()
m_HToolBar->AddTool( ID_MOVE3D_DOWN, wxEmptyString, wxBitmap( down_xpm ), m_HToolBar->AddTool( ID_MOVE3D_DOWN, wxEmptyString, wxBitmap( down_xpm ),
_( "Move down" ) ); _( "Move down" ) );
m_HToolBar->AddSeparator();
m_HToolBar->AddTool( ID_ORTHO, wxEmptyString, wxBitmap( ortho_xpm ),
_( "Enable/Disable ortographic projection" ),
wxITEM_CHECK );
m_HToolBar->Realize(); m_HToolBar->Realize();
} }
@ -104,9 +109,9 @@ void WinEDA3D_DrawFrame::ReCreateMenuBar()
// If called from the display frame of cvpcb, only some options are // If called from the display frame of cvpcb, only some options are
// relevant // relevant
if( m_Parent->m_FrameName == wxT( "CmpFrame" ) ) // Called from cvpcb ! if( m_Parent->m_FrameName == wxT( "CmpFrame" ) )
full_options = false; // Do not display all // Called from cvpcb: do not display all options
// options full_options = false;
wxMenuBar* menuBar = new wxMenuBar; wxMenuBar* menuBar = new wxMenuBar;
@ -118,6 +123,13 @@ void WinEDA3D_DrawFrame::ReCreateMenuBar()
_( "Create Image (png format)" ) ); _( "Create Image (png format)" ) );
fileMenu->Append( ID_MENU_SCREENCOPY_JPEG, fileMenu->Append( ID_MENU_SCREENCOPY_JPEG,
_( "Create Image (jpeg format)" ) ); _( "Create Image (jpeg format)" ) );
#if (defined(__WINDOWS__) || defined(__APPLE__ ) )
// Does not work properly under linux
fileMenu->AppendSeparator();
fileMenu->Append( ID_TOOL_SCREENCOPY_TOCLIBBOARD,
_( "Copy 3D Image to Clipboard" ) );
#endif
fileMenu->AppendSeparator(); fileMenu->AppendSeparator();
fileMenu->Append( wxID_EXIT, _( "&Exit" ) ); fileMenu->Append( wxID_EXIT, _( "&Exit" ) );

View File

@ -53,6 +53,7 @@ enum id_3dview_frm
ID_MOVE3D_RIGHT, ID_MOVE3D_RIGHT,
ID_MOVE3D_UP, ID_MOVE3D_UP,
ID_MOVE3D_DOWN, ID_MOVE3D_DOWN,
ID_ORTHO,
ID_MENU3D_BGCOLOR_SELECTION, ID_MENU3D_BGCOLOR_SELECTION,
ID_MENU3D_AXIS_ONOFF, ID_MENU3D_AXIS_ONOFF,
ID_MENU3D_MODULE_ONOFF, ID_MENU3D_MODULE_ONOFF,
@ -137,6 +138,9 @@ public:
private: private:
bool m_init; bool m_init;
GLuint m_gllist; GLuint m_gllist;
/// Tracks whether to use Orthographic or Perspective projection
//TODO: Does this belong here, or in WinEDA3D_DrawFrame ???
bool m_ortho;
#if wxCHECK_VERSION( 2, 9, 0 ) #if wxCHECK_VERSION( 2, 9, 0 )
wxGLContext* m_glRC; wxGLContext* m_glRC;
#endif #endif
@ -182,6 +186,12 @@ public:
void Draw3D_DrawSegment( DRAWSEGMENT* segment ); void Draw3D_DrawSegment( DRAWSEGMENT* segment );
void Draw3D_DrawText( TEXTE_PCB* text ); void Draw3D_DrawText( TEXTE_PCB* text );
/// Toggles ortographic projection on and off
void ToggleOrtho(){ m_ortho = !m_ortho ; Refresh(true);};
/// Returns the orthographic projection flag
bool ModeIsOrtho() { return m_ortho ;};
//int Get3DLayerEnable(int act_layer); //int Get3DLayerEnable(int act_layer);
DECLARE_EVENT_TABLE() DECLARE_EVENT_TABLE()
@ -223,7 +233,7 @@ public:
/** function ReloadRequest /** function ReloadRequest
* must be called when reloading data from Pcbnew is needed * must be called when reloading data from Pcbnew is needed
* mainly after edition of the board or footprint beeing displayed. * mainly after edition of the board or footprint beeing displayed.
* mainly for the mudule editor. * mainly for the module editor.
*/ */
void ReloadRequest( ) void ReloadRequest( )
{ {

View File

@ -285,6 +285,7 @@ set(BITMAP_SRCS
Options_Vias.xpm Options_Vias.xpm
opt_show_polygon.xpm opt_show_polygon.xpm
Orient.xpm Orient.xpm
ortho.xpm
Pad_Sketch.xpm Pad_Sketch.xpm
pad.xpm pad.xpm
pads_mask_layers.xpm pads_mask_layers.xpm

21
bitmaps/ortho.xpm Normal file
View File

@ -0,0 +1,21 @@
/* XPM */
const char *ortho_xpm[]={
"16 15 2 1",
"# c #008080",
". c none",
"................",
"......####......",
".....######.....",
"....###..###....",
"....##....##....",
"...##......##...",
"...##......##...",
"...##......##...",
"...##......##...",
"...##......##...",
"....##....##....",
"....###..###....",
".....######.....",
"......####......",
"................"
};

View File

@ -15,7 +15,7 @@
/* Implement wxSize array for grid list implementation. */ /* Implement wxSize array for grid list implementation. */
#include <wx/arrimpl.cpp> #include <wx/arrimpl.cpp>
WX_DEFINE_OBJARRAY( GridArray ); WX_DEFINE_OBJARRAY( GridArray )
BASE_SCREEN* ActiveScreen = NULL; BASE_SCREEN* ActiveScreen = NULL;

View File

@ -44,7 +44,7 @@ ITEM_PICKER::ITEM_PICKER( EDA_BaseStruct* aItem, UndoRedoOpType aUndoRedoStatus
PICKED_ITEMS_LIST::PICKED_ITEMS_LIST() PICKED_ITEMS_LIST::PICKED_ITEMS_LIST()
{ {
m_Status = UR_UNSPECIFIED; m_Status = UR_UNSPECIFIED;
}; }
PICKED_ITEMS_LIST::~PICKED_ITEMS_LIST() PICKED_ITEMS_LIST::~PICKED_ITEMS_LIST()
{ {
@ -321,7 +321,7 @@ bool PICKED_ITEMS_LIST::SetPickerFlags( int aFlags, unsigned aIdx )
/** function RemovePicker /** function RemovePicker
* remùove one entry (one picker) from the list of picked items * rem<EFBFBD>ove one entry (one picker) from the list of picked items
* @param aIdx = index of the picker in the picked list * @param aIdx = index of the picker in the picked list
* @return true if ok, or false if did not exist * @return true if ok, or false if did not exist
*/ */

View File

@ -55,7 +55,7 @@
static inline double DegToRad( double deg ) static inline double DegToRad( double deg )
{ {
return (deg * M_PI) / 180.0; return (deg * M_PI) / 180.0;
}; }
wxString wxColStr( wxColour c ) wxString wxColStr( wxColour c )
{ {
@ -180,17 +180,17 @@ wxSVGFileDC::wxSVGFileDC( wxString f )
{ {
// quarter 640x480 screen display at 72 dpi // quarter 640x480 screen display at 72 dpi
Init( f, 320, 240, 72.0 ); Init( f, 320, 240, 72.0 );
}; }
wxSVGFileDC::wxSVGFileDC( wxString f, int Width, int Height ) wxSVGFileDC::wxSVGFileDC( wxString f, int Width, int Height )
{ {
Init( f, Width, Height, 72.0 ); Init( f, Width, Height, 72.0 );
}; }
wxSVGFileDC::wxSVGFileDC( wxString f, int Width, int Height, float dpi ) wxSVGFileDC::wxSVGFileDC( wxString f, int Width, int Height, float dpi )
{ {
Init( f, Width, Height, dpi ); Init( f, Width, Height, dpi );
}; }
wxSVGFileDC::~wxSVGFileDC() wxSVGFileDC::~wxSVGFileDC()
{ {
@ -217,7 +217,7 @@ void wxSVGFileDC::DoDrawLine( wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2 )
CalcBoundingBox( x1, y1 ); CalcBoundingBox( x1, y1 );
CalcBoundingBox( x2, y2 ); CalcBoundingBox( x2, y2 );
return; return;
}; }
void wxSVGFileDC::DoDrawLines( int n, wxPoint points[], wxCoord xoffset, wxCoord yoffset ) void wxSVGFileDC::DoDrawLines( int n, wxPoint points[], wxCoord xoffset, wxCoord yoffset )
{ {

View File

@ -26,7 +26,7 @@
#include <wx/arrimpl.cpp> #include <wx/arrimpl.cpp>
WX_DEFINE_OBJARRAY( Contributors ); WX_DEFINE_OBJARRAY( Contributors )
// Helper functions: // Helper functions:
static wxString HtmlHyperlink( const wxString& url, const wxString& description = wxEmptyString ); static wxString HtmlHyperlink( const wxString& url, const wxString& description = wxEmptyString );

View File

@ -63,7 +63,7 @@ enum DrawPinShape {
LOWLEVEL_IN = 4, LOWLEVEL_IN = 4,
LOWLEVEL_OUT = 8, LOWLEVEL_OUT = 8,
CLOCK_FALL = 0x10, /* this is common form for inverted clock in Eastern Block */ CLOCK_FALL = 0x10, /* this is common form for inverted clock in Eastern Block */
NONLOGIC = 0x20, NONLOGIC = 0x20
}; };
@ -74,7 +74,7 @@ enum DrawPinOrient {
PIN_RIGHT = 'R', PIN_RIGHT = 'R',
PIN_LEFT = 'L', PIN_LEFT = 'L',
PIN_UP = 'U', PIN_UP = 'U',
PIN_DOWN = 'D', PIN_DOWN = 'D'
}; };

View File

@ -221,7 +221,7 @@ EDA_Rect SCH_JUNCTION::GetBoundingBox()
rect.Inflate( ( GetPenSize() + m_Size.x ) / 2 ); rect.Inflate( ( GetPenSize() + m_Size.x ) / 2 );
return rect; return rect;
}; }
/** Function HitTest /** Function HitTest

View File

@ -190,7 +190,7 @@ bool WinEDA_SchematicFrame::LoadOneEEProject( const wxString& FileName, bool IsN
{ {
wxString prompt; wxString prompt;
prompt.Printf( _( "Component library <%s> failed to load.\n\n\Error: %s" ), prompt.Printf( _( "Component library <%s> failed to load.\n\n Error: %s" ),
GetChars( fn.GetFullPath() ), GetChars( fn.GetFullPath() ),
GetChars( errMsg ) ); GetChars( errMsg ) );
DisplayError( this, prompt ); DisplayError( this, prompt );

View File

@ -279,7 +279,7 @@ another pin. Continue?" ) );
DrawPanel->CursorOn( DC ); DrawPanel->CursorOn( DC );
m_drawItem = NULL; m_drawItem = NULL;
}; }
/** /**

View File

@ -35,7 +35,7 @@ enum NumFieldType {
FIELD5, FIELD5,
FIELD6, FIELD6,
FIELD7, FIELD7,
FIELD8, FIELD8
}; };

View File

@ -54,7 +54,7 @@ enum AM_PRIMITIVE_ID {
AMP_OUTLINE = 4, // Free polyline (n corners + rotation) AMP_OUTLINE = 4, // Free polyline (n corners + rotation)
AMP_POLYGON = 5, // Closed regular polygon(diameter, number of vertices (3 to 10), rotation) AMP_POLYGON = 5, // Closed regular polygon(diameter, number of vertices (3 to 10), rotation)
AMP_MOIRE = 6, // A cross hair with n concentric circles + rotation AMP_MOIRE = 6, // A cross hair with n concentric circles + rotation
AMP_THERMAL = 7, // Thermal shape (pos, outer and inner diameter, cross hair thickness + rotation) AMP_THERMAL = 7 // Thermal shape (pos, outer and inner diameter, cross hair thickness + rotation)
}; };

View File

@ -65,7 +65,7 @@ enum Gerb_Interpolation
GERB_INTERPOL_LINEAR_01X, GERB_INTERPOL_LINEAR_01X,
GERB_INTERPOL_LINEAR_001X, GERB_INTERPOL_LINEAR_001X,
GERB_INTERPOL_ARC_NEG, GERB_INTERPOL_ARC_NEG,
GERB_INTERPOL_ARC_POS, GERB_INTERPOL_ARC_POS
}; };
@ -144,7 +144,7 @@ public:
FILE* m_FilesList[12]; // Files list FILE* m_FilesList[12]; // Files list
int m_FilesPtr; // Stack pointer for files list int m_FilesPtr; // Stack pointer for files list
int m_Selected_Tool; // Pour editions: Tool (Dcode) selectionné int m_Selected_Tool; // Pour editions: Tool (Dcode) selectionn<EFBFBD>
int m_Transform[2][2]; // The rotation/mirror transformation matrix. int m_Transform[2][2]; // The rotation/mirror transformation matrix.
bool m_360Arc_enbl; // Enbl 360 deg circular interpolation bool m_360Arc_enbl; // Enbl 360 deg circular interpolation

View File

@ -28,7 +28,7 @@ enum id_gerbview_frm
ID_INC_LAYER_AND_APPEND_FILE, ID_INC_LAYER_AND_APPEND_FILE,
ID_GERBVIEW_SHOW_SOURCE, ID_GERBVIEW_SHOW_SOURCE,
ID_GERBVIEW_EXPORT_TO_PCBNEW, ID_GERBVIEW_EXPORT_TO_PCBNEW,
ID_GERBVIEW_POPUP_DELETE_DCODE_ITEMS, ID_GERBVIEW_POPUP_DELETE_DCODE_ITEMS
}; };

View File

@ -19,7 +19,7 @@ enum id_app_type {
APP_TYPE_PCBNEW, APP_TYPE_PCBNEW,
APP_TYPE_CVPCB, APP_TYPE_CVPCB,
APP_TYPE_GERBVIEW, APP_TYPE_GERBVIEW,
APP_TYPE_KICAD, APP_TYPE_KICAD
}; };
class wxConfigBase; class wxConfigBase;
@ -227,6 +227,6 @@ public: WinEDA_App();
* of the application pointer all over the place or worse yet in a global * of the application pointer all over the place or worse yet in a global
* variable. * variable.
*/ */
DECLARE_APP( WinEDA_App ); DECLARE_APP( WinEDA_App )
#endif /* APPL_WXSTRUCT_H */ #endif /* APPL_WXSTRUCT_H */

View File

@ -544,7 +544,7 @@ enum FILL_T {
NO_FILL, // Poly, Square, Circle, Arc = option No Fill NO_FILL, // Poly, Square, Circle, Arc = option No Fill
FILLED_SHAPE, /* Poly, Square, Circle, Arc = option Fill FILLED_SHAPE, /* Poly, Square, Circle, Arc = option Fill
* with current color ("Solid shape") */ * with current color ("Solid shape") */
FILLED_WITH_BG_BODYCOLOR, /* Poly, Square, Circle, Arc = option Fill FILLED_WITH_BG_BODYCOLOR /* Poly, Square, Circle, Arc = option Fill
* with background body color, translucent * with background body color, translucent
* (texts inside this shape can be seen) * (texts inside this shape can be seen)
* not filled in B&W mode when plotting or * not filled in B&W mode when plotting or

View File

@ -93,6 +93,7 @@ extern const char* delete_xpm[];
extern const char* directory_xpm[]; extern const char* directory_xpm[];
extern const char* display_options_xpm[]; extern const char* display_options_xpm[];
extern const char* down_xpm[]; extern const char* down_xpm[];
extern const char* ortho_xpm[];
extern const char* drag_module_xpm[]; extern const char* drag_module_xpm[];
extern const char* drag_outline_segment_xpm[]; extern const char* drag_outline_segment_xpm[];
extern const char* drag_pad_xpm[]; extern const char* drag_pad_xpm[];

View File

@ -65,7 +65,7 @@ enum DSN_SYNTAX_T {
DSN_RIGHT = -4, // right bracket, ')' DSN_RIGHT = -4, // right bracket, ')'
DSN_LEFT = -3, // left bracket, '(' DSN_LEFT = -3, // left bracket, '('
DSN_STRING = -2, // a quoted string, stripped of the quotes DSN_STRING = -2, // a quoted string, stripped of the quotes
DSN_EOF = -1, // special case for end of file DSN_EOF = -1 // special case for end of file
}; };

View File

@ -102,18 +102,18 @@ static inline const wxChar* GetChars( const wxString& s )
#include "boost/typeof/typeof.hpp" #include "boost/typeof/typeof.hpp"
// we have to register the types used with the typeof keyword with boost // we have to register the types used with the typeof keyword with boost
BOOST_TYPEOF_REGISTER_TYPE( wxPoint ); BOOST_TYPEOF_REGISTER_TYPE( wxPoint )
BOOST_TYPEOF_REGISTER_TYPE( wxSize ); BOOST_TYPEOF_REGISTER_TYPE( wxSize )
BOOST_TYPEOF_REGISTER_TYPE( wxString ); BOOST_TYPEOF_REGISTER_TYPE( wxString )
class DrawSheetLabelStruct; class DrawSheetLabelStruct;
BOOST_TYPEOF_REGISTER_TYPE( DrawSheetLabelStruct* ); BOOST_TYPEOF_REGISTER_TYPE( DrawSheetLabelStruct* )
class EDA_BaseStruct; class EDA_BaseStruct;
BOOST_TYPEOF_REGISTER_TYPE( EDA_BaseStruct* ); BOOST_TYPEOF_REGISTER_TYPE( EDA_BaseStruct* )
class D_PAD; class D_PAD;
BOOST_TYPEOF_REGISTER_TYPE( D_PAD* ); BOOST_TYPEOF_REGISTER_TYPE( D_PAD* )
BOOST_TYPEOF_REGISTER_TYPE( const D_PAD* ); BOOST_TYPEOF_REGISTER_TYPE( const D_PAD* )
class BOARD_ITEM; class BOARD_ITEM;
BOOST_TYPEOF_REGISTER_TYPE( BOARD_ITEM* ); BOOST_TYPEOF_REGISTER_TYPE( BOARD_ITEM* )
#define EXCHG( a, b ) { BOOST_TYPEOF( a ) __temp__ = (a); \ #define EXCHG( a, b ) { BOOST_TYPEOF( a ) __temp__ = (a); \
(a) = (b); \ (a) = (b); \
@ -136,7 +136,7 @@ static inline void ADD_MENUITEM( wxMenu* menu, int id,
#endif /* !defined( __WXMAC__ ) */ #endif /* !defined( __WXMAC__ ) */
menu->Append( l_item ); menu->Append( l_item );
}; }
static inline void ADD_MENUITEM_WITH_HELP( wxMenu* menu, int id, static inline void ADD_MENUITEM_WITH_HELP( wxMenu* menu, int id,
const wxString& text, const wxString& text,
@ -152,7 +152,7 @@ static inline void ADD_MENUITEM_WITH_HELP( wxMenu* menu, int id,
#endif /* !defined( __WXMAC__ ) */ #endif /* !defined( __WXMAC__ ) */
menu->Append( l_item ); menu->Append( l_item );
}; }
#ifdef __WINDOWS__ #ifdef __WINDOWS__
static inline void ADD_MENUITEM_WITH_SUBMENU( wxMenu* menu, wxMenu* submenu, static inline void ADD_MENUITEM_WITH_SUBMENU( wxMenu* menu, wxMenu* submenu,
@ -198,7 +198,7 @@ static inline void ADD_MENUITEM_WITH_SUBMENU( wxMenu* menu, wxMenu* submenu,
#endif /* !defined( __WXMAC__ ) */ #endif /* !defined( __WXMAC__ ) */
menu->Append( l_item ); menu->Append( l_item );
}; }
static inline void ADD_MENUITEM_WITH_HELP_AND_SUBMENU( wxMenu* menu, static inline void ADD_MENUITEM_WITH_HELP_AND_SUBMENU( wxMenu* menu,
wxMenu* submenu, wxMenu* submenu,
@ -217,7 +217,7 @@ static inline void ADD_MENUITEM_WITH_HELP_AND_SUBMENU( wxMenu* menu,
#endif /* !defined( __WXMAC__ ) */ #endif /* !defined( __WXMAC__ ) */
menu->Append( l_item ); menu->Append( l_item );
}; }
#endif #endif

View File

@ -21,7 +21,7 @@ enum paramcfg_id
PARAM_LIBNAME_LIST, PARAM_LIBNAME_LIST,
PARAM_WXSTRING, PARAM_WXSTRING,
PARAM_COMMAND_ERASE, PARAM_COMMAND_ERASE,
PARAM_FIELDNAME_LIST, PARAM_FIELDNAME_LIST
}; };
#define MAX_COLOR 0x8001F #define MAX_COLOR 0x8001F

View File

@ -480,7 +480,7 @@ public:
int aPrintMask, bool aPrintMirrorMode, int aPrintMask, bool aPrintMirrorMode,
void * aData = NULL); void * aData = NULL);
DECLARE_EVENT_TABLE(); DECLARE_EVENT_TABLE()
}; };

View File

@ -28,7 +28,7 @@ RIGHT_KM_FRAME::RIGHT_KM_FRAME( WinEDA_MainFrame* parent ) :
wxDefaultPosition, wxDefaultSize, wxDefaultPosition, wxDefaultSize,
wxTE_MULTILINE | wxSUNKEN_BORDER | wxTE_READONLY ); wxTE_MULTILINE | wxSUNKEN_BORDER | wxTE_READONLY );
}; }
void RIGHT_KM_FRAME::OnSize( wxSizeEvent& event ) void RIGHT_KM_FRAME::OnSize( wxSizeEvent& event )
{ {

View File

@ -50,7 +50,7 @@ enum id_kicad_frm {
ID_SELECT_PREFERED_PDF_BROWSER, ID_SELECT_PREFERED_PDF_BROWSER,
ID_SELECT_DEFAULT_PDF_BROWSER, ID_SELECT_DEFAULT_PDF_BROWSER,
ID_SAVE_AND_ZIP_FILES, ID_SAVE_AND_ZIP_FILES,
ID_READ_ZIP_ARCHIVE, ID_READ_ZIP_ARCHIVE
}; };
@ -133,7 +133,7 @@ enum TreeFileType {
TREE_NET, TREE_NET,
TREE_UNKNOWN, TREE_UNKNOWN,
TREE_DIRECTORY, TREE_DIRECTORY,
TREE_MAX, TREE_MAX
}; };
/** class RIGHT_KM_FRAME /** class RIGHT_KM_FRAME

View File

@ -44,7 +44,7 @@ public:
}; };
WX_DECLARE_LIST( cmp, CmpList ); WX_DECLARE_LIST( cmp, CmpList );
WX_DEFINE_LIST( CmpList ); WX_DEFINE_LIST( CmpList )
void WinEDA_PcbFrame::RecreateBOMFileFromBoard( wxCommandEvent& aEvent ) void WinEDA_PcbFrame::RecreateBOMFileFromBoard( wxCommandEvent& aEvent )
{ {

View File

@ -204,9 +204,12 @@ void WinEDA_PcbFrame::Remove_One_Track( wxDC* DC, TRACK* pt_segm )
next_track = tracksegment->Next(); next_track = tracksegment->Next();
tracksegment->SetState( BUSY, OFF ); tracksegment->SetState( BUSY, OFF );
D( printf( "%s: track %p status=\"%s\"\n", __func__, tracksegment, //D( printf( "%s: track %p status=\"%s\"\n", __func__, tracksegment,
CONV_TO_UTF8( TRACK::ShowState( tracksegment->GetState( -1 ) ) ) // CONV_TO_UTF8( TRACK::ShowState( tracksegment->GetState( -1 ) ) )
); ) // ); )
D( std::cout<<__func__<<": track "<<tracksegment<<" status=" \
<<CONV_TO_UTF8( TRACK::ShowState( tracksegment->GetState( -1 ) ) ) \
<<std::endl;)
GetBoard()->m_Track.Remove( tracksegment ); GetBoard()->m_Track.Remove( tracksegment );

View File

@ -52,7 +52,7 @@ enum {
GRID_VIASIZE, GRID_VIASIZE,
GRID_VIADRILL, GRID_VIADRILL,
GRID_uVIASIZE, GRID_uVIASIZE,
GRID_uVIADRILL, GRID_uVIADRILL
}; };
const wxString DIALOG_DESIGN_RULES::wildCard = _( "* (Any)" ); const wxString DIALOG_DESIGN_RULES::wildCard = _( "* (Any)" );

View File

@ -477,7 +477,7 @@ enum DSN_T {
T_write_resolution, T_write_resolution,
T_x, T_x,
T_xy, T_xy,
T_y, T_y
}; };

View File

@ -86,7 +86,8 @@ int WinEDA_PcbFrame::EraseRedundantTrack(
/* Flags for cleaning the net. */ /* Flags for cleaning the net. */
for( pt_del = BufDeb; pt_del; pt_del = pt_del->Next() ) for( pt_del = BufDeb; pt_del; pt_del = pt_del->Next() )
{ {
D( printf( "track %p turning off BUSY | EDIT | CHAIN\n", pt_del ); ) //D( printf( "track %p turning off BUSY | EDIT | CHAIN\n", pt_del ); )
D( std::cout<<"track "<<pt_del<<" turning off BUSY | EDIT | CHAIN"<<std::endl; )
pt_del->SetState( BUSY | EDIT | CHAIN, OFF ); pt_del->SetState( BUSY | EDIT | CHAIN, OFF );
if( pt_del == BufEnd ) // Last segment reached if( pt_del == BufEnd ) // Last segment reached
break; break;

View File

@ -1193,7 +1193,7 @@ void CPolyLine::Hatch()
if( GetClosed() ) // If not closed, the poly is beeing created and not finalised. Not not hatch if( GetClosed() ) // If not closed, the poly is beeing created and not finalised. Not not hatch
{ {
enum { enum {
MAXPTS = 100, MAXPTS = 100
}; };
int xx[MAXPTS], yy[MAXPTS]; int xx[MAXPTS], yy[MAXPTS];

View File

@ -164,13 +164,13 @@ void Bool_Engine::error( string text, string title )
Write_Log( "FATAL ERROR: ", title ); Write_Log( "FATAL ERROR: ", title );
Write_Log( "FATAL ERROR: ", text ); Write_Log( "FATAL ERROR: ", text );
throw Bool_Engine_Error( " Fatal Error", "Fatal Error", 9, 1 ); throw Bool_Engine_Error( " Fatal Error", "Fatal Error", 9, 1 );
}; }
void Bool_Engine::info( string text, string title ) void Bool_Engine::info( string text, string title )
{ {
Write_Log( "FATAL ERROR: ", title ); Write_Log( "FATAL ERROR: ", title );
Write_Log( "FATAL ERROR: ", text ); Write_Log( "FATAL ERROR: ", text );
}; }
void Bool_Engine::SetMarge( double marge ) void Bool_Engine::SetMarge( double marge )
{ {

View File

@ -88,7 +88,7 @@ kbGraph::~kbGraph()
kbLink* kbGraph::GetFirstLink() kbLink* kbGraph::GetFirstLink()
{ {
return ( kbLink* ) _linklist->headitem(); return ( kbLink* ) _linklist->headitem();
}; }
void kbGraph::Prepare( int intersectionruns ) void kbGraph::Prepare( int intersectionruns )
@ -2275,7 +2275,7 @@ void kbGraph::Make_Rounded_Shape( kbLink* a_link, double factor )
// make a link between the last and the first to close the graph // make a link between the last and the first to close the graph
AddLink( _last_ins, _first ); AddLink( _last_ins, _first );
}; }
//make the graph clockwise orientation, //make the graph clockwise orientation,
//return if the graph needed redirection //return if the graph needed redirection