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