Commit dedb0228 authored by raburton's avatar raburton

add files not currently available in source (e.g. docs, modules, etc.)

set svn:eol-style property to native for all ascii files to support cross platform development
parent a5fb5d39

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

...@@ -181,39 +181,39 @@ Info_3D_Visu::~Info_3D_Visu(void) ...@@ -181,39 +181,39 @@ Info_3D_Visu::~Info_3D_Visu(void)
/*****************************************************************/ /*****************************************************************/
WinEDA_VertexCtrl::WinEDA_VertexCtrl(wxWindow *parent, const wxString & title, WinEDA_VertexCtrl::WinEDA_VertexCtrl(wxWindow *parent, const wxString & title,
wxBoxSizer * BoxSizer, wxBoxSizer * BoxSizer,
int units, int internal_unit) int units, int internal_unit)
{ {
wxString text; wxString text;
wxStaticText * msgtitle; wxStaticText * msgtitle;
m_Units = units; m_Units = units;
m_Internal_Unit = internal_unit; m_Internal_Unit = internal_unit;
if ( title.IsEmpty() ) text = _("Vertex "); if ( title.IsEmpty() ) text = _("Vertex ");
else text = title; else text = title;
text += ReturnUnitSymbol(units); text += ReturnUnitSymbol(units);
msgtitle = new wxStaticText(parent, -1, text, wxDefaultPosition, wxSize(-1,-1), 0 ); msgtitle = new wxStaticText(parent, -1, text, wxDefaultPosition, wxSize(-1,-1), 0 );
BoxSizer->Add(msgtitle, wxGROW|wxLEFT|wxRIGHT|wxTOP|wxBOTTOM|wxADJUST_MINSIZE); BoxSizer->Add(msgtitle, wxGROW|wxLEFT|wxRIGHT|wxTOP|wxBOTTOM|wxADJUST_MINSIZE);
wxFlexGridSizer * GridSizer = new wxFlexGridSizer(3, 2, 0, 0);
BoxSizer->Add(GridSizer, 0, wxGROW|wxALL, 5);
wxFlexGridSizer * GridSizer = new wxFlexGridSizer(3, 2, 0, 0);
BoxSizer->Add(GridSizer, 0, wxGROW|wxALL, 5);
msgtitle = new wxStaticText(parent, -1, wxT("X:")); msgtitle = new wxStaticText(parent, -1, wxT("X:"));
GridSizer->Add(msgtitle, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxADJUST_MINSIZE, 5); GridSizer->Add(msgtitle, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxADJUST_MINSIZE, 5);
m_XValueCtrl = new wxTextCtrl(parent, -1, wxEmptyString, wxDefaultPosition, wxSize(-1,-1), 0 ); m_XValueCtrl = new wxTextCtrl(parent, -1, wxEmptyString, wxDefaultPosition, wxSize(-1,-1), 0 );
GridSizer->Add(m_XValueCtrl, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5); GridSizer->Add(m_XValueCtrl, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5);
msgtitle = new wxStaticText(parent, -1, wxT("Y:"), wxDefaultPosition, wxSize(-1,-1), 0 ); msgtitle = new wxStaticText(parent, -1, wxT("Y:"), wxDefaultPosition, wxSize(-1,-1), 0 );
GridSizer->Add(msgtitle, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxADJUST_MINSIZE, 5); GridSizer->Add(msgtitle, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxADJUST_MINSIZE, 5);
m_YValueCtrl = new wxTextCtrl(parent, -1, wxEmptyString, wxDefaultPosition, wxSize(-1,-1), 0 ); m_YValueCtrl = new wxTextCtrl(parent, -1, wxEmptyString, wxDefaultPosition, wxSize(-1,-1), 0 );
GridSizer->Add(m_YValueCtrl, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5); GridSizer->Add(m_YValueCtrl, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5);
msgtitle = new wxStaticText(parent, -1, wxT("Z:"), wxDefaultPosition, wxSize(-1,-1), 0 ); msgtitle = new wxStaticText(parent, -1, wxT("Z:"), wxDefaultPosition, wxSize(-1,-1), 0 );
GridSizer->Add(msgtitle, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxADJUST_MINSIZE, 5); GridSizer->Add(msgtitle, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxADJUST_MINSIZE, 5);
m_ZValueCtrl = new wxTextCtrl(parent, -1, wxEmptyString, wxDefaultPosition, wxSize(-1,-1), 0 ); m_ZValueCtrl = new wxTextCtrl(parent, -1, wxEmptyString, wxDefaultPosition, wxSize(-1,-1), 0 );
GridSizer->Add(m_ZValueCtrl, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5); GridSizer->Add(m_ZValueCtrl, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 5);
} }
WinEDA_VertexCtrl::~WinEDA_VertexCtrl(void) WinEDA_VertexCtrl::~WinEDA_VertexCtrl(void)
...@@ -229,11 +229,11 @@ S3D_Vertex WinEDA_VertexCtrl::GetValue(void) ...@@ -229,11 +229,11 @@ S3D_Vertex WinEDA_VertexCtrl::GetValue(void)
{ {
S3D_Vertex value; S3D_Vertex value;
double dtmp; double dtmp;
m_XValueCtrl->GetValue().ToDouble(&dtmp); m_XValueCtrl->GetValue().ToDouble(&dtmp);
value.x = dtmp; value.x = dtmp;
m_YValueCtrl->GetValue().ToDouble(&dtmp); m_YValueCtrl->GetValue().ToDouble(&dtmp);
value.y = dtmp; value.y = dtmp;
m_ZValueCtrl->GetValue().ToDouble(&dtmp); m_ZValueCtrl->GetValue().ToDouble(&dtmp);
value.z = dtmp; value.z = dtmp;
return value; return value;
......
...@@ -225,34 +225,34 @@ float spin_quat[4]; ...@@ -225,34 +225,34 @@ float spin_quat[4];
if ( event.m_wheelRotation ) if ( event.m_wheelRotation )
{ {
if( event.ShiftDown() ) { if( event.ShiftDown() ) {
if ( event.GetWheelRotation() < 0 ) { if ( event.GetWheelRotation() < 0 ) {
/* up */ /* up */
SetView3D(WXK_UP); SetView3D(WXK_UP);
} else { } else {
/* down */ /* down */
SetView3D(WXK_DOWN); SetView3D(WXK_DOWN);
} }
} else if( event.ControlDown() ) { } else if( event.ControlDown() ) {
if ( event.GetWheelRotation() > 0 ) { if ( event.GetWheelRotation() > 0 ) {
/* right */ /* right */
SetView3D(WXK_RIGHT); SetView3D(WXK_RIGHT);
} else { } else {
/* left */ /* left */
SetView3D(WXK_LEFT); SetView3D(WXK_LEFT);
} }
} }
else { else {
if ( event.GetWheelRotation() > 0 ) if ( event.GetWheelRotation() > 0 )
{ {
g_Parm_3D_Visu.m_Zoom /= 1.4; g_Parm_3D_Visu.m_Zoom /= 1.4;
if ( g_Parm_3D_Visu.m_Zoom <= 0.01) if ( g_Parm_3D_Visu.m_Zoom <= 0.01)
g_Parm_3D_Visu.m_Zoom = 0.01; g_Parm_3D_Visu.m_Zoom = 0.01;
} }
else g_Parm_3D_Visu.m_Zoom *= 1.4; else g_Parm_3D_Visu.m_Zoom *= 1.4;
DisplayStatus(); DisplayStatus();
Refresh(FALSE); Refresh(FALSE);
} }
} }
if (event.Dragging()) if (event.Dragging())
...@@ -442,7 +442,7 @@ void Pcb3D_GLCanvas::OnPaint( wxPaintEvent& event ) ...@@ -442,7 +442,7 @@ void Pcb3D_GLCanvas::OnPaint( wxPaintEvent& event )
#ifndef __WXMOTIF__ #ifndef __WXMOTIF__
if (!GetContext()) return; if (!GetContext()) return;
#endif #endif
Redraw(); Redraw();
event.Skip(); event.Skip();
} }
......
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: 3d_class.cpp // Name: 3d_class.cpp
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__ #ifdef __GNUG__
#pragma implementation #pragma implementation
#pragma interface #pragma interface
#endif #endif
#include "fctsys.h" #include "fctsys.h"
#include "common.h" #include "common.h"
#include "3d_struct.h" #include "3d_struct.h"
#include "3d_viewer.h" #include "3d_viewer.h"
/****************************/ /****************************/
S3D_Vertex::S3D_Vertex(void) S3D_Vertex::S3D_Vertex(void)
/****************************/ /****************************/
{ {
x = y = z = 0.0; x = y = z = 0.0;
} }
/**************************************************************************/ /**************************************************************************/
S3D_Material::S3D_Material(Struct3D_Master * father, const wxString & name): S3D_Material::S3D_Material(Struct3D_Master * father, const wxString & name):
EDA_BaseStruct( father, -1) EDA_BaseStruct( father, -1)
/**************************************************************************/ /**************************************************************************/
{ {
m_DiffuseColor.x = m_DiffuseColor.y = m_DiffuseColor.z = 1.0; m_DiffuseColor.x = m_DiffuseColor.y = m_DiffuseColor.z = 1.0;
m_SpecularColor.x = m_SpecularColor.y = m_SpecularColor.z = 1.0; m_SpecularColor.x = m_SpecularColor.y = m_SpecularColor.z = 1.0;
m_AmbientIntensity = 1.0; m_AmbientIntensity = 1.0;
m_Transparency = 0.0; m_Transparency = 0.0;
m_Shininess = 1.0; m_Shininess = 1.0;
m_Name = name; m_Name = name;
} }
/***********************************/ /***********************************/
void S3D_Material::SetMaterial(void) void S3D_Material::SetMaterial(void)
/***********************************/ /***********************************/
{ {
glColorMaterial(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE); glColorMaterial(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE);
glColor4f(m_DiffuseColor.x * m_AmbientIntensity, glColor4f(m_DiffuseColor.x * m_AmbientIntensity,
m_DiffuseColor.y * m_AmbientIntensity, m_DiffuseColor.y * m_AmbientIntensity,
m_DiffuseColor.z * m_AmbientIntensity, m_DiffuseColor.z * m_AmbientIntensity,
1.0 - m_Transparency ); 1.0 - m_Transparency );
#if 0 #if 0
glColorMaterial(GL_FRONT_AND_BACK,GL_SPECULAR); glColorMaterial(GL_FRONT_AND_BACK,GL_SPECULAR);
glColor3f(m_SpecularColor.x, m_SpecularColor.y,m_SpecularColor.z); glColor3f(m_SpecularColor.x, m_SpecularColor.y,m_SpecularColor.z);
#endif #endif
glColorMaterial(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE); glColorMaterial(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE);
} }
/****************************************************/ /****************************************************/
void Struct3D_Master::Copy(Struct3D_Master * pattern) void Struct3D_Master::Copy(Struct3D_Master * pattern)
/****************************************************/ /****************************************************/
{ {
m_Shape3DName = pattern->m_Shape3DName; m_Shape3DName = pattern->m_Shape3DName;
m_MatScale = pattern->m_MatScale; m_MatScale = pattern->m_MatScale;
m_MatRotation = pattern->m_MatRotation; m_MatRotation = pattern->m_MatRotation;
m_MatPosition = pattern->m_MatPosition; m_MatPosition = pattern->m_MatPosition;
m_3D_Drawings = NULL; m_3D_Drawings = NULL;
m_Materials = NULL; m_Materials = NULL;
} }
/***************************************************************/ /***************************************************************/
Struct3D_Master::Struct3D_Master(EDA_BaseStruct * StructFather): Struct3D_Master::Struct3D_Master(EDA_BaseStruct * StructFather):
EDA_BaseStruct( StructFather, -1) EDA_BaseStruct( StructFather, -1)
/***************************************************************/ /***************************************************************/
{ {
m_MatScale.x = m_MatScale.y = m_MatScale.z = 1.0; m_MatScale.x = m_MatScale.y = m_MatScale.z = 1.0;
m_3D_Drawings = NULL; m_3D_Drawings = NULL;
m_Materials = NULL; m_Materials = NULL;
} }
/***************************************/ /***************************************/
Struct3D_Master:: ~Struct3D_Master(void) Struct3D_Master:: ~Struct3D_Master(void)
/***************************************/ /***************************************/
{ {
Struct3D_Shape * next; Struct3D_Shape * next;
S3D_Material * nextmat; S3D_Material * nextmat;
for( ; m_3D_Drawings != NULL; m_3D_Drawings = next ) for( ; m_3D_Drawings != NULL; m_3D_Drawings = next )
{ {
next = (Struct3D_Shape *) m_3D_Drawings->Pnext; next = (Struct3D_Shape *) m_3D_Drawings->Pnext;
delete m_3D_Drawings; delete m_3D_Drawings;
} }
for( ; m_Materials != NULL; m_Materials = nextmat ) for( ; m_Materials != NULL; m_Materials = nextmat )
{ {
nextmat = (S3D_Material *) m_Materials->Pnext; nextmat = (S3D_Material *) m_Materials->Pnext;
delete m_Materials; delete m_Materials;
} }
} }
/***************************************************************/ /***************************************************************/
Struct3D_Shape::Struct3D_Shape(EDA_BaseStruct * StructFather): Struct3D_Shape::Struct3D_Shape(EDA_BaseStruct * StructFather):
EDA_BaseStruct( StructFather, -1) EDA_BaseStruct( StructFather, -1)
/***************************************************************/ /***************************************************************/
{ {
m_3D_Coord = NULL; m_3D_Coord = NULL;
m_3D_CoordIndex = NULL; m_3D_CoordIndex = NULL;
m_3D_Points = 0; m_3D_Points = 0;
} }
/***************************************/ /***************************************/
Struct3D_Shape:: ~Struct3D_Shape(void) Struct3D_Shape:: ~Struct3D_Shape(void)
/***************************************/ /***************************************/
{ {
delete m_3D_Coord; delete m_3D_Coord;
delete m_3D_CoordIndex; delete m_3D_CoordIndex;
} }
...@@ -52,7 +52,7 @@ void Pcb3D_GLCanvas::Redraw( void ) ...@@ -52,7 +52,7 @@ void Pcb3D_GLCanvas::Redraw( void )
build_rotmatrix( mat, g_Parm_3D_Visu.m_Quat ); build_rotmatrix( mat, g_Parm_3D_Visu.m_Quat );
glMultMatrixf( &mat[0][0] ); glMultMatrixf( &mat[0][0] );
glTranslatef(g_Draw3d_dx, g_Draw3d_dy, 0.0F); glTranslatef(g_Draw3d_dx, g_Draw3d_dy, 0.0F);
glRotatef(g_Parm_3D_Visu.m_Rot[0], 1.0, 0.0, 0.0); glRotatef(g_Parm_3D_Visu.m_Rot[0], 1.0, 0.0, 0.0);
...@@ -459,7 +459,7 @@ int color; ...@@ -459,7 +459,7 @@ int color;
drilly = m_Pos.y * scale; drilly = m_Pos.y * scale;
/* Draw the pad hole (TODO: draw OBLONG hole)*/ /* Draw the pad hole (TODO: draw OBLONG hole)*/
if ( holeX && holeY ) if ( holeX && holeY )
{ {
SetGLColor(DARKGRAY); SetGLColor(DARKGRAY);
Draw3D_FilledCylinder(drillx, -drilly, hole, g_Parm_3D_Visu.m_LayerZcoord[CMP_N], 0.0); Draw3D_FilledCylinder(drillx, -drilly, hole, g_Parm_3D_Visu.m_LayerZcoord[CMP_N], 0.0);
} }
......
...@@ -31,7 +31,7 @@ int LineNum = 0; ...@@ -31,7 +31,7 @@ int LineNum = 0;
{ {
return 1; return 1;
} }
if ( wxIsAbsolutePath(m_Shape3DName) ) fullfilename.Empty(); if ( wxIsAbsolutePath(m_Shape3DName) ) fullfilename.Empty();
else fullfilename = g_RealLibDirBuffer + LIB3D_PATH; else fullfilename = g_RealLibDirBuffer + LIB3D_PATH;
fullfilename += m_Shape3DName; fullfilename += m_Shape3DName;
...@@ -91,7 +91,7 @@ ou du type: ...@@ -91,7 +91,7 @@ ou du type:
material USE yellow material USE yellow
*/ */
{ {
char line[512], * text, * command; char line[512], * text, * command;
wxString mat_name; wxString mat_name;
S3D_Material * material = NULL; S3D_Material * material = NULL;
...@@ -104,7 +104,7 @@ S3D_Material * material = NULL; ...@@ -104,7 +104,7 @@ S3D_Material * material = NULL;
for ( material = m_Materials; material != NULL; for ( material = m_Materials; material != NULL;
material = (S3D_Material *) material->Pnext) material = (S3D_Material *) material->Pnext)
{ {
if ( material->m_Name == mat_name) if ( material->m_Name == mat_name)
{ {
material->SetMaterial(); material->SetMaterial();
......
/********************************************************/ /********************************************************/
/* 3d_struct.h : definition des structures de donnees */ /* 3d_struct.h : definition des structures de donnees */
/* pour la representation 3D des modules */ /* pour la representation 3D des modules */
/********************************************************/ /********************************************************/
#ifndef STRUCT_3D_H #ifndef STRUCT_3D_H
#define STRUCT_3D_H #define STRUCT_3D_H
#include "base_struct.h" #include "base_struct.h"
/* 3D modeler units -> PCB units conversion scale: /* 3D modeler units -> PCB units conversion scale:
1 "3D unit modeler" = 1 unit wings3d = 2,54 mm = 0.1 inch */ 1 "3D unit modeler" = 1 unit wings3d = 2,54 mm = 0.1 inch */
#define UNITS3D_TO_UNITSPCB 1000 #define UNITS3D_TO_UNITSPCB 1000
class Struct3D_Master; class Struct3D_Master;
class Struct3D_Shape; class Struct3D_Shape;
class S3D_Color /* This is a 3D color (R, G, G) 3 floats range 0 to 1.0*/ class S3D_Color /* This is a 3D color (R, G, G) 3 floats range 0 to 1.0*/
{ {
public: public:
double m_Red, m_Green, m_Blue; double m_Red, m_Green, m_Blue;
public: public:
S3D_Color(void) S3D_Color(void)
{ {
m_Red = m_Green = m_Blue = 0; m_Red = m_Green = m_Blue = 0;
} }
}; };
class S3D_Vertex /* This is a 3D coordinate (3 float numbers: x,y,z coordinates)*/ class S3D_Vertex /* This is a 3D coordinate (3 float numbers: x,y,z coordinates)*/
{ {
public: public:
double x, y, z; double x, y, z;
public: public:
S3D_Vertex(void); S3D_Vertex(void);
}; };
class S3D_Material: public EDA_BaseStruct /* openGL "material" data*/ class S3D_Material: public EDA_BaseStruct /* openGL "material" data*/
{ {
public: public:
wxString m_Name; wxString m_Name;
S3D_Vertex m_DiffuseColor; S3D_Vertex m_DiffuseColor;
S3D_Vertex m_EmissiveColor; S3D_Vertex m_EmissiveColor;
S3D_Vertex m_SpecularColor; S3D_Vertex m_SpecularColor;
float m_AmbientIntensity; float m_AmbientIntensity;
float m_Transparency; float m_Transparency;
float m_Shininess; float m_Shininess;
public: public:
S3D_Material(Struct3D_Master * father, const wxString & name); S3D_Material(Struct3D_Master * father, const wxString & name);
void SetMaterial(void); void SetMaterial(void);
}; };
/*******************************************/ /*******************************************/
class Struct3D_Master: public EDA_BaseStruct class Struct3D_Master: public EDA_BaseStruct
/*******************************************/ /*******************************************/
/* Master structure for a 3D item description */ /* Master structure for a 3D item description */
{ {
public: public:
wxString m_Shape3DName; /* 3D shape name in 3D library */ wxString m_Shape3DName; /* 3D shape name in 3D library */
S3D_Vertex m_MatScale; S3D_Vertex m_MatScale;
S3D_Vertex m_MatRotation; S3D_Vertex m_MatRotation;
S3D_Vertex m_MatPosition; S3D_Vertex m_MatPosition;
Struct3D_Shape * m_3D_Drawings; Struct3D_Shape * m_3D_Drawings;
S3D_Material *m_Materials; S3D_Material *m_Materials;
public: public:
Struct3D_Master(EDA_BaseStruct * StructFather); Struct3D_Master(EDA_BaseStruct * StructFather);
~Struct3D_Master(void); ~Struct3D_Master(void);
void Copy(Struct3D_Master * pattern); void Copy(Struct3D_Master * pattern);
int ReadData(void); int ReadData(void);
int ReadMaterial(FILE * file, int *LineNum); int ReadMaterial(FILE * file, int *LineNum);
int ReadChildren(FILE * file, int *LineNum); int ReadChildren(FILE * file, int *LineNum);
int ReadShape(FILE * file, int *LineNum); int ReadShape(FILE * file, int *LineNum);
int ReadAppearance(FILE * file, int *LineNum); int ReadAppearance(FILE * file, int *LineNum);
int ReadGeometry(FILE * file, int *LineNum); int ReadGeometry(FILE * file, int *LineNum);
void Set_Object_Coords(S3D_Vertex * coord, int nbcoord ); void Set_Object_Coords(S3D_Vertex * coord, int nbcoord );
}; };
/*********************************************/ /*********************************************/
class Struct3D_Shape: public EDA_BaseStruct class Struct3D_Shape: public EDA_BaseStruct
/*********************************************/ /*********************************************/
/* decrit une forme complexe 3D */ /* decrit une forme complexe 3D */
{ {
public: public:
S3D_Vertex * m_3D_Coord; S3D_Vertex * m_3D_Coord;
int * m_3D_CoordIndex; int * m_3D_CoordIndex;
int m_3D_Points; int m_3D_Points;
public: public:
Struct3D_Shape(EDA_BaseStruct * StructFather); Struct3D_Shape(EDA_BaseStruct * StructFather);
~Struct3D_Shape(void); ~Struct3D_Shape(void);
int ReadData(FILE * file, int *LineNum); int ReadData(FILE * file, int *LineNum);
}; };
/*****************************************************************/ /*****************************************************************/
/* Classe pour afficher et editer un Vertex (triplet de valeurs),*/ /* Classe pour afficher et editer un Vertex (triplet de valeurs),*/
/* en INCHES ou MM ou sans unites */ /* en INCHES ou MM ou sans unites */
/*****************************************************************/ /*****************************************************************/
/* internal_unit is the internal unit number by inch: /* internal_unit is the internal unit number by inch:
- 1000 for EESchema - 1000 for EESchema
- 10000 for PcbNew - 10000 for PcbNew
*/ */
class WinEDA_VertexCtrl class WinEDA_VertexCtrl
{ {
private: private:
int m_Units; int m_Units;
int m_Internal_Unit; int m_Internal_Unit;
wxTextCtrl * m_XValueCtrl, * m_YValueCtrl, * m_ZValueCtrl; wxTextCtrl * m_XValueCtrl, * m_YValueCtrl, * m_ZValueCtrl;
wxStaticText * m_Text; wxStaticText * m_Text;
public: public:
// Constructor and destructor // Constructor and destructor
WinEDA_VertexCtrl(wxWindow *parent, const wxString & title, WinEDA_VertexCtrl(wxWindow *parent, const wxString & title,
wxBoxSizer * BoxSizer, wxBoxSizer * BoxSizer,
int units, int internal_unit); int units, int internal_unit);
~WinEDA_VertexCtrl(void); ~WinEDA_VertexCtrl(void);
S3D_Vertex GetValue(void); S3D_Vertex GetValue(void);
void SetValue(S3D_Vertex vertex); void SetValue(S3D_Vertex vertex);
void Enable(bool enbl); void Enable(bool enbl);
void SetToolTip(const wxString & text); void SetToolTip(const wxString & text);
}; };
#endif /* STRUCT_3D_H */ #endif /* STRUCT_3D_H */
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// Name: 3d_viewer.h // Name: 3d_viewer.h
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
#if !wxUSE_GLCANVAS #if !wxUSE_GLCANVAS
#error Please set wxUSE_GLCANVAS to 1 in setup.h. #error Please set wxUSE_GLCANVAS to 1 in setup.h.
#endif #endif
#include "wx/glcanvas.h" #include "wx/glcanvas.h"
#ifdef __WXMAC__ #ifdef __WXMAC__
# ifdef __DARWIN__ # ifdef __DARWIN__
# include <OpenGL/gl.h> # include <OpenGL/gl.h>
# include <OpenGL/glu.h> # include <OpenGL/glu.h>
# else # else
# include <gl.h> # include <gl.h>
# include <glu.h> # include <glu.h>
# endif # endif
#else #else
# include <GL/gl.h> # include <GL/gl.h>
# include <GL/glu.h> # include <GL/glu.h>
#endif #endif
#ifdef VIEWER_MAIN #ifdef VIEWER_MAIN
#define global_3d #define global_3d
#else #else
#define global_3d extern #define global_3d extern
#endif #endif
#include "pcbstruct.h" #include "pcbstruct.h"
#include "3d_struct.h" #include "3d_struct.h"
#define LIB3D_PATH wxT("packages3d/") #define LIB3D_PATH wxT("packages3d/")
class Pcb3D_GLCanvas; class Pcb3D_GLCanvas;
class WinEDA3D_DrawFrame; class WinEDA3D_DrawFrame;
class Info_3D_Visu; class Info_3D_Visu;
class S3D_Vertex; class S3D_Vertex;
class SEGVIA; class SEGVIA;
#define m_ROTX m_Rot[0] #define m_ROTX m_Rot[0]
#define m_ROTY m_Rot[1] #define m_ROTY m_Rot[1]
#define m_ROTZ m_Rot[2] #define m_ROTZ m_Rot[2]
/* information needed to display 3D board */ /* information needed to display 3D board */
class Info_3D_Visu class Info_3D_Visu
{ {
public: public:
float m_Beginx, m_Beginy; /* position of mouse */ float m_Beginx, m_Beginy; /* position of mouse */
float m_Quat[4]; /* orientation of object */ float m_Quat[4]; /* orientation of object */
float m_Rot[4]; /* man rotation of object */ float m_Rot[4]; /* man rotation of object */
float m_Zoom; /* field of view in degrees */ float m_Zoom; /* field of view in degrees */
S3D_Color m_BgColor; S3D_Color m_BgColor;
wxPoint m_BoardPos; wxPoint m_BoardPos;
wxSize m_BoardSize; wxSize m_BoardSize;
int m_Layers; int m_Layers;
EDA_BoardDesignSettings * m_BoardSettings; // Link to current board design settings EDA_BoardDesignSettings * m_BoardSettings; // Link to current board design settings
float m_Epoxy_Width; /* Epoxy tickness (normalized) */ float m_Epoxy_Width; /* Epoxy tickness (normalized) */
float m_BoardScale; /* Normalisation scale for coordinates: float m_BoardScale; /* Normalisation scale for coordinates:
when scaled tey are between -1.0 and +1.0 */ when scaled tey are between -1.0 and +1.0 */
float m_LayerZcoord[32]; float m_LayerZcoord[32];
public: public:
Info_3D_Visu(void); Info_3D_Visu(void);
~Info_3D_Visu(void); ~Info_3D_Visu(void);
}; };
class Pcb3D_GLCanvas: public wxGLCanvas class Pcb3D_GLCanvas: public wxGLCanvas
{ {
public: public:
WinEDA3D_DrawFrame * m_Parent; WinEDA3D_DrawFrame * m_Parent;
private: private:
bool m_init; bool m_init;
GLuint m_gllist; GLuint m_gllist;
public: public:
Pcb3D_GLCanvas(WinEDA3D_DrawFrame *parent, const wxWindowID id = -1, Pcb3D_GLCanvas(WinEDA3D_DrawFrame *parent, const wxWindowID id = -1,
int* gl_attrib = NULL); int* gl_attrib = NULL);
~Pcb3D_GLCanvas(void); ~Pcb3D_GLCanvas(void);
void ClearLists(void); void ClearLists(void);
void OnPaint(wxPaintEvent& event); void OnPaint(wxPaintEvent& event);
void OnSize(wxSizeEvent& event); void OnSize(wxSizeEvent& event);
void OnEraseBackground(wxEraseEvent& event); void OnEraseBackground(wxEraseEvent& event);
void OnChar(wxKeyEvent& event); void OnChar(wxKeyEvent& event);
void OnMouseEvent(wxMouseEvent& event); void OnMouseEvent(wxMouseEvent& event);
void OnRightClick(wxMouseEvent& event); void OnRightClick(wxMouseEvent& event);
void OnPopUpMenu(wxCommandEvent & event); void OnPopUpMenu(wxCommandEvent & event);
void TakeScreenshot(wxCommandEvent & event); void TakeScreenshot(wxCommandEvent & event);
void SetView3D(int keycode); void SetView3D(int keycode);
void DisplayStatus(void); void DisplayStatus(void);
void Redraw(void); void Redraw(void);
GLuint DisplayCubeforTest(void); GLuint DisplayCubeforTest(void);
void OnEnterWindow( wxMouseEvent& event ); void OnEnterWindow( wxMouseEvent& event );
void Render( void ); void Render( void );
GLuint CreateDrawGL_List(void); GLuint CreateDrawGL_List(void);
void InitGL(void); void InitGL(void);
void SetLights(void); void SetLights(void);
void Draw3D_Track(TRACK * track); void Draw3D_Track(TRACK * track);
void Draw3D_Via(SEGVIA * via); void Draw3D_Via(SEGVIA * via);
void Draw3D_DrawSegment(DRAWSEGMENT * segment); void Draw3D_DrawSegment(DRAWSEGMENT * segment);
DECLARE_EVENT_TABLE() DECLARE_EVENT_TABLE()
}; };
class WinEDA3D_DrawFrame: public wxFrame class WinEDA3D_DrawFrame: public wxFrame
{ {
public: public:
WinEDA_BasePcbFrame * m_Parent; WinEDA_BasePcbFrame * m_Parent;
WinEDA_App * m_ParentAppl; WinEDA_App * m_ParentAppl;
Pcb3D_GLCanvas * m_Canvas; Pcb3D_GLCanvas * m_Canvas;
wxToolBar * m_HToolBar; wxToolBar * m_HToolBar;
wxToolBar * m_VToolBar; wxToolBar * m_VToolBar;
int m_InternalUnits; int m_InternalUnits;
wxPoint m_FramePos; wxPoint m_FramePos;
wxSize m_FrameSize; wxSize m_FrameSize;
private: private:
wxString m_FrameName; // name used for writting and reading setup wxString m_FrameName; // name used for writting and reading setup
// It is "Frame3D" // It is "Frame3D"
public: public:
WinEDA3D_DrawFrame(WinEDA_BasePcbFrame * parent, WinEDA_App *app_parent, WinEDA3D_DrawFrame(WinEDA_BasePcbFrame * parent, WinEDA_App *app_parent,
const wxString& title ); const wxString& title );
void Exit3DFrame(wxCommandEvent& event); void Exit3DFrame(wxCommandEvent& event);
void OnCloseWindow(wxCloseEvent & Event); void OnCloseWindow(wxCloseEvent & Event);
void ReCreateMenuBar(void); void ReCreateMenuBar(void);
void ReCreateHToolbar(void); void ReCreateHToolbar(void);
void ReCreateVToolbar(void); void ReCreateVToolbar(void);
void SetToolbars(void); void SetToolbars(void);
void GetSettings(void); void GetSettings(void);
void SaveSettings(void); void SaveSettings(void);
void OnLeftClick(wxDC * DC, const wxPoint& MousePos); void OnLeftClick(wxDC * DC, const wxPoint& MousePos);
void OnRightClick(const wxPoint& MousePos, wxMenu * PopMenu); void OnRightClick(const wxPoint& MousePos, wxMenu * PopMenu);
void OnKeyEvent(wxKeyEvent& event); void OnKeyEvent(wxKeyEvent& event);
int BestZoom(void); // Retourne le meilleur zoom int BestZoom(void); // Retourne le meilleur zoom
void RedrawActiveWindow(wxDC * DC, bool EraseBg); void RedrawActiveWindow(wxDC * DC, bool EraseBg);
void Process_Special_Functions(wxCommandEvent& event); void Process_Special_Functions(wxCommandEvent& event);
void Process_Zoom(wxCommandEvent& event); void Process_Zoom(wxCommandEvent& event);
void NewDisplay(void); void NewDisplay(void);
void Set3DBgColor(void); void Set3DBgColor(void);
DECLARE_EVENT_TABLE() DECLARE_EVENT_TABLE()
}; };
void SetGLColor(int color); void SetGLColor(int color);
void Set_Object_Data(const S3D_Vertex * coord, int nbcoord ); void Set_Object_Data(const S3D_Vertex * coord, int nbcoord );
global_3d Info_3D_Visu g_Parm_3D_Visu; global_3d Info_3D_Visu g_Parm_3D_Visu;
global_3d double g_Draw3d_dx, g_Draw3d_dy; global_3d double g_Draw3d_dx, g_Draw3d_dy;
global_3d double ZBottom, ZTop; global_3d double ZBottom, ZTop;
global_3d double DataScale3D; // coeff de conversion unites utilsateut -> unites 3D global_3d double DataScale3D; // coeff de conversion unites utilsateut -> unites 3D
global_3d int gl_attrib[] global_3d int gl_attrib[]
#ifdef VIEWER_MAIN #ifdef VIEWER_MAIN
= { WX_GL_RGBA, WX_GL_MIN_RED, 8, WX_GL_MIN_GREEN, 8, = { WX_GL_RGBA, WX_GL_MIN_RED, 8, WX_GL_MIN_GREEN, 8,
WX_GL_MIN_BLUE, 8, WX_GL_DEPTH_SIZE, 16, WX_GL_MIN_BLUE, 8, WX_GL_DEPTH_SIZE, 16,
WX_GL_DOUBLEBUFFER, WX_GL_DOUBLEBUFFER,
GL_NONE } GL_NONE }
#endif #endif
; ;
#include "bitmaps3d/import3d.xpm" #include "bitmaps3d/import3d.xpm"
#include "bitmaps3d/rotate+x.xpm" #include "bitmaps3d/rotate+x.xpm"
#include "bitmaps3d/rotate-x.xpm" #include "bitmaps3d/rotate-x.xpm"
#include "bitmaps3d/rotate+y.xpm" #include "bitmaps3d/rotate+y.xpm"
#include "bitmaps3d/rotate-y.xpm" #include "bitmaps3d/rotate-y.xpm"
#include "bitmaps3d/rotate+z.xpm" #include "bitmaps3d/rotate+z.xpm"
#include "bitmaps3d/rotate-z.xpm" #include "bitmaps3d/rotate-z.xpm"
#include "bitmaps3d/axis3d.xpm" #include "bitmaps3d/axis3d.xpm"
#include "bitmaps3d/axis3d_bottom.xpm" #include "bitmaps3d/axis3d_bottom.xpm"
#include "bitmaps3d/axis3d_top.xpm" #include "bitmaps3d/axis3d_top.xpm"
#include "bitmaps3d/axis3d_left.xpm" #include "bitmaps3d/axis3d_left.xpm"
#include "bitmaps3d/axis3d_right.xpm" #include "bitmaps3d/axis3d_right.xpm"
#include "bitmaps3d/axis3d_front.xpm" #include "bitmaps3d/axis3d_front.xpm"
#include "bitmaps3d/axis3d_back.xpm" #include "bitmaps3d/axis3d_back.xpm"
/* XPM bitmap */ /* XPM bitmap */
#ifndef XPM_3D_MAIN #ifndef XPM_3D_MAIN
extern char * axis3d_xpm[]; extern char * axis3d_xpm[];
#else #else
char * axis3d_xpm[] = { char * axis3d_xpm[] = {
"16 15 3 1", "16 15 3 1",
" c None", " c None",
". c Blue", ". c Blue",
"x c Red", "x c Red",
" . ", " . ",
" ... ", " ... ",
" . ", " . ",
" . ", " . ",
" . ", " . ",
" . ", " . ",
" . . ", " . . ",
" ............", " ............",
" . . ", " . . ",
" . ", " . ",
" . ", " . ",
" . ", " . ",
" .. ", " .. ",
" . ", " . ",
" " " "
}; };
#endif #endif
/* XPM bitmap */ /* XPM bitmap */
#ifndef XPM_3D_MAIN #ifndef XPM_3D_MAIN
extern char * axis3d_back_xpm[]; extern char * axis3d_back_xpm[];
#else #else
char * axis3d_back_xpm[] = { char * axis3d_back_xpm[] = {
"16 15 3 1", "16 15 3 1",
" c None", " c None",
". c Blue", ". c Blue",
"x c Red", "x c Red",
" . x ", " . x ",
" ... x ", " ... x ",
" . x ", " . x ",
" . xxxxx ", " . xxxxx ",
" . xxx ", " . xxx ",
" . x ", " . x ",
" . . ", " . . ",
" ............", " ............",
" . . ", " . . ",
" . ", " . ",
" . ", " . ",
" . ", " . ",
" .. ", " .. ",
" . ", " . ",
" " " "
}; };
#endif #endif
/* XPM bitmap */ /* XPM bitmap */
#ifndef XPM_3D_MAIN #ifndef XPM_3D_MAIN
extern char * axis3d_bottom_xpm[]; extern char * axis3d_bottom_xpm[];
#else #else
char * axis3d_bottom_xpm[] = { char * axis3d_bottom_xpm[] = {
"16 15 3 1", "16 15 3 1",
" c None", " c None",
". c Blue", ". c Blue",
"x c Red", "x c Red",
" . ", " . ",
" ... ", " ... ",
" . ", " . ",
" . ", " . ",
" . ", " . ",
" . ", " . ",
" . . ", " . . ",
" ............", " ............",
" . . ", " . . ",
" . x ", " . x ",
" . xxx ", " . xxx ",
" . xxxxx ", " . xxxxx ",
" .. x ", " .. x ",
" . x ", " . x ",
" x " " x "
}; };
#endif #endif
/* XPM bitmap */ /* XPM bitmap */
#ifndef XPM_3D_MAIN #ifndef XPM_3D_MAIN
extern char * axis3d_front_xpm[]; extern char * axis3d_front_xpm[];
#else #else
char * axis3d_front_xpm[] = { char * axis3d_front_xpm[] = {
"16 15 3 1", "16 15 3 1",
" c None", " c None",
". c Blue", ". c Blue",
"x c Red", "x c Red",
" . ", " . ",
" ... ", " ... ",
" . ", " . ",
" . ", " . ",
" . ", " . ",
" . ", " . ",
" . . ", " . . ",
" ............", " ............",
" . x . ", " . x . ",
" . xxx ", " . xxx ",
" . xxxxx ", " . xxxxx ",
" . x ", " . x ",
" .. x ", " .. x ",
" . x ", " . x ",
" " " "
}; };
#endif #endif
/* XPM bitmap */ /* XPM bitmap */
#ifndef XPM_3D_MAIN #ifndef XPM_3D_MAIN
extern char * axis3d_left_xpm[]; extern char * axis3d_left_xpm[];
#else #else
char * axis3d_left_xpm[] = { char * axis3d_left_xpm[] = {
"16 15 3 1", "16 15 3 1",
" c None", " c None",
". c Blue", ". c Blue",
"x c Red", "x c Red",
" . ", " . ",
" ... ", " ... ",
" . ", " . ",
" . ", " . ",
" x. ", " x. ",
" xx ", " xx ",
"xxxxxx . ", "xxxxxx . ",
" xx...........", " xx...........",
" x . ", " x . ",
" . ", " . ",
" . ", " . ",
" . ", " . ",
" .. ", " .. ",
" . ", " . ",
" " " "
}; };
#endif #endif
/* XPM bitmap */ /* XPM bitmap */
#ifndef XPM_3D_MAIN #ifndef XPM_3D_MAIN
extern char * axis3d_right_xpm[]; extern char * axis3d_right_xpm[];
#else #else
char * axis3d_right_xpm[] = { char * axis3d_right_xpm[] = {
"16 15 3 1", "16 15 3 1",
" c None", " c None",
". c Blue", ". c Blue",
"x c Red", "x c Red",
" . ", " . ",
" ... ", " ... ",
" . ", " . ",
" . ", " . ",
" . x ", " . x ",
" . xx ", " . xx ",
" . xxxxxx", " . xxxxxx",
" .......xx...", " .......xx...",
" . x . ", " . x . ",
" . ", " . ",
" . ", " . ",
" . ", " . ",
" .. ", " .. ",
" . ", " . ",
" " " "
}; };
#endif #endif
/* XPM bitmap */ /* XPM bitmap */
#ifndef XPM_3D_MAIN #ifndef XPM_3D_MAIN
extern char * axis3d_top_xpm[]; extern char * axis3d_top_xpm[];
#else #else
char * axis3d_top_xpm[] = { char * axis3d_top_xpm[] = {
"16 15 3 1", "16 15 3 1",
" c None", " c None",
". c Blue", ". c Blue",
"x c Red", "x c Red",
" . x ", " . x ",
" ... x ", " ... x ",
" . x ", " . x ",
" . xxxxx ", " . xxxxx ",
" . xxx ", " . xxx ",
" . x ", " . x ",
" . . ", " . . ",
" ............", " ............",
" . . ", " . . ",
" . ", " . ",
" . ", " . ",
" . ", " . ",
" .. ", " .. ",
" . ", " . ",
" " " "
}; };
#endif #endif
/* XPM bitmap */ /* XPM bitmap */
#ifndef XPM_3D_MAIN #ifndef XPM_3D_MAIN
extern char *import3d_xpm[]; extern char *import3d_xpm[];
#else #else
char *import3d_xpm[] = { char *import3d_xpm[] = {
/* columns rows colors chars-per-pixel */ /* columns rows colors chars-per-pixel */
"16 15 3 1", "16 15 3 1",
"- c Black", "- c Black",
"X c None", "X c None",
"o c Green", "o c Green",
/* pixels */ /* pixels */
"XXXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXXX",
"----------------", "----------------",
"-oooooooooooooo-", "-oooooooooooooo-",
"X-oooooooooooo-X", "X-oooooooooooo-X",
"X-oooooooooooo-X", "X-oooooooooooo-X",
"XX-oooooooooo-XX", "XX-oooooooooo-XX",
"XX-oooooooooo-XX", "XX-oooooooooo-XX",
"----oooooooo----", "----oooooooo----",
"X-oooooooooooo-X", "X-oooooooooooo-X",
"XX-oooooooooo-XX", "XX-oooooooooo-XX",
"XXX-oooooooo-XXX", "XXX-oooooooo-XXX",
"XXXX-oooooo-XXXX", "XXXX-oooooo-XXXX",
"XXXXX-oooo-XXXXX", "XXXXX-oooo-XXXXX",
"XXXXXX-oo-XXXXXX", "XXXXXX-oo-XXXXXX",
"XXXXXXX--XXXXXXX" "XXXXXXX--XXXXXXX"
"XXXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXXX",
"XXXXXXXXXXXXXXXX" "XXXXXXXXXXXXXXXX"
}; };
#endif #endif
/* XPM */ /* XPM */
#ifndef XPM_3D_MAIN #ifndef XPM_3D_MAIN
extern char *rotate_pos_X_xpm[]; extern char *rotate_pos_X_xpm[];
#else #else
char *rotate_pos_X_xpm[] = { char *rotate_pos_X_xpm[] = {
/* width height num_colors chars_per_pixel */ /* width height num_colors chars_per_pixel */
" 16 15 4 1", " 16 15 4 1",
/* colors */ /* colors */
". c #000080", ". c #000080",
"# c #c0c0c0", "# c #c0c0c0",
"a c #808080", "a c #808080",
"o c #008000", "o c #008000",
/* pixels */ /* pixels */
"##oo###oo#######", "##oo###oo#######",
"###oo#oo########", "###oo#oo########",
"####ooo#########", "####ooo#########",
"###oo#oo########", "###oo#oo########",
"##oo###oo...a###", "##oo###oo...a###",
"##.###...###.a##", "##.###...###.a##",
"##..#.#######.##", "##..#.#######.##",
"##...########.##", "##...########.##",
"##....#######.##", "##....#######.##",
"##.....#####.a##", "##.....#####.a##",
"###########a.###", "###########a.###",
"################", "################",
"################", "################",
"################", "################",
"################" "################"
}; };
#endif #endif
/* XPM */ /* XPM */
#ifndef XPM_3D_MAIN #ifndef XPM_3D_MAIN
extern char *rotate_pos_Y_xpm[]; extern char *rotate_pos_Y_xpm[];
#else #else
char *rotate_pos_Y_xpm[] = { char *rotate_pos_Y_xpm[] = {
/* width height num_colors chars_per_pixel */ /* width height num_colors chars_per_pixel */
" 16 15 4 1", " 16 15 4 1",
/* colors */ /* colors */
". c #000080", ". c #000080",
"# c #c0c0c0", "# c #c0c0c0",
"a c #808080", "a c #808080",
"o c #FF0000", "o c #FF0000",
/* pixels */ /* pixels */
"##oo###oo#######", "##oo###oo#######",
"###oo#oo########", "###oo#oo########",
"####ooo#########", "####ooo#########",
"####oo##########", "####oo##########",
"o##oo...########", "o##oo...########",
"#oo.####..###.##", "#oo.####..###.##",
"##.#######.#..##", "##.#######.#..##",
"##.########...##", "##.########...##",
"##.#######....##", "##.#######....##",
"##a.#####.....##", "##a.#####.....##",
"###.a###########", "###.a###########",
"################", "################",
"################", "################",
"################", "################",
"################" "################"
}; };
#endif #endif
/* XPM */ /* XPM */
#ifndef XPM_3D_MAIN #ifndef XPM_3D_MAIN
extern char *rotate_pos_Z_xpm[]; extern char *rotate_pos_Z_xpm[];
#else #else
char *rotate_pos_Z_xpm[] = { char *rotate_pos_Z_xpm[] = {
/* width height num_colors chars_per_pixel */ /* width height num_colors chars_per_pixel */
" 16 15 4 1", " 16 15 4 1",
/* colors */ /* colors */
". c #000080", ". c #000080",
"# c #c0c0c0", "# c #c0c0c0",
"a c #808080", "a c #808080",
"o c #008000", "o c #008000",
/* pixels */ /* pixels */
"###oooooo#######", "###oooooo#######",
"######oo########", "######oo########",
"#####oo#########", "#####oo#########",
"####oo##########", "####oo##########",
"###oooooo...a###", "###oooooo...a###",
"##.###..####.a##", "##.###..####.a##",
"##..#.#######.##", "##..#.#######.##",
"##...########.##", "##...########.##",
"##....#######.##", "##....#######.##",
"##.....#####.a##", "##.....#####.a##",
"###########a.###", "###########a.###",
"################", "################",
"################", "################",
"################", "################",
"################" "################"
}; };
#endif #endif
/* XPM */ /* XPM */
#ifndef XPM_3D_MAIN #ifndef XPM_3D_MAIN
extern char *rotate_neg_X_xpm[]; extern char *rotate_neg_X_xpm[];
#else #else
char *rotate_neg_X_xpm[] = { char *rotate_neg_X_xpm[] = {
/* width height num_colors chars_per_pixel */ /* width height num_colors chars_per_pixel */
" 16 15 4 1", " 16 15 4 1",
/* colors */ /* colors */
". c #000080", ". c #000080",
"# c #c0c0c0", "# c #c0c0c0",
"a c #808080", "a c #808080",
"o c #004000", "o c #004000",
/* pixels */ /* pixels */
"##oo###oo#######", "##oo###oo#######",
"###oo#oo########", "###oo#oo########",
"####ooo#########", "####ooo#########",
"###oo#oo########", "###oo#oo########",
"##oo...oo#######", "##oo...oo#######",
"##a.####..###.##", "##a.####..###.##",
"##.#######.#..##", "##.#######.#..##",
"##.########...##", "##.########...##",
"##.#######....##", "##.#######....##",
"##a.#####.....##", "##a.#####.....##",
"###.a###########", "###.a###########",
"################", "################",
"################", "################",
"################", "################",
"################" "################"
}; };
#endif #endif
/* XPM */ /* XPM */
#ifndef XPM_3D_MAIN #ifndef XPM_3D_MAIN
extern char *rotate_neg_Y_xpm[]; extern char *rotate_neg_Y_xpm[];
#else #else
char *rotate_neg_Y_xpm[] = { char *rotate_neg_Y_xpm[] = {
/* width height num_colors chars_per_pixel */ /* width height num_colors chars_per_pixel */
" 16 15 4 1", " 16 15 4 1",
/* colors */ /* colors */
". c #000080", ". c #000080",
"# c #c0c0c0", "# c #c0c0c0",
"a c #808080", "a c #808080",
"o c #FF0000", "o c #FF0000",
/* pixels */ /* pixels */
"##oo###oo#######", "##oo###oo#######",
"###oo#oo########", "###oo#oo########",
"####ooo#########", "####ooo#########",
"####oo##########", "####oo##########",
"o##oo###....a###", "o##oo###....a###",
"#oo###..####.a##", "#oo###..####.a##",
"##..#.#######.##", "##..#.#######.##",
"##...########.##", "##...########.##",
"##....#######.##", "##....#######.##",
"##.....#####.a##", "##.....#####.a##",
"###########a.###", "###########a.###",
"################", "################",
"################", "################",
"################", "################",
"################" "################"
}; };
#endif #endif
/* XPM */ /* XPM */
#ifndef XPM_3D_MAIN #ifndef XPM_3D_MAIN
extern char *rotate_neg_Z_xpm[]; extern char *rotate_neg_Z_xpm[];
#else #else
char *rotate_neg_Z_xpm[] = { char *rotate_neg_Z_xpm[] = {
/* width height num_colors chars_per_pixel */ /* width height num_colors chars_per_pixel */
" 16 15 4 1", " 16 15 4 1",
/* colors */ /* colors */
". c #000080", ". c #000080",
"# c #c0c0c0", "# c #c0c0c0",
"a c #808080", "a c #808080",
"o c #008000", "o c #008000",
/* pixels */ /* pixels */
"###oooooo#######", "###oooooo#######",
"######oo########", "######oo########",
"#####oo#########", "#####oo#########",
"####oo##########", "####oo##########",
"###oooooo#######", "###oooooo#######",
"##a.####..###.##", "##a.####..###.##",
"##.#######.#..##", "##.#######.#..##",
"##.########...##", "##.########...##",
"##.#######....##", "##.#######....##",
"##a.#####.....##", "##a.#####.....##",
"###.a###########", "###.a###########",
"################", "################",
"################", "################",
"################", "################",
"################" "################"
}; };
#endif #endif
/* XPM bitmap */ /* XPM bitmap */
#ifndef XPMMAIN #ifndef XPMMAIN
extern char * zoomoins3d_xpm[]; extern char * zoomoins3d_xpm[];
#else #else
char * zoomoins3d_xpm[] = { char * zoomoins3d_xpm[] = {
"16 16 3 1", "16 16 3 1",
" c None", " c None",
". c Black", ". c Black",
"X c Gray100", "X c Gray100",
" .... ", " .... ",
" ..XXXX.. ", " ..XXXX.. ",
" .XXXXXXXX. ", " .XXXXXXXX. ",
" .XXXXXXXX. ", " .XXXXXXXX. ",
".XXXXXXXXXX. ", ".XXXXXXXXXX. ",
".XX......XX. ", ".XX......XX. ",
".XX......XX. ", ".XX......XX. ",
".XXXXXXXXXX. ", ".XXXXXXXXXX. ",
" .XXXXXXXX. ", " .XXXXXXXX. ",
" .XXXXXXXX. ", " .XXXXXXXX. ",
" ..XXXX... ", " ..XXXX... ",
" .... ... ", " .... ... ",
" ... ", " ... ",
" ... ", " ... ",
" ... ", " ... ",
" .. " " .. "
}; };
#endif #endif
/* XPM bitmap */ /* XPM bitmap */
#ifndef XPMMAIN #ifndef XPMMAIN
extern char * zoompage3d_xpm[]; extern char * zoompage3d_xpm[];
#else #else
char *zoompage3d_xpm[] = { char *zoompage3d_xpm[] = {
/* columns rows colors chars-per-pixel */ /* columns rows colors chars-per-pixel */
"16 15 5 1", "16 15 5 1",
" c Black", " c Black",
". c None", ". c None",
"X c Gray100", "X c Gray100",
"o c #808080", "o c #808080",
"O c Cyan", "O c Cyan",
/* pixels */ /* pixels */
" .......", " .......",
" XXXXXXX ......", " XXXXXXX ......",
" XXXXXXX . .....", " XXXXXXX . .....",
" XXXXXXX ....", " XXXXXXX ....",
" XXXXXXXXXX ....", " XXXXXXXXXX ....",
" XXXXXXX ....", " XXXXXXX ....",
" XXXXXX o..o ...", " XXXXXX o..o ...",
" XXXXX oOO.oo ..", " XXXXX oOO.oo ..",
" XXXXX .O..o. ..", " XXXXX .O..o. ..",
" XXXXX ....o. ..", " XXXXX ....o. ..",
" XXXXX o..Ooo ..", " XXXXX o..Ooo ..",
" XXXXXX o..o o..", " XXXXXX o..o o..",
" XXXXXXX o .", " XXXXXXX o .",
" XXXXXXXXXX . ", " XXXXXXXXXX . ",
" .. " " .. "
}; };
#endif #endif
/* XPM bitmap */ /* XPM bitmap */
#ifndef XPMMAIN #ifndef XPMMAIN
extern char * zoomplus3d_xpm[]; extern char * zoomplus3d_xpm[];
#else #else
char * zoomplus3d_xpm[] = { char * zoomplus3d_xpm[] = {
"16 16 3 1", "16 16 3 1",
" c None", " c None",
". c Black", ". c Black",
"X c Gray100", "X c Gray100",
" .... ", " .... ",
" ..XXXX.. ", " ..XXXX.. ",
" .XXXXXXXX. ", " .XXXXXXXX. ",
" .XXX..XXX. ", " .XXX..XXX. ",
".XXXX..XXXX. ", ".XXXX..XXXX. ",
".XX......XX. ", ".XX......XX. ",
".XX......XX. ", ".XX......XX. ",
".XXXX..XXXX. ", ".XXXX..XXXX. ",
" .XXX..XXX. ", " .XXX..XXX. ",
" .XXXXXXXX. ", " .XXXXXXXX. ",
" ..XXXX... ", " ..XXXX... ",
" .... ... ", " .... ... ",
" ... ", " ... ",
" ... ", " ... ",
" ... ", " ... ",
" .. " " .. "
}; };
#endif #endif
/* XPM bitmap */ /* XPM bitmap */
#ifndef XPMMAIN #ifndef XPMMAIN
extern char * zoomrefr3d_xpm[]; extern char * zoomrefr3d_xpm[];
#else #else
char * zoomrefr3d_xpm[] = { char * zoomrefr3d_xpm[] = {
"16 16 3 1", "16 16 3 1",
" c None", " c None",
". c #0000A0", ". c #0000A0",
"X c #C0C0A0", "X c #C0C0A0",
" .... ", " .... ",
" ..XXXX.. ", " ..XXXX.. ",
" .XXXXXXXX. ", " .XXXXXXXX. ",
" .XXXXXXXX. ", " .XXXXXXXX. ",
".XXXXXXXXXX. ", ".XXXXXXXXXX. ",
".XXXXXXXXXX. ", ".XXXXXXXXXX. ",
".XXXXXXXXXX. ", ".XXXXXXXXXX. ",
".XXXXXXXXXX. ", ".XXXXXXXXXX. ",
" .XXXXXXXX. ", " .XXXXXXXX. ",
" .XXXXXXXX. ", " .XXXXXXXX. ",
" ..XXXX... ", " ..XXXX... ",
" .... ... ", " .... ... ",
" ... ", " ... ",
" ... ", " ... ",
" ... ", " ... ",
" .. " " .. "
}; };
#endif #endif
WXDIR = $(WXWIN) WXDIR = $(WXWIN)
TARGET=3d-viewer TARGET=3d-viewer
DLLSUFF=.dll DLLSUFF=.dll
include ../libs.win include ../libs.win
DLLGEN=dllwrap --export-all --output-def $(TARGET).def --implib lib$(TARGET).a --driver-name c++ DLLGEN=dllwrap --export-all --output-def $(TARGET).def --implib lib$(TARGET).a --driver-name c++
all: $(TARGET).a all: $(TARGET).a
include makefile.include include makefile.include
$(TARGET).a: $(OBJECTS3D) $(TARGET).a: $(OBJECTS3D)
ar ruv $@ $(OBJECTS3D) ar ruv $@ $(OBJECTS3D)
ranlib $@ ranlib $@
clean : clean :
rm -f *.o rm -f *.o
rm -f *.bak rm -f *.bak
rm -f $(TARGET).a rm -f $(TARGET).a
EXTRALIBS = EXTRALIBS =
EXTRACPPFLAGS= -I./ -I../include -I../common -I../pcbnew EXTRACPPFLAGS= -I./ -I../include -I../common -I../pcbnew
CPPFLAGS += $(EXTRACPPFLAGS) CPPFLAGS += $(EXTRACPPFLAGS)
OBJECTS3D = 3d_frame.o 3d_read_mesh.o 3d_canvas.o trackball.o 3d_aux.o\ OBJECTS3D = 3d_frame.o 3d_read_mesh.o 3d_canvas.o trackball.o 3d_aux.o\
3d_draw.o 3d_toolbar.o 3d_class.o 3d_draw.o 3d_toolbar.o 3d_class.o
3d_class.o: 3d_class.cpp 3d_struct.h 3d_viewer.h 3d_class.o: 3d_class.cpp 3d_struct.h 3d_viewer.h
3d_read_mesh.o: 3d_read_mesh.cpp 3d_struct.h 3d_viewer.h 3d_read_mesh.o: 3d_read_mesh.cpp 3d_struct.h 3d_viewer.h
3d_frame.o: 3d_frame.cpp 3d_viewer.h 3d_frame.o: 3d_frame.cpp 3d_viewer.h
3d_canvas.o: 3d_canvas.cpp 3d_viewer.h 3d_canvas.o: 3d_canvas.cpp 3d_viewer.h
3d_aux.o: 3d_aux.cpp 3d_viewer.h 3d_aux.o: 3d_aux.cpp 3d_viewer.h
3d_draw.o: 3d_draw.cpp 3d_viewer.h 3d_struct.h 3d_draw.o: 3d_draw.cpp 3d_viewer.h 3d_struct.h
3d_toolbar.o: 3d_toolbar.cpp 3d_viewer.h 3d_toolbar.o: 3d_toolbar.cpp 3d_viewer.h
This diff is collapsed.
/* /*
* (c) Copyright 1993, 1994, Silicon Graphics, Inc. * (c) Copyright 1993, 1994, Silicon Graphics, Inc.
* ALL RIGHTS RESERVED * ALL RIGHTS RESERVED
* Permission to use, copy, modify, and distribute this software for * Permission to use, copy, modify, and distribute this software for
* any purpose and without fee is hereby granted, provided that the above * any purpose and without fee is hereby granted, provided that the above
* copyright notice appear in all copies and that both the copyright notice * copyright notice appear in all copies and that both the copyright notice
* and this permission notice appear in supporting documentation, and that * and this permission notice appear in supporting documentation, and that
* the name of Silicon Graphics, Inc. not be used in advertising * the name of Silicon Graphics, Inc. not be used in advertising
* or publicity pertaining to distribution of the software without specific, * or publicity pertaining to distribution of the software without specific,
* written prior permission. * written prior permission.
* *
* THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS" * THE MATERIAL EMBODIED ON THIS SOFTWARE IS PROVIDED TO YOU "AS-IS"
* AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, * AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE,
* INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR * INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR
* FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON * FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON
* GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT, * GRAPHICS, INC. BE LIABLE TO YOU OR ANYONE ELSE FOR ANY DIRECT,
* SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY * SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY
* KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION, * KIND, OR ANY DAMAGES WHATSOEVER, INCLUDING WITHOUT LIMITATION,
* LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF * LOSS OF PROFIT, LOSS OF USE, SAVINGS OR REVENUE, OR THE CLAIMS OF
* THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN * THIRD PARTIES, WHETHER OR NOT SILICON GRAPHICS, INC. HAS BEEN
* ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON * ADVISED OF THE POSSIBILITY OF SUCH LOSS, HOWEVER CAUSED AND ON
* ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE * ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE
* POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE. * POSSESSION, USE OR PERFORMANCE OF THIS SOFTWARE.
* *
* US Government Users Restricted Rights * US Government Users Restricted Rights
* Use, duplication, or disclosure by the Government is subject to * Use, duplication, or disclosure by the Government is subject to
* restrictions set forth in FAR 52.227.19(c)(2) or subparagraph * restrictions set forth in FAR 52.227.19(c)(2) or subparagraph
* (c)(1)(ii) of the Rights in Technical Data and Computer Software * (c)(1)(ii) of the Rights in Technical Data and Computer Software
* clause at DFARS 252.227-7013 and/or in similar or successor * clause at DFARS 252.227-7013 and/or in similar or successor
* clauses in the FAR or the DOD or NASA FAR Supplement. * clauses in the FAR or the DOD or NASA FAR Supplement.
* Unpublished-- rights reserved under the copyright laws of the * Unpublished-- rights reserved under the copyright laws of the
* United States. Contractor/manufacturer is Silicon Graphics, * United States. Contractor/manufacturer is Silicon Graphics,
* Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311. * Inc., 2011 N. Shoreline Blvd., Mountain View, CA 94039-7311.
* *
* OpenGL(TM) is a trademark of Silicon Graphics, Inc. * OpenGL(TM) is a trademark of Silicon Graphics, Inc.
*/ */
/* /*
* trackball.h * trackball.h
* A virtual trackball implementation * A virtual trackball implementation
* Written by Gavin Bell for Silicon Graphics, November 1988. * Written by Gavin Bell for Silicon Graphics, November 1988.
*/ */
/* /*
* Pass the x and y coordinates of the last and current positions of * Pass the x and y coordinates of the last and current positions of
* the mouse, scaled so they are from (-1.0 ... 1.0). * the mouse, scaled so they are from (-1.0 ... 1.0).
* *
* The resulting rotation is returned as a quaternion rotation in the * The resulting rotation is returned as a quaternion rotation in the
* first paramater. * first paramater.
*/ */
void void
trackball(float q[4], float p1x, float p1y, float p2x, float p2y); trackball(float q[4], float p1x, float p1y, float p2x, float p2y);
/* /*
* Given two quaternions, add them together to get a third quaternion. * Given two quaternions, add them together to get a third quaternion.
* Adding quaternions to get a compound rotation is analagous to adding * Adding quaternions to get a compound rotation is analagous to adding
* translations to get a compound translation. When incrementally * translations to get a compound translation. When incrementally
* adding rotations, the first argument here should be the new * adding rotations, the first argument here should be the new
* rotation, the second and third the total rotation (which will be * rotation, the second and third the total rotation (which will be
* over-written with the resulting new total rotation). * over-written with the resulting new total rotation).
*/ */
void void
add_quats(float *q1, float *q2, float *dest); add_quats(float *q1, float *q2, float *dest);
/* /*
* A useful function, builds a rotation matrix in Matrix based on * A useful function, builds a rotation matrix in Matrix based on
* given quaternion. * given quaternion.
*/ */
void void
build_rotmatrix(float m[4][4], float q[4]); build_rotmatrix(float m[4][4], float q[4]);
/* /*
* This function computes a quaternion based on an axis (defined by * This function computes a quaternion based on an axis (defined by
* the given vector) and an angle about which to rotate. The angle is * the given vector) and an angle about which to rotate. The angle is
* expressed in radians. The result is put into the third argument. * expressed in radians. The result is put into the third argument.
*/ */
void void
axis_to_quat(float a[3], float phi, float q[4]); axis_to_quat(float a[3], float phi, float q[4]);
/* XPM */ /* XPM */
#ifndef XPMMAIN #ifndef XPMMAIN
extern char *show_3d_xpm[]; extern char *show_3d_xpm[];
#else #else
char *show_3d_xpm[] = { char *show_3d_xpm[] = {
/* columns rows colors chars-per-pixel */ /* columns rows colors chars-per-pixel */
"16 15 3 1", "16 15 3 1",
"J c #FF0000", "J c #FF0000",
...@@ -24,5 +24,5 @@ char *show_3d_xpm[] = { ...@@ -24,5 +24,5 @@ char *show_3d_xpm[] = {
".....xxxxxx.....", ".....xxxxxx.....",
"xxxxxx..........", "xxxxxx..........",
"x..............." "x..............."
}; };
#endif #endif
/* XPM */ /* XPM */
#ifndef XPMMAIN #ifndef XPMMAIN
extern char *add_arc_xpm[]; extern char *add_arc_xpm[];
#else #else
char * add_arc_xpm[] = { char * add_arc_xpm[] = {
"16 16 48 1", "16 16 48 1",
" c None", " c None",
". c #222224", ". c #222224",
"+ c #07071F", "+ c #07071F",
"@ c #000087", "@ c #000087",
"# c #00009C", "# c #00009C",
"$ c #00009B", "$ c #00009B",
"% c #474747", "% c #474747",
"& c #FEE2CA", "& c #FEE2CA",
"* c #C59A74", "* c #C59A74",
"= c #000047", "= c #000047",
"- c #00009A", "- c #00009A",
"; c #000095", "; c #000095",
"> c #473C33", "> c #473C33",
", c #FEBB7F", ", c #FEBB7F",
"' c #C57B3A", "' c #C57B3A",
") c #000015", ") c #000015",
"! c #000017", "! c #000017",
"~ c #00003A", "~ c #00003A",
"{ c #000075", "{ c #000075",
"] c #000097", "] c #000097",
"^ c #000096", "^ c #000096",
"/ c #211306", "/ c #211306",
"( c #060300", "( c #060300",
"_ c #000000", "_ c #000000",
": c #000083", ": c #000083",
"< c #000094", "< c #000094",
"[ c #00008D", "[ c #00008D",
"} c #000090", "} c #000090",
"| c #000055", "| c #000055",
"1 c #000081", "1 c #000081",
"2 c #222222", "2 c #222222",
"3 c #080807", "3 c #080807",
"4 c #000091", "4 c #000091",
"5 c #00008B", "5 c #00008B",
"6 c #070300", "6 c #070300",
"7 c #14141F", "7 c #14141F",
"8 c #12112D", "8 c #12112D",
"9 c #000059", "9 c #000059",
"0 c #161616", "0 c #161616",
"a c #F2D7C1", "a c #F2D7C1",
"b c #F2BD8E", "b c #F2BD8E",
"c c #120C10", "c c #120C10",
"d c #161210", "d c #161210",
"e c #F2B279", "e c #F2B279",
"f c #F29747", "f c #F29747",
"g c #130901", "g c #130901",
"h c #140B04", "h c #140B04",
"i c #140900", "i c #140900",
" ", " ",
" .+@#$#$ ", " .+@#$#$ ",
" %&*=$$$$-; ", " %&*=$$$$-; ",
" >,')! ~{]$^ ", " >,')! ~{]$^ ",
" /(_ :$< ", " /(_ :$< ",
" [$} ", " [$} ",
" ]$| ", " ]$| ",
" -$1 ", " -$1 ",
" 23 $4 ", " 23 $4 ",
" %&*_ $; ", " %&*_ $; ",
" >,'_ $5 ", " >,'_ $5 ",
" /6 789 ", " /6 789 ",
" 0abc ", " 0abc ",
" defg ", " defg ",
" hi_ ", " hi_ ",
" "}; " "};
#endif #endif
/* XPM */ /* XPM */
#ifndef XPMMAIN #ifndef XPMMAIN
extern char *add_circle_xpm[]; extern char *add_circle_xpm[];
#else #else
char * add_circle_xpm[] = { char * add_circle_xpm[] = {
"16 16 36 1", "16 16 36 1",
" c None", " c None",
". c #00009B", ". c #00009B",
"+ c #000096", "+ c #000096",
"@ c #00008C", "@ c #00008C",
"# c #000053", "# c #000053",
"$ c #00008A", "$ c #00008A",
"% c #00009A", "% c #00009A",
"& c #000073", "& c #000073",
"* c #00007A", "* c #00007A",
"= c #000092", "= c #000092",
"- c #00006F", "- c #00006F",
"; c #161616", "; c #161616",
"> c #161513", "> c #161513",
", c #12122F", ", c #12122F",
"' c #121125", "' c #121125",
") c #F2D7C1", ") c #F2D7C1",
"! c #F2BD8E", "! c #F2BD8E",
"~ c #140D08", "~ c #140D08",
"{ c #151519", "{ c #151519",
"] c #130D07", "] c #130D07",
"^ c #161210", "^ c #161210",
"/ c #F2B279", "/ c #F2B279",
"( c #F29747", "( c #F29747",
"_ c #140A01", "_ c #140A01",
": c #151213", ": c #151213",
"< c #130901", "< c #130901",
"[ c #140B04", "[ c #140B04",
"} c #140900", "} c #140900",
"| c #000000", "| c #000000",
"1 c #120A18", "1 c #120A18",
"2 c #12080C", "2 c #12080C",
"3 c #00003F", "3 c #00003F",
"4 c #000094", "4 c #000094",
"5 c #000044", "5 c #000044",
"6 c #000083", "6 c #000083",
"7 c #00006A", "7 c #00006A",
" .... ", " .... ",
" .......+ ", " .......+ ",
" ..@# #$.% ", " ..@# #$.% ",
" ..& *.= ", " ..& *.= ",
" .@ =.- ", " .@ =.- ",
"..# ;> ,' ", "..# ;> ,' ",
".. ;)!~ {)!] ", ".. ;)!~ {)!] ",
".. ^/(_ :/(< ", ".. ^/(_ :/(< ",
"..# [}| 12| ", "..# [}| 12| ",
" .$ .@3| ", " .$ .@3| ",
" +.* ..4 ", " +.* ..4 ",
" %.= ..%5 ", " %.= ..%5 ",
" =......45 ", " =......45 ",
" -64467 ", " -64467 ",
" ", " ",
" "}; " "};
#endif #endif
/* XPM */ /* XPM */
#ifndef XPMMAIN #ifndef XPMMAIN
extern char *add_component_xpm[]; extern char *add_component_xpm[];
#else #else
char * add_component_xpm[] = { char * add_component_xpm[] = {
"16 16 67 1", "16 16 67 1",
" c None", " c None",
...@@ -87,5 +87,5 @@ char * add_component_xpm[] = { ...@@ -87,5 +87,5 @@ char * add_component_xpm[] = {
" :::::::: ", " :::::::: ",
" ", " ",
" ", " ",
" "}; " "};
#endif #endif
/* XPM */ /* XPM */
#ifndef XPMMAIN #ifndef XPMMAIN
extern char *add_dashed_line_xpm[]; extern char *add_dashed_line_xpm[];
#else #else
char * add_dashed_line_xpm[] = { char * add_dashed_line_xpm[] = {
"16 16 15 1", "16 16 15 1",
" c None", " c None",
". c #03039B", ". c #03039B",
"+ c #8E8E9B", "+ c #8E8E9B",
"@ c #00009B", "@ c #00009B",
"# c #1F1F9B", "# c #1F1F9B",
"$ c #93939B", "$ c #93939B",
"% c #00009A", "% c #00009A",
"& c #46469A", "& c #46469A",
"* c #9B9B9B", "* c #9B9B9B",
"= c #93939A", "= c #93939A",
"- c #16169A", "- c #16169A",
"; c #0B0B9B", "; c #0B0B9B",
"> c #97979B", "> c #97979B",
", c #1E1E9B", ", c #1E1E9B",
"' c #91919B", "' c #91919B",
" ", " ",
" .+ ", " .+ ",
" @#$ ", " @#$ ",
" @#$ ", " @#$ ",
" @#$ ", " @#$ ",
" ", " ",
" %&* ", " %&* ",
" %#= ", " %#= ",
" %#= ", " %#= ",
" -= ", " -= ",
" ;* ", " ;* ",
" @#> ", " @#> ",
" @#$ ", " @#$ ",
" @,$ ", " @,$ ",
" ' ", " ' ",
" "}; " "};
#endif #endif
/* XPM */ /* XPM */
#ifndef XPMMAIN #ifndef XPMMAIN
extern char *add_entry_xpm[]; extern char *add_entry_xpm[];
#else #else
char * add_entry_xpm[] = { char * add_entry_xpm[] = {
"16 16 10 1", "16 16 10 1",
" c None", " c None",
". c #006800", ". c #006800",
"+ c #006900", "+ c #006900",
"@ c #6C8B6C", "@ c #6C8B6C",
"# c #9B9B9B", "# c #9B9B9B",
"$ c #6C8C6C", "$ c #6C8C6C",
"% c #9A9A9A", "% c #9A9A9A",
"& c #6B8B6B", "& c #6B8B6B",
"* c #9C9C9C", "* c #9C9C9C",
"= c #6A8B6A", "= c #6A8B6A",
" ", " ",
" ", " ",
" . ", " . ",
" +@ ", " +@ ",
" +@# ", " +@# ",
" +$% ", " +$% ",
" +$% ", " +$% ",
" +&# ", " +&# ",
" .&* ", " .&* ",
" .&* ", " .&* ",
" .&# ", " .&# ",
" +=# ", " +=# ",
" =# ", " =# ",
" % ", " % ",
" ", " ",
" "}; " "};
#endif #endif
/* XPM */ /* XPM */
#ifndef XPMMAIN #ifndef XPMMAIN
extern char *add_glabel_xpm[]; extern char *add_glabel_xpm[];
#else #else
char * add_glabel_xpm[] = { char * add_glabel_xpm[] = {
"16 16 54 1", "16 16 54 1",
" c None", " c None",
". c #695F00", ". c #695F00",
"+ c #837E52", "+ c #837E52",
"@ c #6D640F", "@ c #6D640F",
"# c #6F6714", "# c #6F6714",
"$ c #706818", "$ c #706818",
"% c #9C9C9C", "% c #9C9C9C",
"& c #9191FF", "& c #9191FF",
"* c #9B9BFF", "* c #9B9BFF",
"= c #A5A5FF", "= c #A5A5FF",
"- c #857F66", "- c #857F66",
"; c #746D25", "; c #746D25",
"> c #827D4F", "> c #827D4F",
", c #7E7841", ", c #7E7841",
"' c #8F8C76", "' c #8F8C76",
") c #9E9EFF", ") c #9E9EFF",
"! c #A8A8FF", "! c #A8A8FF",
"~ c #B2B2FF", "~ c #B2B2FF",
"{ c #BBBBF9", "{ c #BBBBF9",
"] c #7D7539", "] c #7D7539",
"^ c #7A7437", "^ c #7A7437",
"/ c #95948B", "/ c #95948B",
"( c #878460", "( c #878460",
"_ c #7D773E", "_ c #7D773E",
": c #ACACFF", ": c #ACACFF",
"< c #B6B6FF", "< c #B6B6FF",
"[ c #C0C0FF", "[ c #C0C0FF",
"} c #CACAFF", "} c #CACAFF",
"| c #BFBDCC", "| c #BFBDCC",
"1 c #8C896D", "1 c #8C896D",
"2 c #6C6209", "2 c #6C6209",
"3 c #989894", "3 c #989894",
"4 c #B9B9FF", "4 c #B9B9FF",
"5 c #C3C3FF", "5 c #C3C3FF",
"6 c #CECEFF", "6 c #CECEFF",
"7 c #D5D5F9", "7 c #D5D5F9",
"8 c #847C39", "8 c #847C39",
"9 c #7B7437", "9 c #7B7437",
"0 c #9B9B9B", "0 c #9B9B9B",
"a c #797233", "a c #797233",
"b c #817C4D", "b c #817C4D",
"c c #756D25", "c c #756D25",
"d c #898664", "d c #898664",
"e c #C7C7FF", "e c #C7C7FF",
"f c #D1D1FF", "f c #D1D1FF",
"g c #DBDBFF", "g c #DBDBFF",
"h c #9B9566", "h c #9B9566",
"i c #999997", "i c #999997",
"j c #96958D", "j c #96958D",
"k c #86825B", "k c #86825B",
"l c #766F2B", "l c #766F2B",
"m c #706716", "m c #706716",
"n c #97968F", "n c #97968F",
"o c #9A9A9A", "o c #9A9A9A",
" ", " ",
" ", " ",
" ", " ",
" .. ", " .. ",
" ...+ ..... ", " ...+ ..... ",
" .@#$% .&*=-; ", " .@#$% .&*=-; ",
" .>,.' .)!~{]^ ", " .>,.' .)!~{]^ ",
" ../(._ .:<[}|.1", " ../(._ .:<[}|.1",
" .....23.4567890", " .....23.4567890",
"..abbc.d.efgh;i0", "..abbc.d.efgh;i0",
"..j00k.l....mn0 ", "..j00k.l....mn0 ",
" o0 0o00000 ", " o0 0o00000 ",
" ", " ",
" ", " ",
" ", " ",
" "}; " "};
#endif #endif
/* XPM */ /* XPM */
#ifndef XPMMAIN #ifndef XPMMAIN
extern char *add_junction_xpm[]; extern char *add_junction_xpm[];
#else #else
char * add_junction_xpm[] = { char * add_junction_xpm[] = {
"16 16 60 1", "16 16 60 1",
" c None", " c None",
". c #007D00", ". c #007D00",
"+ c #4D8B4D", "+ c #4D8B4D",
"@ c #9B9B9B", "@ c #9B9B9B",
"# c #000000", "# c #000000",
"$ c #000700", "$ c #000700",
"% c #0A130A", "% c #0A130A",
"& c #282828", "& c #282828",
"* c #222222", "* c #222222",
"= c #868483", "= c #868483",
"- c #E1D5CA", "- c #E1D5CA",
"; c #B7A595", "; c #B7A595",
"> c #564A3F", "> c #564A3F",
", c #080707", ", c #080707",
"' c #151515", "' c #151515",
") c #EAE2DB", ") c #EAE2DB",
"! c #FFEBDA", "! c #FFEBDA",
"~ c #FFE0C5", "~ c #FFE0C5",
"{ c #FFD5B1", "{ c #FFD5B1",
"] c #FFCA9C", "] c #FFCA9C",
"^ c #806044", "^ c #806044",
"/ c #004C00", "/ c #004C00",
"( c #645F59", "( c #645F59",
"_ c #FFE6CF", "_ c #FFE6CF",
": c #FFDBBB", ": c #FFDBBB",
"< c #FFD0A6", "< c #FFD0A6",
"[ c #FFC591", "[ c #FFC591",
"} c #FFBA7D", "} c #FFBA7D",
"| c #E49C5D", "| c #E49C5D",
"1 c #000D00", "1 c #000D00",
"2 c #2F552F", "2 c #2F552F",
"3 c #64584D", "3 c #64584D",
"4 c #FFD5B0", "4 c #FFD5B0",
"5 c #FFCA9B", "5 c #FFCA9B",
"6 c #FFBF87", "6 c #FFBF87",
"7 c #FFB472", "7 c #FFB472",
"8 c #FFA95D", "8 c #FFA95D",
"9 c #E48D41", "9 c #E48D41",
"0 c #080F08", "0 c #080F08",
"a c #757575", "a c #757575",
"b c #16120F", "b c #16120F",
"c c #EAB485", "c c #EAB485",
"d c #FFB97C", "d c #FFB97C",
"e c #FFAF67", "e c #FFAF67",
"f c #FFA453", "f c #FFA453",
"g c #FF993E", "g c #FF993E",
"h c #804715", "h c #804715",
"i c #3A3A3A", "i c #3A3A3A",
"j c #414141", "j c #414141",
"k c #22180F", "k c #22180F",
"l c #865931", "l c #865931",
"m c #E18B40", "m c #E18B40",
"n c #B76925", "n c #B76925",
"o c #562E0A", "o c #562E0A",
"p c #131110", "p c #131110",
"q c #8E8E8E", "q c #8E8E8E",
"r c #686868", "r c #686868",
"s c #242424", "s c #242424",
"t c #3F3F3F", "t c #3F3F3F",
"u c #909090", "u c #909090",
" .. ", " .. ",
" .+@ ", " .+@ ",
" .+@ ", " .+@ ",
" #$%& ", " #$%& ",
" *=-;>, ", " *=-;>, ",
" ')!~{]^* ", " ')!~{]^* ",
".../(_:<[}|1... ", ".../(_:<[}|1... ",
".++234567890+++@", ".++234567890+++@",
" @@abcdefghi@@@@", " @@abcdefghi@@@@",
" jklmnopq ", " jklmnopq ",
" rs$%tu ", " rs$%tu ",
" @.+@ ", " @.+@ ",
" .+@ ", " .+@ ",
" .+@ ", " .+@ ",
" .+@ ", " .+@ ",
" @@ "}; " @@ "};
#endif #endif
/* XPM */ /* XPM */
#ifndef XPMMAIN #ifndef XPMMAIN
extern char *add_line_xpm[]; extern char *add_line_xpm[];
#else #else
char * add_line_xpm[] = { char * add_line_xpm[] = {
"16 16 3 1", "16 16 3 1",
" c None", " c None",
". c #006900", ". c #006900",
"+ c #9B9B9B", "+ c #9B9B9B",
" ", " ",
" ", " ",
"...... ", "...... ",
" ++++.+ ", " ++++.+ ",
" .+ ", " .+ ",
" .+ ", " .+ ",
" .+ ", " .+ ",
" .+ ", " .+ ",
" .+ ", " .+ ",
" .+ ", " .+ ",
" .+ ", " .+ ",
" .......... ", " .......... ",
" ++++++++++", " ++++++++++",
" ", " ",
" ", " ",
" "}; " "};
#endif #endif
/* XPM */ /* XPM */
#ifndef XPMMAIN #ifndef XPMMAIN
extern char *add_line_label_xpm[]; extern char *add_line_label_xpm[];
#else #else
char * add_line_label_xpm[] = { char * add_line_label_xpm[] = {
"16 16 24 1", "16 16 24 1",
" c None", " c None",
". c #000000", ". c #000000",
"+ c #020202", "+ c #020202",
"@ c #8D8D8D", "@ c #8D8D8D",
"# c #202020", "# c #202020",
"$ c #555555", "$ c #555555",
"% c #9A9A9A", "% c #9A9A9A",
"& c #8C8C8C", "& c #8C8C8C",
"* c #080808", "* c #080808",
"= c #161616", "= c #161616",
"- c #9B9B9B", "- c #9B9B9B",
"; c #131313", "; c #131313",
"> c #969696", "> c #969696",
", c #212121", ", c #212121",
"' c #7C7C7C", "' c #7C7C7C",
") c #414141", ") c #414141",
"! c #515151", "! c #515151",
"~ c #525252", "~ c #525252",
"{ c #070707", "{ c #070707",
"] c #0B0B0B", "] c #0B0B0B",
"^ c #979797", "^ c #979797",
"/ c #1F1F1F", "/ c #1F1F1F",
"( c #6B6B6B", "( c #6B6B6B",
"_ c #009B00", "_ c #009B00",
" ", " ",
" ..+ ", " ..+ ",
" ..+@ ", " ..+@ ",
" .#.$% ", " .#.$% ",
" ..&*=- ", " ..&*=- ",
" .;>,.' ", " .;>,.' ",
" ......)- ", " ......)- ",
" ..!~~{]^ ", " ..!~~{]^ ",
" ./-% #+( ", " ./-% #+( ",
" -- -- ", " -- -- ",
" ", " ",
"________________", "________________",
"________________", "________________",
"----------------", "----------------",
" ", " ",
" "}; " "};
#endif #endif
/* XPM */ /* XPM */
#ifndef XPMMAIN #ifndef XPMMAIN
extern char *add_polygon_xpm[]; extern char *add_polygon_xpm[];
#else #else
char * add_polygon_xpm[] = { char * add_polygon_xpm[] = {
"16 16 54 1", "16 16 54 1",
" c None", " c None",
". c #161616", ". c #161616",
"+ c #161513", "+ c #161513",
"@ c #080808", "@ c #080808",
"# c #222222", "# c #222222",
"$ c #F2D7C0", "$ c #F2D7C0",
"% c #F2BC8E", "% c #F2BC8E",
"& c #120C24", "& c #120C24",
"* c #00009B", "* c #00009B",
"= c #000047", "= c #000047",
"- c #C5C4C4", "- c #C5C4C4",
"; c #FEE2CA", "; c #FEE2CA",
"> c #46372A", "> c #46372A",
", c #16120F", ", c #16120F",
"' c #F2B279", "' c #F2B279",
") c #F29647", ") c #F29647",
"! c #12091F", "! c #12091F",
"~ c #C5A68C", "~ c #C5A68C",
"{ c #FEBB7F", "{ c #FEBB7F",
"] c #462B17", "] c #462B17",
"^ c #000033", "^ c #000033",
"/ c #140C04", "/ c #140C04",
"( c #130900", "( c #130900",
"_ c #000000", "_ c #000000",
": c #070402", ": c #070402",
"< c #1F1211", "< c #1F1211",
"[ c #00005E", "[ c #00005E",
"} c #000091", "} c #000091",
"| c #00008C", "| c #00008C",
"1 c #00009A", "1 c #00009A",
"2 c #00005F", "2 c #00005F",
"3 c #000040", "3 c #000040",
"4 c #858484", "4 c #858484",
"5 c #857D75", "5 c #857D75",
"6 c #26262B", "6 c #26262B",
"7 c #FFE3CB", "7 c #FFE3CB",
"8 c #FFC796", "8 c #FFC796",
"9 c #25190E", "9 c #25190E",
"0 c #856243", "0 c #856243",
"a c #855327", "a c #855327",
"b c #00006E", "b c #00006E",
"c c #12122F", "c c #12122F",
"d c #12112D", "d c #12112D",
"e c #F2D7C1", "e c #F2D7C1",
"f c #F2BD8E", "f c #F2BD8E",
"g c #130D07", "g c #130D07",
"h c #161210", "h c #161210",
"i c #F29747", "i c #F29747",
"j c #12091E", "j c #12091E",
"k c #120F2A", "k c #120F2A",
"l c #130901", "l c #130901",
"m c #140B04", "m c #140B04",
"n c #130800", "n c #130800",
"o c #130A04", "o c #130A04",
" .+ @# ", " .+ @# ",
".$%&**=-;> ", ".$%&**=-;> ",
",')!**=~{]^ ", ",')!**=~{]^ ",
" /(__ :<[} ", " /(__ :<[} ",
" |12 ", " |12 ",
" 345_ ", " 345_ ",
" 6789 ", " 6789 ",
" _0a_ ", " _0a_ ",
" bb_ ", " bb_ ",
" ** ", " ** ",
" ** ", " ** ",
" .+ cd_ ", " .+ cd_ ",
" .ef&*****cefg ", " .ef&*****cefg ",
" h'ij*****k'il ", " h'ij*****k'il ",
" mn__ _on_ ", " mn__ _on_ ",
" "}; " "};
#endif #endif
/* XPM */ /* XPM */
#ifndef XPMMAIN #ifndef XPMMAIN
extern char *add_rectangle_xpm[]; extern char *add_rectangle_xpm[];
#else #else
char * add_rectangle_xpm[] = { char * add_rectangle_xpm[] = {
"16 16 24 1", "16 16 24 1",
" c None", " c None",
". c #161616", ". c #161616",
"+ c #161513", "+ c #161513",
"@ c #F2D7C0", "@ c #F2D7C0",
"# c #F2BC8E", "# c #F2BC8E",
"$ c #120C24", "$ c #120C24",
"% c #00009B", "% c #00009B",
"& c #16120F", "& c #16120F",
"* c #F2B279", "* c #F2B279",
"= c #F29647", "= c #F29647",
"- c #12091F", "- c #12091F",
"; c #120A21", "; c #120A21",
"> c #12081D", "> c #12081D",
", c #000000", ", c #000000",
"' c #12122F", "' c #12122F",
") c #12112D", ") c #12112D",
"! c #F2D7C1", "! c #F2D7C1",
"~ c #F2BD8E", "~ c #F2BD8E",
"{ c #130D07", "{ c #130D07",
"] c #120F2A", "] c #120F2A",
"^ c #F29747", "^ c #F29747",
"/ c #130901", "/ c #130901",
"( c #130A04", "( c #130A04",
"_ c #130800", "_ c #130800",
" .+ ", " .+ ",
".@#$%%%%%%%%%% ", ".@#$%%%%%%%%%% ",
"&*=-%%%%%%%%%% ", "&*=-%%%%%%%%%% ",
" ;>,, %% ", " ;>,, %% ",
" %%, %% ", " %%, %% ",
" %% %% ", " %% %% ",
" %% %% ", " %% %% ",
" %% %% ", " %% %% ",
" %% %% ", " %% %% ",
" %% %% ", " %% %% ",
" %% %% ", " %% %% ",
" %% '), ", " %% '), ",
" %%%%%%%%%%'!~{ ", " %%%%%%%%%%'!~{ ",
" %%%%%%%%%%]*^/ ", " %%%%%%%%%%]*^/ ",
" ,(_, ", " ,(_, ",
" "}; " "};
#endif #endif
/* XPM */ /* XPM */
#ifndef XPMMAIN #ifndef XPMMAIN
extern char *add_text_xpm[]; extern char *add_text_xpm[];
#else #else
char * add_text_xpm[] = { char * add_text_xpm[] = {
"16 16 4 1", "16 16 4 1",
" c None", " c None",
". c #00009B", ". c #00009B",
"+ c #000098", "+ c #000098",
"@ c #00005D", "@ c #00005D",
" .............. ", " .............. ",
" .............. ", " .............. ",
" .+ .... +. ", " .+ .... +. ",
" .@ .... . ", " .@ .... . ",
" .... ", " .... ",
" .... ", " .... ",
" .... ", " .... ",
" .... ", " .... ",
" .... ", " .... ",
" .... ", " .... ",
" .... ", " .... ",
" .... ", " .... ",
" .... ", " .... ",
" .....+ ", " .....+ ",
" ........ ", " ........ ",
" "}; " "};
#endif #endif
/* XPM */ /* XPM */
#ifndef XPMMAIN #ifndef XPMMAIN
extern char *apply_xpm[]; extern char *apply_xpm[];
#else #else
char * apply_xpm[] = { char * apply_xpm[] = {
"16 16 16 1", "16 16 16 1",
" c None", " c None",
". c #000000", ". c #000000",
"+ c #C8D7E5", "+ c #C8D7E5",
"@ c #8EA8C0", "@ c #8EA8C0",
"# c #9DB8D2", "# c #9DB8D2",
"$ c #7E94AA", "$ c #7E94AA",
"% c #8299AF", "% c #8299AF",
"& c #D6E1EB", "& c #D6E1EB",
"* c #C4CED6", "* c #C4CED6",
"= c #ACBED0", "= c #ACBED0",
"- c #404040", "- c #404040",
"; c #ACB9C5", "; c #ACB9C5",
"> c #727272", "> c #727272",
", c #889FB6", ", c #889FB6",
"' c #B1BFCB", "' c #B1BFCB",
") c #98B2CC", ") c #98B2CC",
" ", " ",
" ", " ",
" ", " ",
" .. ", " .. ",
" .+@. ", " .+@. ",
" .+#$. ", " .+#$. ",
" .. .+#%. ", " .. .+#%. ",
" .&&. .+#%. ", " .&&. .+#%. ",
" .*#=. .+#%. ", " .*#=. .+#%. ",
" -=#=.&#%. ", " -=#=.&#%. ",
" .;####%. ", " .;####%. ",
" >,##%. ", " >,##%. ",
" .')$. ", " .')$. ",
" ... ", " ... ",
" ", " ",
" "}; " "};
#endif #endif
/* XPM */ /* XPM */
#ifndef XPMMAIN #ifndef XPMMAIN
extern char *cancel_xpm[]; extern char *cancel_xpm[];
#else #else
char * cancel_xpm[] = { char * cancel_xpm[] = {
"16 16 103 2", "16 16 103 2",
" c None", " c None",
...@@ -123,5 +123,5 @@ char * cancel_xpm[] = { ...@@ -123,5 +123,5 @@ char * cancel_xpm[] = {
" x y z { | 5 4 } ~ ! ", " x y z { | 5 4 } ~ ! ",
" !!#!$!%! % + X &!'! ", " !!#!$!%! % + X &!'! ",
" (!)! % *!+! ", " (!)! % *!+! ",
" "}; " "};
#endif #endif
/* XPM */ /* XPM */
#ifndef XPMMAIN #ifndef XPMMAIN
extern char *copyblock_xpm[]; extern char *copyblock_xpm[];
#else #else
char * copyblock_xpm[] = { char * copyblock_xpm[] = {
"16 16 18 1", "16 16 18 1",
" c None", " c None",
". c #000000", ". c #000000",
"+ c #B3B3B3", "+ c #B3B3B3",
"@ c #FFFFFF", "@ c #FFFFFF",
"# c #D6D6D6", "# c #D6D6D6",
"$ c #646464", "$ c #646464",
"% c #4D4D4D", "% c #4D4D4D",
"& c #505050", "& c #505050",
"* c #696969", "* c #696969",
"= c #787878", "= c #787878",
"- c #4C4C4C", "- c #4C4C4C",
"; c #E3E3E3", "; c #E3E3E3",
"> c #5A5A5A", "> c #5A5A5A",
", c #535353", ", c #535353",
"' c #919191", "' c #919191",
") c #A2A2A2", ") c #A2A2A2",
"! c #5C5C5C", "! c #5C5C5C",
"~ c #666666", "~ c #666666",
".......... ", ".......... ",
".+@@@@@@#. ", ".+@@@@@@#. ",
".@@@@@@@@. ", ".@@@@@@@@. ",
".@$%&@*=@. ", ".@$%&@*=@. ",
".@@@@@@@@. ", ".@@@@@@@@. ",
".@&-@&......... ", ".@&-@&......... ",
".@@@@.+@@@@@@#. ", ".@@@@.+@@@@@@#. ",
".;>,'.@@@@@@@@. ", ".;>,'.@@@@@@@@. ",
".@@@@.@$%&@*=@. ", ".@@@@.@$%&@*=@. ",
".#@@@.@@@@@@@@. ", ".#@@@.@@@@@@@@. ",
"......@&-@)*+@. ", "......@&-@)*+@. ",
" .@@@@@@@@. ", " .@@@@@@@@. ",
" .;>,'@!~@. ", " .;>,'@!~@. ",
" .@@@@@@@@. ", " .@@@@@@@@. ",
" .#@@@@@@#. ", " .#@@@@@@#. ",
" ......... "}; " ......... "};
#endif #endif
/* XPM */ /* XPM */
#ifndef XPMMAIN #ifndef XPMMAIN
extern char *cursor_shape_xpm[]; extern char *cursor_shape_xpm[];
#else #else
char * cursor_shape_xpm[] = { char * cursor_shape_xpm[] = {
"16 16 53 1", "16 16 53 1",
" c None", " c None",
". c #373737", ". c #373737",
"+ c #9B9B9B", "+ c #9B9B9B",
"@ c #2E2E2E", "@ c #2E2E2E",
"# c #323232", "# c #323232",
"$ c #252525", "$ c #252525",
"% c #121212", "% c #121212",
"& c #696969", "& c #696969",
"* c #858585", "* c #858585",
"= c #777777", "= c #777777",
"- c #040404", "- c #040404",
"; c #383838", "; c #383838",
"> c #7D7D7D", "> c #7D7D7D",
", c #FFFFFF", ", c #FFFFFF",
"' c #BDBDCB", "' c #BDBDCB",
") c #28282F", ") c #28282F",
"! c #6D6D6D", "! c #6D6D6D",
"~ c #F7F7FF", "~ c #F7F7FF",
"{ c #E6E6FF", "{ c #E6E6FF",
"] c #D1D1F9", "] c #D1D1F9",
"^ c #61617D", "^ c #61617D",
"/ c #050507", "/ c #050507",
"( c #363636", "( c #363636",
"_ c #5E5E5E", "_ c #5E5E5E",
": c #F0F0FF", ": c #F0F0FF",
"< c #DFDFFF", "< c #DFDFFF",
"[ c #BFBFEC", "[ c #BFBFEC",
"} c #6E6E93", "} c #6E6E93",
"| c #1C1C27", "| c #1C1C27",
"1 c #4C4C4E", "1 c #4C4C4E",
"2 c #E8E8FF", "2 c #E8E8FF",
"3 c #9F9FBC", "3 c #9F9FBC",
"4 c #7B7B9D", "4 c #7B7B9D",
"5 c #343434", "5 c #343434",
"6 c #9A9A9A", "6 c #9A9A9A",
"7 c #38383B", "7 c #38383B",
"8 c #52525D", "8 c #52525D",
"9 c #1C1C1D", "9 c #1C1C1D",
"0 c #A6A6DE", "0 c #A6A6DE",
"a c #393953", "a c #393953",
"b c #636363", "b c #636363",
"c c #242424", "c c #242424",
"d c #7E7E7E", "d c #7E7E7E",
"e c #7A7A7A", "e c #7A7A7A",
"f c #4E4E6C", "f c #4E4E6C",
"g c #9B9BED", "g c #9B9BED",
"h c #12121F", "h c #12121F",
"i c #959595", "i c #959595",
"j c #2D2D30", "j c #2D2D30",
"k c #9494EC", "k c #9494EC",
"l c #54548A", "l c #54548A",
"m c #000000", "m c #000000",
"n c #181827", "n c #181827",
" . ", " . ",
" .+ ", " .+ ",
"..@#........... ", "..@#........... ",
" +$%&++++++++++ ", " +$%&++++++++++ ",
" .*=- ", " .*=- ",
" ;>,') ", " ;>,') ",
" .!~{]^/ ", " .!~{]^/ ",
" (_:<[}| ", " (_:<[}| ",
" (123456+ ", " (123456+ ",
" .7890ab ", " .7890ab ",
" .cdefgh ", " .cdefgh ",
" .i+ jklm ", " .i+ jklm ",
" .6 !n# ", " .6 !n# ",
" .+ e++ ", " .+ e++ ",
" .+ + ", " .+ + ",
" + "}; " + "};
#endif #endif
/* XPM */ /* XPM */
#ifndef XPMMAIN #ifndef XPMMAIN
extern char *datasheet_xpm[]; extern char *datasheet_xpm[];
#else #else
char * datasheet_xpm[] = { char * datasheet_xpm[] = {
"16 16 22 1", "16 16 22 1",
" c None", " c None",
". c #000000", ". c #000000",
"+ c #010101", "+ c #010101",
"@ c #FEFEFE", "@ c #FEFEFE",
"# c #EBEBEB", "# c #EBEBEB",
"$ c #696969", "$ c #696969",
"% c #272727", "% c #272727",
"& c #FFFFFF", "& c #FFFFFF",
"* c #787878", "* c #787878",
"= c #D4D4D4", "= c #D4D4D4",
"- c #212121", "- c #212121",
"; c #3A3A3A", "; c #3A3A3A",
"> c #757575", "> c #757575",
", c #595959", ", c #595959",
"' c #B0B0B0", "' c #B0B0B0",
") c #8E8E8E", ") c #8E8E8E",
"! c #C3C3C3", "! c #C3C3C3",
"~ c #913131", "~ c #913131",
"{ c #8D2D2D", "{ c #8D2D2D",
"] c #852525", "] c #852525",
"^ c #C69696", "^ c #C69696",
"/ c #C29292", "/ c #C29292",
" ..........+. ", " ..........+. ",
".@#########$%. ", ".@#########$%. ",
".&##.#.#.#.*=-. ", ".&##.#.#.#.*=-. ",
".&#........;>,. ", ".&#........;>,. ",
".&#';######.)!. ", ".&#';######.)!. ",
".&#';######.#!. ", ".&#';######.#!. ",
".&#.........#!. ", ".&#.........#!. ",
".&##.#.#.#.##!. ", ".&##.#.#.#.##!. ",
".&###########!. ", ".&###########!. ",
".~{{{{{{{{{{{]. ", ".~{{{{{{{{{{{]. ",
".~&&^{&&^{&&&]. ", ".~&&^{&&^{&&&]. ",
".~&{&{&{&{&{{]. ", ".~&{&{&{&{&{{]. ",
".~&{&{&{&{&&{]. ", ".~&{&{&{&{&&{]. ",
".~&&^{&{&{&{{]. ", ".~&&^{&{&{&{{]. ",
".~&]]]&&/]&]]]. ", ".~&]]]&&/]&]]]. ",
"............... "}; "............... "};
#endif #endif
This diff is collapsed.
This diff is collapsed.
/* XPM */ /* XPM */
#ifndef XPMMAIN #ifndef XPMMAIN
extern char *delete_cotation_xpm[]; extern char *delete_cotation_xpm[];
#else #else
char * delete_cotation_xpm[] = { char * delete_cotation_xpm[] = {
"16 16 110 2", "16 16 110 2",
" c None", " c None",
". c #000000", ". c #000000",
"+ c #00009B", "+ c #00009B",
"@ c #000097", "@ c #000097",
"# c #000099", "# c #000099",
"$ c #00008B", "$ c #00008B",
"% c #000095", "% c #000095",
"& c #000088", "& c #000088",
"* c #000072", "* c #000072",
"= c #010101", "= c #010101",
"- c #0D0D0D", "- c #0D0D0D",
"; c #414141", "; c #414141",
"> c #494949", "> c #494949",
", c #3D3D3D", ", c #3D3D3D",
"' c #2B2B2B", "' c #2B2B2B",
") c #01014F", ") c #01014F",
"! c #000081", "! c #000081",
"~ c #00008F", "~ c #00008F",
"{ c #010166", "{ c #010166",
"] c #838170", "] c #838170",
"^ c #EEEBD6", "^ c #EEEBD6",
"/ c #F0EFE7", "/ c #F0EFE7",
"( c #ECEBE2", "( c #ECEBE2",
"_ c #C5C4B8", "_ c #C5C4B8",
": c #525146", ": c #525146",
"< c #000001", "< c #000001",
"[ c #01016F", "[ c #01016F",
"} c #0F0F0F", "} c #0F0F0F",
"| c #C0BEA3", "| c #C0BEA3",
"1 c #BFBDA3", "1 c #BFBDA3",
"2 c #797866", "2 c #797866",
"3 c #47463F", "3 c #47463F",
"4 c #262624", "4 c #262624",
"5 c #35342D", "5 c #35342D",
"6 c #858371", "6 c #858371",
"7 c #9E9C87", "7 c #9E9C87",
"8 c #A19F88", "8 c #A19F88",
"9 c #A3A18A", "9 c #A3A18A",
"0 c #2A2A2A", "0 c #2A2A2A",
"a c #D1CFBA", "a c #D1CFBA",
"b c #DAD8C2", "b c #DAD8C2",
"c c #E0DECD", "c c #E0DECD",
"d c #B7B5A0", "d c #B7B5A0",
"e c #63615A", "e c #63615A",
"f c #383735", "f c #383735",
"g c #3B3B32", "g c #3B3B32",
"h c #605F52", "h c #605F52",
"i c #989681", "i c #989681",
"j c #B5B399", "j c #B5B399",
"k c #B1B096", "k c #B1B096",
"l c #A2A08A", "l c #A2A08A",
"m c #E6E2D1", "m c #E6E2D1",
"n c #F2EFE7", "n c #F2EFE7",
"o c #F0EFE2", "o c #F0EFE2",
"p c #E8E7D8", "p c #E8E7D8",
"q c #E3E0D0", "q c #E3E0D0",
"r c #D3D0BC", "r c #D3D0BC",
"s c #C1BFA5", "s c #C1BFA5",
"t c #ADAB92", "t c #ADAB92",
"u c #BEBCA2", "u c #BEBCA2",
"v c #C4C2AA", "v c #C4C2AA",
"w c #B6B49A", "w c #B6B49A",
"x c #787666", "x c #787666",
"y c #888774", "y c #888774",
"z c #EFEBD0", "z c #EFEBD0",
"A c #F9F6E7", "A c #F9F6E7",
"B c #F7F3EB", "B c #F7F3EB",
"C c #F6F5EC", "C c #F6F5EC",
"D c #F6F5EA", "D c #F6F5EA",
"E c #F3F1E4", "E c #F3F1E4",
"F c #EAE8D7", "F c #EAE8D7",
"G c #DCDBC9", "G c #DCDBC9",
"H c #9B9987", "H c #9B9987",
"I c #626153", "I c #626153",
"J c #57564A", "J c #57564A",
"K c #515045", "K c #515045",
"L c #727064", "L c #727064",
"M c #9D9B8F", "M c #9D9B8F",
"N c #E2DFC6", "N c #E2DFC6",
"O c #E7E3CD", "O c #E7E3CD",
"P c #E0DEC9", "P c #E0DEC9",
"Q c #CFCFC9", "Q c #CFCFC9",
"R c #8C8B7E", "R c #8C8B7E",
"S c #757463", "S c #757463",
"T c #676657", "T c #676657",
"U c #424137", "U c #424137",
"V c #282722", "V c #282722",
"W c #1E1E1A", "W c #1E1E1A",
"X c #33332F", "X c #33332F",
"Y c #4A4843", "Y c #4A4843",
"Z c #676661", "Z c #676661",
"` c #6F6E65", "` c #6F6E65",
" . c #6A6A63", " . c #6A6A63",
".. c #6D6B5C", ".. c #6D6B5C",
"+. c #383830", "+. c #383830",
"@. c #161514", "@. c #161514",
"#. c #191915", "#. c #191915",
"$. c #1E1D19", "$. c #1E1D19",
"%. c #292922", "%. c #292922",
"&. c #9E9E93", "&. c #9E9E93",
"*. c #4C4C3F", "*. c #4C4C3F",
"=. c #35352F", "=. c #35352F",
"-. c #292925", "-. c #292925",
";. c #2E2E29", ";. c #2E2E29",
">. c #0E0E0C", ">. c #0E0E0C",
",. c #0A0A08", ",. c #0A0A08",
"'. c #0F0F0C", "'. c #0F0F0C",
"). c #3D3D37", "). c #3D3D37",
"!. c #33332A", "!. c #33332A",
"~. c #23231E", "~. c #23231E",
" . . ", " . . ",
" . . . ", " . . . ",
" . . . . ", " . . . . ",
" . . ", " . . ",
"+ + @ . . # + ", "+ + @ . . # + ",
"+ $ @ % + ", "+ $ @ % + ",
"+ # + + + + + + + + + + + + + ", "+ # + + + + + + + + + + + + + ",
"+ & * = - ; > , ' . ) ! + . ", "+ & * = - ; > , ' . ) ! + . ",
"+ ~ { . . ] ^ / ( _ : < . [ ", "+ ~ { . . ] ^ / ( _ : < . [ ",
"+ } | 1 2 3 4 5 6 7 8 9 < ", "+ } | 1 2 3 4 5 6 7 8 9 < ",
"+ 0 a b c d e f g h i j k l . ", "+ 0 a b c d e f g h i j k l . ",
"+ . m n o p q r s t u v w x . ", "+ . m n o p q r s t u v w x . ",
"+ . y z A B C D E F G H I J . ", "+ . y z A B C D E F G H I J . ",
"+ . K L M N O P Q R S T U V . ", "+ . K L M N O P Q R S T U V . ",
" W X Y Z ` ...J +.@.#.$. ", " W X Y Z ` ...J +.@.#.$. ",
" %.&.*.=.-.;.>.,.'.).!.~. "}; " %.&.*.=.-.;.>.,.'.).!.~. "};
#endif #endif
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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