Initial import of KiCad.
This commit is contained in:
commit
23c40f7e86
|
@ -0,0 +1,269 @@
|
|||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: 3d_aux.cpp
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
#ifdef __GNUG__
|
||||
#pragma implementation
|
||||
#pragma interface
|
||||
#endif
|
||||
|
||||
#include "fctsys.h"
|
||||
|
||||
#if !wxUSE_GLCANVAS
|
||||
#error Please set wxUSE_GLCANVAS to 1 in setup.h.
|
||||
#endif
|
||||
|
||||
#include "common.h"
|
||||
#include "trigo.h"
|
||||
|
||||
#include "bitmaps.h"
|
||||
|
||||
#include "3d_viewer.h"
|
||||
#include "3d_struct.h"
|
||||
#include "trackball.h"
|
||||
|
||||
/**************************************************************************/
|
||||
void Struct3D_Master::Set_Object_Coords(S3D_Vertex * coord, int nbcoord )
|
||||
/**************************************************************************/
|
||||
{
|
||||
int ii;
|
||||
|
||||
|
||||
/* adjust object scale, rotation and offset position */
|
||||
for ( ii = 0; ii < nbcoord; ii++ )
|
||||
{
|
||||
coord[ii].x *= m_MatScale.x;
|
||||
coord[ii].y *= m_MatScale.y;
|
||||
coord[ii].z *= m_MatScale.z;
|
||||
/* adjust rotation */
|
||||
if ( m_MatRotation.x )
|
||||
RotatePoint(&coord[ii].y, &coord[ii].z,
|
||||
(int)(m_MatRotation.x * 10));
|
||||
if ( m_MatRotation.y )
|
||||
RotatePoint(&coord[ii].z, &coord[ii].x,
|
||||
(int)(m_MatRotation.y * 10));
|
||||
if ( m_MatRotation.z )
|
||||
RotatePoint(&coord[ii].x, &coord[ii].y,
|
||||
(int)(m_MatRotation.z * 10));
|
||||
/* adjust offset position (offset is given in UNIT 3D (0.1 inch) */
|
||||
#define SCALE_3D_CONV (PCB_INTERNAL_UNIT/UNITS3D_TO_UNITSPCB)
|
||||
coord[ii].x += m_MatPosition.x * SCALE_3D_CONV;
|
||||
coord[ii].y += m_MatPosition.y * SCALE_3D_CONV;
|
||||
coord[ii].z += m_MatPosition.z * SCALE_3D_CONV;
|
||||
}
|
||||
}
|
||||
|
||||
/************************************************************/
|
||||
void Set_Object_Data(const S3D_Vertex * coord, int nbcoord )
|
||||
/************************************************************/
|
||||
{
|
||||
int ii;
|
||||
GLfloat ax,ay,az,bx,by,bz,nx,ny,nz,r;
|
||||
|
||||
/* ignore faces with less than 3 points */
|
||||
if (nbcoord < 3) return;
|
||||
|
||||
/* calculate normal direction */
|
||||
ax = coord[1].x - coord[0].x;
|
||||
ay = coord[1].y - coord[0].y;
|
||||
az = coord[1].z - coord[0].z;
|
||||
|
||||
bx = coord[nbcoord-1].x - coord[0].x;
|
||||
by = coord[nbcoord-1].y - coord[0].y;
|
||||
bz = coord[nbcoord-1].z - coord[0].z;
|
||||
|
||||
nx = ay * bz - az * by;
|
||||
ny = az * bx - ax * bz;
|
||||
nz = ax * by - ay * bx;
|
||||
|
||||
r = sqrt(nx*nx + ny*ny + nz*nz);
|
||||
if (r >= 0.000001) /* avoid division by zero */
|
||||
{
|
||||
nx /= r; ny /= r; nz /= r;
|
||||
glNormal3f(nx,ny,nz);
|
||||
}
|
||||
|
||||
/* glBegin/glEnd */
|
||||
switch (nbcoord)
|
||||
{
|
||||
case 3:
|
||||
glBegin(GL_TRIANGLES);
|
||||
break;
|
||||
|
||||
case 4:
|
||||
glBegin(GL_QUADS);
|
||||
break;
|
||||
|
||||
default:
|
||||
glBegin(GL_POLYGON);
|
||||
break;
|
||||
}
|
||||
|
||||
/* draw polygon/triangle/quad */
|
||||
for (ii = 0; ii < nbcoord; ii++)
|
||||
{
|
||||
glVertex3f(coord[ii].x * DataScale3D,
|
||||
coord[ii].y * DataScale3D,
|
||||
coord[ii].z * DataScale3D);
|
||||
}
|
||||
|
||||
glEnd();
|
||||
}
|
||||
|
||||
|
||||
/**********************************************/
|
||||
GLuint Pcb3D_GLCanvas::DisplayCubeforTest(void)
|
||||
/**********************************************/
|
||||
{
|
||||
GLuint gllist = glGenLists( 1 );
|
||||
|
||||
glNewList( gllist, GL_COMPILE_AND_EXECUTE );
|
||||
/* draw six faces of a cube */
|
||||
glBegin(GL_QUADS);
|
||||
glNormal3f( 0.0F, 0.0F, 1.0F);
|
||||
glVertex3f( 0.5F, 0.5F, 0.5F); glVertex3f(-0.5F, 0.5F, 0.5F);
|
||||
glVertex3f(-0.5F,-0.5F, 0.5F); glVertex3f( 0.5F,-0.5F, 0.5F);
|
||||
|
||||
glNormal3f( 0.0F, 0.0F,-1.0F);
|
||||
glVertex3f(-0.5F,-0.5F,-0.5F); glVertex3f(-0.5F, 0.5F,-0.5F);
|
||||
glVertex3f( 0.5F, 0.5F,-0.5F); glVertex3f( 0.5F,-0.5F,-0.5F);
|
||||
|
||||
glNormal3f( 0.0F, 1.0F, 0.0F);
|
||||
glVertex3f( 0.5F, 0.5F, 0.5F); glVertex3f( 0.5F, 0.5F,-0.5F);
|
||||
glVertex3f(-0.5F, 0.5F,-0.5F); glVertex3f(-0.5F, 0.5F, 0.5F);
|
||||
|
||||
glNormal3f( 0.0F,-1.0F, 0.0F);
|
||||
glVertex3f(-0.5F,-0.5F,-0.5F); glVertex3f( 0.5F,-0.5F,-0.5F);
|
||||
glVertex3f( 0.5F,-0.5F, 0.5F); glVertex3f(-0.5F,-0.5F, 0.5F);
|
||||
|
||||
glNormal3f( 1.0F, 0.0F, 0.0F);
|
||||
glVertex3f( 0.5F, 0.5F, 0.5F); glVertex3f( 0.5F,-0.5F, 0.5F);
|
||||
glVertex3f( 0.5F,-0.5F,-0.5F); glVertex3f( 0.5F, 0.5F,-0.5F);
|
||||
|
||||
glNormal3f(-1.0F, 0.0F, 0.0F);
|
||||
glVertex3f(-0.5F,-0.5F,-0.5F); glVertex3f(-0.5F,-0.5F, 0.5F);
|
||||
glVertex3f(-0.5F, 0.5F, 0.5F); glVertex3f(-0.5F, 0.5F,-0.5F);
|
||||
glEnd();
|
||||
|
||||
glEndList();
|
||||
|
||||
return gllist;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**********************/
|
||||
/* class Info_3D_Visu */
|
||||
/**********************/
|
||||
|
||||
/* Constructor */
|
||||
Info_3D_Visu::Info_3D_Visu(void)
|
||||
{
|
||||
int ii;
|
||||
m_Beginx = m_Beginy = 0.0; /* position of mouse */
|
||||
m_Zoom = 1.0; /* field of view in degrees */
|
||||
trackball( m_Quat, 0.0, 0.0, 0.0, 0.0 );
|
||||
for ( ii = 0; ii < 4; ii++ ) m_Rot[ii] = 0.0;
|
||||
m_Layers = 1;
|
||||
m_BoardSettings = NULL;
|
||||
}
|
||||
|
||||
|
||||
Info_3D_Visu::~Info_3D_Visu(void)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/*****************************************************************/
|
||||
/* Classe pour afficher et editer un Vertex (triplet de valeurs),*/
|
||||
/* en INCHES ou MM ou sans unites */
|
||||
/*****************************************************************/
|
||||
|
||||
WinEDA_VertexCtrl::WinEDA_VertexCtrl(wxWindow *parent, const wxString & title,
|
||||
wxBoxSizer * BoxSizer,
|
||||
int units, int internal_unit)
|
||||
{
|
||||
wxString text;
|
||||
wxStaticText * msgtitle;
|
||||
|
||||
m_Units = units;
|
||||
m_Internal_Unit = internal_unit;
|
||||
|
||||
if ( title.IsEmpty() ) text = _("Vertex ");
|
||||
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);
|
||||
|
||||
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);
|
||||
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);
|
||||
|
||||
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);
|
||||
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);
|
||||
|
||||
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);
|
||||
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);
|
||||
}
|
||||
|
||||
WinEDA_VertexCtrl::~WinEDA_VertexCtrl(void)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/*******************************************/
|
||||
S3D_Vertex WinEDA_VertexCtrl::GetValue(void)
|
||||
/*******************************************/
|
||||
/* Retourne (en unites internes) les coordonnes entrees (en unites utilisateur)
|
||||
*/
|
||||
{
|
||||
S3D_Vertex value;
|
||||
double dtmp;
|
||||
|
||||
m_XValueCtrl->GetValue().ToDouble(&dtmp);
|
||||
value.x = dtmp;
|
||||
m_YValueCtrl->GetValue().ToDouble(&dtmp);
|
||||
value.y = dtmp;
|
||||
m_ZValueCtrl->GetValue().ToDouble(&dtmp);
|
||||
value.z = dtmp;
|
||||
return value;
|
||||
}
|
||||
|
||||
/**************************************************/
|
||||
void WinEDA_VertexCtrl::SetValue(S3D_Vertex vertex)
|
||||
/**************************************************/
|
||||
{
|
||||
wxString text;
|
||||
|
||||
text.Printf( wxT("%f"), vertex.x);
|
||||
m_XValueCtrl->Clear();
|
||||
m_XValueCtrl->AppendText(text);
|
||||
|
||||
text.Printf(wxT("%f"), vertex.y);
|
||||
m_YValueCtrl->Clear();
|
||||
m_YValueCtrl->AppendText(text);
|
||||
|
||||
text.Printf(wxT("%f"), vertex.z);
|
||||
m_ZValueCtrl->Clear();
|
||||
m_ZValueCtrl->AppendText(text);
|
||||
}
|
||||
|
||||
/*****************************************/
|
||||
void WinEDA_VertexCtrl::Enable(bool onoff)
|
||||
/*****************************************/
|
||||
{
|
||||
m_XValueCtrl->Enable(onoff);
|
||||
m_YValueCtrl->Enable(onoff);
|
||||
m_ZValueCtrl->Enable(onoff);
|
||||
}
|
||||
|
|
@ -0,0 +1,619 @@
|
|||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: 3d_canvas.cpp
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
#ifdef __GNUG__
|
||||
#pragma implementation
|
||||
#pragma interface
|
||||
#endif
|
||||
|
||||
#include "fctsys.h"
|
||||
#include "trigo.h"
|
||||
|
||||
#include "wx/image.h"
|
||||
|
||||
#if !wxUSE_GLCANVAS
|
||||
#error Please set wxUSE_GLCANVAS to 1 in setup.h.
|
||||
#endif
|
||||
|
||||
#include "wx/dataobj.h"
|
||||
#include "wx/clipbrd.h"
|
||||
|
||||
#include "fctsys.h"
|
||||
#include "common.h"
|
||||
#include "id.h"
|
||||
|
||||
#include "3d_viewer.h"
|
||||
#include "trackball.h"
|
||||
|
||||
/* Tool and button Bitmaps */
|
||||
#define XPM_3D_MAIN
|
||||
#include "bitmaps3d.h"
|
||||
#include "bitmaps.h"
|
||||
|
||||
enum onrclick_id
|
||||
{
|
||||
ID_POPUP_3D_VIEW_START = 2000,
|
||||
ID_POPUP_ZOOMIN,
|
||||
ID_POPUP_ZOOMOUT,
|
||||
ID_POPUP_VIEW_XPOS,
|
||||
ID_POPUP_VIEW_XNEG,
|
||||
ID_POPUP_VIEW_YPOS,
|
||||
ID_POPUP_VIEW_YNEG,
|
||||
ID_POPUP_VIEW_ZPOS,
|
||||
ID_POPUP_VIEW_ZNEG,
|
||||
ID_POPUP_MOVE3D_LEFT,
|
||||
ID_POPUP_MOVE3D_RIGHT,
|
||||
ID_POPUP_MOVE3D_UP,
|
||||
ID_POPUP_MOVE3D_DOWN,
|
||||
ID_POPUP_3D_VIEW_END
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Pcb3D_GLCanvas implementation
|
||||
*/
|
||||
|
||||
BEGIN_EVENT_TABLE(Pcb3D_GLCanvas, wxGLCanvas)
|
||||
EVT_SIZE(Pcb3D_GLCanvas::OnSize)
|
||||
EVT_PAINT(Pcb3D_GLCanvas::OnPaint)
|
||||
EVT_CHAR(Pcb3D_GLCanvas::OnChar)
|
||||
EVT_MOUSE_EVENTS(Pcb3D_GLCanvas::OnMouseEvent)
|
||||
EVT_ERASE_BACKGROUND(Pcb3D_GLCanvas::OnEraseBackground)
|
||||
EVT_MENU_RANGE(ID_POPUP_3D_VIEW_START, ID_POPUP_3D_VIEW_END,
|
||||
Pcb3D_GLCanvas::OnPopUpMenu)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
/*************************************************************************/
|
||||
Pcb3D_GLCanvas::Pcb3D_GLCanvas(WinEDA3D_DrawFrame *parent, wxWindowID id,
|
||||
int* gl_attrib):
|
||||
wxGLCanvas(parent, id, wxPoint(-1,-1), wxSize(-1,-1), 0, wxT("Pcb3D_glcanvas"), gl_attrib)
|
||||
/*************************************************************************/
|
||||
{
|
||||
m_init = FALSE;
|
||||
m_gllist = 0;
|
||||
m_Parent = parent;
|
||||
DisplayStatus();
|
||||
}
|
||||
|
||||
|
||||
/*************************************/
|
||||
Pcb3D_GLCanvas::~Pcb3D_GLCanvas(void)
|
||||
/*************************************/
|
||||
{
|
||||
ClearLists();
|
||||
}
|
||||
|
||||
/*************************************/
|
||||
void Pcb3D_GLCanvas::ClearLists(void)
|
||||
/*************************************/
|
||||
{
|
||||
if( m_gllist > 0 )
|
||||
glDeleteLists(m_gllist, 1);
|
||||
m_init = FALSE;
|
||||
m_gllist = 0;
|
||||
}
|
||||
|
||||
/*********************************************/
|
||||
void Pcb3D_GLCanvas::OnChar(wxKeyEvent& event)
|
||||
/*********************************************/
|
||||
{
|
||||
SetView3D(event.GetKeyCode());
|
||||
event.Skip();
|
||||
}
|
||||
|
||||
/*********************************************/
|
||||
void Pcb3D_GLCanvas::SetView3D(int keycode)
|
||||
/*********************************************/
|
||||
{
|
||||
int ii;
|
||||
double delta_move = 0.7 * g_Parm_3D_Visu.m_Zoom;
|
||||
|
||||
switch(keycode)
|
||||
{
|
||||
case WXK_LEFT:
|
||||
g_Draw3d_dx -= delta_move;
|
||||
break;
|
||||
case WXK_RIGHT:
|
||||
g_Draw3d_dx += delta_move;
|
||||
break;
|
||||
case WXK_UP:
|
||||
g_Draw3d_dy += delta_move;
|
||||
break;
|
||||
case WXK_DOWN:
|
||||
g_Draw3d_dy -= delta_move;
|
||||
break;
|
||||
|
||||
case WXK_HOME:
|
||||
g_Parm_3D_Visu.m_Zoom = 1.0;
|
||||
g_Draw3d_dx = g_Draw3d_dy = 0;
|
||||
trackball( g_Parm_3D_Visu.m_Quat, 0.0, 0.0, 0.0, 0.0 );
|
||||
break;
|
||||
|
||||
case WXK_END:
|
||||
break;
|
||||
|
||||
case WXK_F1:
|
||||
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;
|
||||
break;
|
||||
|
||||
case WXK_F2:
|
||||
g_Parm_3D_Visu.m_Zoom *= 1.4;
|
||||
break;
|
||||
|
||||
case '+':
|
||||
break;
|
||||
|
||||
case '-':
|
||||
break;
|
||||
|
||||
case 'r':
|
||||
case 'R':
|
||||
g_Draw3d_dx = g_Draw3d_dy = 0;
|
||||
for ( ii = 0; ii < 4; ii++ )
|
||||
g_Parm_3D_Visu.m_Rot[ii] = 0.0;
|
||||
trackball(g_Parm_3D_Visu.m_Quat, 0.0, 0.0, 0.0, 0.0 );
|
||||
break;
|
||||
|
||||
case 'x':
|
||||
for ( ii = 0; ii < 4; ii++ )
|
||||
g_Parm_3D_Visu.m_Rot[ii] = 0.0;
|
||||
trackball(g_Parm_3D_Visu.m_Quat, 0.0, 0.0, 0.0, 0.0 );
|
||||
g_Parm_3D_Visu.m_ROTZ = -90;
|
||||
g_Parm_3D_Visu.m_ROTX = -90;
|
||||
break;
|
||||
|
||||
case 'X':
|
||||
for ( ii = 0; ii < 4; ii++ )
|
||||
g_Parm_3D_Visu.m_Rot[ii] = 0.0;
|
||||
trackball(g_Parm_3D_Visu.m_Quat, 0.0, 0.0, 0.0, 0.0 );
|
||||
g_Parm_3D_Visu.m_ROTZ = 90;
|
||||
g_Parm_3D_Visu.m_ROTX = -90;
|
||||
break;
|
||||
|
||||
case 'y':
|
||||
for ( ii = 0; ii < 4; ii++ )
|
||||
g_Parm_3D_Visu.m_Rot[ii] = 0.0;
|
||||
trackball(g_Parm_3D_Visu.m_Quat, 0.0, 0.0, 0.0, 0.0 );
|
||||
g_Parm_3D_Visu.m_ROTX = -90;
|
||||
break;
|
||||
|
||||
case 'Y':
|
||||
for ( ii = 0; ii < 4; ii++ )
|
||||
g_Parm_3D_Visu.m_Rot[ii] = 0.0;
|
||||
trackball( g_Parm_3D_Visu.m_Quat, 0.0, 0.0, 0.0, 0.0 );
|
||||
g_Parm_3D_Visu.m_ROTX = -90;
|
||||
g_Parm_3D_Visu.m_ROTZ = -180;
|
||||
break;
|
||||
|
||||
case 'z':
|
||||
for ( ii = 0; ii < 4; ii++ )
|
||||
g_Parm_3D_Visu.m_Rot[ii] = 0.0;
|
||||
trackball(g_Parm_3D_Visu.m_Quat, 0.0, 0.0, 0.0, 0.0 );
|
||||
break;
|
||||
|
||||
case 'Z':
|
||||
for ( ii = 0; ii < 4; ii++ )
|
||||
g_Parm_3D_Visu.m_Rot[ii] = 0.0;
|
||||
trackball(g_Parm_3D_Visu.m_Quat, 0.0, 0.0, 0.0, 0.0 );
|
||||
g_Parm_3D_Visu.m_ROTX = -180;
|
||||
break;
|
||||
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
DisplayStatus();
|
||||
Refresh(FALSE);
|
||||
}
|
||||
|
||||
/********************************************************/
|
||||
void Pcb3D_GLCanvas::OnMouseEvent(wxMouseEvent& event)
|
||||
/********************************************************/
|
||||
{
|
||||
wxSize size(GetClientSize());
|
||||
float spin_quat[4];
|
||||
|
||||
|
||||
if( event.RightDown() )
|
||||
{
|
||||
OnRightClick(event); return;
|
||||
}
|
||||
|
||||
if ( event.m_wheelRotation )
|
||||
{
|
||||
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())
|
||||
{
|
||||
/* drag in progress, simulate trackball */
|
||||
trackball(spin_quat,
|
||||
(2.0*g_Parm_3D_Visu.m_Beginx - size.x) / size.x,
|
||||
(size.y - 2.0*g_Parm_3D_Visu.m_Beginy) / size.y,
|
||||
( 2.0*event.GetX() - size.x) / size.x,
|
||||
( size.y - 2.0*event.GetY()) / size.y);
|
||||
|
||||
add_quats( spin_quat, g_Parm_3D_Visu.m_Quat, g_Parm_3D_Visu.m_Quat );
|
||||
|
||||
/* orientation has changed, redraw mesh */
|
||||
DisplayStatus();
|
||||
Refresh(FALSE);
|
||||
}
|
||||
|
||||
g_Parm_3D_Visu.m_Beginx = event.GetX();
|
||||
g_Parm_3D_Visu.m_Beginy = event.GetY();
|
||||
}
|
||||
|
||||
/*******************************************************/
|
||||
void Pcb3D_GLCanvas::OnRightClick(wxMouseEvent& event)
|
||||
/*******************************************************/
|
||||
/* Construit et affiche un menu Popup lorsque on actionne le bouton droit
|
||||
de la souris
|
||||
*/
|
||||
{
|
||||
wxPoint pos;
|
||||
wxMenu PopUpMenu;
|
||||
|
||||
pos.x = event.GetX(); pos.y = event.GetY();
|
||||
wxMenuItem *item = new wxMenuItem(&PopUpMenu, ID_POPUP_ZOOMIN,
|
||||
_("Zoom +"));
|
||||
item->SetBitmap(zoom_in_xpm);
|
||||
PopUpMenu.Append(item);
|
||||
|
||||
item = new wxMenuItem(&PopUpMenu, ID_POPUP_ZOOMOUT,
|
||||
_("Zoom -"));
|
||||
item->SetBitmap(zoom_out_xpm);
|
||||
PopUpMenu.Append(item);
|
||||
|
||||
PopUpMenu.AppendSeparator();
|
||||
item = new wxMenuItem(&PopUpMenu, ID_POPUP_VIEW_ZPOS,
|
||||
_("Top View"));
|
||||
item->SetBitmap(axis3d_top_xpm);
|
||||
PopUpMenu.Append(item);
|
||||
|
||||
item = new wxMenuItem(&PopUpMenu, ID_POPUP_VIEW_ZNEG,
|
||||
_("Bottom View"));
|
||||
item->SetBitmap(axis3d_bottom_xpm);
|
||||
PopUpMenu.Append(item);
|
||||
|
||||
PopUpMenu.AppendSeparator();
|
||||
item = new wxMenuItem(&PopUpMenu, ID_POPUP_VIEW_XPOS,
|
||||
_("Right View"));
|
||||
item->SetBitmap(axis3d_right_xpm);
|
||||
PopUpMenu.Append(item);
|
||||
|
||||
item = new wxMenuItem(&PopUpMenu, ID_POPUP_VIEW_XNEG,
|
||||
_("Left View"));
|
||||
item->SetBitmap(axis3d_left_xpm);
|
||||
PopUpMenu.Append(item);
|
||||
|
||||
|
||||
PopUpMenu.AppendSeparator();
|
||||
item = new wxMenuItem(&PopUpMenu, ID_POPUP_VIEW_YPOS,
|
||||
_("Front View"));
|
||||
item->SetBitmap(axis3d_front_xpm);
|
||||
PopUpMenu.Append(item);
|
||||
|
||||
item = new wxMenuItem(&PopUpMenu, ID_POPUP_VIEW_YNEG,
|
||||
_("Back View"));
|
||||
item->SetBitmap(axis3d_back_xpm);
|
||||
PopUpMenu.Append(item);
|
||||
|
||||
PopUpMenu.AppendSeparator();
|
||||
item = new wxMenuItem(&PopUpMenu, ID_POPUP_MOVE3D_LEFT,
|
||||
_("Move left <-"));
|
||||
item->SetBitmap(left_xpm);
|
||||
PopUpMenu.Append(item);
|
||||
|
||||
item = new wxMenuItem(&PopUpMenu, ID_POPUP_MOVE3D_RIGHT,
|
||||
_("Move right ->"));
|
||||
item->SetBitmap(right_xpm);
|
||||
PopUpMenu.Append(item);
|
||||
|
||||
item = new wxMenuItem(&PopUpMenu, ID_POPUP_MOVE3D_UP,
|
||||
_("Move Up ^"));
|
||||
item->SetBitmap(up_xpm);
|
||||
PopUpMenu.Append(item);
|
||||
|
||||
item = new wxMenuItem(&PopUpMenu, ID_POPUP_MOVE3D_DOWN,
|
||||
_("Move Down"));
|
||||
item->SetBitmap(down_xpm);
|
||||
PopUpMenu.Append(item);
|
||||
|
||||
PopupMenu( &PopUpMenu, pos);
|
||||
}
|
||||
|
||||
/*******************************************************/
|
||||
void Pcb3D_GLCanvas::OnPopUpMenu(wxCommandEvent & event)
|
||||
/*******************************************************/
|
||||
{
|
||||
int key = 0;
|
||||
|
||||
switch( event.GetId() )
|
||||
{
|
||||
case ID_POPUP_ZOOMIN:
|
||||
key = WXK_F1;
|
||||
break;
|
||||
|
||||
case ID_POPUP_ZOOMOUT:
|
||||
key = WXK_F2;
|
||||
break;
|
||||
|
||||
case ID_POPUP_VIEW_XPOS:
|
||||
key = 'x';
|
||||
break;
|
||||
|
||||
case ID_POPUP_VIEW_XNEG:
|
||||
key = 'X';
|
||||
break;
|
||||
|
||||
case ID_POPUP_VIEW_YPOS:
|
||||
key = 'y';
|
||||
break;
|
||||
|
||||
case ID_POPUP_VIEW_YNEG:
|
||||
key = 'Y';
|
||||
break;
|
||||
|
||||
case ID_POPUP_VIEW_ZPOS:
|
||||
key = 'z';
|
||||
break;
|
||||
|
||||
case ID_POPUP_VIEW_ZNEG:
|
||||
key = 'Z';
|
||||
break;
|
||||
|
||||
case ID_POPUP_MOVE3D_LEFT:
|
||||
key = WXK_LEFT;
|
||||
break;
|
||||
|
||||
case ID_POPUP_MOVE3D_RIGHT:
|
||||
key = WXK_RIGHT;
|
||||
break;
|
||||
|
||||
case ID_POPUP_MOVE3D_UP:
|
||||
key = WXK_UP;
|
||||
break;
|
||||
|
||||
case ID_POPUP_MOVE3D_DOWN:
|
||||
key = WXK_DOWN;
|
||||
break;
|
||||
|
||||
default:
|
||||
return;
|
||||
}
|
||||
SetView3D(key);
|
||||
}
|
||||
|
||||
|
||||
/***************************************/
|
||||
void Pcb3D_GLCanvas::DisplayStatus(void)
|
||||
/***************************************/
|
||||
{
|
||||
wxString msg;
|
||||
msg.Printf(wxT("dx %3.2f"), g_Draw3d_dx);
|
||||
m_Parent->SetStatusText(msg,1);
|
||||
|
||||
msg.Printf(wxT("dy %3.2f"), g_Draw3d_dy);
|
||||
m_Parent->SetStatusText(msg,2);
|
||||
|
||||
msg.Printf(wxT("View: %3.1f"), 45 * g_Parm_3D_Visu.m_Zoom);
|
||||
m_Parent->SetStatusText(msg,3);
|
||||
}
|
||||
|
||||
|
||||
/*************************************************/
|
||||
void Pcb3D_GLCanvas::OnPaint( wxPaintEvent& event )
|
||||
/*************************************************/
|
||||
{
|
||||
wxPaintDC dc(this);
|
||||
|
||||
#ifndef __WXMOTIF__
|
||||
if (!GetContext()) return;
|
||||
#endif
|
||||
Redraw();
|
||||
event.Skip();
|
||||
}
|
||||
|
||||
|
||||
/**********************************************/
|
||||
void Pcb3D_GLCanvas::OnSize(wxSizeEvent& event)
|
||||
/**********************************************/
|
||||
{
|
||||
// this is also necessary to update the context on some platforms
|
||||
wxGLCanvas::OnSize(event);
|
||||
|
||||
// set GL viewport (not called by wxGLCanvas::OnSize on all platforms...)
|
||||
int w, h;
|
||||
GetClientSize(&w, &h);
|
||||
#ifndef __WXMOTIF__
|
||||
if (GetContext())
|
||||
#endif
|
||||
{
|
||||
SetCurrent();
|
||||
glViewport(0, 0, (GLint) w, (GLint) h);
|
||||
}
|
||||
}
|
||||
|
||||
/***********************************************************/
|
||||
void Pcb3D_GLCanvas::OnEraseBackground(wxEraseEvent& event)
|
||||
/***********************************************************/
|
||||
{
|
||||
// Do nothing, to avoid flashing.
|
||||
}
|
||||
|
||||
|
||||
/****************************/
|
||||
void Pcb3D_GLCanvas::InitGL()
|
||||
/****************************/
|
||||
/* Int parametres generaux pour OPENGL
|
||||
*/
|
||||
{
|
||||
wxSize size = GetClientSize();
|
||||
|
||||
if (! m_init)
|
||||
{
|
||||
m_init = TRUE;
|
||||
g_Parm_3D_Visu.m_Zoom = 1.0;
|
||||
ZBottom = 1.0; ZTop = 10.0;
|
||||
}
|
||||
|
||||
SetCurrent();
|
||||
|
||||
/* set viewing projection */
|
||||
double ratio_HV = (double) size.x / size.y; // Ratio largeur /hauteur de la fenetre d'affichage
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glLoadIdentity();
|
||||
|
||||
#define MAX_VIEW_ANGLE 160.0/45.0
|
||||
if ( g_Parm_3D_Visu.m_Zoom > MAX_VIEW_ANGLE)
|
||||
g_Parm_3D_Visu.m_Zoom = MAX_VIEW_ANGLE;
|
||||
gluPerspective( 45.0 * g_Parm_3D_Visu.m_Zoom, ratio_HV, 1 ,10 );
|
||||
|
||||
// glFrustum(-1., 1.1F, -1.1F, 1.1F, ZBottom, ZTop);
|
||||
|
||||
/* position viewer */
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadIdentity();
|
||||
glTranslatef(0.0F, 0.0F, - ( ZBottom +ZTop) / 2);
|
||||
|
||||
/* clear color and depth buffers */
|
||||
glClearColor( g_Parm_3D_Visu.m_BgColor.m_Red,
|
||||
g_Parm_3D_Visu.m_BgColor.m_Green,
|
||||
g_Parm_3D_Visu.m_BgColor.m_Blue, 1 );
|
||||
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
|
||||
|
||||
/* Setup light souces: */
|
||||
SetLights();
|
||||
|
||||
|
||||
glDisable(GL_CULL_FACE); // show back faces
|
||||
|
||||
glEnable(GL_DEPTH_TEST); // Enable z-buferring
|
||||
|
||||
glEnable(GL_LINE_SMOOTH);
|
||||
glEnable(GL_COLOR_MATERIAL);
|
||||
glColorMaterial(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE);
|
||||
|
||||
/* speedups */
|
||||
glEnable(GL_DITHER);
|
||||
glShadeModel(GL_SMOOTH);
|
||||
glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST);
|
||||
glHint(GL_POLYGON_SMOOTH_HINT, GL_FASTEST);
|
||||
|
||||
/* blend */
|
||||
glEnable(GL_BLEND);
|
||||
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||
}
|
||||
|
||||
|
||||
/***********************************/
|
||||
void Pcb3D_GLCanvas::SetLights(void)
|
||||
/***********************************/
|
||||
/* Init sources lumineuses pour OPENGL
|
||||
*/
|
||||
{
|
||||
double light;
|
||||
GLfloat light_color[4];
|
||||
|
||||
SetCurrent();
|
||||
|
||||
/* set viewing projection */
|
||||
light_color[3] = 1.0;
|
||||
GLfloat Z_axis_pos[4] = { 0.0, 0.0, 3.0, 0.0 };
|
||||
GLfloat lowZ_axis_pos[4] = { 0.0, 0.0, -3.0, 0.5 };
|
||||
|
||||
/* activate light */
|
||||
light = 1.0;
|
||||
light_color[0] = light_color[1] = light_color[2]= light;
|
||||
glLightfv(GL_LIGHT0, GL_POSITION, Z_axis_pos);
|
||||
glLightfv(GL_LIGHT0, GL_DIFFUSE, light_color);
|
||||
light = 0.3;
|
||||
light_color[0] = light_color[1] = light_color[2] = light;
|
||||
glLightfv(GL_LIGHT1, GL_POSITION, lowZ_axis_pos);
|
||||
glLightfv(GL_LIGHT1, GL_DIFFUSE, light_color);
|
||||
glEnable(GL_LIGHT0); // White spot on Z axis
|
||||
glEnable(GL_LIGHT1); // White spot on Z axis ( bottom)
|
||||
glEnable(GL_LIGHTING);
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************/
|
||||
void Pcb3D_GLCanvas::TakeScreenshot(wxCommandEvent & event)
|
||||
/**********************************************************/
|
||||
/* Create a Screenshot of the current 3D view.
|
||||
Output file format is png or jpeg, or image is copied on clipboard
|
||||
*/
|
||||
{
|
||||
wxString FullFileName;
|
||||
wxString file_ext, mask;
|
||||
bool fmt_is_jpeg = FALSE;
|
||||
|
||||
if ( event.GetId() == ID_MENU_SCREENCOPY_JPEG ) fmt_is_jpeg = TRUE;
|
||||
if ( event.GetId() != ID_TOOL_SCREENCOPY_TOCLIBBOARD )
|
||||
{
|
||||
file_ext = fmt_is_jpeg ? wxT(".jpg") : wxT(".png";)
|
||||
mask = wxT("*") + file_ext;
|
||||
FullFileName = m_Parent->m_Parent->GetScreen()->m_FileName;
|
||||
ChangeFileNameExt(FullFileName,file_ext);
|
||||
|
||||
FullFileName =
|
||||
EDA_FileSelector( _("3D Image filename:"),
|
||||
wxEmptyString, /* Chemin par defaut */
|
||||
FullFileName, /* nom fichier par defaut */
|
||||
file_ext, /* extension par defaut */
|
||||
mask, /* Masque d'affichage */
|
||||
this,
|
||||
wxFD_SAVE,
|
||||
TRUE
|
||||
);
|
||||
if ( FullFileName.IsEmpty() ) return;
|
||||
}
|
||||
wxSize image_size = GetClientSize();
|
||||
wxClientDC dc(this);
|
||||
wxBitmap bitmap(image_size.x, image_size.y );
|
||||
wxMemoryDC memdc;
|
||||
memdc.SelectObject( bitmap );
|
||||
memdc.Blit(0, 0, image_size.x, image_size.y, &dc, 0, 0);
|
||||
memdc.SelectObject( wxNullBitmap );
|
||||
|
||||
if ( event.GetId() == ID_TOOL_SCREENCOPY_TOCLIBBOARD )
|
||||
{
|
||||
wxBitmapDataObject *dobjBmp = new wxBitmapDataObject;
|
||||
dobjBmp->SetBitmap(bitmap);
|
||||
if (wxTheClipboard->Open())
|
||||
{
|
||||
if ( !wxTheClipboard->SetData(dobjBmp) )
|
||||
wxLogError( _T("Failed to copy image to clipboard"));
|
||||
wxTheClipboard->Flush(); /* the data on clipboard
|
||||
will stay available after the application exits */
|
||||
wxTheClipboard->Close();
|
||||
}
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
wxImage image = bitmap.ConvertToImage();
|
||||
|
||||
if ( !image.SaveFile( FullFileName,
|
||||
fmt_is_jpeg ? wxBITMAP_TYPE_JPEG : wxBITMAP_TYPE_PNG))
|
||||
wxLogError(wxT("Can't save file"));
|
||||
|
||||
image.Destroy();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,119 @@
|
|||
/////////////////////////////////////////////////////////////////////////////
|
||||
// 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;
|
||||
}
|
||||
|
|
@ -0,0 +1,787 @@
|
|||
//////////////////////////////////////
|
||||
// Name: 3d_draw.cpp
|
||||
//////////////////////////////////////
|
||||
|
||||
|
||||
#ifdef __GNUG__
|
||||
#pragma implementation
|
||||
#pragma interface
|
||||
#endif
|
||||
|
||||
#include "fctsys.h"
|
||||
#include "trigo.h"
|
||||
|
||||
|
||||
#if !wxUSE_GLCANVAS
|
||||
#error Please set wxUSE_GLCANVAS to 1 in setup.h.
|
||||
#endif
|
||||
|
||||
#include "common.h"
|
||||
#include "pcbstruct.h"
|
||||
#include "macros.h"
|
||||
|
||||
//#include "pcbnew.h"
|
||||
|
||||
#include "3d_viewer.h"
|
||||
#include "trackball.h"
|
||||
|
||||
#include "3d_struct.h"
|
||||
|
||||
static void Draw3D_FilledCircle(double posx, double posy,
|
||||
double rayon, double hole_rayon, double zpos);
|
||||
static void Draw3D_FilledSegment(double startx, double starty,
|
||||
double endx, double endy,double width, double zpos);
|
||||
static void Draw3D_FilledCylinder(double posx, double posy,
|
||||
double rayon, double height, double zpos);
|
||||
static void Draw3D_FilledSegmentWithHole(double startx, double starty,
|
||||
double endx, double endy,double width,
|
||||
double holex, double holey, double holeradius, double zpos);
|
||||
|
||||
|
||||
/**********************************/
|
||||
void Pcb3D_GLCanvas::Redraw( void )
|
||||
/**********************************/
|
||||
{
|
||||
SetCurrent();
|
||||
|
||||
InitGL();
|
||||
|
||||
glMatrixMode(GL_MODELVIEW); /* position viewer */
|
||||
/* transformations */
|
||||
GLfloat mat[4][4];
|
||||
|
||||
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);
|
||||
glRotatef(g_Parm_3D_Visu.m_Rot[1], 0.0, 1.0, 0.0);
|
||||
glRotatef(g_Parm_3D_Visu.m_Rot[2], 0.0, 0.0, 1.0);
|
||||
|
||||
if( m_gllist ) glCallList( m_gllist );
|
||||
else
|
||||
{
|
||||
m_gllist = CreateDrawGL_List();
|
||||
// m_gllist = DisplayCubeforTest(); // Only for test
|
||||
}
|
||||
|
||||
glFlush();
|
||||
SwapBuffers();
|
||||
}
|
||||
|
||||
/**********************************************/
|
||||
GLuint Pcb3D_GLCanvas::CreateDrawGL_List(void)
|
||||
/**********************************************/
|
||||
/* Creation de la liste des elements a afficher
|
||||
*/
|
||||
{
|
||||
GLuint gllist = glGenLists( 1 );
|
||||
WinEDA_BasePcbFrame * pcbframe = m_Parent->m_Parent;
|
||||
BOARD * pcb = pcbframe->m_Pcb;
|
||||
TRACK * pt_piste;
|
||||
int ii;
|
||||
|
||||
wxBusyCursor dummy;
|
||||
|
||||
pcb->ComputeBoundaryBox();
|
||||
g_Parm_3D_Visu.m_BoardSettings = pcb->m_BoardSettings;
|
||||
g_Parm_3D_Visu.m_BoardSize = pcb->m_BoundaryBox.GetSize();
|
||||
g_Parm_3D_Visu.m_BoardPos = pcb->m_BoundaryBox.Centre();
|
||||
g_Parm_3D_Visu.m_BoardPos.y = - g_Parm_3D_Visu.m_BoardPos.y;
|
||||
g_Parm_3D_Visu.m_Layers = pcb->m_BoardSettings->m_CopperLayerCount;
|
||||
g_Parm_3D_Visu.m_BoardScale = 2.0 / MAX(g_Parm_3D_Visu.m_BoardSize.x, g_Parm_3D_Visu.m_BoardSize.y);
|
||||
float epoxy_width = 1.6; // epoxy width in mm
|
||||
g_Parm_3D_Visu.m_Epoxy_Width = epoxy_width/2.54 * 1000
|
||||
* g_Parm_3D_Visu.m_BoardScale;
|
||||
|
||||
/* calcul de l'altitude de chaque couche */
|
||||
for ( ii = 0; ii < 32; ii++ )
|
||||
{
|
||||
if ( ii < g_Parm_3D_Visu.m_Layers )
|
||||
g_Parm_3D_Visu.m_LayerZcoord[ii] = g_Parm_3D_Visu.m_Epoxy_Width * ii
|
||||
/ (g_Parm_3D_Visu.m_Layers-1);
|
||||
else g_Parm_3D_Visu.m_LayerZcoord[ii] = g_Parm_3D_Visu.m_Epoxy_Width;
|
||||
}
|
||||
GLfloat zpos_cu = 500 * g_Parm_3D_Visu.m_BoardScale;
|
||||
GLfloat zpos_cmp = g_Parm_3D_Visu.m_Epoxy_Width + zpos_cu;
|
||||
g_Parm_3D_Visu.m_LayerZcoord[ADHESIVE_N_CU] = -zpos_cu*2;
|
||||
g_Parm_3D_Visu.m_LayerZcoord[ADHESIVE_N_CMP] = zpos_cmp + zpos_cu;
|
||||
g_Parm_3D_Visu.m_LayerZcoord[SILKSCREEN_N_CU] = -zpos_cu;
|
||||
g_Parm_3D_Visu.m_LayerZcoord[SILKSCREEN_N_CMP] = zpos_cmp;
|
||||
g_Parm_3D_Visu.m_LayerZcoord[DRAW_N] = zpos_cmp + zpos_cu;
|
||||
g_Parm_3D_Visu.m_LayerZcoord[COMMENT_N] = zpos_cmp + zpos_cu;
|
||||
g_Parm_3D_Visu.m_LayerZcoord[ECO1_N] = zpos_cmp + zpos_cu;
|
||||
g_Parm_3D_Visu.m_LayerZcoord[ECO2_N] = zpos_cmp + zpos_cu;
|
||||
|
||||
glNewList( gllist, GL_COMPILE_AND_EXECUTE );
|
||||
|
||||
glColorMaterial(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE);
|
||||
|
||||
/* draw axes*/
|
||||
glEnable(GL_COLOR_MATERIAL);
|
||||
SetGLColor(WHITE);
|
||||
glBegin(GL_LINES);
|
||||
glNormal3f( 0.0, 0.0, 1.0); // Normal is Z axis
|
||||
glVertex3f( 0.0 , 0.0, 0.0); glVertex3f(1.0, 0.0, 0.0); // X axis
|
||||
glVertex3f( 0.0 , 0.0, 0.0); glVertex3f(0.0, -1.0, 0.0); // y axis
|
||||
glNormal3f( 1.0, 0.0, 0.0); // Normal is Y axis
|
||||
glVertex3f( 0.0 , 0.0, 0.0); glVertex3f(0.0, 0.0, 0.3); // z axis
|
||||
glEnd();
|
||||
|
||||
/* Draw epoxy limits (do not use, works and test in progress)*/
|
||||
#if 0
|
||||
glEnable(GL_FOG);
|
||||
GLfloat param;
|
||||
// param = GL_LINEAR; glFogfv(GL_FOG_MODE,& param);
|
||||
param = 0.2; glFogfv(GL_FOG_DENSITY,& param);
|
||||
param = g_Parm_3D_Visu.m_LayerZcoord[15]; glFogfv(GL_FOG_END,& param);
|
||||
glBegin(GL_QUADS);
|
||||
SetGLColor(g_Parm_3D_Visu.m_BoardSettings->m_LayerColor[CMP_N]);
|
||||
double sx = DataScale3D * g_Parm_3D_Visu.m_BoardSize.x / 2;
|
||||
double sy = DataScale3D * g_Parm_3D_Visu.m_BoardSize.y / 2;
|
||||
double zpos = g_Parm_3D_Visu.m_LayerZcoord[15];
|
||||
glNormal3f( 0.0, 0.0, 1.0); // Normal is Z axis
|
||||
sx = sy = 0.5;
|
||||
glVertex3f( -sx, -sy , zpos);
|
||||
glVertex3f( -sx, sy , zpos);
|
||||
glVertex3f( sx, sy , zpos);
|
||||
glVertex3f( sx, -sy , zpos);
|
||||
glEnd();
|
||||
glBegin(GL_QUADS);
|
||||
SetGLColor(g_Parm_3D_Visu.m_BoardSettings->m_LayerColor[CUIVRE_N]);
|
||||
glNormal3f( 0.0, 0.0, -1.0); // Normal is -Z axis
|
||||
glVertex3f( -sx, -sy , 0);
|
||||
glVertex3f( -sx, sy , 0);
|
||||
glVertex3f( sx, sy , 0);
|
||||
glVertex3f( sx, -sy , 0);
|
||||
glEnd();
|
||||
#endif
|
||||
|
||||
/* Translation du tracé du BOARD pour placer son centre en 0, 0 */
|
||||
glTranslatef(-g_Parm_3D_Visu.m_BoardPos.x * g_Parm_3D_Visu.m_BoardScale,
|
||||
-g_Parm_3D_Visu.m_BoardPos.y * g_Parm_3D_Visu.m_BoardScale,
|
||||
0.0F);
|
||||
|
||||
glNormal3f( 0.0, 0.0, 1.0); // Normal is Z axis
|
||||
/* Tracé des pistes : */
|
||||
for (pt_piste = pcb->m_Track ; pt_piste != NULL ; pt_piste = (TRACK*) pt_piste->Pnext )
|
||||
{
|
||||
if ( pt_piste->m_StructType == TYPEVIA )
|
||||
Draw3D_Via((SEGVIA*)pt_piste);
|
||||
else Draw3D_Track( pt_piste);
|
||||
}
|
||||
|
||||
/* Tracé des edges */
|
||||
EDA_BaseStruct * PtStruct;
|
||||
for ( PtStruct = pcb->m_Drawings; PtStruct != NULL; PtStruct = PtStruct->Pnext)
|
||||
{
|
||||
#define STRUCT ((DRAWSEGMENT *) PtStruct)
|
||||
if( PtStruct->m_StructType != TYPEDRAWSEGMENT ) continue;
|
||||
Draw3D_DrawSegment(STRUCT);
|
||||
}
|
||||
|
||||
/* tracé des modules */
|
||||
MODULE * Module = (MODULE*) pcb->m_Modules;
|
||||
for ( ; Module != NULL; Module = (MODULE *) Module->Pnext )
|
||||
{
|
||||
Module->Draw3D(this);
|
||||
}
|
||||
glEndList();
|
||||
|
||||
/* Test for errors */
|
||||
GLenum err = glGetError();
|
||||
if ( err != GL_NO_ERROR )
|
||||
DisplayError(this, wxT("Error in GL commands") );
|
||||
return gllist;
|
||||
}
|
||||
|
||||
/************************************************/
|
||||
void Pcb3D_GLCanvas::Draw3D_Track(TRACK * track)
|
||||
/************************************************/
|
||||
{
|
||||
double zpos;
|
||||
int color = g_Parm_3D_Visu.m_BoardSettings->m_LayerColor[track->m_Layer];
|
||||
int layer = track->m_Layer;
|
||||
double ox, oy, fx, fy;
|
||||
double w;
|
||||
|
||||
if ( color & ITEM_NOT_SHOW ) return;
|
||||
if ( track->m_Layer == CMP_N ) layer = g_Parm_3D_Visu.m_Layers -1;
|
||||
zpos = g_Parm_3D_Visu.m_LayerZcoord[layer];
|
||||
|
||||
SetGLColor(color);
|
||||
glNormal3f( 0.0, 0.0, (layer == CUIVRE_N) ? -1.0 : 1.0);
|
||||
|
||||
w = track->m_Width * g_Parm_3D_Visu.m_BoardScale;
|
||||
ox = track->m_Start.x * g_Parm_3D_Visu.m_BoardScale;
|
||||
oy = track->m_Start.y * g_Parm_3D_Visu.m_BoardScale;
|
||||
fx = track->m_End.x * g_Parm_3D_Visu.m_BoardScale;
|
||||
fy = track->m_End.y * g_Parm_3D_Visu.m_BoardScale;
|
||||
Draw3D_FilledSegment(ox, -oy, fx, -fy, w, zpos);
|
||||
}
|
||||
|
||||
/********************************************/
|
||||
void Pcb3D_GLCanvas::Draw3D_Via(SEGVIA * via)
|
||||
/*********************************************/
|
||||
/* 3D drawing for a VIA (cylinder + filled circles)
|
||||
*/
|
||||
{
|
||||
double x, y, r, hole;
|
||||
int layer, top_layer, bottom_layer;
|
||||
double zpos, height;
|
||||
int color;
|
||||
|
||||
r = via->m_Width * g_Parm_3D_Visu.m_BoardScale / 2;
|
||||
hole = g_Parm_3D_Visu.m_BoardSettings->m_ViaDrill * g_Parm_3D_Visu.m_BoardScale / 2;
|
||||
x = via->m_Start.x * g_Parm_3D_Visu.m_BoardScale;
|
||||
y = via->m_Start.y * g_Parm_3D_Visu.m_BoardScale;
|
||||
|
||||
via->ReturnLayerPair(&top_layer, &bottom_layer);
|
||||
|
||||
// Drawing filled circles:
|
||||
for ( layer = bottom_layer; layer < g_Parm_3D_Visu.m_Layers; layer++ )
|
||||
{
|
||||
zpos = g_Parm_3D_Visu.m_LayerZcoord[layer];
|
||||
if ( layer < g_Parm_3D_Visu.m_Layers-1 )
|
||||
color = g_Parm_3D_Visu.m_BoardSettings->m_LayerColor[layer];
|
||||
else color = g_Parm_3D_Visu.m_BoardSettings->m_LayerColor[CMP_N];
|
||||
if ( color & ITEM_NOT_SHOW ) continue;
|
||||
SetGLColor(color);
|
||||
glNormal3f( 0.0, 0.0, (layer == CUIVRE_N) ? -1.0 : 1.0);
|
||||
Draw3D_FilledCircle(x, -y, r, hole, zpos);
|
||||
if ( layer >= top_layer) break;
|
||||
|
||||
}
|
||||
// Drawing hole:
|
||||
SetGLColor(DARKGRAY);
|
||||
height = g_Parm_3D_Visu.m_LayerZcoord[top_layer] - g_Parm_3D_Visu.m_LayerZcoord[bottom_layer];
|
||||
Draw3D_FilledCylinder(x, -y, hole, height, g_Parm_3D_Visu.m_LayerZcoord[bottom_layer]);
|
||||
}
|
||||
|
||||
|
||||
/*************************************************************/
|
||||
void Pcb3D_GLCanvas::Draw3D_DrawSegment(DRAWSEGMENT * segment)
|
||||
/*************************************************************/
|
||||
{
|
||||
int layer;
|
||||
double x, y, xf, yf;
|
||||
double zpos, w;
|
||||
int color = g_Parm_3D_Visu.m_BoardSettings->m_LayerColor[segment->m_Layer];
|
||||
|
||||
if ( color & ITEM_NOT_SHOW ) return;
|
||||
|
||||
SetGLColor(color);
|
||||
w = segment->m_Width * g_Parm_3D_Visu.m_BoardScale;
|
||||
x = segment->m_Start.x * g_Parm_3D_Visu.m_BoardScale;
|
||||
y = segment->m_Start.y * g_Parm_3D_Visu.m_BoardScale;
|
||||
xf = segment->m_End.x * g_Parm_3D_Visu.m_BoardScale;
|
||||
yf = segment->m_End.y * g_Parm_3D_Visu.m_BoardScale;
|
||||
|
||||
if ( segment->m_Layer == EDGE_N)
|
||||
{
|
||||
for ( layer = 0; layer < g_Parm_3D_Visu.m_Layers; layer++ )
|
||||
{
|
||||
glNormal3f( 0.0, 0.0, (layer == CUIVRE_N) ? -1.0 : 1.0);
|
||||
zpos = g_Parm_3D_Visu.m_LayerZcoord[layer];
|
||||
Draw3D_FilledSegment( x, -y, xf, -yf, w, zpos);
|
||||
}
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
zpos = g_Parm_3D_Visu.m_LayerZcoord[segment->m_Layer];
|
||||
Draw3D_FilledSegment( x, -y, xf, -yf, w, zpos);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*********************************************/
|
||||
void MODULE::Draw3D(Pcb3D_GLCanvas * glcanvas)
|
||||
/*********************************************/
|
||||
{
|
||||
D_PAD * pad = m_Pads;
|
||||
|
||||
#if 0
|
||||
if( ! DisplayOpt.Show_Modules_Cmp )
|
||||
{
|
||||
if(m_Layer == CMP_N) return;
|
||||
}
|
||||
if( ! DisplayOpt.Show_Modules_Cu )
|
||||
{
|
||||
if(m_Layer == CUIVRE_N) return;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Draw pads */
|
||||
glColorMaterial(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE);
|
||||
glNormal3f( 0.0, 0.0, 1.0); // Normal is Z axis
|
||||
for( ; pad != NULL; pad = (D_PAD*) pad->Pnext )
|
||||
{
|
||||
pad->Draw3D(glcanvas);
|
||||
}
|
||||
|
||||
/* Draw module shape: 3D shape if exists (or module edge if not exists)*/
|
||||
Struct3D_Master * Struct3D = m_3D_Drawings;
|
||||
bool As3dShape = FALSE;
|
||||
glPushMatrix();
|
||||
glTranslatef(m_Pos.x * g_Parm_3D_Visu.m_BoardScale,
|
||||
-m_Pos.y * g_Parm_3D_Visu.m_BoardScale,
|
||||
g_Parm_3D_Visu.m_LayerZcoord[m_Layer] );
|
||||
if ( m_Orient )
|
||||
{
|
||||
glRotatef( (double)m_Orient / 10, 0.0, 0.0, 1.0 );
|
||||
}
|
||||
if ( m_Layer == CUIVRE_N )
|
||||
{
|
||||
glRotatef( 180.0, 0.0, 1.0, 0.0 );
|
||||
glRotatef( 180.0, 0.0, 0.0, 1.0 );
|
||||
}
|
||||
DataScale3D = g_Parm_3D_Visu.m_BoardScale*UNITS3D_TO_UNITSPCB;
|
||||
|
||||
for ( ; Struct3D != NULL; Struct3D = (Struct3D_Master *) Struct3D->Pnext )
|
||||
{
|
||||
if ( ! Struct3D->m_Shape3DName.IsEmpty() )
|
||||
{
|
||||
As3dShape = TRUE;
|
||||
Struct3D->ReadData();
|
||||
}
|
||||
}
|
||||
glPopMatrix();
|
||||
|
||||
if ( ! As3dShape)
|
||||
{
|
||||
EDA_BaseStruct * Struct = m_Drawings;
|
||||
glNormal3f( 0.0, 0.0, 1.0); // Normal is Z axis
|
||||
for( ;Struct != NULL; Struct = Struct->Pnext )
|
||||
{
|
||||
switch( Struct->m_StructType )
|
||||
{
|
||||
case TYPETEXTEMODULE:
|
||||
break;
|
||||
|
||||
case TYPEEDGEMODULE:
|
||||
((EDGE_MODULE *) Struct)->Draw3D(glcanvas);
|
||||
break;
|
||||
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/***************************************************/
|
||||
void EDGE_MODULE::Draw3D(Pcb3D_GLCanvas * glcanvas)
|
||||
/***************************************************/
|
||||
{
|
||||
int ux0, uy0, dx, dy,rayon, StAngle, EndAngle;
|
||||
double scale, x, y, fx, fy, w, zpos ;
|
||||
int color = g_Parm_3D_Visu.m_BoardSettings->m_LayerColor[m_Layer];
|
||||
|
||||
if ( color & ITEM_NOT_SHOW ) return;
|
||||
|
||||
SetGLColor(color);
|
||||
glNormal3f( 0.0, 0.0, (m_Layer == CUIVRE_N) ? -1.0 : 1.0);
|
||||
scale = g_Parm_3D_Visu.m_BoardScale;
|
||||
|
||||
ux0 = m_Start.x;
|
||||
uy0 = m_Start.y;
|
||||
dx = m_End.x;
|
||||
dy = m_End.y;
|
||||
zpos = g_Parm_3D_Visu.m_LayerZcoord[m_Layer];
|
||||
w = m_Width * g_Parm_3D_Visu.m_BoardScale;
|
||||
switch (m_Shape )
|
||||
{
|
||||
case S_SEGMENT:
|
||||
x = m_Start.x * g_Parm_3D_Visu.m_BoardScale;
|
||||
y = m_Start.y * g_Parm_3D_Visu.m_BoardScale;
|
||||
fx = dx * g_Parm_3D_Visu.m_BoardScale;
|
||||
fy = dy * g_Parm_3D_Visu.m_BoardScale;
|
||||
Draw3D_FilledSegment(x, -y, fx, -fy, w, zpos);
|
||||
break ;
|
||||
|
||||
case S_CIRCLE:
|
||||
rayon = (int)hypot((double)(dx-ux0),(double)(dy-uy0) );
|
||||
/* TO DO */
|
||||
break;
|
||||
|
||||
case S_ARC:
|
||||
rayon = (int)hypot((double)(dx-ux0),(double)(dy-uy0) );
|
||||
StAngle = (int)ArcTangente( dy-uy0, dx-ux0 );
|
||||
EndAngle = StAngle + m_Angle;
|
||||
/* TO DO */
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/***********************************************/
|
||||
void D_PAD::Draw3D(Pcb3D_GLCanvas * glcanvas)
|
||||
/***********************************************/
|
||||
/* Dessin 3D des pads avec leur trou de percage
|
||||
*/
|
||||
{
|
||||
int ii, ll, layer, nlmax;
|
||||
int ux0,uy0,
|
||||
dx,dx0,dy,dy0,
|
||||
delta_cx, delta_cy,
|
||||
xc, yc;
|
||||
int angle, delta_angle;
|
||||
int coord[4][2];
|
||||
double fcoord[8][2], f_hole_coord[8][2];
|
||||
float scale;
|
||||
double zpos;
|
||||
wxPoint shape_pos;
|
||||
double x, y, r, w, hole, holeX, holeY;
|
||||
double drillx, drilly;
|
||||
bool Oncu, Oncmp, Both;
|
||||
int color;
|
||||
|
||||
scale = g_Parm_3D_Visu.m_BoardScale;
|
||||
holeX = (double)m_Drill.x * scale / 2;
|
||||
holeY = (double)m_Drill.y * scale / 2;
|
||||
hole = MIN (holeX,holeY);
|
||||
|
||||
/* calcul du centre des formes des pads : */
|
||||
shape_pos = ReturnShapePos();
|
||||
ux0 = shape_pos.x;
|
||||
uy0 = shape_pos.y;
|
||||
xc = ux0;
|
||||
yc = uy0;
|
||||
|
||||
/* le trace depend de la rotation de l'empreinte */
|
||||
dx = dx0 = m_Size.x >> 1 ;
|
||||
dy = dy0 = m_Size.y >> 1 ; /* demi dim dx et dy */
|
||||
|
||||
angle = m_Orient;
|
||||
drillx = m_Pos.x * scale;
|
||||
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);
|
||||
}
|
||||
|
||||
glNormal3f( 0.0, 0.0, 1.0); // Normal is Z axis
|
||||
nlmax = g_Parm_3D_Visu.m_Layers-1;
|
||||
Oncu = (m_Masque_Layer & CUIVRE_LAYER) ? TRUE : FALSE;
|
||||
Oncmp = (m_Masque_Layer & CMP_LAYER) ? TRUE : FALSE;
|
||||
Both = Oncu && Oncmp;
|
||||
switch (m_PadShape & 0x7F)
|
||||
{
|
||||
case CIRCLE :
|
||||
x = xc * scale;
|
||||
y = yc * scale;
|
||||
r = (double)dx * scale;
|
||||
for ( layer = CUIVRE_N; layer <= CMP_N; layer ++)
|
||||
{
|
||||
if (layer && (layer == nlmax) ) layer = CMP_N;
|
||||
if ( (layer == CMP_N) && ! Oncmp ) continue;
|
||||
if ( (layer == CUIVRE_N) && ! Oncu ) continue;
|
||||
if ( (layer > CUIVRE_N) && (layer < CMP_N) && !Both) continue;
|
||||
color = g_Parm_3D_Visu.m_BoardSettings->m_LayerColor[layer];
|
||||
if ( color & ITEM_NOT_SHOW ) continue;
|
||||
SetGLColor(color);
|
||||
glNormal3f( 0.0, 0.0, (layer == CUIVRE_N) ? -1.0 : 1.0);
|
||||
zpos = g_Parm_3D_Visu.m_LayerZcoord[layer];
|
||||
Draw3D_FilledCircle(x, -y, r, hole, zpos);
|
||||
}
|
||||
break;
|
||||
|
||||
case OVALE :
|
||||
/* calcul de l'entraxe de l'ellipse */
|
||||
if( dx > dy ) /* ellipse horizontale */
|
||||
{
|
||||
delta_cx = dx - dy; delta_cy = 0;
|
||||
w = m_Size.y * scale;
|
||||
delta_angle = angle+900;
|
||||
}
|
||||
else /* ellipse verticale */
|
||||
{
|
||||
delta_cx = 0; delta_cy = dy - dx;
|
||||
w = m_Size.x * scale;
|
||||
delta_angle = angle;
|
||||
}
|
||||
RotatePoint(&delta_cx, &delta_cy, angle);
|
||||
{
|
||||
double ox, oy, fx, fy;
|
||||
ox = (double)(ux0 + delta_cx) * scale;
|
||||
oy = (double)(uy0 + delta_cy) * scale;
|
||||
fx = (double)(ux0 - delta_cx) * scale;
|
||||
fy = (double)(uy0 - delta_cy) * scale;
|
||||
for ( layer = CUIVRE_N; layer <= CMP_N; layer ++)
|
||||
{
|
||||
if (layer && (layer == nlmax) ) layer = CMP_N;
|
||||
if ( (layer == CMP_N) && ! Oncmp ) continue;
|
||||
if ( (layer == CUIVRE_N) && ! Oncu ) continue;
|
||||
if ( (layer > CUIVRE_N) && (layer < CMP_N) && !Both) continue;
|
||||
color = g_Parm_3D_Visu.m_BoardSettings->m_LayerColor[layer];
|
||||
glNormal3f( 0.0, 0.0, (layer == CUIVRE_N) ? -1.0 : 1.0);
|
||||
if ( color & ITEM_NOT_SHOW ) continue;
|
||||
SetGLColor(color);
|
||||
zpos = g_Parm_3D_Visu.m_LayerZcoord[layer];
|
||||
Draw3D_FilledSegmentWithHole(ox, -oy, fx, -fy, w, drillx, -drilly, hole, zpos);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case RECT :
|
||||
case SPECIAL_PAD:
|
||||
case TRAPEZE:
|
||||
{
|
||||
int ddx, ddy ;
|
||||
ddx = m_DeltaSize.x >> 1 ;
|
||||
ddy = m_DeltaSize.y >> 1 ; /* demi dim dx et dy */
|
||||
|
||||
coord[0][0] = - dx - ddy;
|
||||
coord[0][1] = + dy + ddx;
|
||||
|
||||
coord[1][0] = - dx + ddy;
|
||||
coord[1][1] = - dy - ddx;
|
||||
|
||||
coord[2][0] = + dx - ddy;
|
||||
coord[2][1] = - dy + ddx;
|
||||
|
||||
coord[3][0] = + dx + ddy;
|
||||
coord[3][1] = + dy - ddx;
|
||||
|
||||
for (ii = 0; ii < 4; ii++)
|
||||
{
|
||||
RotatePoint(&coord[ii][0],&coord[ii][1], angle);
|
||||
coord[ii][0] += ux0;
|
||||
coord[ii][1] += uy0;
|
||||
ll = ii*2;
|
||||
fcoord[ll][0] = coord[ii][0] * scale;
|
||||
fcoord[ll][1] = coord[ii][1] * scale;
|
||||
}
|
||||
for (ii = 0; ii < 7; ii+=2)
|
||||
{
|
||||
ll = ii+2; if (ll > 7) ll -= 8;
|
||||
fcoord[ii+1][0] = (fcoord[ii][0] + fcoord[ll][0])/2;
|
||||
fcoord[ii+1][1] = (fcoord[ii][1] + fcoord[ll][1])/2;
|
||||
}
|
||||
for (ii = 0; ii < 8; ii++)
|
||||
{
|
||||
f_hole_coord[ii][0] = -hole*0.707;
|
||||
f_hole_coord[ii][1] = hole*0.707;
|
||||
RotatePoint(&f_hole_coord[ii][0], &f_hole_coord[ii][1],
|
||||
angle -(ii * 450) );
|
||||
f_hole_coord[ii][0] += drillx;
|
||||
f_hole_coord[ii][1] += drilly;
|
||||
}
|
||||
|
||||
for ( layer = CUIVRE_N; layer <= CMP_N; layer ++)
|
||||
{
|
||||
if (layer && (layer == nlmax) ) layer = CMP_N;
|
||||
if ( (layer == CMP_N) && ! Oncmp ) continue;
|
||||
if ( (layer == CUIVRE_N) && ! Oncu ) continue;
|
||||
if ( (layer > CUIVRE_N) && (layer < CMP_N) && !Both) continue;
|
||||
color = g_Parm_3D_Visu.m_BoardSettings->m_LayerColor[layer];
|
||||
glNormal3f( 0.0, 0.0, (layer == CUIVRE_N) ? -1.0 : 1.0);
|
||||
if ( color & ITEM_NOT_SHOW ) continue;
|
||||
SetGLColor(color);
|
||||
zpos = g_Parm_3D_Visu.m_LayerZcoord[layer];
|
||||
glBegin(GL_QUAD_STRIP);
|
||||
for ( ii = 0; ii < 8; ii++ )
|
||||
{
|
||||
glVertex3f( f_hole_coord[ii][0], -f_hole_coord[ii][1] , zpos);
|
||||
glVertex3f( fcoord[ii][0], -fcoord[ii][1] , zpos);
|
||||
}
|
||||
glVertex3f( f_hole_coord[0][0], -f_hole_coord[0][1] , zpos);
|
||||
glVertex3f( fcoord[0][0], -fcoord[0][1] , zpos);
|
||||
glEnd();
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*************************/
|
||||
void SetGLColor(int color)
|
||||
/*************************/
|
||||
{
|
||||
double red, green,blue;
|
||||
StructColors colordata = ColorRefs[color & MASKCOLOR];
|
||||
|
||||
red = colordata.m_Red / 255.0;
|
||||
blue = colordata.m_Blue / 255.0;
|
||||
green = colordata.m_Green / 255.0;
|
||||
glColor3f(red, green,blue);
|
||||
}
|
||||
|
||||
/********************************************************/
|
||||
static void Draw3D_FilledCircle(double posx, double posy,
|
||||
double rayon, double hole, double zpos)
|
||||
/********************************************************/
|
||||
{
|
||||
int ii, slice = 16;
|
||||
double x, y;
|
||||
|
||||
glBegin(GL_QUAD_STRIP);
|
||||
for ( ii = 0; ii <= slice; ii++ )
|
||||
{
|
||||
x = hole; y = 0.0;
|
||||
RotatePoint(&x, &y, ii * 225);
|
||||
glVertex3f( x + posx, y + posy, zpos);
|
||||
x = rayon; y = 0.0;
|
||||
RotatePoint(&x, &y, ii * 225);
|
||||
glVertex3f( x + posx, y + posy, zpos);
|
||||
}
|
||||
glEnd();
|
||||
}
|
||||
|
||||
/*********************************************************/
|
||||
static void Draw3D_FilledCylinder(double posx, double posy,
|
||||
double rayon, double height, double zpos)
|
||||
/*********************************************************/
|
||||
{
|
||||
int ii;
|
||||
double x, y;
|
||||
#define NB_SEGM 12
|
||||
S3D_Vertex coords[4];
|
||||
double tmp = DataScale3D;
|
||||
|
||||
DataScale3D = 1.0; //les coord sont deja a l'echelle pour Set_Object_Data();
|
||||
coords[0].x = coords[1].x = posx + rayon;
|
||||
coords[0].y = coords[1].y = posy;
|
||||
coords[0].z = coords[3].z = zpos;
|
||||
coords[1].z = coords[2].z = zpos + height;
|
||||
|
||||
for ( ii = 0; ii <= NB_SEGM; ii++ )
|
||||
{
|
||||
x = rayon; y = 0.0;
|
||||
RotatePoint(&x, &y, ii * (3600/NB_SEGM));
|
||||
coords[2].x = coords[3].x = posx + x;
|
||||
coords[2].y = coords[3].y = posy + y;
|
||||
Set_Object_Data(coords, 4 );
|
||||
coords[0].x = coords[2].x;
|
||||
coords[0].y = coords[2].y;
|
||||
coords[1].x = coords[3].x;
|
||||
coords[1].y = coords[3].y;
|
||||
}
|
||||
glNormal3f( 0.0, 0.0, 1.0); // Normal is Z axis
|
||||
DataScale3D = tmp;
|
||||
}
|
||||
|
||||
/*****************************************************************/
|
||||
static void Draw3D_FilledSegment(double startx, double starty,
|
||||
double endx, double endy,double width, double zpos)
|
||||
/*****************************************************************/
|
||||
/* trace un polygone semblable a un segment a bouts ronds
|
||||
*/
|
||||
{
|
||||
double dx, dy, x, y, firstx=0, firsty=0;
|
||||
int ii, angle;
|
||||
|
||||
/* on va calculer les coordonnées du segment supposé horizontal,
|
||||
puis tourner les cordonnes de l'angle voulu */
|
||||
|
||||
dx = endx - startx; dy = endy - starty;
|
||||
angle = (int)(( atan2( dy, dx ) / M_PI * 1800)+0.5) ;
|
||||
|
||||
RotatePoint(&dx, &dy, angle); // apres rotation: dx = longueur du segment
|
||||
// dy = 0;
|
||||
width /= 2;
|
||||
|
||||
glBegin(GL_POLYGON);
|
||||
// tracé de l'arrondi a droite (1er demi polygone a la fin du segment)
|
||||
for ( ii = 0; ii <= 8; ii++ )
|
||||
{
|
||||
x = 0.0; y =-width;
|
||||
RotatePoint(&x, &y, -ii * 225);
|
||||
x += dx;
|
||||
RotatePoint(&x, &y, -angle);
|
||||
glVertex3f( startx + x, starty+y, zpos);
|
||||
if ( ii == 0 )
|
||||
{
|
||||
firstx = startx + x;
|
||||
firsty = starty + y;
|
||||
}
|
||||
}
|
||||
// tracé de l'arrondi a gauche (2ieme demi polygone a l'origine du segment)
|
||||
for ( ii = 0; ii <= 8; ii++ )
|
||||
{
|
||||
int jj = ii * 225;
|
||||
x = 0.0; y = width;
|
||||
RotatePoint(&x, &y, -angle -jj);
|
||||
glVertex3f( startx + x, starty+y, zpos);
|
||||
}
|
||||
|
||||
glVertex3f( firstx, firsty, zpos);
|
||||
glEnd();
|
||||
}
|
||||
|
||||
/*****************************************************************/
|
||||
static void Draw3D_FilledSegmentWithHole(double startx, double starty,
|
||||
double endx, double endy,double width,
|
||||
double holex, double holey, double holeradius, double zpos)
|
||||
/*****************************************************************/
|
||||
/* trace un polygone semblable a un segment a bouts ronds avec trou
|
||||
*/
|
||||
{
|
||||
double x, y, xin, yin;
|
||||
double firstx=0, firsty=0, firstxin=0, firstyin=0;
|
||||
int ii, angle, theta;
|
||||
|
||||
/* on va calculer les coordonnées du segment supposé horizontal,
|
||||
puis tourner les cordonnes de l'angle voulu
|
||||
Tous des calculs se font avec startx, starty comme origine du tracé */
|
||||
|
||||
endx -= startx; endy -= starty;
|
||||
holex -= startx; holey -= starty;
|
||||
angle = (int)(( atan2( endy, endx ) / M_PI * 1800)+0.5) ;
|
||||
|
||||
RotatePoint(&endx, &endy, angle); // apres rotation: endx = longueur du segment
|
||||
// endy = 0;
|
||||
RotatePoint(&holex, &holey, angle);
|
||||
width /= 2;
|
||||
|
||||
glBegin(GL_QUAD_STRIP);
|
||||
// tracé de l'arrondi a droite (1er demi polygone a la fin du segment)
|
||||
// autour du demi-trou de percage
|
||||
for ( ii = 0; ii <= 8; ii++ )
|
||||
{
|
||||
x = 0.0; y = -width;
|
||||
xin = 0.0; yin = - holeradius;
|
||||
theta = -ii * 225;
|
||||
RotatePoint(&x, &y, theta);
|
||||
RotatePoint(&xin, &yin, theta);
|
||||
x += endx;
|
||||
RotatePoint(&x, &y, -angle);
|
||||
xin += holex;
|
||||
RotatePoint(&xin, &yin, -angle);
|
||||
glVertex3f( startx + xin, starty+yin, zpos);
|
||||
glVertex3f( startx + x, starty+y, zpos);
|
||||
if ( ii == 0 ) // Memorisation du point de départ du tracé
|
||||
{
|
||||
firstx = startx + x;
|
||||
firsty = starty + y;
|
||||
firstxin = startx + xin;
|
||||
firstyin = starty + yin;
|
||||
}
|
||||
}
|
||||
// tracé de l'arrondi a gauche (2ieme demi polygone a l'origine du segment)
|
||||
for ( ii = 0; ii <= 8; ii++ )
|
||||
{
|
||||
theta = - ii * 225;
|
||||
x = 0.0; y = width;
|
||||
RotatePoint(&x, &y, -angle + theta);
|
||||
xin = 0.0; yin = holeradius;
|
||||
RotatePoint(&xin, &yin, theta);
|
||||
xin += holex;
|
||||
RotatePoint(&xin, &yin, -angle);
|
||||
glVertex3f( startx + xin,starty + yin, zpos);
|
||||
glVertex3f( startx + x, starty + y, zpos);
|
||||
}
|
||||
|
||||
glVertex3f( firstxin, firstyin, zpos);
|
||||
glVertex3f( firstx, firsty, zpos);
|
||||
glEnd();
|
||||
}
|
||||
|
|
@ -0,0 +1,322 @@
|
|||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: 3d_frame.cpp
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
#ifdef __GNUG__
|
||||
#pragma implementation
|
||||
#pragma interface
|
||||
#endif
|
||||
|
||||
|
||||
#include "fctsys.h"
|
||||
|
||||
#include <wx/colordlg.h>
|
||||
|
||||
#if !wxUSE_GLCANVAS
|
||||
#error Please set wxUSE_GLCANVAS to 1 in setup.h.
|
||||
#endif
|
||||
|
||||
#include "bitmaps.h"
|
||||
#include "id.h"
|
||||
|
||||
#define VIEWER_MAIN
|
||||
#include "3d_viewer.h"
|
||||
#include "trackball.h"
|
||||
|
||||
|
||||
BEGIN_EVENT_TABLE(WinEDA3D_DrawFrame, wxFrame)
|
||||
EVT_TOOL_RANGE(ID_ZOOM_PLUS_BUTT, ID_ZOOM_PAGE_BUTT,
|
||||
WinEDA3D_DrawFrame::Process_Zoom)
|
||||
EVT_TOOL_RANGE(ID_START_COMMAND_3D, ID_END_COMMAND_3D,
|
||||
WinEDA3D_DrawFrame::Process_Special_Functions)
|
||||
EVT_MENU(wxID_EXIT, WinEDA3D_DrawFrame::Exit3DFrame)
|
||||
EVT_MENU(ID_MENU_SCREENCOPY_PNG, WinEDA3D_DrawFrame::Process_Special_Functions)
|
||||
EVT_MENU(ID_MENU_SCREENCOPY_JPEG, WinEDA3D_DrawFrame::Process_Special_Functions)
|
||||
EVT_CLOSE(WinEDA3D_DrawFrame::OnCloseWindow)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
/*******************************************************************/
|
||||
WinEDA3D_DrawFrame::WinEDA3D_DrawFrame(WinEDA_BasePcbFrame * parent,
|
||||
WinEDA_App *app_parent, const wxString& title ):
|
||||
wxFrame(parent, DISPLAY3D_FRAME, title,
|
||||
wxPoint(-1,-1), wxSize(-1,-1) )
|
||||
/*******************************************************************/
|
||||
{
|
||||
m_FrameName = wxT("Frame3D");
|
||||
m_Canvas = NULL;
|
||||
m_Parent = parent;
|
||||
m_ParentAppl = app_parent;
|
||||
m_HToolBar = NULL;
|
||||
m_VToolBar = NULL;
|
||||
m_InternalUnits = 10000; // Unites internes = 1/10000 inch
|
||||
|
||||
// Give it an icon
|
||||
SetIcon(wxICON(icon_w3d));
|
||||
|
||||
GetSettings();
|
||||
SetSize(m_FramePos.x, m_FramePos.y, m_FrameSize.x, m_FrameSize.y);
|
||||
// Create the status line
|
||||
int dims[5] = { -1, 100, 100, 100, 140};
|
||||
CreateStatusBar(5);
|
||||
SetStatusWidths(5,dims);
|
||||
ReCreateMenuBar();
|
||||
ReCreateHToolbar();
|
||||
// ReCreateAuxiliaryToolbar();
|
||||
ReCreateVToolbar();
|
||||
|
||||
// Make a Pcb3D_GLCanvas
|
||||
|
||||
m_Canvas = new Pcb3D_GLCanvas(this, -1, gl_attrib );
|
||||
/* init OpenGL once */
|
||||
m_Canvas->InitGL();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/***********************************************************/
|
||||
void WinEDA3D_DrawFrame::Exit3DFrame(wxCommandEvent& event)
|
||||
/***********************************************************/
|
||||
{
|
||||
Close(TRUE);
|
||||
}
|
||||
|
||||
/***********************************************************/
|
||||
void WinEDA3D_DrawFrame::OnCloseWindow(wxCloseEvent & Event)
|
||||
/***********************************************************/
|
||||
{
|
||||
SaveSettings();
|
||||
if ( m_Parent )
|
||||
{
|
||||
m_Parent->m_Draw3DFrame = NULL;
|
||||
}
|
||||
Destroy();
|
||||
}
|
||||
|
||||
|
||||
/******************************************/
|
||||
void WinEDA3D_DrawFrame::GetSettings(void)
|
||||
/******************************************/
|
||||
{
|
||||
wxString text;
|
||||
wxConfig * Config = m_ParentAppl->m_EDA_Config; // Current config used by application
|
||||
|
||||
if( m_ParentAppl->m_EDA_Config )
|
||||
{
|
||||
text = m_FrameName + wxT("Pos_x");
|
||||
Config->Read(text, &m_FramePos.x);
|
||||
text = m_FrameName + wxT("Pos_y");
|
||||
Config->Read(text, &m_FramePos.y);
|
||||
text = m_FrameName + wxT("Size_x");
|
||||
Config->Read(text, &m_FrameSize.x, 600);
|
||||
text = m_FrameName + wxT("Size_y");
|
||||
Config->Read(text, &m_FrameSize.y, 400);
|
||||
Config->Read(wxT("BgColor_Red"), &g_Parm_3D_Visu.m_BgColor.m_Red, 0.0);
|
||||
Config->Read(wxT("BgColor_Green"), &g_Parm_3D_Visu.m_BgColor.m_Green, 0.0);
|
||||
Config->Read(wxT("BgColor_Blue"), &g_Parm_3D_Visu.m_BgColor.m_Blue, 0.0);
|
||||
}
|
||||
#ifdef __WXMAC__
|
||||
// for macOSX, the window must be below system (macOSX) toolbar
|
||||
if ( m_FramePos.y < GetMBarHeight() ) m_FramePos.y = GetMBarHeight();
|
||||
#endif
|
||||
}
|
||||
|
||||
/*******************************************/
|
||||
void WinEDA3D_DrawFrame::SaveSettings(void)
|
||||
/*******************************************/
|
||||
{
|
||||
wxString text;
|
||||
wxConfig * Config = m_ParentAppl->m_EDA_Config; // Current config used by application
|
||||
|
||||
if( ! Config ) return;
|
||||
|
||||
Config->Write(wxT("BgColor_Red"), g_Parm_3D_Visu.m_BgColor.m_Red);
|
||||
Config->Write(wxT("BgColor_Green"), g_Parm_3D_Visu.m_BgColor.m_Green);
|
||||
Config->Write(wxT("BgColor_Blue"), g_Parm_3D_Visu.m_BgColor.m_Blue);
|
||||
|
||||
if( IsIconized() ) return;
|
||||
|
||||
m_FrameSize = GetSize();
|
||||
m_FramePos = GetPosition();
|
||||
|
||||
text = m_FrameName + wxT("Pos_x");
|
||||
Config->Write(text, (long)m_FramePos.x);
|
||||
text = m_FrameName + wxT("Pos_y");
|
||||
Config->Write(text, (long)m_FramePos.y);
|
||||
text = m_FrameName + wxT("Size_x");
|
||||
Config->Write(text, (long)m_FrameSize.x);
|
||||
text = m_FrameName + wxT("Size_y");
|
||||
Config->Write(text, (long)m_FrameSize.y);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************/
|
||||
void WinEDA3D_DrawFrame::Process_Zoom(wxCommandEvent& event)
|
||||
/***********************************************************/
|
||||
{
|
||||
int ii;
|
||||
switch(event.GetId())
|
||||
{
|
||||
case ID_ZOOM_PAGE_BUTT:
|
||||
for ( ii = 0; ii < 4; ii++ ) g_Parm_3D_Visu.m_Rot[ii] = 0.0;
|
||||
g_Parm_3D_Visu.m_Zoom = 1.0;
|
||||
g_Draw3d_dx = g_Draw3d_dy = 0;
|
||||
trackball(g_Parm_3D_Visu.m_Quat, 0.0, 0.0, 0.0, 0.0 );
|
||||
break;
|
||||
|
||||
case ID_ZOOM_PLUS_BUTT:
|
||||
g_Parm_3D_Visu.m_Zoom /= 1.2;
|
||||
if ( g_Parm_3D_Visu.m_Zoom <= 0.01)
|
||||
g_Parm_3D_Visu.m_Zoom = 0.01;
|
||||
break;
|
||||
|
||||
case ID_ZOOM_MOINS_BUTT:
|
||||
g_Parm_3D_Visu.m_Zoom *= 1.2;
|
||||
break;
|
||||
|
||||
case ID_ZOOM_REDRAW_BUTT:
|
||||
break;
|
||||
|
||||
default:
|
||||
return;
|
||||
}
|
||||
m_Canvas->DisplayStatus();
|
||||
m_Canvas->Refresh(FALSE);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/************************************************************************/
|
||||
void WinEDA3D_DrawFrame::OnLeftClick(wxDC * DC, const wxPoint& MousePos)
|
||||
/************************************************************************/
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************************/
|
||||
void WinEDA3D_DrawFrame::OnRightClick(const wxPoint& MousePos, wxMenu * PopMenu)
|
||||
/*******************************************************************************/
|
||||
{
|
||||
}
|
||||
|
||||
/************************************/
|
||||
int WinEDA3D_DrawFrame::BestZoom(void)
|
||||
/************************************/
|
||||
// Retourne le meilleur zoom
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
/*******************************************************************/
|
||||
void WinEDA3D_DrawFrame::RedrawActiveWindow(wxDC * DC, bool EraseBg)
|
||||
/*******************************************************************/
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/************************************************************************/
|
||||
void WinEDA3D_DrawFrame::Process_Special_Functions(wxCommandEvent& event)
|
||||
/************************************************************************/
|
||||
{
|
||||
#define ROT_ANGLE 10.0
|
||||
|
||||
switch(event.GetId())
|
||||
{
|
||||
case ID_RELOAD3D_BOARD:
|
||||
NewDisplay();
|
||||
break;
|
||||
|
||||
case ID_ROTATE3D_X_POS:
|
||||
g_Parm_3D_Visu.m_ROTX += ROT_ANGLE;
|
||||
break;
|
||||
|
||||
case ID_ROTATE3D_X_NEG:
|
||||
g_Parm_3D_Visu.m_ROTX -= ROT_ANGLE;
|
||||
break;
|
||||
|
||||
case ID_ROTATE3D_Y_POS:
|
||||
g_Parm_3D_Visu.m_ROTY += ROT_ANGLE;
|
||||
break;
|
||||
|
||||
case ID_ROTATE3D_Y_NEG:
|
||||
g_Parm_3D_Visu.m_ROTY -= ROT_ANGLE;
|
||||
break;
|
||||
|
||||
case ID_ROTATE3D_Z_POS:
|
||||
g_Parm_3D_Visu.m_ROTZ += ROT_ANGLE;
|
||||
break;
|
||||
|
||||
case ID_ROTATE3D_Z_NEG:
|
||||
g_Parm_3D_Visu.m_ROTZ -= ROT_ANGLE;
|
||||
break;
|
||||
|
||||
case ID_MOVE3D_LEFT:
|
||||
m_Canvas->SetView3D(WXK_LEFT);
|
||||
return;
|
||||
|
||||
case ID_MOVE3D_RIGHT:
|
||||
m_Canvas->SetView3D(WXK_RIGHT);
|
||||
return;
|
||||
|
||||
case ID_MOVE3D_UP:
|
||||
m_Canvas->SetView3D(WXK_UP);
|
||||
return;
|
||||
|
||||
case ID_MOVE3D_DOWN:
|
||||
m_Canvas->SetView3D(WXK_DOWN);
|
||||
return;
|
||||
|
||||
case ID_TOOL_SCREENCOPY_TOCLIBBOARD:
|
||||
case ID_MENU_SCREENCOPY_PNG:
|
||||
case ID_MENU_SCREENCOPY_JPEG:
|
||||
m_Canvas->TakeScreenshot(event);
|
||||
break;
|
||||
|
||||
case ID_MENU3D_BGCOLOR_SELECTION:
|
||||
Set3DBgColor();
|
||||
return;
|
||||
|
||||
default:
|
||||
wxMessageBox(
|
||||
wxT("WinEDA3D_DrawFrame::Process_Special_Functions() error: unknown command"));
|
||||
return;
|
||||
}
|
||||
m_Canvas->DisplayStatus();
|
||||
m_Canvas->Refresh(FALSE);
|
||||
}
|
||||
|
||||
|
||||
/*****************************************/
|
||||
void WinEDA3D_DrawFrame::NewDisplay(void)
|
||||
/*****************************************/
|
||||
{
|
||||
m_Canvas->ClearLists();
|
||||
m_Canvas->InitGL();
|
||||
m_Canvas->DisplayStatus();
|
||||
m_Canvas->Refresh(FALSE);
|
||||
}
|
||||
|
||||
|
||||
/******************************************/
|
||||
void WinEDA3D_DrawFrame::Set3DBgColor(void)
|
||||
/******************************************/
|
||||
/* called to set the background color of the 3D scene
|
||||
*/
|
||||
{
|
||||
S3D_Color color;
|
||||
wxColour newcolor, oldcolor;
|
||||
|
||||
oldcolor.Set((int) round(g_Parm_3D_Visu.m_BgColor.m_Red*255),
|
||||
(int) round(g_Parm_3D_Visu.m_BgColor.m_Green*255),
|
||||
(int) round(g_Parm_3D_Visu.m_BgColor.m_Blue*255));
|
||||
|
||||
newcolor = wxGetColourFromUser(this, oldcolor);
|
||||
if ( newcolor != oldcolor )
|
||||
{
|
||||
g_Parm_3D_Visu.m_BgColor.m_Red = (double) newcolor.Red() / 255.0;
|
||||
g_Parm_3D_Visu.m_BgColor.m_Green = (double) newcolor.Green() / 255.0;
|
||||
g_Parm_3D_Visu.m_BgColor.m_Blue = (double) newcolor.Blue() / 255.0;
|
||||
NewDisplay();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,518 @@
|
|||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Name: 3d_read_mesh.cpp
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
#ifdef __GNUG__
|
||||
#pragma implementation
|
||||
#pragma interface
|
||||
#endif
|
||||
|
||||
#include "fctsys.h"
|
||||
|
||||
#include "common.h"
|
||||
#include "macros.h"
|
||||
|
||||
|
||||
#include "3d_struct.h"
|
||||
#include "3d_viewer.h"
|
||||
|
||||
|
||||
/***********************************/
|
||||
int Struct3D_Master:: ReadData(void)
|
||||
/************************************/
|
||||
{
|
||||
char line[1024], *text;
|
||||
wxString fullfilename;
|
||||
FILE * file;
|
||||
int LineNum = 0;
|
||||
|
||||
if ( m_Shape3DName.IsEmpty() )
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
||||
if ( wxIsAbsolutePath(m_Shape3DName) ) fullfilename.Empty();
|
||||
else fullfilename = g_RealLibDirBuffer + LIB3D_PATH;
|
||||
fullfilename += m_Shape3DName;
|
||||
#if defined (__WINDOWS__)
|
||||
fullfilename.Replace(UNIX_STRING_DIR_SEP,WIN_STRING_DIR_SEP);
|
||||
#else
|
||||
#if defined (__UNIX__)
|
||||
fullfilename.Replace(WIN_STRING_DIR_SEP,UNIX_STRING_DIR_SEP);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
file = wxFopen( fullfilename, wxT("rt") );
|
||||
if ( file == NULL )
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
while ( GetLine(file, line, &LineNum, 512) )
|
||||
{
|
||||
text = strtok(line, " \t\n\r");
|
||||
if ( stricmp (text, "DEF" ) == 0 )
|
||||
{
|
||||
while ( GetLine(file, line, &LineNum, 512) )
|
||||
{
|
||||
text = strtok(line, " \t\n\r");
|
||||
if ( text == NULL ) continue;
|
||||
if ( * text == '}' ) break;
|
||||
if ( stricmp (text, "children") == 0 )
|
||||
{
|
||||
ReadChildren(file, &LineNum);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fclose (file);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*********************************************************/
|
||||
int Struct3D_Master:: ReadMaterial(FILE * file, int *LineNum)
|
||||
/*********************************************************/
|
||||
/*
|
||||
analyse la description du type:
|
||||
material DEF yellow Material {
|
||||
diffuseColor 1.00000 1.00000 0.00000e+0
|
||||
emissiveColor 0.00000e+0 0.00000e+0 0.00000e+0
|
||||
specularColor 1.00000 1.00000 1.00000
|
||||
ambientIntensity 1.00000
|
||||
transparency 0.00000e+0
|
||||
shininess 1.00000
|
||||
}
|
||||
ou du type:
|
||||
material USE yellow
|
||||
*/
|
||||
{
|
||||
char line[512], * text, * command;
|
||||
wxString mat_name;
|
||||
S3D_Material * material = NULL;
|
||||
|
||||
// Lecture de la commande:
|
||||
command = strtok(NULL, " \t\n\r");
|
||||
text = strtok(NULL, " \t\n\r");
|
||||
mat_name = CONV_FROM_UTF8(text);
|
||||
if ( stricmp(command, "USE") == 0 )
|
||||
{
|
||||
|
||||
for ( material = m_Materials; material != NULL;
|
||||
material = (S3D_Material *) material->Pnext)
|
||||
{
|
||||
if ( material->m_Name == mat_name)
|
||||
{
|
||||
material->SetMaterial();
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
printf("ReadMaterial error: material not found\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ( stricmp(command, "DEF") == 0 )
|
||||
{
|
||||
material = new S3D_Material(this, mat_name);
|
||||
material->Pnext = m_Materials;
|
||||
m_Materials = material;
|
||||
while ( GetLine(file, line, LineNum, 512) )
|
||||
{
|
||||
text = strtok(line," \t\n\r");
|
||||
if ( text == NULL ) continue;
|
||||
if ( text[0] == '}' )
|
||||
{
|
||||
material->SetMaterial();
|
||||
return 0;
|
||||
}
|
||||
if ( stricmp (text, "diffuseColor") == 0 )
|
||||
{
|
||||
text = strtok(NULL," \t\n\r");
|
||||
material->m_DiffuseColor.x = atof(from_point(text));
|
||||
text = strtok(NULL," \t\n\r");
|
||||
material->m_DiffuseColor.y = atof(from_point(text));
|
||||
text = strtok(NULL," \t\n\r");
|
||||
material->m_DiffuseColor.z = atof(from_point(text));
|
||||
}
|
||||
else if ( stricmp (text, "emissiveColor") == 0 )
|
||||
{
|
||||
text = strtok(NULL," \t\n\r");
|
||||
material->m_EmissiveColor.x = atof(from_point(text));
|
||||
text = strtok(NULL," \t\n\r");
|
||||
material->m_EmissiveColor.y = atof(from_point(text));
|
||||
text = strtok(NULL," \t\n\r");
|
||||
material->m_EmissiveColor.z = atof(from_point(text));
|
||||
}
|
||||
else if ( strnicmp (text, "specularColor", 13 ) == 0 )
|
||||
{
|
||||
text = strtok(NULL," \t\n\r");
|
||||
material->m_SpecularColor.x = atof(from_point(text));
|
||||
text = strtok(NULL," \t\n\r");
|
||||
material->m_SpecularColor.y = atof(from_point(text));
|
||||
text = strtok(NULL," \t\n\r");
|
||||
material->m_SpecularColor.z = atof(from_point(text));
|
||||
}
|
||||
else if ( strnicmp (text, "ambientIntensity", 16 ) == 0 )
|
||||
{
|
||||
text = strtok(NULL," \t\n\r");
|
||||
material->m_AmbientIntensity = atof(from_point(text));
|
||||
}
|
||||
else if ( strnicmp (text, "transparency", 12 ) == 0 )
|
||||
{
|
||||
text = strtok(NULL," \t\n\r");
|
||||
material->m_Transparency = atof(from_point(text));
|
||||
}
|
||||
else if ( strnicmp (text, "shininess", 9 ) == 0 )
|
||||
{
|
||||
text = strtok(NULL," \t\n\r");
|
||||
material->m_Shininess = atof(from_point(text));
|
||||
}
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
/**********************************************************/
|
||||
int Struct3D_Master::ReadChildren(FILE * file, int *LineNum)
|
||||
/***********************************************************/
|
||||
{
|
||||
char line[1024], *text;
|
||||
|
||||
while ( GetLine(file, line, LineNum, 512) )
|
||||
{
|
||||
text = strtok(line, " \t\n\r");
|
||||
if ( * text == ']' ) return 0;
|
||||
if ( * text == ',' ) continue;
|
||||
|
||||
if ( stricmp (text, "Shape" ) == 0 )
|
||||
{
|
||||
ReadShape(file, LineNum);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf ("ReadChildren error line %d <%s> \n", *LineNum, text);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/********************************************************/
|
||||
int Struct3D_Master::ReadShape(FILE * file, int *LineNum)
|
||||
/********************************************************/
|
||||
{
|
||||
char line[1024], *text;
|
||||
int err = 1;
|
||||
|
||||
while ( GetLine(file, line, LineNum, 512) )
|
||||
{
|
||||
text = strtok(line, " \t\n\r");
|
||||
if ( * text == '}' )
|
||||
{
|
||||
err = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
if ( stricmp (text, "appearance" ) == 0 )
|
||||
{
|
||||
ReadAppearance(file, LineNum);
|
||||
}
|
||||
else if ( stricmp (text, "geometry" ) == 0 )
|
||||
{
|
||||
ReadGeometry(file, LineNum);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf ("ReadShape error line %d <%s> \n", *LineNum, text);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
/*************************************************************/
|
||||
int Struct3D_Master::ReadAppearance(FILE * file, int *LineNum)
|
||||
/*************************************************************/
|
||||
{
|
||||
char line[1024], *text;
|
||||
int err = 1;
|
||||
|
||||
while ( GetLine(file, line, LineNum, 512) )
|
||||
{
|
||||
text = strtok(line, " \t\n\r");
|
||||
if ( * text == '}' )
|
||||
{
|
||||
err = 0; break;
|
||||
}
|
||||
|
||||
if ( stricmp (text, "material" ) == 0 )
|
||||
{
|
||||
ReadMaterial(file, LineNum );
|
||||
}
|
||||
else
|
||||
{
|
||||
printf ("ReadAppearance error line %d <%s> \n", *LineNum, text);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
#define BUFSIZE 2000
|
||||
|
||||
/************************************************************************************/
|
||||
double * ReadCoordsList(FILE * file, char * text_buffer, int * bufsize, int *LineNum)
|
||||
/************************************************************************************/
|
||||
/* Read a coordinate liste like:
|
||||
coord Coordinate { point [
|
||||
-5.24489 6.57640e-3 -9.42129e-2,
|
||||
-5.11821 6.57421e-3 0.542654,
|
||||
-3.45868 0.256565 1.32000 ] }
|
||||
or:
|
||||
normal Normal { vector [
|
||||
0.995171 -6.08102e-6 9.81541e-2,
|
||||
0.923880 -4.09802e-6 0.382683,
|
||||
0.707107 -9.38186e-7 0.707107]
|
||||
}
|
||||
|
||||
Return the coordinate list
|
||||
text_buffer contains the first line of this node :
|
||||
"coord Coordinate { point ["
|
||||
*/
|
||||
{
|
||||
double * data_list = NULL;
|
||||
unsigned int ii = 0, jj = 0, nn = BUFSIZE;
|
||||
char * text;
|
||||
bool HasData = FALSE;
|
||||
bool StartData = FALSE;
|
||||
bool EndData = FALSE;
|
||||
bool EndNode = FALSE;
|
||||
char string_num[512];
|
||||
|
||||
text = text_buffer;
|
||||
while ( !EndNode )
|
||||
{
|
||||
if ( * text == 0 ) // Needs data !
|
||||
{
|
||||
text = text_buffer;
|
||||
GetLine(file, text_buffer, LineNum, 512);
|
||||
}
|
||||
|
||||
while ( !EndNode && *text )
|
||||
{
|
||||
switch ( *text )
|
||||
{
|
||||
case '[':
|
||||
StartData = TRUE;
|
||||
jj = 0; string_num[jj] = 0;
|
||||
data_list = (double *) MyZMalloc(nn * sizeof(double) );
|
||||
break;
|
||||
|
||||
case '}':
|
||||
EndNode = TRUE;
|
||||
break;
|
||||
|
||||
case ']':
|
||||
case '\t':
|
||||
case ' ':
|
||||
case ',':
|
||||
jj = 0;
|
||||
if ( ! StartData || !HasData) break;
|
||||
data_list[ii] = atof(from_point(string_num));
|
||||
string_num[jj] = 0;
|
||||
ii++;
|
||||
if ( ii >= nn )
|
||||
{
|
||||
nn *= 2;
|
||||
data_list = (double *) realloc(data_list, (nn * sizeof(double)) );
|
||||
}
|
||||
HasData = FALSE;
|
||||
if ( *text == ']' )
|
||||
{
|
||||
StartData = FALSE;
|
||||
EndData = TRUE;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
if ( ! StartData ) break;
|
||||
if ( jj >= sizeof(string_num) ) break;
|
||||
string_num[jj] = *text;
|
||||
jj++; string_num[jj] = 0;
|
||||
HasData = TRUE;
|
||||
break;
|
||||
}
|
||||
text++;
|
||||
}
|
||||
}
|
||||
|
||||
if ( data_list )
|
||||
data_list = (double *) realloc(data_list, (ii * sizeof(double)) );
|
||||
if ( bufsize ) *bufsize = ii;
|
||||
return data_list;
|
||||
}
|
||||
|
||||
/***********************************************************/
|
||||
int Struct3D_Master::ReadGeometry(FILE * file, int *LineNum)
|
||||
/***********************************************************/
|
||||
{
|
||||
char line[1024], buffer[1024], *text;
|
||||
int err = 1;
|
||||
int nn = BUFSIZE;
|
||||
double * points = NULL;
|
||||
int * index = NULL;
|
||||
|
||||
while ( GetLine(file, line, LineNum, 512) )
|
||||
{
|
||||
strcpy(buffer,line);
|
||||
text = strtok(buffer, " \t\n\r");
|
||||
if ( * text == '}' )
|
||||
{
|
||||
err = 0; break;
|
||||
}
|
||||
|
||||
if ( stricmp (text, "normalPerVertex" ) == 0 )
|
||||
{
|
||||
text = strtok(NULL, " ,\t\n\r");
|
||||
if( stricmp (text, "TRUE") == 0 )
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( stricmp (text, "colorPerVertex" ) == 0 )
|
||||
{
|
||||
text = strtok(NULL, " ,\t\n\r");
|
||||
if( stricmp (text, "TRUE") == 0 )
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( stricmp (text, "normal" ) == 0 )
|
||||
{
|
||||
int coord_number;
|
||||
double * buf_points = ReadCoordsList(file, line, &coord_number, LineNum);
|
||||
continue;
|
||||
free(buf_points);
|
||||
continue;
|
||||
}
|
||||
if ( stricmp (text, "normalIndex" ) == 0 )
|
||||
{
|
||||
while ( GetLine(file, line, LineNum, 512) )
|
||||
{
|
||||
text = strtok(line, " ,\t\n\r");
|
||||
while ( text )
|
||||
{
|
||||
if ( *text == ']') break;
|
||||
text = strtok(NULL, " ,\t\n\r");
|
||||
}
|
||||
if ( text && (*text == ']') ) break;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( stricmp (text, "color" ) == 0 )
|
||||
{
|
||||
int coord_number;
|
||||
double * buf_points = ReadCoordsList(file, line, &coord_number, LineNum);
|
||||
continue;
|
||||
free(buf_points);
|
||||
continue;
|
||||
}
|
||||
if ( stricmp (text, "colorIndex" ) == 0 )
|
||||
{
|
||||
while ( GetLine(file, line, LineNum, 512) )
|
||||
{
|
||||
text = strtok(line, " ,\t\n\r");
|
||||
while ( text )
|
||||
{
|
||||
if ( *text == ']') break;
|
||||
text = strtok(NULL, " ,\t\n\r");
|
||||
}
|
||||
if ( text && (*text == ']') ) break;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
if ( stricmp (text, "coord" ) == 0 )
|
||||
{
|
||||
int coord_number;
|
||||
points = ReadCoordsList(file, line, &coord_number, LineNum);
|
||||
}
|
||||
else if ( stricmp (text, "coordIndex" ) == 0 )
|
||||
{
|
||||
index = (int *) MyMalloc(nn * sizeof(int) );
|
||||
S3D_Vertex * coords =
|
||||
(S3D_Vertex *) MyMalloc(nn * sizeof(S3D_Vertex) );
|
||||
while ( GetLine(file, line, LineNum, 512) )
|
||||
{
|
||||
int coord_count = 0, jj;
|
||||
text = strtok(line, " ,\t\n\r");
|
||||
while ( text )
|
||||
{
|
||||
if ( *text == ']') break;
|
||||
jj = atoi(from_point(text));
|
||||
if ( jj < 0 )
|
||||
{
|
||||
S3D_Vertex * curr_coord = coords;
|
||||
for ( jj = 0; jj < coord_count; jj ++ )
|
||||
{
|
||||
int kk = index[jj] * 3;
|
||||
curr_coord->x = points[kk];
|
||||
curr_coord->y = points[kk+1];
|
||||
curr_coord->z = points[kk+2];
|
||||
curr_coord++;
|
||||
}
|
||||
Set_Object_Coords(coords, coord_count );
|
||||
Set_Object_Data(coords, coord_count );
|
||||
coord_count = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
index[coord_count++] = jj;
|
||||
}
|
||||
text = strtok(NULL, " ,\t\n\r");
|
||||
}
|
||||
if ( text && (*text == ']') ) break;
|
||||
}
|
||||
free(index);
|
||||
free(coords);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf ("ReadGeometry error line %d <%s> \n", *LineNum, text);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ( points ) free (points);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*********************************************************/
|
||||
int Struct3D_Shape:: ReadData(FILE * file, int *LineNum)
|
||||
/*********************************************************/
|
||||
{
|
||||
char line[512];
|
||||
|
||||
while ( GetLine(file, line, LineNum, 512) )
|
||||
{
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
|
@ -0,0 +1,136 @@
|
|||
/********************************************************/
|
||||
/* 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 */
|
|
@ -0,0 +1,129 @@
|
|||
/*******************************************************************/
|
||||
/* 3d_toolbar.cpp: construction des tool bars de la frame visu 3d */
|
||||
/*******************************************************************/
|
||||
|
||||
#include "fctsys.h"
|
||||
#include "macros.h"
|
||||
|
||||
#include "bitmaps3d.h"
|
||||
#include "bitmaps.h"
|
||||
|
||||
#include "id.h"
|
||||
|
||||
#define BITMAP wxBitmap
|
||||
#include "3d_viewer.h"
|
||||
|
||||
|
||||
/*********************************************/
|
||||
void WinEDA3D_DrawFrame::ReCreateHToolbar(void)
|
||||
/*********************************************/
|
||||
{
|
||||
|
||||
if ( m_HToolBar != NULL )
|
||||
{ // simple mise a jour de la liste des fichiers anciens
|
||||
SetToolbars();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
m_HToolBar = new WinEDA_Toolbar(TOOLBAR_MAIN, this, ID_H_TOOLBAR, TRUE);
|
||||
SetToolBar(m_HToolBar);
|
||||
|
||||
// Set up toolbar
|
||||
m_HToolBar->AddTool(ID_RELOAD3D_BOARD, wxEmptyString, BITMAP(import3d_xpm),
|
||||
_("Reload board"));
|
||||
#ifdef __WINDOWS__ // do not work properly under linux
|
||||
m_HToolBar->AddSeparator();
|
||||
m_HToolBar->AddTool(ID_TOOL_SCREENCOPY_TOCLIBBOARD, wxEmptyString, BITMAP(copy_button),
|
||||
_("Copy 3D Image to Clipboard"));
|
||||
#endif
|
||||
|
||||
m_HToolBar->AddSeparator();
|
||||
m_HToolBar->AddTool(ID_ZOOM_PLUS_BUTT, wxEmptyString, BITMAP(zoom_in_xpm),
|
||||
_("zoom + (F1)"));
|
||||
|
||||
m_HToolBar->AddTool(ID_ZOOM_MOINS_BUTT, wxEmptyString, BITMAP(zoom_out_xpm),
|
||||
_("zoom - (F2)"));
|
||||
|
||||
m_HToolBar->AddTool(ID_ZOOM_REDRAW_BUTT, wxEmptyString, BITMAP(repaint_xpm),
|
||||
_("redraw (F3)"));
|
||||
|
||||
m_HToolBar->AddTool(ID_ZOOM_PAGE_BUTT, wxEmptyString, BITMAP(zoom_optimal_xpm),
|
||||
_("auto zoom"));
|
||||
|
||||
m_HToolBar->AddSeparator();
|
||||
m_HToolBar->AddTool(ID_ROTATE3D_X_POS, wxEmptyString, BITMAP(rotate_pos_X_xpm),
|
||||
_("Rotate X ->") );
|
||||
|
||||
m_HToolBar->AddTool(ID_ROTATE3D_X_NEG, wxEmptyString, BITMAP(rotate_neg_X_xpm),
|
||||
_("Rotate X <-") );
|
||||
|
||||
m_HToolBar->AddSeparator();
|
||||
m_HToolBar->AddTool(ID_ROTATE3D_Y_POS, wxEmptyString, BITMAP(rotate_pos_Y_xpm),
|
||||
_("Rotate Y ->") );
|
||||
m_HToolBar->AddTool(ID_ROTATE3D_Y_NEG, wxEmptyString, BITMAP(rotate_neg_Y_xpm),
|
||||
_("Rotate Y <-") );
|
||||
|
||||
|
||||
m_HToolBar->AddSeparator();
|
||||
m_HToolBar->AddTool(ID_ROTATE3D_Z_POS, wxEmptyString, BITMAP(rotate_pos_Z_xpm),
|
||||
_("Rotate Z ->") );
|
||||
|
||||
m_HToolBar->AddTool(ID_ROTATE3D_Z_NEG, wxEmptyString, BITMAP(rotate_neg_Z_xpm),
|
||||
_("Rotate Z <-") );
|
||||
|
||||
m_HToolBar->AddSeparator();
|
||||
m_HToolBar->AddTool(ID_MOVE3D_LEFT, wxEmptyString, BITMAP(left_xpm),
|
||||
_("Move left <-") );
|
||||
|
||||
m_HToolBar->AddTool(ID_MOVE3D_RIGHT, wxEmptyString, BITMAP(right_xpm),
|
||||
_("Move right ->") );
|
||||
|
||||
m_HToolBar->AddTool(ID_MOVE3D_UP, wxEmptyString, BITMAP(up_xpm),
|
||||
_("Move Up ^") );
|
||||
|
||||
m_HToolBar->AddTool(ID_MOVE3D_DOWN, wxEmptyString, BITMAP(down_xpm),
|
||||
_("Move Down") );
|
||||
|
||||
|
||||
m_HToolBar->Realize();
|
||||
|
||||
// SetToolbars();
|
||||
}
|
||||
|
||||
/*********************************************/
|
||||
void WinEDA3D_DrawFrame::ReCreateVToolbar(void)
|
||||
/*********************************************/
|
||||
{
|
||||
}
|
||||
|
||||
/**********************************************/
|
||||
void WinEDA3D_DrawFrame::ReCreateMenuBar(void)
|
||||
/**********************************************/
|
||||
{
|
||||
wxMenuBar *menuBar = new wxMenuBar;
|
||||
|
||||
wxMenu *fileMenu = new wxMenu;
|
||||
menuBar->Append(fileMenu, _("&File") );
|
||||
|
||||
fileMenu->Append(ID_MENU_SCREENCOPY_PNG, _("Create Image (png format)"));
|
||||
fileMenu->Append(ID_MENU_SCREENCOPY_JPEG, _("Create Image (jpeg format)"));
|
||||
fileMenu->AppendSeparator();
|
||||
fileMenu->Append(wxID_EXIT, _("&Exit"));
|
||||
|
||||
wxMenu *referencesMenu = new wxMenu;
|
||||
menuBar->Append(referencesMenu, _("&Preferences") );
|
||||
|
||||
ADD_MENUITEM(referencesMenu, ID_MENU3D_BGCOLOR_SELECTION,
|
||||
_("Choose background color"), palette_xpm)
|
||||
|
||||
|
||||
SetMenuBar(menuBar);
|
||||
}
|
||||
|
||||
/*****************************************/
|
||||
void WinEDA3D_DrawFrame::SetToolbars(void)
|
||||
/*****************************************/
|
||||
{
|
||||
}
|
||||
|
|
@ -0,0 +1,172 @@
|
|||
/////////////////////////////////////////////////////////////////////////////
|
||||
// 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
|
||||
;
|
||||
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
#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"
|
|
@ -0,0 +1,27 @@
|
|||
/* 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
|
|
@ -0,0 +1,27 @@
|
|||
/* 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
|
|
@ -0,0 +1,27 @@
|
|||
/* 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
|
|
@ -0,0 +1,27 @@
|
|||
/* 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
|
|
@ -0,0 +1,27 @@
|
|||
/* 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
|
|
@ -0,0 +1,27 @@
|
|||
/* 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
|
|
@ -0,0 +1,27 @@
|
|||
/* 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
|
|
@ -0,0 +1,48 @@
|
|||
/* 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
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
/* 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
|
|
@ -0,0 +1,32 @@
|
|||
/* 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
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
/* 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
|
|
@ -0,0 +1,32 @@
|
|||
/* 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
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
/* 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
|
|
@ -0,0 +1,32 @@
|
|||
/* 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
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
/* 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
|
|
@ -0,0 +1,32 @@
|
|||
/* 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
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
/* 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
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
/* 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
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
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
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
## Makefile for 3d-viewer.a ( wxGTK - LINUX )
|
||||
CC = gcc
|
||||
|
||||
# Compiler flags.
|
||||
|
||||
CPPFLAGS = -Wall -O2 -DPCBNEW -I../pcbnew -I ../include -I../common\
|
||||
`wx-config --cxxflags`
|
||||
|
||||
|
||||
include ../libs.linux
|
||||
|
||||
TARGET = 3d-viewer
|
||||
|
||||
FINAL = 1
|
||||
|
||||
all: $(TARGET).a
|
||||
|
||||
include makefile.include
|
||||
|
||||
|
||||
$(TARGET).a: $(OBJECTS3D) makefile.gtk makefile.include
|
||||
rm -f $@
|
||||
ar -rv $@ $(OBJECTS3D)
|
||||
ranlib $@
|
||||
|
||||
|
||||
clean:
|
||||
rm -f *.o
|
||||
rm -f *.exe
|
||||
rm -f *.res
|
||||
rm -f *.map
|
||||
rm -f $(TARGET).a
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
EXTRALIBS =
|
||||
EXTRACPPFLAGS= -I./ -I../include -I../common -I../pcbnew
|
||||
|
||||
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
|
||||
|
||||
|
||||
OBJECTS= ../common/trigo.o
|
||||
|
||||
AUXLIBS= -mthreads -o $(TARGET)$(DLLSUFF)\
|
||||
$(WXLIB_BASE) $(LIBS3D)\
|
||||
-lrpcrt4 -loleaut32 -lole32 -luuid -lwinspool -lwinmm\
|
||||
-lshell32 -lcomctl32 -lcomdlg32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32
|
||||
|
||||
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
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
## Makefile for 3d-viewer.a ( wxMAC - mac os X)
|
||||
CC = gcc
|
||||
|
||||
# Compiler flags.
|
||||
|
||||
CPPFLAGS = -Wall -O2 -DPCBNEW -I../pcbnew -I ../include -I../common\
|
||||
`wx-config --cxxflags`
|
||||
|
||||
|
||||
include ../libs.macosx
|
||||
|
||||
TARGET = 3d-viewer
|
||||
|
||||
FINAL = 1
|
||||
|
||||
all: $(TARGET).a
|
||||
|
||||
include makefile.include
|
||||
|
||||
|
||||
$(TARGET).a: $(OBJECTS3D) makefile.gtk makefile.include
|
||||
rm -f $@
|
||||
ar -rv $@ $(OBJECTS3D)
|
||||
ranlib $@
|
||||
|
||||
|
||||
clean:
|
||||
rm -f *.o
|
||||
rm -f *.exe
|
||||
rm -f *.res
|
||||
rm -f *.map
|
||||
rm -f $(TARGET).a
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,324 @@
|
|||
/*
|
||||
* (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 code:
|
||||
*
|
||||
* Implementation of a virtual trackball.
|
||||
* Implemented by Gavin Bell, lots of ideas from Thant Tessman and
|
||||
* the August '88 issue of Siggraph's "Computer Graphics," pp. 121-129.
|
||||
*
|
||||
* Vector manip code:
|
||||
*
|
||||
* Original code from:
|
||||
* David M. Ciemiewicz, Mark Grossman, Henry Moreton, and Paul Haeberli
|
||||
*
|
||||
* Much mucking with by:
|
||||
* Gavin Bell
|
||||
*/
|
||||
#include <math.h>
|
||||
#include "trackball.h"
|
||||
|
||||
/*
|
||||
* This size should really be based on the distance from the center of
|
||||
* rotation to the point on the object underneath the mouse. That
|
||||
* point would then track the mouse as closely as possible. This is a
|
||||
* simple example, though, so that is left as an Exercise for the
|
||||
* Programmer.
|
||||
*/
|
||||
#define TRACKBALLSIZE (0.8f)
|
||||
|
||||
/*
|
||||
* Local function prototypes (not defined in trackball.h)
|
||||
*/
|
||||
static float tb_project_to_sphere(float, float, float);
|
||||
static void normalize_quat(float [4]);
|
||||
|
||||
void
|
||||
vzero(float *v)
|
||||
{
|
||||
v[0] = 0.0;
|
||||
v[1] = 0.0;
|
||||
v[2] = 0.0;
|
||||
}
|
||||
|
||||
void
|
||||
vset(float *v, float x, float y, float z)
|
||||
{
|
||||
v[0] = x;
|
||||
v[1] = y;
|
||||
v[2] = z;
|
||||
}
|
||||
|
||||
void
|
||||
vsub(const float *src1, const float *src2, float *dst)
|
||||
{
|
||||
dst[0] = src1[0] - src2[0];
|
||||
dst[1] = src1[1] - src2[1];
|
||||
dst[2] = src1[2] - src2[2];
|
||||
}
|
||||
|
||||
void
|
||||
vcopy(const float *v1, float *v2)
|
||||
{
|
||||
register int i;
|
||||
for (i = 0 ; i < 3 ; i++)
|
||||
v2[i] = v1[i];
|
||||
}
|
||||
|
||||
void
|
||||
vcross(const float *v1, const float *v2, float *cross)
|
||||
{
|
||||
float temp[3];
|
||||
|
||||
temp[0] = (v1[1] * v2[2]) - (v1[2] * v2[1]);
|
||||
temp[1] = (v1[2] * v2[0]) - (v1[0] * v2[2]);
|
||||
temp[2] = (v1[0] * v2[1]) - (v1[1] * v2[0]);
|
||||
vcopy(temp, cross);
|
||||
}
|
||||
|
||||
float
|
||||
vlength(const float *v)
|
||||
{
|
||||
return (float) sqrt(v[0] * v[0] + v[1] * v[1] + v[2] * v[2]);
|
||||
}
|
||||
|
||||
void
|
||||
vscale(float *v, float div)
|
||||
{
|
||||
v[0] *= div;
|
||||
v[1] *= div;
|
||||
v[2] *= div;
|
||||
}
|
||||
|
||||
void
|
||||
vnormal(float *v)
|
||||
{
|
||||
vscale(v, 1.0f/vlength(v));
|
||||
}
|
||||
|
||||
float
|
||||
vdot(const float *v1, const float *v2)
|
||||
{
|
||||
return v1[0]*v2[0] + v1[1]*v2[1] + v1[2]*v2[2];
|
||||
}
|
||||
|
||||
void
|
||||
vadd(const float *src1, const float *src2, float *dst)
|
||||
{
|
||||
dst[0] = src1[0] + src2[0];
|
||||
dst[1] = src1[1] + src2[1];
|
||||
dst[2] = src1[2] + src2[2];
|
||||
}
|
||||
|
||||
/*
|
||||
* Ok, simulate a track-ball. Project the points onto the virtual
|
||||
* trackball, then figure out the axis of rotation, which is the cross
|
||||
* product of P1 P2 and O P1 (O is the center of the ball, 0,0,0)
|
||||
* Note: This is a deformed trackball-- is a trackball in the center,
|
||||
* but is deformed into a hyperbolic sheet of rotation away from the
|
||||
* center. This particular function was chosen after trying out
|
||||
* several variations.
|
||||
*
|
||||
* It is assumed that the arguments to this routine are in the range
|
||||
* (-1.0 ... 1.0)
|
||||
*/
|
||||
void
|
||||
trackball(float q[4], float p1x, float p1y, float p2x, float p2y)
|
||||
{
|
||||
float a[3]; /* Axis of rotation */
|
||||
float phi; /* how much to rotate about axis */
|
||||
float p1[3], p2[3], d[3];
|
||||
float t;
|
||||
|
||||
if (p1x == p2x && p1y == p2y) {
|
||||
/* Zero rotation */
|
||||
vzero(q);
|
||||
q[3] = 1.0;
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* First, figure out z-coordinates for projection of P1 and P2 to
|
||||
* deformed sphere
|
||||
*/
|
||||
vset(p1, p1x, p1y, tb_project_to_sphere(TRACKBALLSIZE, p1x, p1y));
|
||||
vset(p2, p2x, p2y, tb_project_to_sphere(TRACKBALLSIZE, p2x, p2y));
|
||||
|
||||
/*
|
||||
* Now, we want the cross product of P1 and P2
|
||||
*/
|
||||
vcross(p2,p1,a);
|
||||
|
||||
/*
|
||||
* Figure out how much to rotate around that axis.
|
||||
*/
|
||||
vsub(p1, p2, d);
|
||||
t = vlength(d) / (2.0f*TRACKBALLSIZE);
|
||||
|
||||
/*
|
||||
* Avoid problems with out-of-control values...
|
||||
*/
|
||||
if (t > 1.0) t = 1.0;
|
||||
if (t < -1.0) t = -1.0;
|
||||
phi = 2.0f * (float) asin(t);
|
||||
|
||||
axis_to_quat(a,phi,q);
|
||||
}
|
||||
|
||||
/*
|
||||
* Given an axis and angle, compute quaternion.
|
||||
*/
|
||||
void
|
||||
axis_to_quat(float a[3], float phi, float q[4])
|
||||
{
|
||||
vnormal(a);
|
||||
vcopy(a, q);
|
||||
vscale(q, (float) sin(phi/2.0));
|
||||
q[3] = (float) cos(phi/2.0);
|
||||
}
|
||||
|
||||
/*
|
||||
* Project an x,y pair onto a sphere of radius r OR a hyperbolic sheet
|
||||
* if we are away from the center of the sphere.
|
||||
*/
|
||||
static float
|
||||
tb_project_to_sphere(float r, float x, float y)
|
||||
{
|
||||
float d, t, z;
|
||||
|
||||
d = (float) sqrt(x*x + y*y);
|
||||
if (d < r * 0.70710678118654752440) { /* Inside sphere */
|
||||
z = (float) sqrt(r*r - d*d);
|
||||
} else { /* On hyperbola */
|
||||
t = r / 1.41421356237309504880f;
|
||||
z = t*t / d;
|
||||
}
|
||||
return z;
|
||||
}
|
||||
|
||||
/*
|
||||
* Given two rotations, e1 and e2, expressed as quaternion rotations,
|
||||
* figure out the equivalent single rotation and stuff it into dest.
|
||||
*
|
||||
* This routine also normalizes the result every RENORMCOUNT times it is
|
||||
* called, to keep error from creeping in.
|
||||
*
|
||||
* NOTE: This routine is written so that q1 or q2 may be the same
|
||||
* as dest (or each other).
|
||||
*/
|
||||
|
||||
#define RENORMCOUNT 97
|
||||
|
||||
void
|
||||
add_quats(float q1[4], float q2[4], float dest[4])
|
||||
{
|
||||
static int count=0;
|
||||
float t1[4], t2[4], t3[4];
|
||||
float tf[4];
|
||||
|
||||
vcopy(q1,t1);
|
||||
vscale(t1,q2[3]);
|
||||
|
||||
vcopy(q2,t2);
|
||||
vscale(t2,q1[3]);
|
||||
|
||||
vcross(q2,q1,t3);
|
||||
vadd(t1,t2,tf);
|
||||
vadd(t3,tf,tf);
|
||||
tf[3] = q1[3] * q2[3] - vdot(q1,q2);
|
||||
|
||||
dest[0] = tf[0];
|
||||
dest[1] = tf[1];
|
||||
dest[2] = tf[2];
|
||||
dest[3] = tf[3];
|
||||
|
||||
if (++count > RENORMCOUNT) {
|
||||
count = 0;
|
||||
normalize_quat(dest);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Quaternions always obey: a^2 + b^2 + c^2 + d^2 = 1.0
|
||||
* If they don't add up to 1.0, dividing by their magnitued will
|
||||
* renormalize them.
|
||||
*
|
||||
* Note: See the following for more information on quaternions:
|
||||
*
|
||||
* - Shoemake, K., Animating rotation with quaternion curves, Computer
|
||||
* Graphics 19, No 3 (Proc. SIGGRAPH'85), 245-254, 1985.
|
||||
* - Pletinckx, D., Quaternion calculus as a basic tool in computer
|
||||
* graphics, The Visual Computer 5, 2-13, 1989.
|
||||
*/
|
||||
static void
|
||||
normalize_quat(float q[4])
|
||||
{
|
||||
int i;
|
||||
float mag;
|
||||
|
||||
mag = (q[0]*q[0] + q[1]*q[1] + q[2]*q[2] + q[3]*q[3]);
|
||||
for (i = 0; i < 4; i++) q[i] /= mag;
|
||||
}
|
||||
|
||||
/*
|
||||
* Build a rotation matrix, given a quaternion rotation.
|
||||
*
|
||||
*/
|
||||
void
|
||||
build_rotmatrix(float m[4][4], float q[4])
|
||||
{
|
||||
m[0][0] = 1.0f - 2.0f * (q[1] * q[1] + q[2] * q[2]);
|
||||
m[0][1] = 2.0f * (q[0] * q[1] - q[2] * q[3]);
|
||||
m[0][2] = 2.0f * (q[2] * q[0] + q[1] * q[3]);
|
||||
m[0][3] = 0.0f;
|
||||
|
||||
m[1][0] = 2.0f * (q[0] * q[1] + q[2] * q[3]);
|
||||
m[1][1]= 1.0f - 2.0f * (q[2] * q[2] + q[0] * q[0]);
|
||||
m[1][2] = 2.0f * (q[1] * q[2] - q[0] * q[3]);
|
||||
m[1][3] = 0.0f;
|
||||
|
||||
m[2][0] = 2.0f * (q[2] * q[0] - q[1] * q[3]);
|
||||
m[2][1] = 2.0f * (q[1] * q[2] + q[0] * q[3]);
|
||||
m[2][2] = 1.0f - 2.0f * (q[1] * q[1] + q[0] * q[0]);
|
||||
m[2][3] = 0.0f;
|
||||
|
||||
m[3][0] = 0.0f;
|
||||
m[3][1] = 0.0f;
|
||||
m[3][2] = 0.0f;
|
||||
m[3][3] = 1.0f;
|
||||
}
|
||||
|
|
@ -0,0 +1,78 @@
|
|||
/*
|
||||
* (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]);
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
/* 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",
|
||||
"x c #0000FF",
|
||||
". c none",
|
||||
"................",
|
||||
"..JJJJ...JJ.....",
|
||||
".JJJJJJ..JJJJ...",
|
||||
".JJ..JJ..JJ.JJ..",
|
||||
".....JJ..JJ..JJ.",
|
||||
"..JJJJ...JJ...JJ",
|
||||
"..JJJJJ..JJ...JJ",
|
||||
".....JJ..JJ...JJ",
|
||||
".JJ..JJ..JJ..JJJ",
|
||||
".JJJJJJ..JJJJJJ.",
|
||||
"..JJJJ....JJJJ.x",
|
||||
"..........xxxxxx",
|
||||
".....xxxxxx.....",
|
||||
"xxxxxx..........",
|
||||
"x..............."
|
||||
};
|
||||
#endif
|
|
@ -0,0 +1,72 @@
|
|||
/* 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
|
|
@ -0,0 +1,60 @@
|
|||
/* 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
|
|
@ -0,0 +1,91 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *add_component_xpm[];
|
||||
|
||||
#else
|
||||
char * add_component_xpm[] = {
|
||||
"16 16 67 1",
|
||||
" c None",
|
||||
"! c black",
|
||||
"# c #D72E2E",
|
||||
"$ c #D72F2F",
|
||||
"% c #D62E2E",
|
||||
"& c #D83434",
|
||||
"' c #FEFEFF",
|
||||
"( c #FBFBFF",
|
||||
") c #F6F6FF",
|
||||
"* c #F1F1FF",
|
||||
"+ c #EBE9FC",
|
||||
", c #E3C3D7",
|
||||
"- c #DA6C77",
|
||||
". c #D13838",
|
||||
"0 c #FF0000",
|
||||
"1 c #FAFAFF",
|
||||
"2 c #F5F5FF",
|
||||
"3 c #F0F0FF",
|
||||
"4 c #EBEBFF",
|
||||
"5 c #E6E6FF",
|
||||
"6 c #E1E1FF",
|
||||
"7 c #DBDBFF",
|
||||
"8 c #D6555F",
|
||||
"9 c #BD5C5C",
|
||||
": c #9B9B9B",
|
||||
"; c #F4F4FF",
|
||||
"< c #EFEFFF",
|
||||
"= c #EAEAFF",
|
||||
"> c #E5E5FF",
|
||||
"? c #E0E0FF",
|
||||
"@ c #D6D6FF",
|
||||
"A c #D390AC",
|
||||
"B c #CB4444",
|
||||
"C c #E4E4FF",
|
||||
"D c #DFDFFF",
|
||||
"E c #DADAFF",
|
||||
"F c #D5D5FF",
|
||||
"G c #D0D0FF",
|
||||
"H c #CCB8E6",
|
||||
"I c #D73334",
|
||||
"J c #E9E9FF",
|
||||
"K c #D4D4FF",
|
||||
"L c #CFCFFF",
|
||||
"M c #CACAFF",
|
||||
"N c #CB8BAF",
|
||||
"O c #CB4141",
|
||||
"P c #E3E3FF",
|
||||
"Q c #DEDEFF",
|
||||
"R c #D9D9FF",
|
||||
"S c #C9C9FF",
|
||||
"T c #C4C4FF",
|
||||
"U c #D05364",
|
||||
"V c #B96262",
|
||||
"W c #9C9C9C",
|
||||
"X c #DDDDFF",
|
||||
"Y c #D8D8FF",
|
||||
"Z c #D3D3FF",
|
||||
"[ c #CECEFF",
|
||||
"] c #C9C7FC",
|
||||
"^ c #C7A8D8",
|
||||
"_ c #CE647C",
|
||||
"` c #CD3E3E",
|
||||
"a c #9E9595",
|
||||
"b c #D62F2F",
|
||||
"c c #CC4141",
|
||||
"d c #BC5C5C",
|
||||
"e c #9D9595",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ######$% ",
|
||||
" &'()*+,-. ",
|
||||
"0##&123456789 ",
|
||||
" :&;<=>?7@AB ",
|
||||
" &<=CDEFGH###0",
|
||||
" IJCDEKLMNO:::",
|
||||
" IPQRKLSTUVW ",
|
||||
"0##IXYZ[]^_`a ",
|
||||
" :#####bcde: ",
|
||||
" :::::::: ",
|
||||
" ",
|
||||
" ",
|
||||
" "};
|
||||
#endif
|
|
@ -0,0 +1,39 @@
|
|||
/* 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
|
|
@ -0,0 +1,34 @@
|
|||
/* 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
|
|
@ -0,0 +1,78 @@
|
|||
/* 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
|
|
@ -0,0 +1,84 @@
|
|||
/* 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
|
|
@ -0,0 +1,27 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *add_line_xpm[];
|
||||
|
||||
#else
|
||||
char * add_line_xpm[] = {
|
||||
"16 16 3 1",
|
||||
" c None",
|
||||
". c #006900",
|
||||
"+ c #9B9B9B",
|
||||
" ",
|
||||
" ",
|
||||
"...... ",
|
||||
" ++++.+ ",
|
||||
" .+ ",
|
||||
" .+ ",
|
||||
" .+ ",
|
||||
" .+ ",
|
||||
" .+ ",
|
||||
" .+ ",
|
||||
" .+ ",
|
||||
" .......... ",
|
||||
" ++++++++++",
|
||||
" ",
|
||||
" ",
|
||||
" "};
|
||||
#endif
|
|
@ -0,0 +1,48 @@
|
|||
/* 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
|
|
@ -0,0 +1,78 @@
|
|||
/* 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
|
|
@ -0,0 +1,48 @@
|
|||
/* 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
|
|
@ -0,0 +1,28 @@
|
|||
/* 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
|
|
@ -0,0 +1,40 @@
|
|||
/* 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
|
|
@ -0,0 +1,127 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *cancel_xpm[];
|
||||
|
||||
#else
|
||||
char * cancel_xpm[] = {
|
||||
"16 16 103 2",
|
||||
" c None",
|
||||
"! c black",
|
||||
"# c #422019",
|
||||
"$ c #391C17",
|
||||
"% c #0D0D0D",
|
||||
"& c #020202",
|
||||
"' c #050505",
|
||||
"( c #321813",
|
||||
") c #DD8D7D",
|
||||
"* c #D05F49",
|
||||
"+ c #4E1D14",
|
||||
", c #2D1714",
|
||||
"- c #C16E5E",
|
||||
". c #AD4632",
|
||||
"0 c #090504",
|
||||
"1 c #3E1E18",
|
||||
"2 c #D3634E",
|
||||
"3 c #C95641",
|
||||
"4 c #C64D37",
|
||||
"5 c #4C1B13",
|
||||
"6 c #301914",
|
||||
"7 c #D9705B",
|
||||
"8 c #C24129",
|
||||
"9 c #962E1C",
|
||||
": c #120502",
|
||||
"; c #0E0B09",
|
||||
"< c #C34C36",
|
||||
"= c #C03B22",
|
||||
"> c #BF3B22",
|
||||
"? c #C44D36",
|
||||
"@ c #5C251B",
|
||||
"A c #1D0F0C",
|
||||
"B c #D66F5B",
|
||||
"C c #B93B24",
|
||||
"D c #922C1B",
|
||||
"E c #4E160D",
|
||||
"F c #2F1510",
|
||||
"G c #BE3B22",
|
||||
"H c #B23821",
|
||||
"I c #3B1711",
|
||||
"J c #CA6D5B",
|
||||
"K c #B83E27",
|
||||
"L c #822617",
|
||||
"M c #2C0B05",
|
||||
"N c #2B130E",
|
||||
"O c #BD3B22",
|
||||
"P c #BA3B22",
|
||||
"Q c #B73922",
|
||||
"R c #B45B4A",
|
||||
"S c #CE523A",
|
||||
"T c #992F1D",
|
||||
"U c #200804",
|
||||
"V c #3C1812",
|
||||
"W c #BA3A22",
|
||||
"X c #C84E37",
|
||||
"Y c #B63922",
|
||||
"Z c #2F0E07",
|
||||
"[ c #49160C",
|
||||
"] c #CE6653",
|
||||
"^ c #BD3C24",
|
||||
"_ c #BB3B22",
|
||||
"` c #B43922",
|
||||
"a c #2C140F",
|
||||
"b c #1B0704",
|
||||
"c c #D17F70",
|
||||
"d c #BE3F27",
|
||||
"e c #B63D26",
|
||||
"f c #BC3B22",
|
||||
"g c #B03720",
|
||||
"h c #381914",
|
||||
"i c #CB7868",
|
||||
"j c #BD3F28",
|
||||
"k c #922F1E",
|
||||
"l c #090909",
|
||||
"m c #B43A23",
|
||||
"n c #25120F",
|
||||
"o c #010101",
|
||||
"p c #572119",
|
||||
"q c #CC7261",
|
||||
"r c #B93A22",
|
||||
"s c #96311E",
|
||||
"t c #200B08",
|
||||
"u c #411710",
|
||||
"v c #A23A26",
|
||||
"w c #080505",
|
||||
"x c #230A06",
|
||||
"y c #CD7261",
|
||||
"z c #BD3D25",
|
||||
"{ c #98311E",
|
||||
"| c #240D09",
|
||||
"} c #C23B22",
|
||||
"~ c #AD3620",
|
||||
" ! c #26110D",
|
||||
"!! c #0F0907",
|
||||
"#! c #912F1E",
|
||||
"$! c #94301E",
|
||||
"%! c #180906",
|
||||
"&! c #A13521",
|
||||
"'! c #26110E",
|
||||
"(! c #2C0E09",
|
||||
")! c #1C0905",
|
||||
"*! c #341A15",
|
||||
"+! c #311712",
|
||||
" ",
|
||||
" # $ % & ' ",
|
||||
" ( ) * + % , - . 0 ",
|
||||
" 1 2 3 4 5 6 7 8 9 : ",
|
||||
" ; < = > ? @ A B C D E ",
|
||||
" F < G G H I ' J K L M ",
|
||||
" N < O P Q R S T U ",
|
||||
" V < W W X Y Z & ",
|
||||
" & [ ] ^ W _ ` a ",
|
||||
" b c d e Q f O g N ",
|
||||
" h i j k l I < G G m n ",
|
||||
" o p q r s t u ? > = v w ",
|
||||
" x y z { | 5 4 } ~ ! ",
|
||||
" !!#!$!%! % + X &!'! ",
|
||||
" (!)! % *!+! ",
|
||||
" "};
|
||||
#endif
|
|
@ -0,0 +1,42 @@
|
|||
/* 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
|
|
@ -0,0 +1,77 @@
|
|||
/* 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
|
|
@ -0,0 +1,46 @@
|
|||
/* 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
|
|
@ -0,0 +1,162 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *delete_arc_xpm[];
|
||||
|
||||
#else
|
||||
char * delete_arc_xpm[] = {
|
||||
"16 16 138 2",
|
||||
" c None",
|
||||
". c #00009B",
|
||||
"+ c #000099",
|
||||
"@ c #000097",
|
||||
"# c #000096",
|
||||
"$ c #000073",
|
||||
"% c #000039",
|
||||
"& c #000036",
|
||||
"* c #000051",
|
||||
"= c #000086",
|
||||
"- c #00008E",
|
||||
"; c #000093",
|
||||
"> c #000085",
|
||||
", c #000074",
|
||||
"' c #0D0D0D",
|
||||
") c #414141",
|
||||
"! c #494949",
|
||||
"~ c #3D3D3D",
|
||||
"{ c #2B2B2B",
|
||||
"] c #000001",
|
||||
"^ c #010177",
|
||||
"/ c #000082",
|
||||
"( c #000000",
|
||||
"_ c #838170",
|
||||
": c #EEEBD6",
|
||||
"< c #F0EFE7",
|
||||
"[ c #ECEBE2",
|
||||
"} c #C5C4B8",
|
||||
"| c #525146",
|
||||
"1 c #01013F",
|
||||
"2 c #0F0F0F",
|
||||
"3 c #C0BEA3",
|
||||
"4 c #BFBDA3",
|
||||
"5 c #797866",
|
||||
"6 c #47463F",
|
||||
"7 c #262624",
|
||||
"8 c #35342D",
|
||||
"9 c #858371",
|
||||
"0 c #9E9C86",
|
||||
"a c #A19F89",
|
||||
"b c #A3A18B",
|
||||
"c c #2A2A2A",
|
||||
"d c #D1CFBA",
|
||||
"e c #DAD8C2",
|
||||
"f c #E0DECD",
|
||||
"g c #B7B5A0",
|
||||
"h c #63615A",
|
||||
"i c #383735",
|
||||
"j c #3B3B32",
|
||||
"k c #605F52",
|
||||
"l c #989681",
|
||||
"m c #B5B39A",
|
||||
"n c #B1B097",
|
||||
"o c #A2A089",
|
||||
"p c #E6E2D1",
|
||||
"q c #F2EFE7",
|
||||
"r c #F0EFE2",
|
||||
"s c #E8E7D8",
|
||||
"t c #E3E0D0",
|
||||
"u c #D3D0BC",
|
||||
"v c #C1BFA5",
|
||||
"w c #ADAB92",
|
||||
"x c #BEBCA2",
|
||||
"y c #C4C2AB",
|
||||
"z c #B6B49B",
|
||||
"A c #787665",
|
||||
"B c #888774",
|
||||
"C c #EFEBD0",
|
||||
"D c #F9F6E7",
|
||||
"E c #F7F3EB",
|
||||
"F c #F6F5EC",
|
||||
"G c #F6F5EA",
|
||||
"H c #F3F1E4",
|
||||
"I c #EAE8D7",
|
||||
"J c #DCDBC9",
|
||||
"K c #9B9988",
|
||||
"L c #626154",
|
||||
"M c #575649",
|
||||
"N c #515045",
|
||||
"O c #727064",
|
||||
"P c #9D9B8F",
|
||||
"Q c #E2DFC6",
|
||||
"R c #E7E3CD",
|
||||
"S c #E0DEC9",
|
||||
"T c #CFCFC9",
|
||||
"U c #8C8B7E",
|
||||
"V c #757463",
|
||||
"W c #676658",
|
||||
"X c #424138",
|
||||
"Y c #282721",
|
||||
"Z c #1E1E1A",
|
||||
"` c #33332F",
|
||||
" . c #4A4843",
|
||||
".. c #676661",
|
||||
"+. c #6F6E65",
|
||||
"@. c #6A6A63",
|
||||
"#. c #6D6B5C",
|
||||
"$. c #57564A",
|
||||
"%. c #383830",
|
||||
"&. c #161514",
|
||||
"*. c #191915",
|
||||
"=. c #1E1D18",
|
||||
"-. c #292922",
|
||||
";. c #9E9E93",
|
||||
">. c #4C4C3F",
|
||||
",. c #35352F",
|
||||
"'. c #292925",
|
||||
"). c #2E2E29",
|
||||
"!. c #0E0E0C",
|
||||
"~. c #0A0A08",
|
||||
"{. c #0F0F0C",
|
||||
"]. c #3D3D37",
|
||||
"^. c #33332A",
|
||||
"/. c #23231E",
|
||||
"(. c #2A2A23",
|
||||
"_. c #A3A297",
|
||||
":. c #B5B4AC",
|
||||
"<. c #706F66",
|
||||
"[. c #9F9F90",
|
||||
"}. c #737262",
|
||||
"|. c #3F3F34",
|
||||
"1. c #68685A",
|
||||
"2. c #38382E",
|
||||
"3. c #68685E",
|
||||
"4. c #3E3E33",
|
||||
"5. c #25251F",
|
||||
"6. c #2B2B24",
|
||||
"7. c #ABABA1",
|
||||
"8. c #D7D7D0",
|
||||
"9. c #89897E",
|
||||
"0. c #D4D3CC",
|
||||
"a. c #86867A",
|
||||
"b. c #57564E",
|
||||
"c. c #919185",
|
||||
"d. c #49493C",
|
||||
"e. c #77776A",
|
||||
"f. c #4F4F41",
|
||||
"g. c #282821",
|
||||
" . . . . . ",
|
||||
" . . . . . . . . + @ ",
|
||||
" # $ % & * = . . - ",
|
||||
" ; . > ",
|
||||
" # . , ",
|
||||
" ' ) ! ~ { ] ^ / ",
|
||||
" ( ( _ : < [ } | ] ] 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 ` ...+.@.#.$.%.&.*.=. ",
|
||||
" -.;.>.,.'.).!.~.{.].^./. ",
|
||||
" (._.:.<.[.}.|.1.2.3.4.5. ",
|
||||
" 6.7.8.9.0.a.b.c.d.e.f.g. "};
|
||||
#endif
|
|
@ -0,0 +1,150 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *delete_circle_xpm[];
|
||||
|
||||
#else
|
||||
char * delete_circle_xpm[] = {
|
||||
"16 16 126 2",
|
||||
" c None",
|
||||
". c #00009B",
|
||||
"+ c #000096",
|
||||
"@ c #00008C",
|
||||
"# c #000053",
|
||||
"$ c #00008A",
|
||||
"% c #00009A",
|
||||
"& c #000073",
|
||||
"* c #00007A",
|
||||
"= c #000092",
|
||||
"- c #00006F",
|
||||
"; c #000083",
|
||||
"> c #0D0D0D",
|
||||
", c #414141",
|
||||
"' c #494949",
|
||||
") c #3D3D3D",
|
||||
"! c #2B2B2B",
|
||||
"~ c #000001",
|
||||
"{ c #010177",
|
||||
"] c #000081",
|
||||
"^ c #000000",
|
||||
"/ c #838170",
|
||||
"( c #EEEBD6",
|
||||
"_ c #F0EFE7",
|
||||
": c #ECEBE2",
|
||||
"< c #C5C4B8",
|
||||
"[ c #525146",
|
||||
"} c #010101",
|
||||
"| c #010140",
|
||||
"1 c #0F0F0F",
|
||||
"2 c #C0BEA3",
|
||||
"3 c #BFBDA3",
|
||||
"4 c #797866",
|
||||
"5 c #47463F",
|
||||
"6 c #262624",
|
||||
"7 c #35342D",
|
||||
"8 c #858371",
|
||||
"9 c #9E9C87",
|
||||
"0 c #A19F89",
|
||||
"a c #A3A18B",
|
||||
"b c #2A2A2B",
|
||||
"c c #D1CFBA",
|
||||
"d c #DAD8C2",
|
||||
"e c #E0DECD",
|
||||
"f c #B7B5A0",
|
||||
"g c #63615A",
|
||||
"h c #383735",
|
||||
"i c #3B3B32",
|
||||
"j c #605F53",
|
||||
"k c #989682",
|
||||
"l c #B5B39A",
|
||||
"m c #B1B096",
|
||||
"n c #A2A089",
|
||||
"o c #E6E2D1",
|
||||
"p c #F2EFE7",
|
||||
"q c #F0EFE2",
|
||||
"r c #E8E7D8",
|
||||
"s c #E3E0D0",
|
||||
"t c #D3D0BC",
|
||||
"u c #C1BFA6",
|
||||
"v c #ADAB93",
|
||||
"w c #BEBCA3",
|
||||
"x c #C4C2AB",
|
||||
"y c #B6B49A",
|
||||
"z c #787665",
|
||||
"A c #888775",
|
||||
"B c #EFEBD1",
|
||||
"C c #F9F6E8",
|
||||
"D c #F7F3EC",
|
||||
"E c #F6F5ED",
|
||||
"F c #F6F5EB",
|
||||
"G c #F3F1E5",
|
||||
"H c #EAE8D8",
|
||||
"I c #DCDBCA",
|
||||
"J c #9B9987",
|
||||
"K c #626153",
|
||||
"L c #575649",
|
||||
"M c #00003B",
|
||||
"N c #515046",
|
||||
"O c #727065",
|
||||
"P c #9D9B90",
|
||||
"Q c #E2DFC7",
|
||||
"R c #E7E3CE",
|
||||
"S c #E0DECA",
|
||||
"T c #CFCFCA",
|
||||
"U c #8C8B7F",
|
||||
"V c #757463",
|
||||
"W c #676657",
|
||||
"X c #424137",
|
||||
"Y c #282721",
|
||||
"Z c #1E1E1A",
|
||||
"` c #33332F",
|
||||
" . c #4A4844",
|
||||
".. c #676662",
|
||||
"+. c #6F6E66",
|
||||
"@. c #6A6A64",
|
||||
"#. c #6D6B5C",
|
||||
"$. c #57564A",
|
||||
"%. c #383830",
|
||||
"&. c #161514",
|
||||
"*. c #191915",
|
||||
"=. c #1E1D18",
|
||||
"-. c #292922",
|
||||
";. c #9E9E93",
|
||||
">. c #4C4C3F",
|
||||
",. c #35352F",
|
||||
"'. c #292925",
|
||||
"). c #2E2E29",
|
||||
"!. c #0E0E0C",
|
||||
"~. c #0A0A08",
|
||||
"{. c #0F0F0C",
|
||||
"]. c #3D3D37",
|
||||
"^. c #33332A",
|
||||
"/. c #23231E",
|
||||
"(. c #2A2A23",
|
||||
"_. c #A3A297",
|
||||
":. c #B5B4AC",
|
||||
"<. c #706F66",
|
||||
"[. c #9F9F90",
|
||||
"}. c #737262",
|
||||
"|. c #3F3F34",
|
||||
"1. c #68685A",
|
||||
"2. c #38382E",
|
||||
"3. c #68685E",
|
||||
"4. c #3E3E33",
|
||||
"5. c #25251F",
|
||||
" . . . . ",
|
||||
" . . . . . . . + ",
|
||||
" . . @ # # $ . % ",
|
||||
" . . & * . = ",
|
||||
" . @ = . - ",
|
||||
". . # . ; ",
|
||||
". . > , ' ) ! ~ { ] ",
|
||||
". . ^ ^ / ( _ : < [ ~ ~ } ",
|
||||
". . | 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 ` ...+.@.#.$.%.&.*.=. ",
|
||||
" -.;.>.,.'.).!.~.{.].^./. ",
|
||||
" (._.:.<.[.}.|.1.2.3.4.5. "};
|
||||
#endif
|
|
@ -0,0 +1,134 @@
|
|||
/* 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
|
|
@ -0,0 +1,148 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *delete_field_xpm[];
|
||||
|
||||
#else
|
||||
char * delete_field_xpm[] = {
|
||||
"16 16 124 2",
|
||||
" c None",
|
||||
". c #D2D2D2",
|
||||
"+ c #9D9D9D",
|
||||
"@ c #DEDEDE",
|
||||
"# c #E0E0E0",
|
||||
"$ c #5C5C5C",
|
||||
"% c #000000",
|
||||
"& c #EDEDED",
|
||||
"* c #939393",
|
||||
"= c #FDFDFD",
|
||||
"- c #E4E4E4",
|
||||
"; c #F1F1F1",
|
||||
"> c #C8C8C8",
|
||||
", c #E7E7E7",
|
||||
"' c #F4F4F4",
|
||||
") c #8F8F8F",
|
||||
"! c #E9E9E9",
|
||||
"~ c #F6F6F6",
|
||||
"{ c #C0C0C0",
|
||||
"] c #FAFAFA",
|
||||
"^ c #9C9C9C",
|
||||
"/ c #999999",
|
||||
"( c #F0F0F0",
|
||||
"_ c #B5B5B5",
|
||||
": c #0E0E0E",
|
||||
"< c #424242",
|
||||
"[ c #4A4A4A",
|
||||
"} c #3E3E3E",
|
||||
"| c #2C2C2C",
|
||||
"1 c #010101",
|
||||
"2 c #C1C1C1",
|
||||
"3 c #DDDDDD",
|
||||
"4 c #7B7B7B",
|
||||
"5 c #848271",
|
||||
"6 c #EFECD7",
|
||||
"7 c #F1F0E8",
|
||||
"8 c #EDECE3",
|
||||
"9 c #C6C5B9",
|
||||
"0 c #535246",
|
||||
"a c #707070",
|
||||
"b c #0F0F0F",
|
||||
"c c #C0BEA3",
|
||||
"d c #BFBDA3",
|
||||
"e c #797866",
|
||||
"f c #47463F",
|
||||
"g c #262624",
|
||||
"h c #35342D",
|
||||
"i c #858371",
|
||||
"j c #9E9C86",
|
||||
"k c #A19F88",
|
||||
"l c #A3A18A",
|
||||
"m c #2A2A2A",
|
||||
"n c #D1CFBA",
|
||||
"o c #DAD8C2",
|
||||
"p c #E0DECD",
|
||||
"q c #B7B5A0",
|
||||
"r c #63615A",
|
||||
"s c #383735",
|
||||
"t c #3B3B32",
|
||||
"u c #605F52",
|
||||
"v c #989681",
|
||||
"w c #B5B399",
|
||||
"x c #B1B096",
|
||||
"y c #A2A089",
|
||||
"z c #E6E2D1",
|
||||
"A c #F2EFE7",
|
||||
"B c #F0EFE2",
|
||||
"C c #E8E7D8",
|
||||
"D c #E3E0D0",
|
||||
"E c #D3D0BC",
|
||||
"F c #C1BFA5",
|
||||
"G c #ADAB92",
|
||||
"H c #BEBCA2",
|
||||
"I c #C4C2AA",
|
||||
"J c #B6B49A",
|
||||
"K c #787665",
|
||||
"L c #888774",
|
||||
"M c #EFEBD0",
|
||||
"N c #F9F6E7",
|
||||
"O c #F7F3EB",
|
||||
"P c #F6F5EC",
|
||||
"Q c #F6F5EA",
|
||||
"R c #F3F1E4",
|
||||
"S c #EAE8D7",
|
||||
"T c #DCDBC9",
|
||||
"U c #9B9987",
|
||||
"V c #626153",
|
||||
"W c #575649",
|
||||
"X c #515045",
|
||||
"Y c #727064",
|
||||
"Z c #9D9B8F",
|
||||
"` c #E2DFC6",
|
||||
" . c #E7E3CD",
|
||||
".. c #E0DEC9",
|
||||
"+. c #CFCFC9",
|
||||
"@. c #8C8B7E",
|
||||
"#. c #757463",
|
||||
"$. c #676657",
|
||||
"%. c #424137",
|
||||
"&. c #282721",
|
||||
"*. c #1E1E1A",
|
||||
"=. c #33332F",
|
||||
"-. c #4A4843",
|
||||
";. c #676661",
|
||||
">. c #6F6E65",
|
||||
",. c #6A6A63",
|
||||
"'. c #6D6B5C",
|
||||
"). c #57564A",
|
||||
"!. c #383830",
|
||||
"~. c #161514",
|
||||
"{. c #191915",
|
||||
"]. c #1E1D18",
|
||||
"^. c #292922",
|
||||
"/. c #9E9E93",
|
||||
"(. c #4C4C3F",
|
||||
"_. c #35352F",
|
||||
":. c #292925",
|
||||
"<. c #2E2E29",
|
||||
"[. c #0E0E0C",
|
||||
"}. c #0A0A08",
|
||||
"|. c #0F0F0C",
|
||||
"1. c #3D3D37",
|
||||
"2. c #33332A",
|
||||
"3. c #23231E",
|
||||
". + + + + + + + + + + + + + + . ",
|
||||
"+ . @ @ @ @ @ @ @ @ @ @ @ @ @ + ",
|
||||
"+ # $ % % $ & % % % * & = = = + ",
|
||||
"+ - % ; ; % ; % ; > % ; = = = + ",
|
||||
"+ , % ' ' % ' % % % ) ' = = = + ",
|
||||
"+ ! % % % % ~ % ~ { % ~ = = = + ",
|
||||
"+ & % ] ] % ] % % % ^ ] / = / + ",
|
||||
"+ ( = & _ : < [ } | 1 2 3 = = + ",
|
||||
". + 4 1 1 5 6 7 8 9 0 1 1 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 ` ...+.@.#.$.%.&.% ",
|
||||
" *.=.-.;.>.,.'.).!.~.{.]. ",
|
||||
" ^./.(._.:.<.[.}.|.1.2.3. "};
|
||||
#endif
|
|
@ -0,0 +1,155 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *delete_line_xpm[];
|
||||
|
||||
#else
|
||||
char * delete_line_xpm[] = {
|
||||
"16 16 131 2",
|
||||
" c None",
|
||||
". c #007D00",
|
||||
"+ c #4D8B4D",
|
||||
"@ c #9B9B9B",
|
||||
"# c #060606",
|
||||
"$ c #202020",
|
||||
"% c #242424",
|
||||
"& c #1E1E1E",
|
||||
"* c #151515",
|
||||
"= c #000000",
|
||||
"- c #48473F",
|
||||
"; c #97968B",
|
||||
"> c #9C9C98",
|
||||
", c #94948F",
|
||||
"' c #787872",
|
||||
") c #292822",
|
||||
"! c #080808",
|
||||
"~ c #605F51",
|
||||
"{ c #5F5E51",
|
||||
"] c #7E7D6B",
|
||||
"^ c #9A988A",
|
||||
"/ c #8B8A85",
|
||||
"( c #908F87",
|
||||
"_ c #A5A494",
|
||||
": c #787766",
|
||||
"< c #504F44",
|
||||
"[ c #515045",
|
||||
"} c #161616",
|
||||
"| c #706F65",
|
||||
"1 c #CDCBB3",
|
||||
"2 c #CFCDB8",
|
||||
"3 c #989683",
|
||||
"4 c #55534C",
|
||||
"5 c #2F2F2D",
|
||||
"6 c #383830",
|
||||
"7 c #737161",
|
||||
"8 c #9B9984",
|
||||
"9 c #ABA991",
|
||||
"0 c #AAA990",
|
||||
"a c #515044",
|
||||
"b c #DBD8C5",
|
||||
"c c #E6E3D4",
|
||||
"d c #E8E6D7",
|
||||
"e c #CFCEBC",
|
||||
"f c #A3A095",
|
||||
"g c #858379",
|
||||
"h c #7E7D6C",
|
||||
"i c #868572",
|
||||
"j c #ABA992",
|
||||
"k c #BDBBA2",
|
||||
"l c #B4B298",
|
||||
"m c #8D8B77",
|
||||
"n c #B7B5A2",
|
||||
"o c #F0EDDB",
|
||||
"p c #F4F2E4",
|
||||
"q c #EFEDE1",
|
||||
"r c #ECEADE",
|
||||
"s c #E4E2D3",
|
||||
"t c #DAD8C4",
|
||||
"u c #CBC9B5",
|
||||
"v c #CDCBB6",
|
||||
"w c #B0AE99",
|
||||
"x c #8C8A77",
|
||||
"y c #676657",
|
||||
"z c #6D6C5C",
|
||||
"A c #B0AD9A",
|
||||
"B c #CBC8BB",
|
||||
"C c #ECE9D8",
|
||||
"D c #EEECDC",
|
||||
"E c #EBE9D9",
|
||||
"F c #E1E0D6",
|
||||
"G c #BBBAAA",
|
||||
"H c #A8A796",
|
||||
"I c #817F6F",
|
||||
"J c #525145",
|
||||
"K c #3F3F35",
|
||||
"L c #383730",
|
||||
"M c #525149",
|
||||
"N c #747269",
|
||||
"O c #A4A293",
|
||||
"P c #ABA899",
|
||||
"Q c #A5A496",
|
||||
"R c #9E9D92",
|
||||
"S c #727164",
|
||||
"T c #565649",
|
||||
"U c #3F3E36",
|
||||
"V c #2E2D26",
|
||||
"W c #23221D",
|
||||
"X c #24241E",
|
||||
"Y c #696961",
|
||||
"Z c #4B4A41",
|
||||
"` c #4E4D48",
|
||||
" . c #4C4B45",
|
||||
".. c #4C4C46",
|
||||
"+. c #3E3D34",
|
||||
"@. c #313029",
|
||||
"#. c #2A2926",
|
||||
"$. c #262620",
|
||||
"%. c #21201B",
|
||||
"&. c #2A2A23",
|
||||
"*. c #A1A095",
|
||||
"=. c #808076",
|
||||
"-. c #52524A",
|
||||
";. c #64645B",
|
||||
">. c #505045",
|
||||
",. c #272720",
|
||||
"'. c #393931",
|
||||
"). c #24241D",
|
||||
"!. c #39392F",
|
||||
"~. c #24241F",
|
||||
"{. c #2B2B24",
|
||||
"]. c #A7A79C",
|
||||
"^. c #C6C5BE",
|
||||
"/. c #7D7C72",
|
||||
"(. c #BAB9AE",
|
||||
"_. c #7D7C6E",
|
||||
":. c #7D7D70",
|
||||
"<. c #404035",
|
||||
"[. c #6F6F64",
|
||||
"}. c #46463A",
|
||||
"|. c #ABABA1",
|
||||
"1. c #D7D7D0",
|
||||
"2. c #8B8B7F",
|
||||
"3. c #D7D7CF",
|
||||
"4. c #989888",
|
||||
"5. c #59594F",
|
||||
"6. c #98988B",
|
||||
"7. c #4A4A3E",
|
||||
"8. c #77776A",
|
||||
"9. c #4F4F41",
|
||||
"0. c #282821",
|
||||
" ",
|
||||
". . . . . . . . . . . . . . . ",
|
||||
". + + + + + + + + + + + + + + @ ",
|
||||
" @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ ",
|
||||
" # $ % & * = ",
|
||||
" = = - ; > , ' ) = = ",
|
||||
" ! ~ { ] ^ / ( _ : < [ = ",
|
||||
" } | 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 ` ...+.@.X #.$.%. ",
|
||||
" &.*.=.-.;.>.,.'.).-.!.~. ",
|
||||
" {.].^./.(._.Z :.<.[.}.,. ",
|
||||
" {.|.1.2.3.4.5.6.7.8.9.0. "};
|
||||
#endif
|
|
@ -0,0 +1,144 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *Delete_Polygon_xpm[];
|
||||
|
||||
#else
|
||||
char * Delete_Polygon_xpm[] = {
|
||||
"16 16 120 2",
|
||||
" c None",
|
||||
". c #00009B",
|
||||
"+ c #000099",
|
||||
"@ c #00007D",
|
||||
"# c #000094",
|
||||
"$ c #000093",
|
||||
"% c #00008C",
|
||||
"& c #000098",
|
||||
"* c #000080",
|
||||
"= c #0D0D0D",
|
||||
"- c #414141",
|
||||
"; c #494949",
|
||||
"> c #3D3D3D",
|
||||
", c #2B2B2C",
|
||||
"' c #000001",
|
||||
") c #010101",
|
||||
"! c #000000",
|
||||
"~ c #838170",
|
||||
"{ c #EEEBD6",
|
||||
"] c #F0EFE7",
|
||||
"^ c #ECEBE2",
|
||||
"/ c #C5C4B9",
|
||||
"( c #525146",
|
||||
"_ c #0F0F0F",
|
||||
": c #C0BEA3",
|
||||
"< c #BFBDA3",
|
||||
"[ c #797866",
|
||||
"} c #47463F",
|
||||
"| c #262624",
|
||||
"1 c #35342D",
|
||||
"2 c #858372",
|
||||
"3 c #9E9C87",
|
||||
"4 c #A19F88",
|
||||
"5 c #A3A18A",
|
||||
"6 c #2A2A2A",
|
||||
"7 c #D1CFBA",
|
||||
"8 c #DAD8C2",
|
||||
"9 c #E0DECD",
|
||||
"0 c #B7B5A0",
|
||||
"a c #63615A",
|
||||
"b c #383735",
|
||||
"c c #3B3B32",
|
||||
"d c #605F53",
|
||||
"e c #989682",
|
||||
"f c #B5B399",
|
||||
"g c #B1B096",
|
||||
"h c #A2A089",
|
||||
"i c #E6E2D1",
|
||||
"j c #F2EFE7",
|
||||
"k c #F0EFE2",
|
||||
"l c #E8E7D8",
|
||||
"m c #E3E0D0",
|
||||
"n c #D3D0BC",
|
||||
"o c #C1BFA5",
|
||||
"p c #ADAB93",
|
||||
"q c #BEBCA3",
|
||||
"r c #C4C2AA",
|
||||
"s c #B6B49A",
|
||||
"t c #787665",
|
||||
"u c #888775",
|
||||
"v c #EFEBD1",
|
||||
"w c #F9F6E8",
|
||||
"x c #F7F3EC",
|
||||
"y c #F6F5ED",
|
||||
"z c #F6F5EB",
|
||||
"A c #F3F1E5",
|
||||
"B c #EAE8D8",
|
||||
"C c #DCDBCA",
|
||||
"D c #9B9987",
|
||||
"E c #626153",
|
||||
"F c #575649",
|
||||
"G c #00004D",
|
||||
"H c #515046",
|
||||
"I c #727065",
|
||||
"J c #9D9B90",
|
||||
"K c #E2DFC7",
|
||||
"L c #E7E3CE",
|
||||
"M c #E0DECA",
|
||||
"N c #CFCFCA",
|
||||
"O c #8C8B7F",
|
||||
"P c #757464",
|
||||
"Q c #676657",
|
||||
"R c #424137",
|
||||
"S c #282721",
|
||||
"T c #1E1E1A",
|
||||
"U c #33332F",
|
||||
"V c #4A4843",
|
||||
"W c #676661",
|
||||
"X c #6F6E65",
|
||||
"Y c #6A6A63",
|
||||
"Z c #6D6B5C",
|
||||
"` c #57564A",
|
||||
" . c #383830",
|
||||
".. c #161514",
|
||||
"+. c #191915",
|
||||
"@. c #1E1D18",
|
||||
"#. c #292922",
|
||||
"$. c #9E9E93",
|
||||
"%. c #4C4C3F",
|
||||
"&. c #35352F",
|
||||
"*. c #292925",
|
||||
"=. c #2E2E29",
|
||||
"-. c #0E0E0C",
|
||||
";. c #0A0A08",
|
||||
">. c #0F0F0C",
|
||||
",. c #3D3D37",
|
||||
"'. c #33332A",
|
||||
"). c #23231E",
|
||||
"!. c #2A2A23",
|
||||
"~. c #A3A297",
|
||||
"{. c #B5B4AC",
|
||||
"]. c #706F66",
|
||||
"^. c #9F9F90",
|
||||
"/. c #737262",
|
||||
"(. c #3F3F34",
|
||||
"_. c #68685A",
|
||||
":. c #38382E",
|
||||
"<. c #68685E",
|
||||
"[. c #3E3E33",
|
||||
"}. c #25251F",
|
||||
". . . . . . . . ",
|
||||
". . . . . . . . + ",
|
||||
" @ . # ",
|
||||
" $ . % ",
|
||||
" & . * ",
|
||||
" . . ",
|
||||
" = - ; > , ' ) ",
|
||||
" ! ! ~ { ] ^ / ( ! ! ",
|
||||
" _ : < [ } | 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 ` ...+.@. ",
|
||||
" #.$.%.&.*.=.-.;.>.,.'.). ",
|
||||
" !.~.{.].^./.(._.:.<.[.}. "};
|
||||
#endif
|
|
@ -0,0 +1,138 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *delete_rectangle_xpm[];
|
||||
|
||||
#else
|
||||
char * delete_rectangle_xpm[] = {
|
||||
"16 16 114 2",
|
||||
" c None",
|
||||
". c #00009B",
|
||||
"+ c #0D0D0D",
|
||||
"@ c #414141",
|
||||
"# c #494949",
|
||||
"$ c #3D3D3D",
|
||||
"% c #2B2B2B",
|
||||
"& c #000001",
|
||||
"* c #010177",
|
||||
"= c #000000",
|
||||
"- c #838170",
|
||||
"; c #EEEBD6",
|
||||
"> c #F0EFE7",
|
||||
", c #ECEBE2",
|
||||
"' c #C5C4B8",
|
||||
") c #525146",
|
||||
"! c #010101",
|
||||
"~ c #0F0F0F",
|
||||
"{ c #C0BEA3",
|
||||
"] c #BFBDA3",
|
||||
"^ c #797866",
|
||||
"/ c #47463F",
|
||||
"( c #262624",
|
||||
"_ c #35342D",
|
||||
": c #858371",
|
||||
"< c #9E9C87",
|
||||
"[ c #A19F89",
|
||||
"} c #A3A18A",
|
||||
"| c #2A2A2A",
|
||||
"1 c #D1CFBA",
|
||||
"2 c #DAD8C2",
|
||||
"3 c #E0DECD",
|
||||
"4 c #B7B5A0",
|
||||
"5 c #63615A",
|
||||
"6 c #383735",
|
||||
"7 c #3B3B32",
|
||||
"8 c #605F52",
|
||||
"9 c #989682",
|
||||
"0 c #B5B39A",
|
||||
"a c #B1B096",
|
||||
"b c #A2A089",
|
||||
"c c #E6E2D1",
|
||||
"d c #F2EFE7",
|
||||
"e c #F0EFE2",
|
||||
"f c #E8E7D8",
|
||||
"g c #E3E0D0",
|
||||
"h c #D3D0BC",
|
||||
"i c #C1BFA5",
|
||||
"j c #ADAB92",
|
||||
"k c #BEBCA3",
|
||||
"l c #C4C2AB",
|
||||
"m c #B6B49A",
|
||||
"n c #787665",
|
||||
"o c #888775",
|
||||
"p c #EFEBD1",
|
||||
"q c #F9F6E8",
|
||||
"r c #F7F3EC",
|
||||
"s c #F6F5ED",
|
||||
"t c #F6F5EB",
|
||||
"u c #F3F1E5",
|
||||
"v c #EAE8D8",
|
||||
"w c #DCDBCA",
|
||||
"x c #9B9988",
|
||||
"y c #626153",
|
||||
"z c #575649",
|
||||
"A c #00004D",
|
||||
"B c #515046",
|
||||
"C c #727065",
|
||||
"D c #9D9B90",
|
||||
"E c #E2DFC7",
|
||||
"F c #E7E3CE",
|
||||
"G c #E0DECA",
|
||||
"H c #CFCFCA",
|
||||
"I c #8C8B7F",
|
||||
"J c #757464",
|
||||
"K c #676657",
|
||||
"L c #424137",
|
||||
"M c #282721",
|
||||
"N c #1E1E1A",
|
||||
"O c #33332F",
|
||||
"P c #4A4843",
|
||||
"Q c #676661",
|
||||
"R c #6F6E65",
|
||||
"S c #6A6A63",
|
||||
"T c #6D6B5C",
|
||||
"U c #57564A",
|
||||
"V c #383830",
|
||||
"W c #161514",
|
||||
"X c #191915",
|
||||
"Y c #1E1D18",
|
||||
"Z c #292922",
|
||||
"` c #9E9E93",
|
||||
" . c #4C4C3F",
|
||||
".. c #35352F",
|
||||
"+. c #292925",
|
||||
"@. c #2E2E29",
|
||||
"#. c #0E0E0C",
|
||||
"$. c #0A0A08",
|
||||
"%. c #0F0F0C",
|
||||
"&. c #3D3D37",
|
||||
"*. c #33332A",
|
||||
"=. c #23231E",
|
||||
"-. c #2A2A23",
|
||||
";. c #A3A297",
|
||||
">. c #B5B4AC",
|
||||
",. c #706F66",
|
||||
"'. c #9F9F90",
|
||||
"). c #737262",
|
||||
"!. c #3F3F34",
|
||||
"~. c #68685A",
|
||||
"{. c #38382E",
|
||||
"]. c #68685E",
|
||||
"^. c #3E3E33",
|
||||
"/. c #25251F",
|
||||
". . . . . . . . . . . . . ",
|
||||
". . . . . . . . . . . . . ",
|
||||
". . . . ",
|
||||
". . . . ",
|
||||
". . . . ",
|
||||
". . . . ",
|
||||
". . + @ # $ % & * ",
|
||||
". . = = - ; > , ' ) & = ",
|
||||
". . ! ~ { ] ^ / ( _ : < [ } = ",
|
||||
". . | 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 ` ...+.@.#.$.%.&.*.=. ",
|
||||
" -.;.>.,.'.).!.~.{.].^./. "};
|
||||
#endif
|
|
@ -0,0 +1,135 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *delete_segment_xpm[];
|
||||
|
||||
#else
|
||||
char * delete_segment_xpm[] = {
|
||||
"16 16 111 2",
|
||||
" c None",
|
||||
". c #007D00",
|
||||
"+ c #007C00",
|
||||
"@ c #0D0D0D",
|
||||
"# c #414141",
|
||||
"$ c #494949",
|
||||
"% c #3D3D3D",
|
||||
"& c #2B2B2B",
|
||||
"* c #000000",
|
||||
"= c #838170",
|
||||
"- c #EEEBD6",
|
||||
"; c #F0EFE7",
|
||||
"> c #ECEBE2",
|
||||
", c #C5C4B8",
|
||||
"' c #525145",
|
||||
") c #0F0F0F",
|
||||
"! c #C0BEA3",
|
||||
"~ c #BFBDA3",
|
||||
"{ c #797866",
|
||||
"] c #47463F",
|
||||
"^ c #262624",
|
||||
"/ c #35342D",
|
||||
"( c #858371",
|
||||
"_ c #9E9C86",
|
||||
": c #A19F88",
|
||||
"< c #A3A18A",
|
||||
"[ c #2A2A2A",
|
||||
"} c #D1CFBA",
|
||||
"| c #DAD8C2",
|
||||
"1 c #E0DECD",
|
||||
"2 c #B7B5A0",
|
||||
"3 c #63615A",
|
||||
"4 c #383735",
|
||||
"5 c #3B3B32",
|
||||
"6 c #605F52",
|
||||
"7 c #989681",
|
||||
"8 c #B5B399",
|
||||
"9 c #B1B096",
|
||||
"0 c #A2A089",
|
||||
"a c #E6E2D1",
|
||||
"b c #F2EFE7",
|
||||
"c c #F0EFE2",
|
||||
"d c #E8E7D8",
|
||||
"e c #E3E0D0",
|
||||
"f c #D3D0BC",
|
||||
"g c #C1BFA5",
|
||||
"h c #ADAB92",
|
||||
"i c #BEBCA2",
|
||||
"j c #C4C2AA",
|
||||
"k c #B6B49A",
|
||||
"l c #787665",
|
||||
"m c #888774",
|
||||
"n c #EFEBD0",
|
||||
"o c #F9F6E7",
|
||||
"p c #F7F3EB",
|
||||
"q c #F6F5EC",
|
||||
"r c #F6F5EA",
|
||||
"s c #F3F1E4",
|
||||
"t c #EAE8D7",
|
||||
"u c #DCDBC9",
|
||||
"v c #9B9987",
|
||||
"w c #626153",
|
||||
"x c #575649",
|
||||
"y c #515045",
|
||||
"z c #727064",
|
||||
"A c #9D9B8F",
|
||||
"B c #E2DFC6",
|
||||
"C c #E7E3CD",
|
||||
"D c #E0DEC9",
|
||||
"E c #CFCFC9",
|
||||
"F c #8C8B7E",
|
||||
"G c #757463",
|
||||
"H c #676657",
|
||||
"I c #424137",
|
||||
"J c #282721",
|
||||
"K c #1E1E1A",
|
||||
"L c #33332F",
|
||||
"M c #4A4843",
|
||||
"N c #676661",
|
||||
"O c #6F6E65",
|
||||
"P c #6A6A63",
|
||||
"Q c #6D6B5C",
|
||||
"R c #57564A",
|
||||
"S c #383830",
|
||||
"T c #161514",
|
||||
"U c #191915",
|
||||
"V c #1E1D18",
|
||||
"W c #292922",
|
||||
"X c #9E9E93",
|
||||
"Y c #4C4C3F",
|
||||
"Z c #35352F",
|
||||
"` c #292925",
|
||||
" . c #2E2E29",
|
||||
".. c #0E0E0C",
|
||||
"+. c #0A0A08",
|
||||
"@. c #0F0F0C",
|
||||
"#. c #3D3D37",
|
||||
"$. c #33332A",
|
||||
"%. c #23231E",
|
||||
"&. c #2A2A23",
|
||||
"*. c #A3A297",
|
||||
"=. c #B5B4AC",
|
||||
"-. c #706F66",
|
||||
";. c #9F9F90",
|
||||
">. c #737262",
|
||||
",. c #3F3F34",
|
||||
"'. c #68685A",
|
||||
"). c #38382E",
|
||||
"!. c #68685E",
|
||||
"~. c #3E3E33",
|
||||
"{. c #25251F",
|
||||
" ",
|
||||
". . . . . . . . . . . . . . . . ",
|
||||
"+ . . . . . . . . . . . . . . . ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" @ # $ % & * ",
|
||||
" * * = - ; > , ' * * ",
|
||||
" ) ! ~ { ] ^ / ( _ : < * ",
|
||||
" [ } | 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 ` ...+.@.#.$.%. ",
|
||||
" &.*.=.-.;.>.,.'.).!.~.{. "};
|
||||
#endif
|
|
@ -0,0 +1,138 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *delete_text_xpm[];
|
||||
|
||||
#else
|
||||
char * delete_text_xpm[] = {
|
||||
"16 16 114 2",
|
||||
" c None",
|
||||
". c #00009B",
|
||||
"+ c #000098",
|
||||
"@ c #00005D",
|
||||
"# c #01016F",
|
||||
"$ c #0D0D0E",
|
||||
"% c #414142",
|
||||
"& c #49494A",
|
||||
"* c #3D3D3D",
|
||||
"= c #2B2B2B",
|
||||
"- c #000000",
|
||||
"; c #000001",
|
||||
"> c #838171",
|
||||
", c #EEEBD7",
|
||||
"' c #F0EFE8",
|
||||
") c #ECEBE2",
|
||||
"! c #C5C4B8",
|
||||
"~ c #525145",
|
||||
"{ c #0F0F0F",
|
||||
"] c #C0BEA3",
|
||||
"^ c #BFBDA4",
|
||||
"/ c #797867",
|
||||
"( c #474640",
|
||||
"_ c #262625",
|
||||
": c #35342D",
|
||||
"< c #858371",
|
||||
"[ c #9E9C86",
|
||||
"} c #A19F88",
|
||||
"| c #A3A18A",
|
||||
"1 c #2A2A2A",
|
||||
"2 c #D1CFBA",
|
||||
"3 c #DAD8C2",
|
||||
"4 c #E0DECE",
|
||||
"5 c #B7B5A1",
|
||||
"6 c #63615B",
|
||||
"7 c #383736",
|
||||
"8 c #3B3B32",
|
||||
"9 c #605F52",
|
||||
"0 c #989681",
|
||||
"a c #B5B399",
|
||||
"b c #B1B096",
|
||||
"c c #A2A089",
|
||||
"d c #E6E2D1",
|
||||
"e c #F2EFE7",
|
||||
"f c #F0EFE3",
|
||||
"g c #E8E7D9",
|
||||
"h c #E3E0D1",
|
||||
"i c #D3D0BD",
|
||||
"j c #C1BFA5",
|
||||
"k c #ADAB92",
|
||||
"l c #BEBCA2",
|
||||
"m c #C4C2AA",
|
||||
"n c #B6B49A",
|
||||
"o c #787665",
|
||||
"p c #888774",
|
||||
"q c #EFEBD0",
|
||||
"r c #F9F6E8",
|
||||
"s c #F7F3EC",
|
||||
"t c #F6F5ED",
|
||||
"u c #F6F5EB",
|
||||
"v c #F3F1E4",
|
||||
"w c #EAE8D7",
|
||||
"x c #DCDBC9",
|
||||
"y c #9B9987",
|
||||
"z c #626153",
|
||||
"A c #575649",
|
||||
"B c #515045",
|
||||
"C c #727065",
|
||||
"D c #9D9B90",
|
||||
"E c #E2DFC7",
|
||||
"F c #E7E3CE",
|
||||
"G c #E0DECA",
|
||||
"H c #CFCFC9",
|
||||
"I c #8C8B7E",
|
||||
"J c #757463",
|
||||
"K c #676657",
|
||||
"L c #424137",
|
||||
"M c #282721",
|
||||
"N c #1E1E1B",
|
||||
"O c #333330",
|
||||
"P c #4A4844",
|
||||
"Q c #676662",
|
||||
"R c #6F6E66",
|
||||
"S c #6A6A64",
|
||||
"T c #6D6B5D",
|
||||
"U c #57564B",
|
||||
"V c #383830",
|
||||
"W c #161514",
|
||||
"X c #191915",
|
||||
"Y c #1E1D18",
|
||||
"Z c #292923",
|
||||
"` c #9E9E94",
|
||||
" . c #4C4C40",
|
||||
".. c #353530",
|
||||
"+. c #292926",
|
||||
"@. c #2E2E2A",
|
||||
"#. c #0E0E0D",
|
||||
"$. c #0A0A09",
|
||||
"%. c #0F0F0C",
|
||||
"&. c #3D3D37",
|
||||
"*. c #33332A",
|
||||
"=. c #23231E",
|
||||
"-. c #2A2A23",
|
||||
";. c #A3A297",
|
||||
">. c #B5B4AC",
|
||||
",. c #706F66",
|
||||
"'. c #9F9F90",
|
||||
"). c #737262",
|
||||
"!. c #3F3F34",
|
||||
"~. c #68685A",
|
||||
"{. c #38382E",
|
||||
"]. c #68685E",
|
||||
"^. c #3E3E33",
|
||||
"/. c #25251F",
|
||||
". . . . . . . . . . . . . . ",
|
||||
". . . . . . . . . . . . . . ",
|
||||
". + . . . . + . ",
|
||||
". @ . . . . . ",
|
||||
" . . . . ",
|
||||
" . . . . ",
|
||||
" # $ % & * = - ",
|
||||
" - ; > , ' ) ! ~ - - ",
|
||||
" { ] ^ / ( _ : < [ } | - ",
|
||||
" 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 ` ...+.@.#.$.%.&.*.=. ",
|
||||
" -.;.>.,.'.).!.~.{.].^./. "};
|
||||
#endif
|
|
@ -0,0 +1,114 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *display_options_xpm[];
|
||||
|
||||
#else
|
||||
char * display_options_xpm[] = {
|
||||
"16 16 90 1",
|
||||
" c None",
|
||||
". c #000000",
|
||||
"+ c #E5E1E1",
|
||||
"@ c #EDEDE9",
|
||||
"# c #EDEDED",
|
||||
"$ c #F1F1ED",
|
||||
"% c #E9E5E5",
|
||||
"& c #C9C5BE",
|
||||
"* c #BDB9B1",
|
||||
"= c #B5B1AD",
|
||||
"- c #ADA9A2",
|
||||
"; c #010101",
|
||||
"> c #A3A197",
|
||||
", c #9D9D9D",
|
||||
"' c #A1A1A1",
|
||||
") c #A1A5A1",
|
||||
"! c #919591",
|
||||
"~ c #818581",
|
||||
"{ c #5D615D",
|
||||
"] c #3D413D",
|
||||
"^ c #2D312D",
|
||||
"/ c #1D211D",
|
||||
"( c #A7A299",
|
||||
"_ c #9DA19D",
|
||||
": c #8D918D",
|
||||
"< c #717571",
|
||||
"[ c #515551",
|
||||
"} c #424842",
|
||||
"| c #353935",
|
||||
"1 c #ABA79C",
|
||||
"2 c #E9E9E5",
|
||||
"3 c #999D99",
|
||||
"4 c #7D817D",
|
||||
"5 c #797D79",
|
||||
"6 c #F0F0F0",
|
||||
"7 c #DEDEDE",
|
||||
"8 c #DFDFDF",
|
||||
"9 c #E0E0E0",
|
||||
"0 c #BFBFBF",
|
||||
"a c #C0C0C0",
|
||||
"b c #C1C1C1",
|
||||
"c c #D1D1CA",
|
||||
"d c #676961",
|
||||
"e c #707470",
|
||||
"f c #979797",
|
||||
"g c #989898",
|
||||
"h c #B1ADA6",
|
||||
"i c #52554F",
|
||||
"j c #616561",
|
||||
"k c #E3E3E3",
|
||||
"l c #DDDDDD",
|
||||
"m c #C8C8C8",
|
||||
"n c #656565",
|
||||
"o c #848484",
|
||||
"p c #878787",
|
||||
"q c #A9A59D",
|
||||
"r c #313931",
|
||||
"s c #353D35",
|
||||
"t c #A3A3A3",
|
||||
"u c #010100",
|
||||
"v c #A19D94",
|
||||
"w c #ADA999",
|
||||
"x c #B1A9A1",
|
||||
"y c #CFCFCF",
|
||||
"z c #A4A4A4",
|
||||
"A c #989897",
|
||||
"B c #ABABAB",
|
||||
"C c #EEEEEE",
|
||||
"D c #999588",
|
||||
"E c #838383",
|
||||
"F c #8D8D81",
|
||||
"G c #656561",
|
||||
"H c #69655D",
|
||||
"I c #696559",
|
||||
"J c #B5B5B5",
|
||||
"K c #757575",
|
||||
"L c #6B6B6B",
|
||||
"M c #777777",
|
||||
"N c #888888",
|
||||
"O c #54544C",
|
||||
"P c #757169",
|
||||
"Q c #79796E",
|
||||
"R c #010000",
|
||||
"S c #E0E0DF",
|
||||
"T c #C1C1C0",
|
||||
"U c #A7A7A7",
|
||||
"V c #7B7B7B",
|
||||
"W c #747474",
|
||||
"X c #717171",
|
||||
"Y c #7D7D7D",
|
||||
"............... ",
|
||||
".+@#@$$$@%+&*=-;",
|
||||
".@;;;;;;;;;;;;>;",
|
||||
".$;,')!!~{{]^/(;",
|
||||
".$;_):~~<[[}|/1;",
|
||||
".2;3:4........;.",
|
||||
".2;~5.6788888898",
|
||||
".+;~5.8000000aba",
|
||||
".c;de.80f...gaba",
|
||||
".h;ij.80.klm.nop",
|
||||
".q;rs.80.lat..u.",
|
||||
".vw-x;9a;yzA.BC#",
|
||||
".D;;;.8ag...nEbb",
|
||||
".FGHI.8aJKLnMN..",
|
||||
" ;OPQRSTUVVWX.kl",
|
||||
" .;;.8aY.....la"};
|
||||
#endif
|
|
@ -0,0 +1,52 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *edit_xpm[];
|
||||
|
||||
#else
|
||||
char * edit_xpm[] = {
|
||||
"16 16 28 1",
|
||||
" c None",
|
||||
". c #000000",
|
||||
"+ c #F9E53A",
|
||||
"@ c #F0B44C",
|
||||
"# c #FAE93C",
|
||||
"$ c #F5B343",
|
||||
"% c #635632",
|
||||
"& c #FAE73A",
|
||||
"* c #F5B344",
|
||||
"= c #6B5E33",
|
||||
"- c #F8E239",
|
||||
"; c #F2B043",
|
||||
"> c #615739",
|
||||
", c #F7DD38",
|
||||
"' c #F1AD41",
|
||||
") c #615637",
|
||||
"! c #F7DA37",
|
||||
"~ c #EDB24C",
|
||||
"{ c #655931",
|
||||
"] c #F6D636",
|
||||
"^ c #EEA73E",
|
||||
"/ c #64582F",
|
||||
"( c #F4D035",
|
||||
"_ c #EBA23D",
|
||||
": c #5B512F",
|
||||
"< c #D5AC73",
|
||||
"[ c #60552E",
|
||||
"} c #4E4014",
|
||||
" ",
|
||||
" ... ",
|
||||
" .+@. ",
|
||||
" .#$%. ",
|
||||
" .&*=. ",
|
||||
" .-;>. ",
|
||||
" .,'). ",
|
||||
" .!~{. ",
|
||||
" .]^/. ",
|
||||
" .(_:. ",
|
||||
" .<[. ",
|
||||
" .}.. ",
|
||||
" .. ",
|
||||
" ",
|
||||
" ",
|
||||
" "};
|
||||
#endif
|
|
@ -0,0 +1,32 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *edit_text_xpm[];
|
||||
|
||||
#else
|
||||
char * edit_text_xpm[] = {
|
||||
"16 16 8 1",
|
||||
" c None",
|
||||
". c #1D2E40",
|
||||
"+ c #1B2C3D",
|
||||
"@ c #1B2B3D",
|
||||
"# c #1E3043",
|
||||
"$ c #1C2D3F",
|
||||
"% c #111B26",
|
||||
"& c #1C2C3E",
|
||||
" ",
|
||||
" ",
|
||||
" .+ +@ ",
|
||||
" ## ",
|
||||
" ## ",
|
||||
" ## ",
|
||||
" ## ",
|
||||
" ## ",
|
||||
" ## ",
|
||||
" ## ",
|
||||
" ## ",
|
||||
" ## ",
|
||||
" ## ",
|
||||
" .$ %&& ",
|
||||
" ",
|
||||
" "};
|
||||
#endif
|
|
@ -0,0 +1,87 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *exit_xpm[];
|
||||
|
||||
#else
|
||||
char * exit_xpm[] = {
|
||||
"16 16 63 1",
|
||||
" c None",
|
||||
". c #000000",
|
||||
"+ c #E2E2E0",
|
||||
"@ c #D3D3D0",
|
||||
"# c #C0C0BD",
|
||||
"$ c #ADADAB",
|
||||
"% c #929291",
|
||||
"& c #B7B7B5",
|
||||
"* c #9A9A98",
|
||||
"= c #E46245",
|
||||
"- c #DEDEDC",
|
||||
"; c #C1C1BE",
|
||||
"> c #B9B9B7",
|
||||
", c #9C9C9B",
|
||||
"' c #060806",
|
||||
") c #070907",
|
||||
"! c #E7755B",
|
||||
"~ c #B3533E",
|
||||
"{ c #D0D0CD",
|
||||
"] c #0E110C",
|
||||
"^ c #0F120D",
|
||||
"/ c #DF421E",
|
||||
"( c #B14D36",
|
||||
"_ c #BDBDBB",
|
||||
": c #A4A4A2",
|
||||
"< c #161C14",
|
||||
"[ c #191F16",
|
||||
"} c #B0160A",
|
||||
"| c #B11B10",
|
||||
"1 c #993929",
|
||||
"2 c #797977",
|
||||
"3 c #5B5B5A",
|
||||
"4 c #1D251B",
|
||||
"5 c #20281D",
|
||||
"6 c #990000",
|
||||
"7 c #880000",
|
||||
"8 c #AA3F2C",
|
||||
"9 c #6C6C6A",
|
||||
"0 c #273124",
|
||||
"a c #2A3526",
|
||||
"b c #C83E2B",
|
||||
"c c #A1100B",
|
||||
"d c #A3140E",
|
||||
"e c #2B3727",
|
||||
"f c #313D2C",
|
||||
"g c #D4D4D1",
|
||||
"h c #354331",
|
||||
"i c #B4B4B2",
|
||||
"j c #8D8D8B",
|
||||
"k c #2D3A29",
|
||||
"l c #3B4A35",
|
||||
"m c #E0E0DE",
|
||||
"n c #C9C9C7",
|
||||
"o c #939491",
|
||||
"p c #51544F",
|
||||
"q c #34412F",
|
||||
"r c #42543D",
|
||||
"s c #495D43",
|
||||
"t c #5C6059",
|
||||
"u c #495C42",
|
||||
"v c #4F6448",
|
||||
"w c #53684B",
|
||||
"x c #546A4D",
|
||||
" ",
|
||||
" .......... ",
|
||||
" .+@#$%.... ",
|
||||
" ...+@#&*.... ",
|
||||
" .=.-@;>,.'). ",
|
||||
"....!~.{;>,.]^. ",
|
||||
".====/(._:,.<[. ",
|
||||
".=}}}}|1.23.45. ",
|
||||
".=666678.9,.0a. ",
|
||||
".bcd778.;>,.ef. ",
|
||||
"....78.g;>,.ah. ",
|
||||
" .8.+g;ij.kl. ",
|
||||
" ...mnop.qrs. ",
|
||||
" .&t.luvwx. ",
|
||||
" .......... ",
|
||||
" "};
|
||||
#endif
|
|
@ -0,0 +1,62 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *file_footprint_xpm[];
|
||||
|
||||
#else
|
||||
char * file_footprint_xpm[] = {
|
||||
"16 16 38 1",
|
||||
" c None",
|
||||
". c #000000",
|
||||
"+ c #F8F8F8",
|
||||
"@ c #7C7C7C",
|
||||
"# c #1E1E1E",
|
||||
"$ c #FFFFFF",
|
||||
"% c #ECECEC",
|
||||
"& c #B3B3B3",
|
||||
"* c #BBBBBB",
|
||||
"= c #3D3D3D",
|
||||
"- c #EBEBEB",
|
||||
"; c #646464",
|
||||
"> c #CACACA",
|
||||
", c #B5B5B5",
|
||||
"' c #A7A7A7",
|
||||
") c #282828",
|
||||
"! c #606060",
|
||||
"~ c #C4C4C4",
|
||||
"{ c #626262",
|
||||
"] c #D2D2D2",
|
||||
"^ c #AEAEAE",
|
||||
"/ c #7D7D7D",
|
||||
"( c #FEFEFE",
|
||||
"_ c #D73333",
|
||||
": c #AB8989",
|
||||
"< c #E6E6E6",
|
||||
"[ c #D93F3F",
|
||||
"} c #D72E2E",
|
||||
"| c #AC8989",
|
||||
"1 c #D73838",
|
||||
"2 c #AFAFAF",
|
||||
"3 c #EAE4E4",
|
||||
"4 c #615E5E",
|
||||
"5 c #EAE5E5",
|
||||
"6 c #FDFDFD",
|
||||
"7 c #646161",
|
||||
"8 c #ABABAB",
|
||||
"9 c #050505",
|
||||
" ......... ",
|
||||
".++++++++@# ",
|
||||
".$%%%%%%%&*= ",
|
||||
".$-;;>>;;,'*) ",
|
||||
".$-!~{{~!]^^/. ",
|
||||
".(_:_<<[:_>>^. ",
|
||||
".(}|}--1|}--2. ",
|
||||
".(343--543--2. ",
|
||||
".(_:_--[:_--2. ",
|
||||
".(}|}--1|}--2. ",
|
||||
".6343--543--2. ",
|
||||
".6_:_--_:_--2. ",
|
||||
".6}|}--}|}--2. ",
|
||||
".6347;;743--2. ",
|
||||
".228888882222. ",
|
||||
"............9. "};
|
||||
#endif
|
|
@ -0,0 +1,70 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern const char *fonts_xpm[];
|
||||
|
||||
#else
|
||||
const char * fonts_xpm[] = {
|
||||
"16 16 46 1",
|
||||
" c None",
|
||||
". c #70653B",
|
||||
"+ c #463F24",
|
||||
"@ c #6B6139",
|
||||
"# c #1B180D",
|
||||
"$ c #2C2818",
|
||||
"% c #595030",
|
||||
"& c #252112",
|
||||
"* c #292516",
|
||||
"= c #70643B",
|
||||
"- c #827544",
|
||||
"; c #3D3721",
|
||||
"> c #37311D",
|
||||
", c #3E3721",
|
||||
"' c #302B1A",
|
||||
") c #5C5331",
|
||||
"! c #010101",
|
||||
"~ c #1A170E",
|
||||
"{ c #1E1A10",
|
||||
"] c #403922",
|
||||
"^ c #584F2F",
|
||||
"/ c #16140C",
|
||||
"( c #1E1B10",
|
||||
"_ c #312B1A",
|
||||
": c #0F0D07",
|
||||
"< c #2D2818",
|
||||
"[ c #322D1A",
|
||||
"} c #231F11",
|
||||
"| c #3C3620",
|
||||
"1 c #5A5230",
|
||||
"2 c #332E1B",
|
||||
"3 c #12100A",
|
||||
"4 c #4F472A",
|
||||
"5 c #413A23",
|
||||
"6 c #302B19",
|
||||
"7 c #342E1B",
|
||||
"8 c #4A4227",
|
||||
"9 c #6E633A",
|
||||
"0 c #080704",
|
||||
"a c #2F2919",
|
||||
"b c #4C4529",
|
||||
"c c #51472B",
|
||||
"d c #242113",
|
||||
"e c #322D1B",
|
||||
"f c #5E5432",
|
||||
"g c #211E12",
|
||||
" ",
|
||||
" .+ ",
|
||||
" @ # ",
|
||||
" $ ",
|
||||
" %&* ",
|
||||
" = * -;> ",
|
||||
" , ' )!~ ",
|
||||
" { !] ^!/ (_ ",
|
||||
" :<[ }| 1!2<!3[ ",
|
||||
" 4!5 6!7 ",
|
||||
" 8!* ^!* ",
|
||||
" 8!* ^!* ",
|
||||
" 8!/ 90a ",
|
||||
" b!!cd~e ",
|
||||
" f*g a5 ",
|
||||
" "};
|
||||
#endif
|
|
@ -0,0 +1,87 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *info_xpm[];
|
||||
|
||||
#else
|
||||
char * info_xpm[] = {
|
||||
"16 16 63 1",
|
||||
" c None",
|
||||
". c #000000",
|
||||
"+ c #9CA3AA",
|
||||
"@ c #B4BCC3",
|
||||
"# c #E0E9F0",
|
||||
"$ c #CDDAE7",
|
||||
"% c #9DAAB6",
|
||||
"& c #848F9B",
|
||||
"* c #E6ECF2",
|
||||
"= c #E7EEF4",
|
||||
"- c #DEE7EF",
|
||||
"; c #CBD9E7",
|
||||
"> c #B5CADD",
|
||||
", c #9BB5CE",
|
||||
"' c #596776",
|
||||
") c #DBE5EE",
|
||||
"! c #F2F2F2",
|
||||
"~ c #727679",
|
||||
"{ c #D0DDE9",
|
||||
"] c #BACCDF",
|
||||
"^ c #AAC2D8",
|
||||
"/ c #9DB1C5",
|
||||
"( c #D7E2EC",
|
||||
"_ c #85898D",
|
||||
": c #A8B0B6",
|
||||
"< c #A3AEBA",
|
||||
"[ c #6F7B86",
|
||||
"} c #C4D4DF",
|
||||
"| c #C1CBD9",
|
||||
"1 c #BDCFE0",
|
||||
"2 c #CDDBE8",
|
||||
"3 c #79838D",
|
||||
"4 c #828B93",
|
||||
"5 c #D7E1E7",
|
||||
"6 c #CED5E0",
|
||||
"7 c #8597A8",
|
||||
"8 c #ADC2D4",
|
||||
"9 c #B7C8D9",
|
||||
"0 c #BCCDDC",
|
||||
"a c #C4D1DF",
|
||||
"b c #8A939A",
|
||||
"c c #D1DAE2",
|
||||
"d c #868F97",
|
||||
"e c #6D7F90",
|
||||
"f c #93A7B9",
|
||||
"g c #A1B4C4",
|
||||
"h c #8A95A1",
|
||||
"i c #868F9A",
|
||||
"j c #7E8892",
|
||||
"k c #B4AA89",
|
||||
"l c #C4B069",
|
||||
"m c #A19156",
|
||||
"n c #A49B7E",
|
||||
"o c #F8EECD",
|
||||
"p c #FDFDFB",
|
||||
"q c #F6E9BD",
|
||||
"r c #D8C274",
|
||||
"s c #686350",
|
||||
"t c #F5F0DF",
|
||||
"u c #FCF8EC",
|
||||
"v c #EADFB7",
|
||||
"w c #B2A05F",
|
||||
"x c #3B382D",
|
||||
" ",
|
||||
" .... ",
|
||||
" .+@#$%&. ",
|
||||
" .+*=-;>,'. ",
|
||||
" .)=!~{]^/. ",
|
||||
" .(-_:<[}|. ",
|
||||
" .1;{23456. ",
|
||||
" 7890abcd. ",
|
||||
" .efghij. ",
|
||||
" .klmn. ",
|
||||
" .opqr. ",
|
||||
" slms ",
|
||||
" .tuvw. ",
|
||||
" x... ",
|
||||
" .. ",
|
||||
" "};
|
||||
#endif
|
|
@ -0,0 +1,53 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *mirror_H_xpm[];
|
||||
|
||||
#else
|
||||
char * mirror_H_xpm[] = {
|
||||
"16 16 29 1",
|
||||
" c None",
|
||||
". c #000000",
|
||||
"+ c #9B9B9B",
|
||||
"@ c #858585",
|
||||
"# c #4C4C4C",
|
||||
"$ c #1A1A1A",
|
||||
"% c #939393",
|
||||
"& c #696969",
|
||||
"* c #606060",
|
||||
"= c #D2D2D2",
|
||||
"- c #202020",
|
||||
"; c #FFFFFF",
|
||||
"> c #3C3C3C",
|
||||
", c #737373",
|
||||
"' c #A0A0A5",
|
||||
") c #373737",
|
||||
"! c #EAEAF9",
|
||||
"~ c #141417",
|
||||
"{ c #F9F9FF",
|
||||
"] c #E9E8FF",
|
||||
"^ c #666578",
|
||||
"/ c #F2F2FF",
|
||||
"( c #E2E1FF",
|
||||
"_ c #B7B6DF",
|
||||
": c #0F0E0F",
|
||||
"< c #EBEAFF",
|
||||
"[ c #DAD9FF",
|
||||
"} c #CAC9FF",
|
||||
"| c #36364B",
|
||||
" . ",
|
||||
" .+ ",
|
||||
" .+. ",
|
||||
" .+.@ ",
|
||||
" +.# ",
|
||||
" .$% ",
|
||||
" . .&* ",
|
||||
" .+.=- ",
|
||||
" .+.;>, ",
|
||||
" .+.;') ",
|
||||
" +.;!~@ ",
|
||||
" .{]^# ",
|
||||
" . ./(_:% ",
|
||||
" .+.<[}|* ",
|
||||
" .+.....- ",
|
||||
" .+ ++++++"};
|
||||
#endif
|
|
@ -0,0 +1,55 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *mirror_V_xpm[];
|
||||
|
||||
#else
|
||||
char * mirror_V_xpm[] = {
|
||||
"16 16 30 1",
|
||||
" c None",
|
||||
". c #000000",
|
||||
"+ c #9B9B9B",
|
||||
"@ c #E3E3FF",
|
||||
"# c #EBEAFF",
|
||||
"$ c #F2F2FF",
|
||||
"% c #F9F9FF",
|
||||
"& c #FFFFFF",
|
||||
"* c #D2D2D2",
|
||||
"= c #696969",
|
||||
"- c #1A1A1A",
|
||||
"; c #4D4D4D",
|
||||
"> c #8C8C8C",
|
||||
", c #D3D2FF",
|
||||
"' c #DAD9FF",
|
||||
") c #E2E1FF",
|
||||
"! c #E4E3F9",
|
||||
"~ c #9B9BA5",
|
||||
"{ c #3A3A3C",
|
||||
"] c #202020",
|
||||
"^ c #636363",
|
||||
"/ c #979797",
|
||||
"( c #C3C1FF",
|
||||
"_ c #B1B0DF",
|
||||
": c #626278",
|
||||
"< c #141417",
|
||||
"[ c #373737",
|
||||
"} c #7A7A7A",
|
||||
"| c #34344B",
|
||||
"1 c #0E0E0F",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
".... .... ....",
|
||||
" ++++ ++++ +++",
|
||||
" ............. ",
|
||||
" .@#$%&&*=-;>++ ",
|
||||
" .,')!~{]^/++ ",
|
||||
" .(_:<[}++ ",
|
||||
" .|1;>++ ",
|
||||
" .^/++ ",
|
||||
" + "};
|
||||
#endif
|
||||
|
|
@ -0,0 +1,103 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *morgan1_xpm[];
|
||||
|
||||
#else
|
||||
char * morgan1_xpm[] = {
|
||||
"16 16 79 1",
|
||||
" c None",
|
||||
". c #6361D1",
|
||||
"+ c #6260D0",
|
||||
"@ c #5452B1",
|
||||
"# c #474596",
|
||||
"$ c #5B5AC2",
|
||||
"% c #5E5CC7",
|
||||
"& c #615FCE",
|
||||
"* c #302F66",
|
||||
"= c #5251AE",
|
||||
"- c #514FAB",
|
||||
"; c #504EA9",
|
||||
"> c #5A59C0",
|
||||
", c #5755B9",
|
||||
"' c #D72E2E",
|
||||
") c #D72D2D",
|
||||
"! c #D62E2E",
|
||||
"~ c #FEFEFF",
|
||||
"{ c #FBFBFF",
|
||||
"] c #F6F6FF",
|
||||
"^ c #F1F1FF",
|
||||
"/ c #EBE9FC",
|
||||
"( c #E3C5D9",
|
||||
"_ c #DA727E",
|
||||
": c #D13737",
|
||||
"< c #FAFAFF",
|
||||
"[ c #F5F5FF",
|
||||
"} c #F0F0FF",
|
||||
"| c #EBEBFF",
|
||||
"1 c #E6E6FF",
|
||||
"2 c #E1E1FF",
|
||||
"3 c #DBDBFF",
|
||||
"4 c #D65F6B",
|
||||
"5 c #BE5A5A",
|
||||
"6 c #9B9B9B",
|
||||
"7 c #D53131",
|
||||
"8 c #F4F4FF",
|
||||
"9 c #EFEFFF",
|
||||
"0 c #EAEAFF",
|
||||
"a c #E5E5FF",
|
||||
"b c #E0E0FF",
|
||||
"c c #D6D6FF",
|
||||
"d c #D398B6",
|
||||
"e c #D13838",
|
||||
"f c #D43232",
|
||||
"g c #E4E4FF",
|
||||
"h c #DFDFFF",
|
||||
"i c #DADAFF",
|
||||
"j c #D5D5FF",
|
||||
"k c #D0D0FF",
|
||||
"l c #CBBCEC",
|
||||
"m c #B5CCFF",
|
||||
"n c #D62D2D",
|
||||
"o c #E9E9FF",
|
||||
"p c #D4D4FF",
|
||||
"q c #CFCFFF",
|
||||
"r c #CACAFF",
|
||||
"s c #CB92B8",
|
||||
"t c #D03838",
|
||||
"u c #B56A6A",
|
||||
"v c #E3E3FF",
|
||||
"w c #DEDEFF",
|
||||
"x c #D9D9FF",
|
||||
"y c #C9C9FF",
|
||||
"z c #C4C4FF",
|
||||
"A c #CF5C70",
|
||||
"B c #BB5E5E",
|
||||
"C c #DDDDFF",
|
||||
"D c #D8D8FF",
|
||||
"E c #D3D3FF",
|
||||
"F c #CECEFF",
|
||||
"G c #C9C7FC",
|
||||
"H c #C6A9DA",
|
||||
"I c #CD6983",
|
||||
"J c #CE3D3D",
|
||||
"K c #9E9494",
|
||||
"L c #D52E2E",
|
||||
"M c #CD4040",
|
||||
"N c #BE5B5B",
|
||||
" .... ",
|
||||
" .+@#$+% ",
|
||||
".&* =.- ... ",
|
||||
".# .; .> ,,",
|
||||
".# ....& .",
|
||||
" ",
|
||||
" ''''''') ",
|
||||
" !~{]^/(_: ",
|
||||
"'''<[}|12345 ",
|
||||
" 67890ab3cdef ",
|
||||
" !90ghijkl!mn''",
|
||||
" !oghipqrs:tu66",
|
||||
" !vwxpqyzAB6 ",
|
||||
"'''CDEFGHIJK ",
|
||||
" 67''''LMNK6 ",
|
||||
" 66666666 "};
|
||||
#endif
|
|
@ -0,0 +1,101 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *morgan2_xpm[];
|
||||
|
||||
#else
|
||||
char * morgan2_xpm[] = {
|
||||
"16 16 77 1",
|
||||
" c None",
|
||||
". c #6361D1",
|
||||
"+ c #615FCE",
|
||||
"@ c #4D4CA3",
|
||||
"# c #4E4CA5",
|
||||
"$ c #6260D0",
|
||||
"% c #605ECC",
|
||||
"& c #5755B8",
|
||||
"* c #5F5DC8",
|
||||
"= c #5F5DCA",
|
||||
"- c #504EA9",
|
||||
"; c #615FCD",
|
||||
"> c #5958BD",
|
||||
", c #5E5CC7",
|
||||
"' c #4F4DA7",
|
||||
") c #D72D2D",
|
||||
"! c #D72E2E",
|
||||
"~ c #D62D2D",
|
||||
"{ c #D52D2D",
|
||||
"] c #EEB7BA",
|
||||
"^ c #F6F6FF",
|
||||
"/ c #F1F1FF",
|
||||
"( c #EAE1F3",
|
||||
"_ c #E0A1B1",
|
||||
": c #D73A3C",
|
||||
"< c #D32D2D",
|
||||
"[ c #B5CCFF",
|
||||
"} c #D12C2C",
|
||||
"| c #D93F40",
|
||||
"1 c #EEE6F4",
|
||||
"2 c #EBEBFF",
|
||||
"3 c #E6E6FF",
|
||||
"4 c #E1E1FF",
|
||||
"5 c #DAC2E1",
|
||||
"6 c #D6383B",
|
||||
"7 c #C52A2A",
|
||||
"8 c #992121",
|
||||
"9 c #CD2B2B",
|
||||
"0 c #921F1F",
|
||||
"a c #E5B6C5",
|
||||
"b c #E5E5FF",
|
||||
"c c #E0E0FF",
|
||||
"d c #DBDBFF",
|
||||
"e c #D6D6FF",
|
||||
"f c #D2A1C2",
|
||||
"g c #D62E2E",
|
||||
"h c #DE93A2",
|
||||
"i c #DFDFFF",
|
||||
"j c #DADAFF",
|
||||
"k c #D5D5FF",
|
||||
"l c #D0D0FF",
|
||||
"m c #CBCBFF",
|
||||
"n c #D25C6D",
|
||||
"o c #DCA3B8",
|
||||
"p c #D4D4FF",
|
||||
"q c #CFCFFF",
|
||||
"r c #CACAFF",
|
||||
"s c #CA99C2",
|
||||
"t c #5E1414",
|
||||
"u c #D73233",
|
||||
"v c #D8C6E8",
|
||||
"w c #C9C9FF",
|
||||
"x c #C6AEE1",
|
||||
"y c #D5373B",
|
||||
"z c #8F1E1E",
|
||||
"A c #CE2B2B",
|
||||
"B c #D795AD",
|
||||
"C c #D3D3FF",
|
||||
"D c #CECEFF",
|
||||
"E c #C9C0F3",
|
||||
"F c #CB8CB1",
|
||||
"G c #D4373C",
|
||||
"H c #A02222",
|
||||
"I c #B12525",
|
||||
"J c #D32C2C",
|
||||
"K c #B92727",
|
||||
"L c #6F1818",
|
||||
" .... ",
|
||||
" ..+@#$% ",
|
||||
"... ..& *. ",
|
||||
"= -; .. >. ",
|
||||
" ,...' .. ",
|
||||
" ",
|
||||
" )!!!!!! ",
|
||||
" ~{]^/(_:< ",
|
||||
"!~[}|1234567 ",
|
||||
" 890{abcdefg ",
|
||||
" {hijklmn}!!!",
|
||||
" ! !ojpqrs~t ",
|
||||
"!~[}uvpqwxyz ",
|
||||
" 8A9BCDEFGH ",
|
||||
" I!!!!JKL ",
|
||||
" "};
|
||||
#endif
|
|
@ -0,0 +1,72 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *move_xpm[];
|
||||
|
||||
#else
|
||||
char * move_xpm[] = {
|
||||
"16 16 48 1",
|
||||
" c None",
|
||||
". c #000000",
|
||||
"+ c #31313D",
|
||||
"@ c #DCDCEF",
|
||||
"# c #33333F",
|
||||
"$ c #595959",
|
||||
"% c #84849B",
|
||||
"& c #FFFFFF",
|
||||
"* c #010101",
|
||||
"= c #4B4B4B",
|
||||
"- c #9B9B9B",
|
||||
"; c #F1F1FF",
|
||||
"> c #464646",
|
||||
", c #E7E5FF",
|
||||
"' c #5D5D84",
|
||||
") c #232332",
|
||||
"! c #767676",
|
||||
"~ c #FBFBFF",
|
||||
"{ c #EAEAFF",
|
||||
"] c #E2E1FF",
|
||||
"^ c #DBDBFF",
|
||||
"/ c #D5D3FF",
|
||||
"( c #CDCDFF",
|
||||
"_ c #C8C6FF",
|
||||
": c #C1C1FF",
|
||||
"< c #BDBBFF",
|
||||
"[ c #B7B7FF",
|
||||
"} c #9594D7",
|
||||
"| c #202020",
|
||||
"1 c #33333E",
|
||||
"2 c #808099",
|
||||
"3 c #D2D0FF",
|
||||
"4 c #53527C",
|
||||
"5 c #222231",
|
||||
"6 c #7D7D7D",
|
||||
"7 c #C8C8FF",
|
||||
"8 c #6C6C6C",
|
||||
"9 c #C0BFFF",
|
||||
"0 c #B8B8FF",
|
||||
"a c #B2B0FF",
|
||||
"b c #52527B",
|
||||
"c c #ABAAFF",
|
||||
"d c #4C4C76",
|
||||
"e c #3E3E3E",
|
||||
"f c #1F1F2F",
|
||||
"g c #8887D0",
|
||||
"h c #1F1F2E",
|
||||
"i c #181818",
|
||||
" . ",
|
||||
" +@#$ ",
|
||||
" .%&%*= ",
|
||||
" .&.--- ",
|
||||
" .&.-- ",
|
||||
" . .;.-- .> ",
|
||||
" +%....,.....')!",
|
||||
".@&~;{]^/(_:<[}|",
|
||||
" 12....3.....456",
|
||||
" *---.7.----*8-",
|
||||
" -- .9.-- --",
|
||||
" .0.-- ",
|
||||
" .a.-- ",
|
||||
" .bcd*e ",
|
||||
" fgh8-- ",
|
||||
" i6-- "};
|
||||
#endif
|
|
@ -0,0 +1,80 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *move_arc_xpm[];
|
||||
|
||||
#else
|
||||
char * move_arc_xpm[] = {
|
||||
"16 16 56 1",
|
||||
" c None",
|
||||
". c #00009B",
|
||||
"+ c #000099",
|
||||
"@ c #000097",
|
||||
"# c #000096",
|
||||
"$ c #000073",
|
||||
"% c #000039",
|
||||
"& c #000036",
|
||||
"* c #000051",
|
||||
"= c #000086",
|
||||
"- c #00008E",
|
||||
"; c #000006",
|
||||
"> c #00006D",
|
||||
", c #000085",
|
||||
"' c #31313D",
|
||||
") c #DCDCEF",
|
||||
"! c #31313C",
|
||||
"~ c #00005D",
|
||||
"{ c #000074",
|
||||
"] c #000000",
|
||||
"^ c #84849B",
|
||||
"/ c #FFFFFF",
|
||||
"( c #00004C",
|
||||
"_ c #000095",
|
||||
": c #000078",
|
||||
"< c #000050",
|
||||
"[ c #000058",
|
||||
"} c #F1F1FF",
|
||||
"| c #000001",
|
||||
"1 c #00003B",
|
||||
"2 c #E7E5FF",
|
||||
"3 c #646489",
|
||||
"4 c #232333",
|
||||
"5 c #FBFBFF",
|
||||
"6 c #EAEAFF",
|
||||
"7 c #E2E1FF",
|
||||
"8 c #DBDBFF",
|
||||
"9 c #D5D3FF",
|
||||
"0 c #CDCDFF",
|
||||
"a c #C8C6FF",
|
||||
"b c #C1C1FF",
|
||||
"c c #9F9DDB",
|
||||
"d c #30303B",
|
||||
"e c #7A7A96",
|
||||
"f c #D2D0FF",
|
||||
"g c #5A5981",
|
||||
"h c #1F1F2F",
|
||||
"i c #C8C8FF",
|
||||
"j c #00000D",
|
||||
"k c #C0BFFF",
|
||||
"l c #5C5C82",
|
||||
"m c #B8B8FF",
|
||||
"n c #56557D",
|
||||
"o c #20202F",
|
||||
"p c #9493D6",
|
||||
"q c #1D1D2C",
|
||||
" ..... ",
|
||||
" ........+@ ",
|
||||
" #$% &*=..- ",
|
||||
" ;>., ",
|
||||
" ')!~.{ ",
|
||||
" ]^/^](_ ",
|
||||
" ]/] :<[ ",
|
||||
" ] ]}] .|1 ",
|
||||
" '^]]]2]]]34 ",
|
||||
" ])5}67890abc]",
|
||||
" de]]]f]]]gh]",
|
||||
" ] ]i] |j ",
|
||||
" ] ]k] ] ",
|
||||
" ]lmn]] ",
|
||||
" opq] ",
|
||||
" ] "};
|
||||
#endif
|
|
@ -0,0 +1,73 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *move_circle_xpm[];
|
||||
|
||||
#else
|
||||
char * move_circle_xpm[] = {
|
||||
"16 16 49 1",
|
||||
" c None",
|
||||
". c #00009B",
|
||||
"+ c #000096",
|
||||
"@ c #00008C",
|
||||
"# c #000053",
|
||||
"$ c #00008A",
|
||||
"% c #00009A",
|
||||
"& c #000073",
|
||||
"* c #000000",
|
||||
"= c #000092",
|
||||
"- c #31313D",
|
||||
"; c #DCDCEF",
|
||||
"> c #31313C",
|
||||
", c #000055",
|
||||
"' c #00006F",
|
||||
") c #84849B",
|
||||
"! c #FFFFFF",
|
||||
"~ c #00004C",
|
||||
"{ c #000083",
|
||||
"] c #00007C",
|
||||
"^ c #00004A",
|
||||
"/ c #F1F1FF",
|
||||
"( c #000001",
|
||||
"_ c #E7E5FF",
|
||||
": c #646489",
|
||||
"< c #232332",
|
||||
"[ c #FBFBFF",
|
||||
"} c #EAEAFF",
|
||||
"| c #E2E1FF",
|
||||
"1 c #DBDBFF",
|
||||
"2 c #D5D3FF",
|
||||
"3 c #CDCDFF",
|
||||
"4 c #C8C6FF",
|
||||
"5 c #C1C1FF",
|
||||
"6 c #9F9DDB",
|
||||
"7 c #30303B",
|
||||
"8 c #7A7A96",
|
||||
"9 c #D2D0FF",
|
||||
"0 c #5A5981",
|
||||
"a c #1F1F2F",
|
||||
"b c #C8C8FF",
|
||||
"c c #000062",
|
||||
"d c #00002E",
|
||||
"e c #C0BFFF",
|
||||
"f c #5C5C82",
|
||||
"g c #B8B8FF",
|
||||
"h c #56557D",
|
||||
"i c #9493D6",
|
||||
"j c #1D1D2C",
|
||||
" .... ",
|
||||
" .......+ ",
|
||||
" ..@# #$.% ",
|
||||
" ..& *#.= ",
|
||||
" .@ -;>,.' ",
|
||||
"..# *)!)*~{ ",
|
||||
".. *!* ]^ ",
|
||||
".. * */* .(* ",
|
||||
"..# -)***_***:< ",
|
||||
" .$*;[/}|123456*",
|
||||
" +.#78***9***0a ",
|
||||
" %.,* *b*cd** ",
|
||||
" =.~].*e*d * ",
|
||||
" '{^(fgh** ",
|
||||
" *aij* ",
|
||||
" * "};
|
||||
#endif
|
|
@ -0,0 +1,86 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *move_field_xpm[];
|
||||
|
||||
#else
|
||||
char * move_field_xpm[] = {
|
||||
"16 16 62 1",
|
||||
" c None",
|
||||
". c #D2D2D2",
|
||||
"+ c #9D9D9D",
|
||||
"@ c #DEDEDE",
|
||||
"# c #E0E0E0",
|
||||
"$ c #5C5C5C",
|
||||
"% c #000000",
|
||||
"& c #EDEDED",
|
||||
"* c #939393",
|
||||
"= c #FDFDFD",
|
||||
"- c #E4E4E4",
|
||||
"; c #F1F1F1",
|
||||
"> c #C3C3C3",
|
||||
", c #272727",
|
||||
"' c #E7E7E7",
|
||||
") c #F4F4F4",
|
||||
"! c #30303B",
|
||||
"~ c #DCDCEF",
|
||||
"{ c #33333E",
|
||||
"] c #9A9A9A",
|
||||
"^ c #E9E9E9",
|
||||
"/ c #8C8C8C",
|
||||
"( c #84849B",
|
||||
"_ c #FFFFFF",
|
||||
": c #010101",
|
||||
"< c #7C7C7C",
|
||||
"[ c #FAFAFA",
|
||||
"} c #B0B0B0",
|
||||
"| c #7A7A7A",
|
||||
"1 c #848484",
|
||||
"2 c #999999",
|
||||
"3 c #F0F0F0",
|
||||
"4 c #B1B1B1",
|
||||
"5 c #020202",
|
||||
"6 c #CBCBCB",
|
||||
"7 c #F1F1FF",
|
||||
"8 c #989898",
|
||||
"9 c #7F7F7F",
|
||||
"0 c #343440",
|
||||
"a c #E7E5FF",
|
||||
"b c #646489",
|
||||
"c c #262635",
|
||||
"d c #FBFBFF",
|
||||
"e c #EAEAFF",
|
||||
"f c #E2E1FF",
|
||||
"g c #DBDBFF",
|
||||
"h c #D5D3FF",
|
||||
"i c #CDCDFF",
|
||||
"j c #C8C6FF",
|
||||
"k c #C1C1FF",
|
||||
"l c #9F9DDB",
|
||||
"m c #7A7A96",
|
||||
"n c #D2D0FF",
|
||||
"o c #5A5981",
|
||||
"p c #20202F",
|
||||
"q c #C8C8FF",
|
||||
"r c #C0BFFF",
|
||||
"s c #5C5C82",
|
||||
"t c #B8B8FF",
|
||||
"u c #56557D",
|
||||
"v c #9493D6",
|
||||
"w c #1D1D2C",
|
||||
".++++++++++++++.",
|
||||
"+.@@@@@@@@@@@@@+",
|
||||
"+#$%%$&%%%*&===+",
|
||||
"+-%;;%;%>,%;===+",
|
||||
"+'%))%)%!~{]===+",
|
||||
"+^%%%%/%(_(:<==+",
|
||||
"+&%[[%-%%_%}|12+",
|
||||
"+3==456=%7%6=58+",
|
||||
".++90(%%%a%%%bc]",
|
||||
" %~d7efghijkl%",
|
||||
" !m%%%n%%%op ",
|
||||
" % %q% %% ",
|
||||
" % %r% % ",
|
||||
" %stu%% ",
|
||||
" pvw% ",
|
||||
" % "};
|
||||
#endif
|
|
@ -0,0 +1,72 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *move_line_xpm[];
|
||||
|
||||
#else
|
||||
char * move_line_xpm[] = {
|
||||
"16 16 48 1",
|
||||
" c None",
|
||||
". c #00009B",
|
||||
"+ c #29299B",
|
||||
"@ c #43439B",
|
||||
"# c #45459B",
|
||||
"$ c #46469B",
|
||||
"% c #9B9B9B",
|
||||
"& c #47479B",
|
||||
"* c #39397D",
|
||||
"= c #0D0D1E",
|
||||
"- c #353575",
|
||||
"; c #70709A",
|
||||
"> c #2E2E9B",
|
||||
", c #49499B",
|
||||
"' c #4A4A9B",
|
||||
") c #565656",
|
||||
"! c #32323E",
|
||||
"~ c #DCDCEF",
|
||||
"{ c #4A4A4A",
|
||||
"] c #000000",
|
||||
"^ c #84849B",
|
||||
"/ c #FFFFFF",
|
||||
"( c #F1F1FF",
|
||||
"_ c #31313D",
|
||||
": c #E7E5FF",
|
||||
"< c #646489",
|
||||
"[ c #232332",
|
||||
"} c #FBFBFF",
|
||||
"| c #EAEAFF",
|
||||
"1 c #E2E1FF",
|
||||
"2 c #DBDBFF",
|
||||
"3 c #D5D3FF",
|
||||
"4 c #CDCDFF",
|
||||
"5 c #C8C6FF",
|
||||
"6 c #C1C1FF",
|
||||
"7 c #9F9DDB",
|
||||
"8 c #30303B",
|
||||
"9 c #7A7A96",
|
||||
"0 c #D2D0FF",
|
||||
"a c #5A5981",
|
||||
"b c #20202F",
|
||||
"c c #C8C8FF",
|
||||
"d c #C0BFFF",
|
||||
"e c #5C5C82",
|
||||
"f c #B8B8FF",
|
||||
"g c #56557D",
|
||||
"h c #9493D6",
|
||||
"i c #1D1D2C",
|
||||
" ",
|
||||
"..... ...... ...",
|
||||
"+@@#$% &*=-; >,'",
|
||||
" %%%%% )!~!{ %%",
|
||||
" ]^/^]] ",
|
||||
" ]/] ",
|
||||
" ] ](] ] ",
|
||||
" _^]]]:]]]<[ ",
|
||||
" ]~}(|1234567]",
|
||||
" 89]]]0]]]ab ",
|
||||
" ] ]c] ]] ",
|
||||
" ] ]d] ] ",
|
||||
" ]efg]] ",
|
||||
" bhi] ",
|
||||
" ] ",
|
||||
" "};
|
||||
#endif
|
|
@ -0,0 +1,70 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *move_polygon_xpm[];
|
||||
|
||||
#else
|
||||
char * move_polygon_xpm[] = {
|
||||
"16 16 46 1",
|
||||
" c None",
|
||||
". c #00009B",
|
||||
"+ c #000099",
|
||||
"@ c #00007D",
|
||||
"# c #000094",
|
||||
"$ c #000074",
|
||||
"% c #00001E",
|
||||
"& c #000066",
|
||||
"* c #31313D",
|
||||
"= c #DCDCEF",
|
||||
"- c #30303E",
|
||||
"; c #000046",
|
||||
"> c #000000",
|
||||
", c #84849B",
|
||||
"' c #FFFFFF",
|
||||
") c #000001",
|
||||
"! c #00006D",
|
||||
"~ c #F1F1FF",
|
||||
"{ c #00007C",
|
||||
"] c #E7E5FF",
|
||||
"^ c #646489",
|
||||
"/ c #232332",
|
||||
"( c #FBFBFF",
|
||||
"_ c #EAEAFF",
|
||||
": c #E2E1FF",
|
||||
"< c #DBDBFF",
|
||||
"[ c #D5D3FF",
|
||||
"} c #CDCDFF",
|
||||
"| c #C8C6FF",
|
||||
"1 c #C1C1FF",
|
||||
"2 c #9F9DDB",
|
||||
"3 c #30303B",
|
||||
"4 c #7A7A96",
|
||||
"5 c #D2D0FF",
|
||||
"6 c #5A5981",
|
||||
"7 c #20202F",
|
||||
"8 c #000062",
|
||||
"9 c #C8C8FF",
|
||||
"0 c #000063",
|
||||
"a c #00004C",
|
||||
"b c #C0BFFF",
|
||||
"c c #5C5C82",
|
||||
"d c #B8B8FF",
|
||||
"e c #56557D",
|
||||
"f c #9493D6",
|
||||
"g c #1D1D2C",
|
||||
"........ ",
|
||||
"........+ ",
|
||||
" @.# ",
|
||||
" $%& ",
|
||||
" *=-; ",
|
||||
" >,',)> ",
|
||||
" >'>!> ",
|
||||
" > >~>{ > ",
|
||||
" *,>>>]>>>^/ ",
|
||||
" >=(~_:<[}|12>",
|
||||
" 34>>>5>>>67 ",
|
||||
" ...8)!{>9>0>>> ",
|
||||
" ....a{.>b>{ > ",
|
||||
" >>cde>> ",
|
||||
" 7fg> ",
|
||||
" > "};
|
||||
#endif
|
|
@ -0,0 +1,64 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *move_rectangle_xpm[];
|
||||
|
||||
#else
|
||||
char * move_rectangle_xpm[] = {
|
||||
"16 16 40 1",
|
||||
" c None",
|
||||
". c #00009B",
|
||||
"+ c #000000",
|
||||
"@ c #31313D",
|
||||
"# c #DCDCEF",
|
||||
"$ c #31313C",
|
||||
"% c #000062",
|
||||
"& c #84849B",
|
||||
"* c #FFFFFF",
|
||||
"= c #000001",
|
||||
"- c #00004C",
|
||||
"; c #00006D",
|
||||
"> c #00007C",
|
||||
", c #F1F1FF",
|
||||
"' c #E7E5FF",
|
||||
") c #646489",
|
||||
"! c #232332",
|
||||
"~ c #FBFBFF",
|
||||
"{ c #EAEAFF",
|
||||
"] c #E2E1FF",
|
||||
"^ c #DBDBFF",
|
||||
"/ c #D5D3FF",
|
||||
"( c #CDCDFF",
|
||||
"_ c #C8C6FF",
|
||||
": c #C1C1FF",
|
||||
"< c #9F9DDB",
|
||||
"[ c #30303B",
|
||||
"} c #7A7A96",
|
||||
"| c #D2D0FF",
|
||||
"1 c #5A5981",
|
||||
"2 c #20202F",
|
||||
"3 c #C8C8FF",
|
||||
"4 c #000063",
|
||||
"5 c #C0BFFF",
|
||||
"6 c #00006F",
|
||||
"7 c #5C5C82",
|
||||
"8 c #B8B8FF",
|
||||
"9 c #56557D",
|
||||
"0 c #9493D6",
|
||||
"a c #1D1D2C",
|
||||
"............. ",
|
||||
"............. ",
|
||||
".. .. ",
|
||||
".. + .. ",
|
||||
".. @#$%. ",
|
||||
".. +&*&=- ",
|
||||
".. +*+;>+ ",
|
||||
".. + +,+>.+ ",
|
||||
".. @&+++'+++)! ",
|
||||
".. +#~,{]^/(_:<+",
|
||||
".. [}+++|+++12 ",
|
||||
"....%=;>+3+4>++ ",
|
||||
".....->.+5+>6+ ",
|
||||
" ++789++ ",
|
||||
" 20a+ ",
|
||||
" + "};
|
||||
#endif
|
|
@ -0,0 +1,70 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *move_text_xpm[];
|
||||
|
||||
#else
|
||||
char * move_text_xpm[] = {
|
||||
"16 16 46 1",
|
||||
" c None",
|
||||
". c #00009B",
|
||||
"+ c #000098",
|
||||
"@ c #00005D",
|
||||
"# c #00007D",
|
||||
"$ c #000000",
|
||||
"% c #00006C",
|
||||
"& c #303040",
|
||||
"* c #DCDCEF",
|
||||
"= c #31313C",
|
||||
"- c #000058",
|
||||
"; c #000001",
|
||||
"> c #84849B",
|
||||
", c #FFFFFF",
|
||||
"' c #00008D",
|
||||
") c #00007C",
|
||||
"! c #F1F1FF",
|
||||
"~ c #31313D",
|
||||
"{ c #E7E5FF",
|
||||
"] c #646489",
|
||||
"^ c #232332",
|
||||
"/ c #FBFBFF",
|
||||
"( c #EAEAFF",
|
||||
"_ c #E2E1FF",
|
||||
": c #DBDBFF",
|
||||
"< c #D5D3FF",
|
||||
"[ c #CDCDFF",
|
||||
"} c #C8C6FF",
|
||||
"| c #C1C1FF",
|
||||
"1 c #9F9DDB",
|
||||
"2 c #30303B",
|
||||
"3 c #7A7A96",
|
||||
"4 c #D2D0FF",
|
||||
"5 c #5A5981",
|
||||
"6 c #20202F",
|
||||
"7 c #00006D",
|
||||
"8 c #C8C8FF",
|
||||
"9 c #00004C",
|
||||
"0 c #C0BFFF",
|
||||
"a c #000050",
|
||||
"b c #5C5C82",
|
||||
"c c #B8B8FF",
|
||||
"d c #56557D",
|
||||
"e c #1F1F31",
|
||||
"f c #9493D6",
|
||||
"g c #1C1C2F",
|
||||
".............. ",
|
||||
".............. ",
|
||||
".+ .... +. ",
|
||||
".@ ...#$ . ",
|
||||
" ..%&*= ",
|
||||
" .-;>,>$$ ",
|
||||
" -')$,$ ",
|
||||
" ;).$!$ $ ",
|
||||
" ~>$$${$$$]^ ",
|
||||
" $*/!(_:<[}|1$",
|
||||
" 23$$$4$$$56 ",
|
||||
" ;7)$8$ $$ ",
|
||||
" 9).$0$ $ ",
|
||||
" ..a;bcd$$ ",
|
||||
" ....@efg$ ",
|
||||
" $$$ "};
|
||||
#endif
|
|
@ -0,0 +1,157 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *new_library_xpm[];
|
||||
|
||||
#else
|
||||
char * new_library_xpm[] = {
|
||||
"16 16 133 2",
|
||||
" c None",
|
||||
". c #060708",
|
||||
"+ c #323538",
|
||||
"@ c #1E1E1F",
|
||||
"# c #FFF500",
|
||||
"$ c #0A0D0E",
|
||||
"% c #E4E6E7",
|
||||
"& c #F5F5F5",
|
||||
"* c #919175",
|
||||
"= c #EFE500",
|
||||
"- c #B4B272",
|
||||
"; c #F6F6F6",
|
||||
"> c #D7D7D7",
|
||||
", c #DFE0E1",
|
||||
"' c #636222",
|
||||
") c #F7EE0B",
|
||||
"! c #F7ED0C",
|
||||
"~ c #9B9B9B",
|
||||
"{ c #050608",
|
||||
"] c #E3E6E7",
|
||||
"^ c #D7D8D8",
|
||||
"/ c #D1D1D1",
|
||||
"( c #A9A881",
|
||||
"_ c #070A0D",
|
||||
": c #E5E7E9",
|
||||
"< c #F8F8F8",
|
||||
"[ c #D4D4D4",
|
||||
"} c #BCBCBC",
|
||||
"| c #CCCCCC",
|
||||
"1 c #C9C9C9",
|
||||
"2 c #B4B172",
|
||||
"3 c #F7EE0C",
|
||||
"4 c #FBF101",
|
||||
"5 c #020305",
|
||||
"6 c #9E9E9F",
|
||||
"7 c #F4F4F5",
|
||||
"8 c #CECECE",
|
||||
"9 c #CFCFCF",
|
||||
"0 c #B5B5B5",
|
||||
"a c #CBCAAC",
|
||||
"b c #FBF20F",
|
||||
"c c #CBC888",
|
||||
"d c #F6ED0B",
|
||||
"e c #626144",
|
||||
"f c #353535",
|
||||
"g c #0A0A0A",
|
||||
"h c #000000",
|
||||
"i c #838686",
|
||||
"j c #B3B7BB",
|
||||
"k c #DDDDDD",
|
||||
"l c #B7B7B7",
|
||||
"m c #C8C8C8",
|
||||
"n c #C4C4C4",
|
||||
"o c #B7BABD",
|
||||
"p c #A8AA8F",
|
||||
"q c #A1A1A1",
|
||||
"r c #E4E3C6",
|
||||
"s c #A2A2A2",
|
||||
"t c #DFDFDF",
|
||||
"u c #232324",
|
||||
"v c #1B1B1B",
|
||||
"w c #98999B",
|
||||
"x c #BBBBBB",
|
||||
"y c #C3C3C3",
|
||||
"z c #BCBDBE",
|
||||
"A c #A2A5A7",
|
||||
"B c #CECFD0",
|
||||
"C c #DADBDB",
|
||||
"D c #E1E2E3",
|
||||
"E c #F6F7F8",
|
||||
"F c #D6D6D8",
|
||||
"G c #AEB0B1",
|
||||
"H c #7B7E80",
|
||||
"I c #B3B6B8",
|
||||
"J c #BFBFBF",
|
||||
"K c #AEB1B5",
|
||||
"L c #B9BBBC",
|
||||
"M c #F2F2F2",
|
||||
"N c #FBFCFC",
|
||||
"O c #F8FAFB",
|
||||
"P c #F7F8F9",
|
||||
"Q c #CACBCD",
|
||||
"R c #858B91",
|
||||
"S c #171818",
|
||||
"T c #737E87",
|
||||
"U c #B9B9B9",
|
||||
"V c #D8D8D8",
|
||||
"W c #A7AAAC",
|
||||
"X c #E4E4E4",
|
||||
"Y c #E5E5E5",
|
||||
"Z c #E3E4E4",
|
||||
"` c #F9FAFB",
|
||||
" . c #DEDFDF",
|
||||
".. c #B3B6BA",
|
||||
"+. c #171A1D",
|
||||
"@. c #414447",
|
||||
"#. c #8D9398",
|
||||
"$. c #ABADAF",
|
||||
"%. c #FEFEFE",
|
||||
"&. c #FDFDFD",
|
||||
"*. c #F9FAFA",
|
||||
"=. c #F9F9FA",
|
||||
"-. c #CBCDD0",
|
||||
";. c #737B84",
|
||||
">. c #626973",
|
||||
",. c #868788",
|
||||
"'. c #EAEAEA",
|
||||
"). c #FDFEFE",
|
||||
"!. c #FCFDFD",
|
||||
"~. c #FAFBFB",
|
||||
"{. c #EFF0F0",
|
||||
"]. c #A8ADB3",
|
||||
"^. c #15171A",
|
||||
"/. c #11151A",
|
||||
"(. c #47515D",
|
||||
"_. c #C0C6CC",
|
||||
":. c #C4C8CB",
|
||||
"<. c #D5D6D7",
|
||||
"[. c #DBDBDB",
|
||||
"}. c #F3F4F4",
|
||||
"|. c #D1D1D2",
|
||||
"1. c #798087",
|
||||
"2. c #191B1D",
|
||||
"3. c #2A2D30",
|
||||
"4. c #474D50",
|
||||
"5. c #7E8284",
|
||||
"6. c #9B9D9F",
|
||||
"7. c #9FA5AB",
|
||||
"8. c #91989E",
|
||||
"9. c #0C0E10",
|
||||
"0. c #2A333D",
|
||||
"a. c #181D21",
|
||||
"b. c #1D2227",
|
||||
" . + @ # ",
|
||||
" $ % & * = # - # ",
|
||||
" $ % ; > , ' ) # ! ~ ",
|
||||
" { ] ; ^ / # # # ( # # # ",
|
||||
" _ : < [ } | 1 2 3 # 4 2 ~ ~ ",
|
||||
"5 6 7 8 9 | 0 a b c # 2 d e f g ",
|
||||
"h i j k l m n o p q # ~ r s t u ",
|
||||
" v w x m y z A B C D ~ E F G h ",
|
||||
" h H I t J K L M N O P E Q R h ",
|
||||
" S T U V W X Y Z ` P ...+. ",
|
||||
" h @.#.$.[ %.&.N *.=.-.;.h ",
|
||||
" h >.,.Y '.).!.~.{.].^. ",
|
||||
" /.(._.:.<.[.}.|.1.h ",
|
||||
" 2.3.4.5.6.7.8.9. ",
|
||||
" 0.a.b. ",
|
||||
" "};
|
||||
#endif
|
|
@ -0,0 +1,159 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *open_library_xpm[];
|
||||
|
||||
#else
|
||||
char * open_library_xpm[] = {
|
||||
"16 16 135 2",
|
||||
" c None",
|
||||
". c #060708",
|
||||
"+ c #323538",
|
||||
"@ c #1E1E1F",
|
||||
"# c #0A0D0E",
|
||||
"$ c #E4E6E7",
|
||||
"% c #F5F5F5",
|
||||
"& c #828486",
|
||||
"* c #040405",
|
||||
"= c #F6F6F6",
|
||||
"- c #D5D5D5",
|
||||
"; c #DFE0E1",
|
||||
"> c #1F2021",
|
||||
", c #050608",
|
||||
"' c #E3E6E7",
|
||||
") c #F2F2F2",
|
||||
"! c #7B7C7C",
|
||||
"~ c #212121",
|
||||
"{ c #DADADA",
|
||||
"] c #BEBFC2",
|
||||
"^ c #0E0E0E",
|
||||
"/ c #070A0D",
|
||||
"( c #E5E7E9",
|
||||
"_ c #191919",
|
||||
": c #777777",
|
||||
"< c #C9C9C9",
|
||||
"[ c #DCDDDD",
|
||||
"} c #525354",
|
||||
"| c #020305",
|
||||
"1 c #9E9E9F",
|
||||
"2 c #F4F4F5",
|
||||
"3 c #3F3F3F",
|
||||
"4 c #292929",
|
||||
"5 c #272727",
|
||||
"6 c #A6A7A8",
|
||||
"7 c #C5C5C5",
|
||||
"8 c #555555",
|
||||
"9 c #343434",
|
||||
"0 c #353535",
|
||||
"a c #0A0A0A",
|
||||
"b c #000000",
|
||||
"c c #838686",
|
||||
"d c #B3B7BB",
|
||||
"e c #DDDDDD",
|
||||
"f c #9A9A9A",
|
||||
"g c #171717",
|
||||
"h c #949494",
|
||||
"i c #6D6D6E",
|
||||
"j c #0F0F10",
|
||||
"k c #999A9A",
|
||||
"l c #FBFCFC",
|
||||
"m c #FBFBFB",
|
||||
"n c #FAFAFB",
|
||||
"o c #F9FAFB",
|
||||
"p c #E9E9E9",
|
||||
"q c #232324",
|
||||
"r c #1B1B1B",
|
||||
"s c #98999B",
|
||||
"t c #BBBBBB",
|
||||
"u c #C2C2C2",
|
||||
"v c #9E9E9E",
|
||||
"w c #BBBCBD",
|
||||
"x c #9EA0A1",
|
||||
"y c #8A8B8B",
|
||||
"z c #141414",
|
||||
"A c #BABBBC",
|
||||
"B c #F7F8F9",
|
||||
"C c #F6F7F8",
|
||||
"D c #DFDFE1",
|
||||
"E c #AEB0B1",
|
||||
"F c #7B7E80",
|
||||
"G c #B3B6B8",
|
||||
"H c #DFDFDF",
|
||||
"I c #BEBEBE",
|
||||
"J c #AEB1B5",
|
||||
"K c #B9BBBC",
|
||||
"L c #6B6B6B",
|
||||
"M c #333334",
|
||||
"N c #E0E1E2",
|
||||
"O c #CDCECF",
|
||||
"P c #CACBCD",
|
||||
"Q c #858B91",
|
||||
"R c #171818",
|
||||
"S c #737E87",
|
||||
"T c #B9B9B9",
|
||||
"U c #D8D8D8",
|
||||
"V c #A7AAAC",
|
||||
"W c #E4E4E4",
|
||||
"X c #D7D7D7",
|
||||
"Y c #767676",
|
||||
"Z c #4A4A4B",
|
||||
"` c #626262",
|
||||
" . c #B3B6BA",
|
||||
".. c #171A1D",
|
||||
"+. c #414447",
|
||||
"@. c #8D9398",
|
||||
"#. c #ABADAF",
|
||||
"$. c #D4D4D4",
|
||||
"%. c #FEFEFE",
|
||||
"&. c #D0D0D0",
|
||||
"*. c #323232",
|
||||
"=. c #0D0D0D",
|
||||
"-. c #060606",
|
||||
";. c #AEAFB1",
|
||||
">. c #737B84",
|
||||
",. c #626973",
|
||||
"'. c #868788",
|
||||
"). c #E5E5E5",
|
||||
"!. c #EAEAEA",
|
||||
"~. c #E9EAEA",
|
||||
"{. c #ABABAB",
|
||||
"]. c #505050",
|
||||
"^. c #4D4D4D",
|
||||
"/. c #A7ACB2",
|
||||
"(. c #15171A",
|
||||
"_. c #11151A",
|
||||
":. c #47515D",
|
||||
"<. c #C0C6CC",
|
||||
"[. c #C4C8CB",
|
||||
"}. c #D5D6D7",
|
||||
"|. c #D9D9D9",
|
||||
"1. c #BCBCBC",
|
||||
"2. c #BCBCBD",
|
||||
"3. c #798087",
|
||||
"4. c #191B1D",
|
||||
"5. c #2A2D30",
|
||||
"6. c #474D50",
|
||||
"7. c #7E8284",
|
||||
"8. c #9B9D9F",
|
||||
"9. c #9FA5AB",
|
||||
"0. c #91989E",
|
||||
"a. c #0C0E10",
|
||||
"b. c #2A333D",
|
||||
"c. c #181D21",
|
||||
"d. c #1D2227",
|
||||
" . + @ ",
|
||||
" # $ % & * ",
|
||||
" # $ = - ; > ",
|
||||
" , ' ) ! ~ { ] ^ ",
|
||||
" / ( = ^ _ : < [ } ",
|
||||
"| 1 2 < 3 ~ 4 5 6 7 8 9 9 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 b ",
|
||||
" b F G H I J K e L M N O P Q b ",
|
||||
" R S T U V W X Y 5 Z ` ... ",
|
||||
" b +.@.#.$.%.&.*.=.-.;.>.b ",
|
||||
" b ,.'.).!.~.{.].^./.(. ",
|
||||
" _.:.<.[.}.|.1.2.3.b ",
|
||||
" 4.5.6.7.8.9.0.a. ",
|
||||
" b.c.d. ",
|
||||
" "};
|
||||
#endif
|
|
@ -0,0 +1,73 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *options_arc_xpm[];
|
||||
|
||||
#else
|
||||
char * options_arc_xpm[] = {
|
||||
"16 16 49 1",
|
||||
" c None",
|
||||
". c #00009B",
|
||||
"+ c #000099",
|
||||
"@ c #000097",
|
||||
"# c #000096",
|
||||
"$ c #000073",
|
||||
"% c #000039",
|
||||
"& c #000036",
|
||||
"* c #000051",
|
||||
"= c #000086",
|
||||
"- c #00008E",
|
||||
"; c #000093",
|
||||
"> c #000085",
|
||||
", c #000074",
|
||||
"' c #000095",
|
||||
") c #000058",
|
||||
"! c #000000",
|
||||
"~ c #000001",
|
||||
"{ c #F0F0F0",
|
||||
"] c #DEDEDE",
|
||||
"^ c #DFDFDF",
|
||||
"/ c #DFDFE0",
|
||||
"( c #BFBFBF",
|
||||
"_ c #C0C0C0",
|
||||
": c #C0C0C1",
|
||||
"< c #979797",
|
||||
"[ c #989898",
|
||||
"} c #E3E3E3",
|
||||
"| c #DDDDDD",
|
||||
"1 c #C8C8C8",
|
||||
"2 c #656565",
|
||||
"3 c #838384",
|
||||
"4 c #878788",
|
||||
"5 c #888888",
|
||||
"6 c #AFAFAF",
|
||||
"7 c #A3A3A3",
|
||||
"8 c #F1F1F1",
|
||||
"9 c #CECECE",
|
||||
"0 c #ABABAB",
|
||||
"a c #EEEEEE",
|
||||
"b c #EDEDED",
|
||||
"c c #E9E9E9",
|
||||
"d c #D9D9D9",
|
||||
"e c #838383",
|
||||
"f c #C1C1C1",
|
||||
"g c #B5B5B5",
|
||||
"h c #757575",
|
||||
"i c #6B6B6B",
|
||||
"j c #777777",
|
||||
" ..... ",
|
||||
" ........+@ ",
|
||||
" #$% &*=..- ",
|
||||
" ;.> ",
|
||||
" #., ",
|
||||
" .' ",
|
||||
" +.) ",
|
||||
" !!!!!!!!~~!!",
|
||||
" !{]^^^^^^//^^",
|
||||
" !^((((((_::__",
|
||||
" !^(<!!![_::__",
|
||||
" !^(!}|1!23456",
|
||||
" !^(!|_7!!!!!8",
|
||||
" !^(!97<!0abcd",
|
||||
" !^_[!!!2effff",
|
||||
" !^_ghi2j5!!!["};
|
||||
#endif
|
|
@ -0,0 +1,78 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *options_circle_xpm[];
|
||||
|
||||
#else
|
||||
char * options_circle_xpm[] = {
|
||||
"16 16 54 1",
|
||||
" c None",
|
||||
". c #00009B",
|
||||
"+ c #000096",
|
||||
"@ c #00008C",
|
||||
"# c #000053",
|
||||
"$ c #00008A",
|
||||
"% c #00009A",
|
||||
"& c #000073",
|
||||
"* c #00007A",
|
||||
"= c #000092",
|
||||
"- c #00006F",
|
||||
"; c #000000",
|
||||
"> c #000001",
|
||||
", c #F0F0F0",
|
||||
"' c #DEDEDE",
|
||||
") c #DFDFDF",
|
||||
"! c #DFDFE0",
|
||||
"~ c #BFBFBF",
|
||||
"{ c #C0C0C1",
|
||||
"] c #C0C0C0",
|
||||
"^ c #979797",
|
||||
"/ c #989898",
|
||||
"( c #E3E3E3",
|
||||
"_ c #DDDDDD",
|
||||
": c #C8C8C8",
|
||||
"< c #656566",
|
||||
"[ c #838384",
|
||||
"} c #878787",
|
||||
"| c #888888",
|
||||
"1 c #AFAFAF",
|
||||
"2 c #A3A3A4",
|
||||
"3 c #F1F1F1",
|
||||
"4 c #BFBFC0",
|
||||
"5 c #CECECF",
|
||||
"6 c #979798",
|
||||
"7 c #ABABAC",
|
||||
"8 c #EEEEEE",
|
||||
"9 c #EDEDED",
|
||||
"0 c #E9E9E9",
|
||||
"a c #D9D9D9",
|
||||
"b c #989899",
|
||||
"c c #838383",
|
||||
"d c #C1C1C1",
|
||||
"e c #B5B5B6",
|
||||
"f c #757576",
|
||||
"g c #6B6B6C",
|
||||
"h c #656565",
|
||||
"i c #777777",
|
||||
"j c #A7A7A7",
|
||||
"k c #7B7B7B",
|
||||
"l c #747474",
|
||||
"m c #717171",
|
||||
"n c #7D7D7D",
|
||||
"o c #A3A3A3",
|
||||
" .... ",
|
||||
" .......+ ",
|
||||
" ..@# #$.% ",
|
||||
" ..& *.= ",
|
||||
" .@ =.- ",
|
||||
"..# ;;;;;;;>>>;;",
|
||||
".. ;,')))))!!!))",
|
||||
".. ;)~~~~~~{{{]]",
|
||||
"..#;)~^;;;/{{{]]",
|
||||
" .$;)~;(_:><[}|1",
|
||||
" +.;)~;_]2>>>;;3",
|
||||
" %>!4>526>7890a",
|
||||
" >!{b>>><cdddd",
|
||||
" ;){efghi|;;;/",
|
||||
" ;)]jkklm;(_:;",
|
||||
" ;)]n;;;;;_]o;"};
|
||||
#endif
|
|
@ -0,0 +1,77 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *options_new_pad_xpm[];
|
||||
|
||||
#else
|
||||
char * options_new_pad_xpm[] = {
|
||||
"16 16 53 1",
|
||||
" c None",
|
||||
". c #000000",
|
||||
"+ c #FFF500",
|
||||
"@ c #000200",
|
||||
"# c #003B00",
|
||||
"$ c #006400",
|
||||
"% c #007700",
|
||||
"& c #1E5000",
|
||||
"* c #ECE300",
|
||||
"= c #787300",
|
||||
"- c #005F00",
|
||||
"; c #007D00",
|
||||
"> c #428200",
|
||||
", c #EBE200",
|
||||
"' c #F6ED00",
|
||||
") c #007600",
|
||||
"! c #006100",
|
||||
"~ c #2B2900",
|
||||
"{ c #427600",
|
||||
"] c #EBE600",
|
||||
"^ c #F8EF00",
|
||||
"/ c #6A6500",
|
||||
"( c #268200",
|
||||
"_ c #EBEB00",
|
||||
": c #428D00",
|
||||
"< c #585400",
|
||||
"[ c #F7ED00",
|
||||
"} c #007800",
|
||||
"| c #1E8600",
|
||||
"1 c #003F00",
|
||||
"2 c #006E00",
|
||||
"3 c #003800",
|
||||
"4 c #F0F0F0",
|
||||
"5 c #DEDEDE",
|
||||
"6 c #DFDFDF",
|
||||
"7 c #BFBFBF",
|
||||
"8 c #C0C0C0",
|
||||
"9 c #979797",
|
||||
"0 c #989898",
|
||||
"a c #E3E3E3",
|
||||
"b c #DDDDDD",
|
||||
"c c #C8C8C8",
|
||||
"d c #656565",
|
||||
"e c #838383",
|
||||
"f c #878787",
|
||||
"g c #888888",
|
||||
"h c #A3A3A3",
|
||||
"i c #CECECE",
|
||||
"j c #ABABAB",
|
||||
"k c #EEEEEE",
|
||||
"l c #EDEDED",
|
||||
"m c #E9E9E9",
|
||||
"n c #C1C1C1",
|
||||
" ..... + ",
|
||||
" @#$%$&* +=+ ",
|
||||
" @-;;;;;>,+' ",
|
||||
".#;;)!)+++~+++ ",
|
||||
".$;) %{]+^/ ",
|
||||
".%;! (_:+<[ ",
|
||||
".$;) }|1+. ",
|
||||
".#;;%2};;3.. ",
|
||||
" @-;;...........",
|
||||
" @#.45666666666",
|
||||
" ..67777778888",
|
||||
" .679...08888",
|
||||
" .67.abc.defg",
|
||||
" .67.b8h.....",
|
||||
" .67.ih9.jklm",
|
||||
" .680...dennn"};
|
||||
#endif
|
|
@ -0,0 +1,57 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *options_pad_xpm[];
|
||||
|
||||
#else
|
||||
char * options_pad_xpm[] = {
|
||||
"16 16 33 1",
|
||||
" c None",
|
||||
". c #000000",
|
||||
"+ c #000200",
|
||||
"@ c #003B00",
|
||||
"# c #006400",
|
||||
"$ c #007700",
|
||||
"% c #005F00",
|
||||
"& c #007D00",
|
||||
"* c #007600",
|
||||
"= c #006100",
|
||||
"- c #006E00",
|
||||
"; c #007800",
|
||||
"> c #F0F0F0",
|
||||
", c #DEDEDE",
|
||||
"' c #DFDFDF",
|
||||
") c #BFBFBF",
|
||||
"! c #C0C0C0",
|
||||
"~ c #979797",
|
||||
"{ c #989898",
|
||||
"] c #E3E3E3",
|
||||
"^ c #DDDDDD",
|
||||
"/ c #C8C8C8",
|
||||
"( c #656565",
|
||||
"_ c #838383",
|
||||
": c #878787",
|
||||
"< c #888888",
|
||||
"[ c #A3A3A3",
|
||||
"} c #CECECE",
|
||||
"| c #ABABAB",
|
||||
"1 c #EEEEEE",
|
||||
"2 c #EDEDED",
|
||||
"3 c #E9E9E9",
|
||||
"4 c #C1C1C1",
|
||||
" ..... ",
|
||||
" +@#$#@+ ",
|
||||
" +%&&&&&%+ ",
|
||||
".@&&*=*&&@. ",
|
||||
".#&* $&#. ",
|
||||
".$&= -&$. ",
|
||||
".#&* ;&#. ",
|
||||
".@&&$-;&&@. ",
|
||||
" +%&&...........",
|
||||
" +@.>,'''''''''",
|
||||
" ..'))))))!!!!",
|
||||
" .')~...{!!!!",
|
||||
" .').]^/.(_:<",
|
||||
" .').^![.....",
|
||||
" .').}[~.|123",
|
||||
" .'!{...(_444"};
|
||||
#endif
|
|
@ -0,0 +1,68 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *options_rectangle_xpm[];
|
||||
|
||||
#else
|
||||
char * options_rectangle_xpm[] = {
|
||||
"16 16 44 1",
|
||||
" c None",
|
||||
". c #00009B",
|
||||
"+ c #000000",
|
||||
"@ c #000001",
|
||||
"# c #F0F0F0",
|
||||
"$ c #DEDEDE",
|
||||
"% c #DFDFDF",
|
||||
"& c #DFDFE0",
|
||||
"* c #BFBFBF",
|
||||
"= c #C0C0C1",
|
||||
"- c #C0C0C0",
|
||||
"; c #979797",
|
||||
"> c #989898",
|
||||
", c #E3E3E3",
|
||||
"' c #DDDDDD",
|
||||
") c #C8C8C8",
|
||||
"! c #656566",
|
||||
"~ c #838384",
|
||||
"{ c #878787",
|
||||
"] c #888888",
|
||||
"^ c #AFAFAF",
|
||||
"/ c #A3A3A3",
|
||||
"( c #F1F1F1",
|
||||
"_ c #BFBFC0",
|
||||
": c #CECECF",
|
||||
"< c #A3A3A4",
|
||||
"[ c #979798",
|
||||
"} c #ABABAC",
|
||||
"| c #EEEEEF",
|
||||
"1 c #EDEDED",
|
||||
"2 c #E9E9E9",
|
||||
"3 c #D9D9D9",
|
||||
"4 c #989899",
|
||||
"5 c #C1C1C1",
|
||||
"6 c #B5B5B5",
|
||||
"7 c #757575",
|
||||
"8 c #6B6B6B",
|
||||
"9 c #656565",
|
||||
"0 c #777777",
|
||||
"a c #A7A7A7",
|
||||
"b c #7B7B7B",
|
||||
"c c #747474",
|
||||
"d c #717171",
|
||||
"e c #7D7D7D",
|
||||
"............. ",
|
||||
"............. ",
|
||||
".. .. ",
|
||||
".. .. ",
|
||||
".. .. ",
|
||||
".. +++++++@@+++",
|
||||
".. +#$%%%%%&&%%%",
|
||||
".. +%******==---",
|
||||
".. +%*;+++>==---",
|
||||
".. +%*+,')+!~{]^",
|
||||
".. +%*+'-/+@@++(",
|
||||
"...@&_@:<[@}|123",
|
||||
"...@&=4@@@!~5555",
|
||||
" +%-67890]+++>",
|
||||
" +%-abbcd+,')+",
|
||||
" +%-e+++++'-/+"};
|
||||
#endif
|
|
@ -0,0 +1,55 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *options_segment_xpm[];
|
||||
|
||||
#else
|
||||
char * options_segment_xpm[] = {
|
||||
"16 16 31 1",
|
||||
" c None",
|
||||
". c #007D00",
|
||||
"+ c #000000",
|
||||
"@ c #F0F0F0",
|
||||
"# c #DEDEDE",
|
||||
"$ c #DFDFDF",
|
||||
"% c #BFBFBF",
|
||||
"& c #C0C0C0",
|
||||
"* c #979797",
|
||||
"= c #989898",
|
||||
"- c #E3E3E3",
|
||||
"; c #DDDDDD",
|
||||
"> c #C8C8C8",
|
||||
", c #656565",
|
||||
"' c #838383",
|
||||
") c #878787",
|
||||
"! c #888888",
|
||||
"~ c #AFAFAF",
|
||||
"{ c #A3A3A3",
|
||||
"] c #F1F1F1",
|
||||
"^ c #CECECE",
|
||||
"/ c #ABABAB",
|
||||
"( c #EEEEEE",
|
||||
"_ c #EDEDED",
|
||||
": c #E9E9E9",
|
||||
"< c #D9D9D9",
|
||||
"[ c #C1C1C1",
|
||||
"} c #B5B5B5",
|
||||
"| c #757575",
|
||||
"1 c #6B6B6B",
|
||||
"2 c #777777",
|
||||
" ",
|
||||
" ",
|
||||
"................",
|
||||
"................",
|
||||
" ",
|
||||
" ",
|
||||
" ",
|
||||
" ++++++++++++",
|
||||
" +@#$$$$$$$$$$",
|
||||
" +$%%%%%%&&&&&",
|
||||
" +$%*+++=&&&&&",
|
||||
" +$%+-;>+,')!~",
|
||||
" +$%+;&{+++++]",
|
||||
" +$%+^{*+/(_:<",
|
||||
" +$&=+++,'[[[[",
|
||||
" +$&}|1,2!+++="};
|
||||
#endif
|
|
@ -0,0 +1,64 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *options_text_xpm[];
|
||||
|
||||
#else
|
||||
char * options_text_xpm[] = {
|
||||
"16 16 40 1",
|
||||
" c None",
|
||||
". c #00009B",
|
||||
"+ c #000098",
|
||||
"@ c #00005D",
|
||||
"# c #000000",
|
||||
"$ c #000001",
|
||||
"% c #F0F0F0",
|
||||
"& c #DEDEDE",
|
||||
"* c #DFDFE0",
|
||||
"= c #DFDFDF",
|
||||
"- c #BFBFBF",
|
||||
"; c #BFBFC0",
|
||||
"> c #C0C0C0",
|
||||
", c #979798",
|
||||
"' c #989898",
|
||||
") c #C1C1C1",
|
||||
"! c #E3E3E4",
|
||||
"~ c #DDDDDE",
|
||||
"{ c #C8C8C9",
|
||||
"] c #656565",
|
||||
"^ c #838383",
|
||||
"/ c #878787",
|
||||
"( c #888888",
|
||||
"_ c #AFAFAF",
|
||||
": c #C0C0C1",
|
||||
"< c #A3A3A4",
|
||||
"[ c #F1F1F1",
|
||||
"} c #CECECF",
|
||||
"| c #ABABAC",
|
||||
"1 c #EEEEEE",
|
||||
"2 c #EDEDED",
|
||||
"3 c #E9E9E9",
|
||||
"4 c #D9D9D9",
|
||||
"5 c #989899",
|
||||
"6 c #656566",
|
||||
"7 c #838384",
|
||||
"8 c #B5B5B5",
|
||||
"9 c #757575",
|
||||
"0 c #6B6B6B",
|
||||
"a c #777777",
|
||||
".............. ",
|
||||
".............. ",
|
||||
".+ .... +. ",
|
||||
".@ .... . ",
|
||||
" .... ",
|
||||
" .... ",
|
||||
" .... ",
|
||||
" ##$$$$#######",
|
||||
" #%&****=======",
|
||||
" #=-;;;;->>>>>>",
|
||||
" #=-,$$$'>>>>>)",
|
||||
" #=-$!~{#]^/(_)",
|
||||
" #=;$~:<#####[>",
|
||||
" #*;$}<,$|1234)",
|
||||
" #*:5$$$67))))>",
|
||||
" #=>890]a(###'>"};
|
||||
#endif
|
|
@ -0,0 +1,138 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *orient_xpm[];
|
||||
|
||||
#else
|
||||
char * orient_xpm[] = {
|
||||
"16 16 114 2",
|
||||
" c None",
|
||||
". c #000000",
|
||||
"+ c #010101",
|
||||
"@ c #656565",
|
||||
"# c #B2B2B2",
|
||||
"$ c #6E6E70",
|
||||
"% c #6A6A70",
|
||||
"& c #A1A1AD",
|
||||
"* c #585860",
|
||||
"= c #1A1A1A",
|
||||
"- c #C19393",
|
||||
"; c #F6DBDD",
|
||||
"> c #F5F5FB",
|
||||
", c #76767B",
|
||||
"' c #72727A",
|
||||
") c #DDDDF3",
|
||||
"! c #D5D5F1",
|
||||
"~ c #9A9AB2",
|
||||
"{ c #141418",
|
||||
"] c #BEBEBE",
|
||||
"^ c #F3DBDD",
|
||||
"/ c #CE0D0C",
|
||||
"( c #E0959D",
|
||||
"_ c #E4E4F6",
|
||||
": c #DCDCF3",
|
||||
"< c #D5D5F0",
|
||||
"[ c #CDCDEE",
|
||||
"} c #C5C5EB",
|
||||
"| c #8E8EAE",
|
||||
"1 c #676262",
|
||||
"2 c #FAF3F5",
|
||||
"3 c #F2F0F8",
|
||||
"4 c #C42223",
|
||||
"5 c #CD0100",
|
||||
"6 c #D14D54",
|
||||
"7 c #D3C7E1",
|
||||
"8 c #CCCCEE",
|
||||
"9 c #BDBDE8",
|
||||
"0 c #B5B5E6",
|
||||
"a c #45455A",
|
||||
"b c #B1A4A6",
|
||||
"c c #E18185",
|
||||
"d c #D96166",
|
||||
"e c #C8282B",
|
||||
"f c #CD1416",
|
||||
"g c #CCA4BE",
|
||||
"h c #BCBCE8",
|
||||
"i c #B4B4E5",
|
||||
"j c #ADADE3",
|
||||
"k c #74749D",
|
||||
"l c #6C6C70",
|
||||
"m c #767278",
|
||||
"n c #DB8E99",
|
||||
"o c #CD474E",
|
||||
"p c #D87F81",
|
||||
"q c #F5F3F6",
|
||||
"r c #C4C4EA",
|
||||
"s c #ACACE3",
|
||||
"t c #51516F",
|
||||
"u c #464663",
|
||||
"v c #69696F",
|
||||
"w c #70707A",
|
||||
"x c #DADAF2",
|
||||
"y c #D09AB0",
|
||||
"z c #C81415",
|
||||
"A c #E0ACAF",
|
||||
"B c #FFFFFF",
|
||||
"C c #DCDCEE",
|
||||
"D c #C1C1E9",
|
||||
"E c #4D4D6E",
|
||||
"F c #424262",
|
||||
"G c #9F9FAC",
|
||||
"H c #D2D2EF",
|
||||
"I c #CACAED",
|
||||
"J c #B99BB0",
|
||||
"K c #F7F5F6",
|
||||
"L c #E2E2ED",
|
||||
"M c #C0C0E9",
|
||||
"N c #66669B",
|
||||
"O c #565660",
|
||||
"P c #C2C2EA",
|
||||
"Q c #B2B2DD",
|
||||
"R c #8484A3",
|
||||
"S c #D4D4DD",
|
||||
"T c #DBDBE6",
|
||||
"U c #9696DB",
|
||||
"V c #9292DA",
|
||||
"W c #3B3B5A",
|
||||
"X c #9797B1",
|
||||
"Y c #C1C1EA",
|
||||
"Z c #B9B9E7",
|
||||
"` c #B2B2E5",
|
||||
" . c #A7A7DE",
|
||||
".. c #7B7BAA",
|
||||
"+. c #A4A4BB",
|
||||
"@. c #F8F8FA",
|
||||
"#. c #8E8ED0",
|
||||
"$. c #6262A0",
|
||||
"%. c #000001",
|
||||
"&. c #8B8BAD",
|
||||
"*. c #B1B1E4",
|
||||
"=. c #A9A9E2",
|
||||
"-. c #50506F",
|
||||
";. c #4C4C6D",
|
||||
">. c #8080BF",
|
||||
",. c #75759D",
|
||||
"'. c #7777A0",
|
||||
"). c #0D0D15",
|
||||
"!. c #43435A",
|
||||
"~. c #71719D",
|
||||
"{. c #444462",
|
||||
"]. c #414162",
|
||||
"^. c #616197",
|
||||
"/. c #313150",
|
||||
" ",
|
||||
" . . . . ",
|
||||
" + @ # $ % & * + ",
|
||||
" = - ; > , ' ) ! ~ { ",
|
||||
" + ] ^ / ( _ : < [ } | + ",
|
||||
" 1 2 3 4 5 6 7 8 } 9 0 a . ",
|
||||
" . b c d e 5 5 f g h i j k . ",
|
||||
" . l m n o 5 5 p q r s t u . ",
|
||||
" . v w x y z A B B C D E F . ",
|
||||
" . G x H I J K B B L ! M N . ",
|
||||
" O H I P Q R S B T U V W . ",
|
||||
" + X Y Z ` ...+.@.#.$.%. ",
|
||||
" { &.*.=.-.;.>.,.'.).. ",
|
||||
" + !.~.{.].^./.. . ",
|
||||
" . . . . . . ",
|
||||
" "};
|
||||
#endif
|
|
@ -0,0 +1,27 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *pad_sketch_xpm[];
|
||||
|
||||
#else
|
||||
char * pad_sketch_xpm[] = {
|
||||
"16 16 3 1",
|
||||
" c None",
|
||||
". c #007D00",
|
||||
"+ c #007C00",
|
||||
" ",
|
||||
" .... ",
|
||||
" ..++++.. ",
|
||||
" .. .. ",
|
||||
" .. .. ",
|
||||
" . .. . ",
|
||||
" .+ .... +. ",
|
||||
" .+ .. .. +. ",
|
||||
" .+ .. .. +. ",
|
||||
" .+ .... +. ",
|
||||
" . .. . ",
|
||||
" .. .. ",
|
||||
" .. .. ",
|
||||
" ..++++.. ",
|
||||
" .... ",
|
||||
" "};
|
||||
#endif
|
|
@ -0,0 +1,109 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *read_setup_xpm[];
|
||||
|
||||
#else
|
||||
char * read_setup_xpm[] = {
|
||||
"16 16 85 1",
|
||||
" c None",
|
||||
". c #000000",
|
||||
"+ c #E1E1E1",
|
||||
"@ c #C1C1C1",
|
||||
"# c #999999",
|
||||
"$ c #9A9A9A",
|
||||
"% c #C2C2C2",
|
||||
"& c #E5E5E5",
|
||||
"* c #DFDFDF",
|
||||
"= c #CACACA",
|
||||
"- c #666666",
|
||||
"; c #858585",
|
||||
"> c #898989",
|
||||
", c #8A8A8A",
|
||||
"' c #B1B1B1",
|
||||
") c #A5A5A5",
|
||||
"! c #F3F3F3",
|
||||
"~ c #D0D0D0",
|
||||
"{ c #ADADAD",
|
||||
"] c #F0F0F0",
|
||||
"^ c #EFEFEF",
|
||||
"/ c #EBEBEB",
|
||||
"( c #DBDBDB",
|
||||
"_ c #C3C3C3",
|
||||
": c #E4E5DF",
|
||||
"< c #D5D6CB",
|
||||
"[ c #D6D7CA",
|
||||
"} c #B7B7B7",
|
||||
"| c #767676",
|
||||
"1 c #6C6C6C",
|
||||
"2 c #787878",
|
||||
"3 c #8D907B",
|
||||
"4 c #92957E",
|
||||
"5 c #90937D",
|
||||
"6 c #A9A9A9",
|
||||
"7 c #7C7C7C",
|
||||
"8 c #757575",
|
||||
"9 c #505050",
|
||||
"0 c #8A8C7D",
|
||||
"a c #8E917B",
|
||||
"b c #91947F",
|
||||
"c c #7E7E7E",
|
||||
"d c #878A75",
|
||||
"e c #666858",
|
||||
"f c #4B4D3F",
|
||||
"g c #4D4F40",
|
||||
"h c #404135",
|
||||
"i c #424337",
|
||||
"j c #434437",
|
||||
"k c #404236",
|
||||
"l c #3C3D32",
|
||||
"m c #48493C",
|
||||
"n c #1A1A16",
|
||||
"o c #939393",
|
||||
"p c #848672",
|
||||
"q c #25261F",
|
||||
"r c #F1F2E9",
|
||||
"s c #DDE0C7",
|
||||
"t c #D6DABB",
|
||||
"u c #CDD2AC",
|
||||
"v c #C7CCA7",
|
||||
"w c #989C80",
|
||||
"x c #5F6152",
|
||||
"y c #888980",
|
||||
"z c #A7AB8C",
|
||||
"A c #878A70",
|
||||
"B c #6D6D6D",
|
||||
"C c #676767",
|
||||
"D c #777777",
|
||||
"E c #EFF0E5",
|
||||
"F c #9EA284",
|
||||
"G c #606060",
|
||||
"H c #888888",
|
||||
"I c #818181",
|
||||
"J c #7B7B7B",
|
||||
"K c #96968D",
|
||||
"L c #E3E5D1",
|
||||
"M c #83866D",
|
||||
"N c #EDEFE2",
|
||||
"O c #A2A688",
|
||||
"P c #E7E9DA",
|
||||
"Q c #D1D3BD",
|
||||
"R c #BBBF9D",
|
||||
"S c #989B80",
|
||||
"T c #6E715C",
|
||||
" .+@#...$%%%%%",
|
||||
" .+@.&*=.-;>,'",
|
||||
" .+@.*%).....!",
|
||||
" .+@.~)#.{]^/(",
|
||||
"....+%$...-;____",
|
||||
":<[.+%}|1-2,...$",
|
||||
"345.+%67789.&*=.",
|
||||
"0ab.+%c.....*%).",
|
||||
"defghiijklmno)#.",
|
||||
"pqrstuuuuuvw...-",
|
||||
"xysuuuuuuuzA.BCD",
|
||||
"qEtuuuuuuuF.GHIJ",
|
||||
"KLuuuuuuuuM.....",
|
||||
"NuuuuuuuuO.. ",
|
||||
"PQRRRRRRST. ",
|
||||
"........... "};
|
||||
#endif
|
|
@ -0,0 +1,102 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char * repaint_xpm[];
|
||||
|
||||
#else
|
||||
char * repaint_xpm[] = {
|
||||
"16 16 78 1",
|
||||
" c None",
|
||||
". c #000000",
|
||||
"+ c #817858",
|
||||
"@ c #D6D0BD",
|
||||
"# c #413C27",
|
||||
"$ c #E7D8A6",
|
||||
"% c #F2EDD9",
|
||||
"& c #877B52",
|
||||
"* c #E9DBAE",
|
||||
"= c #F1EBD6",
|
||||
"- c #918458",
|
||||
"; c #DACD9F",
|
||||
"> c #F4EED9",
|
||||
", c #6B6040",
|
||||
"' c #EDE4C6",
|
||||
") c #0C0B07",
|
||||
"! c #A29771",
|
||||
"~ c #9A8F6A",
|
||||
"{ c #ADA281",
|
||||
"] c #D5CCAF",
|
||||
"^ c #7F7862",
|
||||
"/ c #A39B7B",
|
||||
"( c #7B6F4A",
|
||||
"_ c #CCBC85",
|
||||
": c #E2CF8B",
|
||||
"< c #BCAC75",
|
||||
"[ c #CEBD82",
|
||||
"} c #C1B178",
|
||||
"| c #5B5438",
|
||||
"1 c #A39878",
|
||||
"2 c #918C74",
|
||||
"3 c #8B8468",
|
||||
"4 c #8B8365",
|
||||
"5 c #91896C",
|
||||
"6 c #90886A",
|
||||
"7 c #6A634C",
|
||||
"8 c #D1C7A8",
|
||||
"9 c #E8E7E3",
|
||||
"0 c #D3D2CE",
|
||||
"a c #B9B8B5",
|
||||
"b c #948E78",
|
||||
"c c #51504F",
|
||||
"d c #161616",
|
||||
"e c #101010",
|
||||
"f c #121211",
|
||||
"g c #0E0D0B",
|
||||
"h c #555555",
|
||||
"i c #050505",
|
||||
"j c #040404",
|
||||
"k c #6B372D",
|
||||
"l c #6D392E",
|
||||
"m c #974E3F",
|
||||
"n c #44231C",
|
||||
"o c #2F2F2F",
|
||||
"p c #272727",
|
||||
"q c #9D5546",
|
||||
"r c #6C392E",
|
||||
"s c #9C5344",
|
||||
"t c #964E3F",
|
||||
"u c #6C382D",
|
||||
"v c #542B22",
|
||||
"w c #9F5647",
|
||||
"x c #A75E4F",
|
||||
"y c #AD5C4B",
|
||||
"z c #A55C4D",
|
||||
"A c #2F1813",
|
||||
"B c #B35D4B",
|
||||
"C c #7E4134",
|
||||
"D c #8D493B",
|
||||
"E c #582D24",
|
||||
"F c #6C372D",
|
||||
"G c #613228",
|
||||
"H c #64332A",
|
||||
"I c #623228",
|
||||
"J c #65342A",
|
||||
"K c #502921",
|
||||
"L c #4C271F",
|
||||
"M c #3C1E18",
|
||||
" .. ",
|
||||
" .+@#. ",
|
||||
" .$%&. ",
|
||||
" .*=-. ",
|
||||
" .;>,. ",
|
||||
" ...').. ",
|
||||
" .!~{]^/(. ",
|
||||
" ._::::<[}|. ",
|
||||
" .123444567. ",
|
||||
" .890a9a9ab. ",
|
||||
" .cdedddfdg. ",
|
||||
" .hij.k.jlm. ",
|
||||
" nholpqrstu. ",
|
||||
" vwxyxzxzxA ",
|
||||
"BCDEFGHIJIKLM ",
|
||||
" "};
|
||||
#endif
|
|
@ -0,0 +1,117 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *rotate_pos_xpm[];
|
||||
|
||||
#else
|
||||
char * rotate_pos_xpm[] = {
|
||||
"16 16 93 2",
|
||||
" c None",
|
||||
". c #202020",
|
||||
"+ c #090909",
|
||||
"@ c #0C0C0C",
|
||||
"# c #CACACB",
|
||||
"$ c #3E3E3E",
|
||||
"% c #9B9B9B",
|
||||
"& c #010101",
|
||||
"* c #A8A8A9",
|
||||
"= c #FEFEFF",
|
||||
"- c #727275",
|
||||
"; c #646469",
|
||||
"> c #505057",
|
||||
", c #141416",
|
||||
"' c #4A4A4A",
|
||||
") c #F8F8FF",
|
||||
"! c #F1F1FF",
|
||||
"~ c #EBEBFF",
|
||||
"{ c #E0E0FA",
|
||||
"] c #A3A3BC",
|
||||
"^ c #484855",
|
||||
"/ c #171717",
|
||||
"( c #96969A",
|
||||
"_ c #C3C3CE",
|
||||
": c #E6E6FA",
|
||||
"< c #E4E4FF",
|
||||
"[ c #DDDDFF",
|
||||
"} c #D7D7FF",
|
||||
"| c #707089",
|
||||
"1 c #3B3B3D",
|
||||
"2 c #000000",
|
||||
"3 c #272727",
|
||||
"4 c #444444",
|
||||
"5 c #727272",
|
||||
"6 c #4B4B4C",
|
||||
"7 c #46464C",
|
||||
"8 c #B3B3CE",
|
||||
"9 c #D0D0FF",
|
||||
"0 c #49495C",
|
||||
"a c #5B5B5B",
|
||||
"b c #5A5A76",
|
||||
"c c #656580",
|
||||
"d c #3B3B48",
|
||||
"e c #5C5C5C",
|
||||
"f c #313131",
|
||||
"g c #4B4B4B",
|
||||
"h c #494949",
|
||||
"i c #8C8C8C",
|
||||
"j c #212122",
|
||||
"k c #BCBCDF",
|
||||
"l c #8686AA",
|
||||
"m c #474747",
|
||||
"n c #8888B2",
|
||||
"o c #C9C9FF",
|
||||
"p c #B1B1D9",
|
||||
"q c #262627",
|
||||
"r c #595959",
|
||||
"s c #2F2F2F",
|
||||
"t c #40404C",
|
||||
"u c #686880",
|
||||
"v c #5A5A72",
|
||||
"w c #262626",
|
||||
"x c #4C4C64",
|
||||
"y c #A9A9C9",
|
||||
"z c #404048",
|
||||
"A c #0D0D0F",
|
||||
"B c #C0C0C5",
|
||||
"C c #323232",
|
||||
"D c #222222",
|
||||
"E c #4D4D4D",
|
||||
"F c #535353",
|
||||
"G c #28282A",
|
||||
"H c #737392",
|
||||
"I c #DFDFF9",
|
||||
"J c #BCBCCC",
|
||||
"K c #93939C",
|
||||
"L c #A1A1A2",
|
||||
"M c #383838",
|
||||
"N c #353535",
|
||||
"O c #4F4F5F",
|
||||
"P c #A3A3C1",
|
||||
"Q c #DADAFC",
|
||||
"R c #424242",
|
||||
"S c #6C6C6C",
|
||||
"T c #3D3D3F",
|
||||
"U c #595961",
|
||||
"V c #62626A",
|
||||
"W c #73737A",
|
||||
"X c #404040",
|
||||
"Y c #040404",
|
||||
"Z c #303031",
|
||||
"` c #989898",
|
||||
" . c #8F8F8F",
|
||||
" ",
|
||||
" . + ",
|
||||
" @ # $ % ",
|
||||
" & * = - ; > , ",
|
||||
" ' = = ) ! ~ { ] ^ ",
|
||||
" / * = ( _ : < [ } | 1 ",
|
||||
" 2 2 2 3 # 4 5 6 7 8 } 9 0 a ",
|
||||
"2 b c d e f g h i j k 9 l m ",
|
||||
"2 n o p q r s q t u v w ",
|
||||
" x o 9 y z A w B C D E E F ",
|
||||
" G H 9 } [ I J K ) L M % % % ",
|
||||
" N O P Q < ~ ! ) = R S ",
|
||||
" r T U V W ) L ' % ",
|
||||
" % % X B $ % % ",
|
||||
" Y Z ` % ",
|
||||
" .% "};
|
||||
#endif
|
|
@ -0,0 +1,120 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *rotate_neg_xpm[];
|
||||
|
||||
#else
|
||||
char * rotate_neg_xpm[] = {
|
||||
"16 16 96 2",
|
||||
" c None",
|
||||
". c #000000",
|
||||
"+ c #2A2A2B",
|
||||
"@ c #C5C5CB",
|
||||
"# c #313131",
|
||||
"$ c #141416",
|
||||
"% c #4D4D57",
|
||||
"& c #5F5F67",
|
||||
"* c #6F6F75",
|
||||
"= c #F8F8FF",
|
||||
"- c #A8A8A9",
|
||||
"; c #343434",
|
||||
"> c #444454",
|
||||
", c #9F9FBC",
|
||||
"' c #D9D9FA",
|
||||
") c #E4E4FF",
|
||||
"! c #EBEBFF",
|
||||
"~ c #F1F1FF",
|
||||
"{ c #FEFEFF",
|
||||
"] c #4A4A4A",
|
||||
"^ c #646464",
|
||||
"/ c #6C6C89",
|
||||
"( c #D0D0FF",
|
||||
"_ c #D7D7FF",
|
||||
": c #DDDDFF",
|
||||
"< c #E0E0FA",
|
||||
"[ c #BEBECE",
|
||||
"} c #92929A",
|
||||
"| c #3F3F3F",
|
||||
"1 c #9B9B9B",
|
||||
"2 c #46465C",
|
||||
"3 c #C9C9FF",
|
||||
"4 c #AEAECE",
|
||||
"5 c #44444C",
|
||||
"6 c #4B4B4C",
|
||||
"7 c #727272",
|
||||
"8 c #444444",
|
||||
"9 c #363636",
|
||||
"0 c #949494",
|
||||
"a c #3A3A3A",
|
||||
"b c #8282AA",
|
||||
"c c #B6B6DF",
|
||||
"d c #252526",
|
||||
"e c #939393",
|
||||
"f c #8F8F8F",
|
||||
"g c #494949",
|
||||
"h c #202020",
|
||||
"i c #2C2C2D",
|
||||
"j c #686868",
|
||||
"k c #3D3D48",
|
||||
"l c #686880",
|
||||
"m c #5D5D76",
|
||||
"n c #575772",
|
||||
"o c #656580",
|
||||
"p c #3E3E4C",
|
||||
"q c #6E6E6E",
|
||||
"r c #959595",
|
||||
"s c #1E1E1E",
|
||||
"t c #050505",
|
||||
"u c #828282",
|
||||
"v c #050507",
|
||||
"w c #B7B7D9",
|
||||
"x c #8C8CB2",
|
||||
"y c #272727",
|
||||
"z c #4D4D4D",
|
||||
"A c #929292",
|
||||
"B c #1F1F1F",
|
||||
"C c #C4C4C5",
|
||||
"D c #292929",
|
||||
"E c #2C2C2C",
|
||||
"F c #3A3A41",
|
||||
"G c #AEAEC9",
|
||||
"H c #4F4F64",
|
||||
"I c #6F6F6F",
|
||||
"J c #2F2F2F",
|
||||
"K c #A1A1A2",
|
||||
"L c #98989C",
|
||||
"M c #C1C1CC",
|
||||
"N c #E5E5F9",
|
||||
"O c #777792",
|
||||
"P c #545455",
|
||||
"Q c #424242",
|
||||
"R c #E1E1FC",
|
||||
"S c #A7A7C1",
|
||||
"T c #51515F",
|
||||
"U c #525252",
|
||||
"V c #101010",
|
||||
"W c #77777A",
|
||||
"X c #65656A",
|
||||
"Y c #5B5B61",
|
||||
"Z c #3D3D3F",
|
||||
"` c #5D5D5D",
|
||||
" . c #3E3E3E",
|
||||
".. c #989898",
|
||||
"+. c #3D3D3D",
|
||||
"@. c #404040",
|
||||
" ",
|
||||
" . + ",
|
||||
" . @ # ",
|
||||
" $ % & * = - ; ",
|
||||
" > , ' ) ! ~ = { ] ^ ",
|
||||
" / ( _ : < [ } = - | 1 ",
|
||||
" 2 3 ( 4 5 6 7 8 @ 9 0 a . . ",
|
||||
". b 3 c d e f g h i 0 j k l m . ",
|
||||
". n o p q r s t u e v w ( x y ",
|
||||
" | z z A B C D E F G _ ( H I ",
|
||||
" 1 1 J K { L M N ) : _ O P 1 ",
|
||||
" Q { { = ~ ! R S T U 1 1 ",
|
||||
" V K { W X Y Z ` r 1 1 ",
|
||||
" 1 .C 8 1 1 1 1 1 1 ",
|
||||
" ..+.@.1 1 1 1 ",
|
||||
" e ` "};
|
||||
#endif
|
|
@ -0,0 +1,100 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *rotate_field_xpm[];
|
||||
|
||||
#else
|
||||
char * rotate_field_xpm[] = {
|
||||
"16 16 76 1",
|
||||
" c None",
|
||||
". c #D2D2D2",
|
||||
"+ c #9D9D9D",
|
||||
"@ c #DEDEDE",
|
||||
"# c #E0E0E0",
|
||||
"$ c #5C5C5C",
|
||||
"% c #000000",
|
||||
"& c #EDEDED",
|
||||
"* c #939393",
|
||||
"= c #FDFDFD",
|
||||
"- c #E4E4E4",
|
||||
"; c #F1F1F1",
|
||||
"> c #CFCFCF",
|
||||
", c #C7C7C7",
|
||||
"' c #E7E7E7",
|
||||
") c #F4F4F4",
|
||||
"! c #8F8F8F",
|
||||
"~ c #E9E9E9",
|
||||
"{ c #B1B1B1",
|
||||
"] c #373737",
|
||||
"^ c #67676A",
|
||||
"/ c #3B3B3B",
|
||||
"( c #A3A3A3",
|
||||
"_ c #D1D1D1",
|
||||
": c #FAFAFA",
|
||||
"< c #636363",
|
||||
"[ c #F7F7F8",
|
||||
"} c #F8F8FF",
|
||||
"| c #EBEBF9",
|
||||
"1 c #E0E0F3",
|
||||
"2 c #BFBFD6",
|
||||
"3 c #8B8BA0",
|
||||
"4 c #4F4F57",
|
||||
"5 c #B6B6B6",
|
||||
"6 c #F0F0F0",
|
||||
"7 c #9F9F9F",
|
||||
"8 c #F1F1FF",
|
||||
"9 c #EBEBFF",
|
||||
"0 c #E4E4FF",
|
||||
"a c #DDDDFF",
|
||||
"b c #CECEF4",
|
||||
"c c #393945",
|
||||
"d c #777777",
|
||||
"e c #606060",
|
||||
"f c #3A3A3A",
|
||||
"g c #69696C",
|
||||
"h c #353536",
|
||||
"i c #3B3B3E",
|
||||
"j c #3F3F45",
|
||||
"k c #777789",
|
||||
"l c #D4D4FC",
|
||||
"m c #8888A7",
|
||||
"n c #2E2E2E",
|
||||
"o c #9494B0",
|
||||
"p c #B8B8E2",
|
||||
"q c #A1A1CC",
|
||||
"r c #A0A0C4",
|
||||
"s c #757594",
|
||||
"t c #CFCFFE",
|
||||
"u c #7D7D94",
|
||||
"v c #383842",
|
||||
"w c #2F2F34",
|
||||
"x c #1D1D1F",
|
||||
"y c #5C5C61",
|
||||
"z c #434345",
|
||||
"A c #2B2B37",
|
||||
"B c #C2C2EE",
|
||||
"C c #D7D7FF",
|
||||
"D c #F5F5FC",
|
||||
"E c #6F6F6F",
|
||||
"F c #22222A",
|
||||
"G c #83839B",
|
||||
"H c #B5B5D1",
|
||||
"I c #D8D8F2",
|
||||
"J c #E5E5F9",
|
||||
"K c #59595E",
|
||||
".++++++++++++++.",
|
||||
"+.@@@@@@@@@@@@@+",
|
||||
"+#$%%$&%%%*&===+",
|
||||
"+-%;;%;%>,%;===+",
|
||||
"+'%))%)%%%!)===+",
|
||||
"+~%%%%{]^/%(_==+",
|
||||
"+&%::%<[}|12345+",
|
||||
"+6===7<[}890abcd",
|
||||
".+++++efghijklmn",
|
||||
" %%% % %op%",
|
||||
" %qr% % %%%",
|
||||
" %stuvwxyz ",
|
||||
" ABCa098DE ",
|
||||
" FGHIJ8DE% ",
|
||||
" %%%Kz% ",
|
||||
" %% "};
|
||||
#endif
|
|
@ -0,0 +1,123 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *save_cmpstuff_xpm[];
|
||||
|
||||
#else
|
||||
char * save_cmpstuff_xpm[] = {
|
||||
"16 16 99 2",
|
||||
" c None",
|
||||
". c #160A00",
|
||||
"+ c #FF7800",
|
||||
"@ c #000000",
|
||||
"# c #231000",
|
||||
"$ c #E1DFDE",
|
||||
"% c #44260C",
|
||||
"& c #E86D00",
|
||||
"* c #FFFFFF",
|
||||
"= c #C35B00",
|
||||
"- c #FAF6F3",
|
||||
"; c #A38F7C",
|
||||
"> c #C7B4A5",
|
||||
", c #FDBD85",
|
||||
"' c #FFBF87",
|
||||
") c #FFF3EC",
|
||||
"! c #FEE6D6",
|
||||
"~ c #D8BDA8",
|
||||
"{ c #C7874F",
|
||||
"] c #F9B880",
|
||||
"^ c #FFF5EF",
|
||||
"/ c #FFE8D8",
|
||||
"( c #FFDBC2",
|
||||
"_ c #B9957C",
|
||||
": c #010101",
|
||||
"< c #FFEADC",
|
||||
"[ c #FFDDC5",
|
||||
"} c #FFD0AF",
|
||||
"| c #F6F7F9",
|
||||
"1 c #CADCEA",
|
||||
"2 c #C78980",
|
||||
"3 c #D08E83",
|
||||
"4 c #CF8D82",
|
||||
"5 c #CF8E82",
|
||||
"6 c #FFDFC8",
|
||||
"7 c #FFD1B2",
|
||||
"8 c #FFC49C",
|
||||
"9 c #DAE6EF",
|
||||
"0 c #8CA8BC",
|
||||
"a c #B6867D",
|
||||
"b c #C67568",
|
||||
"c c #C67467",
|
||||
"d c #C57366",
|
||||
"e c #C57365",
|
||||
"f c #FFD3B5",
|
||||
"g c #FFC69F",
|
||||
"h c #FFB988",
|
||||
"i c #010100",
|
||||
"j c #CEDFEB",
|
||||
"k c #D6D6D5",
|
||||
"l c #FDFDFD",
|
||||
"m c #FCFCFC",
|
||||
"n c #FFC8A2",
|
||||
"o c #FFBB8C",
|
||||
"p c #FFAE75",
|
||||
"q c #D6D6D6",
|
||||
"r c #D5D5D5",
|
||||
"s c #FFBD8F",
|
||||
"t c #FFB079",
|
||||
"u c #FFA262",
|
||||
"v c #8CA8BD",
|
||||
"w c #FBFBFB",
|
||||
"x c #F3F3F3",
|
||||
"y c #E9E9E9",
|
||||
"z c #FFB27C",
|
||||
"A c #FFA465",
|
||||
"B c #FE9A55",
|
||||
"C c #D6D5D5",
|
||||
"D c #D3D2D2",
|
||||
"E c #C4C3C3",
|
||||
"F c #C4C4C4",
|
||||
"G c #C3C3C3",
|
||||
"H c #FFA669",
|
||||
"I c #FAA162",
|
||||
"J c #A37E60",
|
||||
"K c #CEDFEC",
|
||||
"L c #EDEDED",
|
||||
"M c #F1F0F0",
|
||||
"N c #EAE9E9",
|
||||
"O c #EAEAEA",
|
||||
"P c #E1A074",
|
||||
"Q c #442102",
|
||||
"R c #CEDEEB",
|
||||
"S c #ADBDCB",
|
||||
"T c #C8D4DD",
|
||||
"U c #C5CDD8",
|
||||
"V c #BEC9D4",
|
||||
"W c #BECAD5",
|
||||
"X c #BDC9D4",
|
||||
"Y c #8CA7BC",
|
||||
"Z c #87A4BA",
|
||||
"` c #7E98AC",
|
||||
" . c #8098AC",
|
||||
".. c #7F98AC",
|
||||
"+. c #7D97AB",
|
||||
"@. c #8BA6BB",
|
||||
"#. c #A6AFBB",
|
||||
"$. c #CDCCCC",
|
||||
"%. c #9A9B9B",
|
||||
" . + + + ",
|
||||
" @ # + + + ",
|
||||
" @ $ % & * = + * + @ @ ",
|
||||
" @ * - ; > , ' ' * * + + + * @ ",
|
||||
" @ * ) ! ~ { ] ' * * + + + * @ ",
|
||||
"@ @ ^ / ( _ : : : : : : : : : @ ",
|
||||
" @ < [ } : | 1 2 3 3 3 3 4 4 5 ",
|
||||
" @ 6 7 8 : 9 0 a b c c c d e d ",
|
||||
" @ f g h i j 0 k l l l l m m m ",
|
||||
" @ n o p i j 0 q q q q q r r r ",
|
||||
"@ @ s t u i j v q l l l l w x y ",
|
||||
" @ z A B i j v q q q C D E F G ",
|
||||
" @ H I J : K v L l l M N N O y ",
|
||||
" @ P Q @ R v S T U V W V X X ",
|
||||
" @ # @ R Y Y Z ` . . ...+.",
|
||||
" . @ R Y @.#.G E $.N r %."};
|
||||
#endif
|
|
@ -0,0 +1,123 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *save_library_xpm[];
|
||||
|
||||
#else
|
||||
char * save_library_xpm[] = {
|
||||
"16 16 99 2",
|
||||
" c None",
|
||||
". c #070809",
|
||||
"+ c #323538",
|
||||
"@ c #1F1F20",
|
||||
"# c #0B0D0E",
|
||||
"$ c #E5E7E8",
|
||||
"% c #F6F6F6",
|
||||
"& c #838587",
|
||||
"* c #050506",
|
||||
"= c #0B0D0F",
|
||||
"- c #F7F7F7",
|
||||
"; c #D8D8D8",
|
||||
"> c #E0E1E2",
|
||||
", c #1F2021",
|
||||
"' c #050709",
|
||||
") c #E4E7E8",
|
||||
"! c #D8D9D9",
|
||||
"~ c #D2D2D2",
|
||||
"{ c #E2E2E2",
|
||||
"] c #BFC1C3",
|
||||
"^ c #0F0F0F",
|
||||
"/ c #000000",
|
||||
"( c #363737",
|
||||
"_ c #D18F84",
|
||||
": c #D19084",
|
||||
"< c #D39186",
|
||||
"[ c #BFD5E8",
|
||||
"} c #565656",
|
||||
"| c #353535",
|
||||
"1 c #363636",
|
||||
"2 c #0B0B0B",
|
||||
"3 c #C77467",
|
||||
"4 c #C77466",
|
||||
"5 c #C87668",
|
||||
"6 c #CD867A",
|
||||
"7 c #8DA9BE",
|
||||
"8 c #54697C",
|
||||
"9 c #FCFDFD",
|
||||
"0 c #FCFCFC",
|
||||
"a c #FBFBFC",
|
||||
"b c #FAFBFC",
|
||||
"c c #EAEAEA",
|
||||
"d c #242425",
|
||||
"e c #FEFEFE",
|
||||
"f c #F9F9F9",
|
||||
"g c #84A0B5",
|
||||
"h c #4F6475",
|
||||
"i c #E2E3E4",
|
||||
"j c #F8F9FA",
|
||||
"k c #F7F8F9",
|
||||
"l c #E0E0E2",
|
||||
"m c #AFB1B2",
|
||||
"n c #D7D7D7",
|
||||
"o c #D6D6D6",
|
||||
"p c #F1F1F1",
|
||||
"q c #819AAE",
|
||||
"r c #496072",
|
||||
"s c #F9FBFC",
|
||||
"t c #CBCCCE",
|
||||
"u c #868C92",
|
||||
"v c #F4F4F4",
|
||||
"w c #EBEBEB",
|
||||
"x c #DFE0E0",
|
||||
"y c #B4B7BB",
|
||||
"z c #181B1E",
|
||||
"A c #D4D4D4",
|
||||
"B c #C5C5C5",
|
||||
"C c #FAFBFB",
|
||||
"D c #FAFAFB",
|
||||
"E c #CCCED1",
|
||||
"F c #747C85",
|
||||
"G c #F2F2F2",
|
||||
"H c #EEEEEE",
|
||||
"I c #FBFCFC",
|
||||
"J c #F0F1F1",
|
||||
"K c #A9AEB4",
|
||||
"L c #16181B",
|
||||
"M c #BFCBD6",
|
||||
"N c #A1B6C4",
|
||||
"O c #F4F5F5",
|
||||
"P c #D2D2D3",
|
||||
"Q c #7A8188",
|
||||
"R c #7E99AD",
|
||||
"S c #7D97AC",
|
||||
"T c #A0A6AD",
|
||||
"U c #92999F",
|
||||
"V c #0D0F11",
|
||||
"W c #CECECE",
|
||||
"X c #9C9D9D",
|
||||
"Y c #2F4656",
|
||||
"Z c #80868C",
|
||||
"` c #191E22",
|
||||
" . c #1E2328",
|
||||
".. c #183042",
|
||||
"+. c #33495A",
|
||||
"@. c #B9B9B9",
|
||||
"#. c #132D3C",
|
||||
"$. c #586D80",
|
||||
"%. c #97A5B0",
|
||||
" . + @ ",
|
||||
" # $ % & * ",
|
||||
" = $ - ; > , ",
|
||||
" ' ) - ! ~ { ] ^ ",
|
||||
"/ / / / / / / / / ( ",
|
||||
"_ _ _ _ : _ < [ [ / } | | | 1 2 ",
|
||||
"3 3 3 4 3 5 6 7 8 / 9 0 a b c d ",
|
||||
"e e e e e e f g h / i j k l m / ",
|
||||
"n n n n n o p q r / s j k t u / ",
|
||||
"e e 0 v w w p q r / b j x y z ",
|
||||
"n A B B B B p q r / C D E F / ",
|
||||
"G w w w w w H q r / I J K L ",
|
||||
"M M M M M M N q r / O P Q / ",
|
||||
"q q q q R S q q r / T U V ",
|
||||
"B W w n X Y Z q r / ` . ",
|
||||
"..+.o B @.#.$.%.r / "};
|
||||
#endif
|
|
@ -0,0 +1,115 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *save_netlist_xpm[];
|
||||
|
||||
#else
|
||||
char * save_netlist_xpm[] = {
|
||||
"16 16 91 1",
|
||||
" c None",
|
||||
". c #000000",
|
||||
"+ c #F0F0F0",
|
||||
"@ c #FFFFFF",
|
||||
"# c #0F0F0F",
|
||||
"$ c #EFEFEF",
|
||||
"% c #101010",
|
||||
"& c #B3D7F0",
|
||||
"* c #0B0D0F",
|
||||
"= c #B3D6EF",
|
||||
"- c #51616D",
|
||||
"; c #39454D",
|
||||
"> c #BFE5FF",
|
||||
", c #0B0E10",
|
||||
"' c #FAF9F9",
|
||||
") c #746355",
|
||||
"! c #E3C8B4",
|
||||
"~ c #FFCAA5",
|
||||
"{ c #FFBD8E",
|
||||
"] c #F1B58B",
|
||||
"^ c #4C392A",
|
||||
"/ c #F3F1F0",
|
||||
"( c #A7C8E0",
|
||||
"_ c #C3DCEC",
|
||||
": c #B9C9D3",
|
||||
"< c #A38266",
|
||||
"[ c #FDC49C",
|
||||
"} c #FEB481",
|
||||
"| c #AE8868",
|
||||
"1 c #777471",
|
||||
"2 c #C4DCEB",
|
||||
"3 c #BFE5FE",
|
||||
"4 c #FFEBD9",
|
||||
"5 c #FFEAD7",
|
||||
"6 c #E9CAAF",
|
||||
"7 c #E3BB9E",
|
||||
"8 c #EBBB99",
|
||||
"9 c #E4C2A5",
|
||||
"0 c #A38E7B",
|
||||
"a c #FFFDFC",
|
||||
"b c #8EA0AA",
|
||||
"c c #010101",
|
||||
"d c #000101",
|
||||
"e c #FFC38E",
|
||||
"f c #F6F7F9",
|
||||
"g c #CADCEA",
|
||||
"h c #C78980",
|
||||
"i c #D08E83",
|
||||
"j c #CF8E82",
|
||||
"k c #DBB48E",
|
||||
"l c #DAE6F0",
|
||||
"m c #8CA8BD",
|
||||
"n c #B6867E",
|
||||
"o c #C67568",
|
||||
"p c #C67467",
|
||||
"q c #C57366",
|
||||
"r c #C67466",
|
||||
"s c #CEDFEC",
|
||||
"t c #D6D6D6",
|
||||
"u c #FDFDFD",
|
||||
"v c #FCFCFC",
|
||||
"w c #FB7E0F",
|
||||
"x c #010100",
|
||||
"y c #CEDEEB",
|
||||
"z c #D6D6D5",
|
||||
"A c #D6D5D5",
|
||||
"B c #D5D5D5",
|
||||
"C c #FF800F",
|
||||
"D c #FDFDFC",
|
||||
"E c #FDFCFC",
|
||||
"F c #FBFBFB",
|
||||
"G c #F3F3F3",
|
||||
"H c #E9E9E9",
|
||||
"I c #D5D6D6",
|
||||
"J c #D3D3D3",
|
||||
"K c #C3C3C3",
|
||||
"L c #C4C4C4",
|
||||
"M c #EDEDED",
|
||||
"N c #F1F1F1",
|
||||
"O c #EAEAEA",
|
||||
"P c #ADBECC",
|
||||
"Q c #C9D5DE",
|
||||
"R c #C6CED9",
|
||||
"S c #BECAD5",
|
||||
"T c #BDC9D4",
|
||||
"U c #CDDEEB",
|
||||
"V c #8BA7BC",
|
||||
"W c #87A4BA",
|
||||
"X c #7E98AC",
|
||||
"Y c #7F98AC",
|
||||
"Z c #7D97AB",
|
||||
" ...............",
|
||||
".+@@@@#$@#$@@@@%",
|
||||
".&*=-......;>*=,",
|
||||
".+@@')!~{]^/@@@%",
|
||||
".&.(_:<[}|123.(,",
|
||||
".+@@45678905a@@%",
|
||||
".&*=_bccccdcc.c.",
|
||||
".+@@ecfghiiiiiij",
|
||||
".&.(kclmnopppqrq",
|
||||
".+@@@csmtuuuuuuv",
|
||||
".&*=wxymtzzAtBtB",
|
||||
".+@@CxymtDDEuFGH",
|
||||
".&.(>csmttItJKLK",
|
||||
".+@@@csmMuuNOOOH",
|
||||
".&*=>csmPQRSSTST",
|
||||
" .....UVVWXYYYYZ"};
|
||||
#endif
|
|
@ -0,0 +1,87 @@
|
|||
/* XPM */
|
||||
#ifndef XPMMAIN
|
||||
extern char *save_project_xpm[];
|
||||
|
||||
#else
|
||||
char * save_project_xpm[] = {
|
||||
"16 16 63 1",
|
||||
" c None",
|
||||
". c #000000",
|
||||
"+ c #020202",
|
||||
"@ c #F8F8F8",
|
||||
"# c #ECECEC",
|
||||
"$ c #EBEBEB",
|
||||
"% c #6B6B6B",
|
||||
"& c #2D2D2D",
|
||||
"* c #181818",
|
||||
"= c #C5C5C5",
|
||||
"- c #434343",
|
||||
"; c #5E5E5E",
|
||||
"> c #F0F0F0",
|
||||
", c #707070",
|
||||
"' c #3D3D3D",
|
||||
") c #C3C3C3",
|
||||
"! c #0E0E0E",
|
||||
"~ c #9C9C9C",
|
||||
"{ c #4B4B4B",
|
||||
"] c #616161",
|
||||
"^ c #131313",
|
||||
"/ c #D18F84",
|
||||
"( c #D19084",
|
||||
"_ c #D39186",
|
||||
": c #BFD5E8",
|
||||
"< c #C6C6C6",
|
||||
"[ c #1B1B1B",
|
||||
"} c #C77467",
|
||||
"| c #C77466",
|
||||
"1 c #C87668",
|
||||
"2 c #CD867A",
|
||||
"3 c #8DA9BE",
|
||||
"4 c #54697C",
|
||||
"5 c #FEFEFE",
|
||||
"6 c #F9F9F9",
|
||||
"7 c #84A0B5",
|
||||
"8 c #4F6475",
|
||||
"9 c #D7D7D7",
|
||||
"0 c #D6D6D6",
|
||||
"a c #F1F1F1",
|
||||
"b c #819AAE",
|
||||
"c c #496072",
|
||||
"d c #FCFCFC",
|
||||
"e c #F4F4F4",
|
||||
"f c #090909",
|
||||
"g c #D4D4D4",
|
||||
"h c #F2F2F2",
|
||||
"i c #EEEEEE",
|
||||
"j c #121212",
|
||||
"k c #BFCBD6",
|
||||
"l c #A1B6C4",
|
||||
"m c #7E99AD",
|
||||
"n c #7D97AC",
|
||||
"o c #CECECE",
|
||||
"p c #9C9D9D",
|
||||
"q c #2F4656",
|
||||
"r c #80868C",
|
||||
"s c #183042",
|
||||
"t c #33495A",
|
||||
"u c #B9B9B9",
|
||||
"v c #132D3C",
|
||||
"w c #586D80",
|
||||
"x c #97A5B0",
|
||||
" ......+ ",
|
||||
" .@#$$$%& ",
|
||||
" ......*=$-;.",
|
||||
" .>#$$$,')$=!",
|
||||
".........~{]^$=!",
|
||||
"////(/_::.$<[$=!",
|
||||
"}}}|}1234.$<[$=!",
|
||||
"555555678.$<[$=!",
|
||||
"999990abc.$<[$=!",
|
||||
"55de$$abc.$<[))f",
|
||||
"9g====abc.$<[.. ",
|
||||
"h$$$$$ibc.))j ",
|
||||
"kkkkkklbc.... ",
|
||||
"bbbbmnbbc. ",
|
||||
"=o$9pqrbc. ",
|
||||
"st0=uvwxc. "};
|
||||
#endif
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue