Fioxed issues in 3D viewer. Added patch for orthographic 3D view
This commit is contained in:
commit
f3922c4c31
|
@ -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 )
|
||||||
{
|
{
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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" ) );
|
||||||
|
|
||||||
|
|
|
@ -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( )
|
||||||
{
|
{
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -0,0 +1,21 @@
|
||||||
|
/* XPM */
|
||||||
|
const char *ortho_xpm[]={
|
||||||
|
"16 15 2 1",
|
||||||
|
"# c #008080",
|
||||||
|
". c none",
|
||||||
|
"................",
|
||||||
|
"......####......",
|
||||||
|
".....######.....",
|
||||||
|
"....###..###....",
|
||||||
|
"....##....##....",
|
||||||
|
"...##......##...",
|
||||||
|
"...##......##...",
|
||||||
|
"...##......##...",
|
||||||
|
"...##......##...",
|
||||||
|
"...##......##...",
|
||||||
|
"....##....##....",
|
||||||
|
"....###..###....",
|
||||||
|
".....######.....",
|
||||||
|
"......####......",
|
||||||
|
"................"
|
||||||
|
};
|
|
@ -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;
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -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 )
|
||||||
{
|
{
|
||||||
|
|
|
@ -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 );
|
||||||
|
|
|
@ -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'
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 );
|
||||||
|
|
|
@ -279,7 +279,7 @@ another pin. Continue?" ) );
|
||||||
DrawPanel->CursorOn( DC );
|
DrawPanel->CursorOn( DC );
|
||||||
|
|
||||||
m_drawItem = NULL;
|
m_drawItem = NULL;
|
||||||
};
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -35,7 +35,7 @@ enum NumFieldType {
|
||||||
FIELD5,
|
FIELD5,
|
||||||
FIELD6,
|
FIELD6,
|
||||||
FIELD7,
|
FIELD7,
|
||||||
FIELD8,
|
FIELD8
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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 */
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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[];
|
||||||
|
|
|
@ -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
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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 )
|
||||||
{
|
{
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 )
|
||||||
{
|
{
|
||||||
|
|
|
@ -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 );
|
||||||
|
|
||||||
|
|
|
@ -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)" );
|
||||||
|
|
|
@ -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
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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];
|
||||||
|
|
||||||
|
|
|
@ -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 )
|
||||||
{
|
{
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue