leocad/common/typedefs.h
2012-08-20 04:05:56 +00:00

387 lines
6.3 KiB
C++

// Typedefs.
//
#ifndef _TYPEDEF_H_
#define _TYPEDEF_H_
class Group;
class Piece;
class PieceInfo;
class Camera;
#include "str.h"
#include "lc_math.h"
enum LC_NOTIFY
{
LC_COLOR_CHANGED,
LC_CAPTURE_LOST,
LC_ACTIVATE,
LC_PIECE_MODIFIED,
LC_CAMERA_MODIFIED,
LC_LIGHT_MODIFIED
};
enum LC_COMMANDS
{
LC_FILE_NEW,
LC_FILE_OPEN,
LC_FILE_MERGE,
LC_FILE_SAVE,
LC_FILE_SAVEAS,
LC_FILE_PICTURE,
LC_FILE_3DS,
LC_FILE_HTML,
LC_FILE_POVRAY,
LC_FILE_WAVEFRONT,
LC_FILE_PROPERTIES,
LC_FILE_TERRAIN,
LC_FILE_LIBRARY,
LC_FILE_RECENT,
LC_EDIT_UNDO,
LC_EDIT_REDO,
LC_EDIT_CUT,
LC_EDIT_COPY,
LC_EDIT_PASTE,
LC_EDIT_SELECT_ALL,
LC_EDIT_SELECT_NONE,
LC_EDIT_SELECT_INVERT,
LC_EDIT_SELECT_BYNAME,
LC_PIECE_INSERT,
LC_PIECE_DELETE,
LC_PIECE_MINIFIG,
LC_PIECE_ARRAY,
LC_PIECE_COPYKEYS,
LC_PIECE_GROUP,
LC_PIECE_UNGROUP,
LC_PIECE_GROUP_ADD,
LC_PIECE_GROUP_REMOVE,
LC_PIECE_GROUP_EDIT,
LC_PIECE_HIDE_SELECTED,
LC_PIECE_HIDE_UNSELECTED,
LC_PIECE_UNHIDE_ALL,
LC_PIECE_PREVIOUS,
LC_PIECE_NEXT,
LC_VIEW_PREFERENCES,
LC_VIEW_ZOOM,
LC_VIEW_ZOOMIN,
LC_VIEW_ZOOMOUT,
LC_VIEW_ZOOMEXTENTS,
LC_VIEW_STEP_NEXT,
LC_VIEW_STEP_PREVIOUS,
LC_VIEW_STEP_FIRST,
LC_VIEW_STEP_LAST,
LC_VIEW_STEP_CHOOSE,
LC_VIEW_STEP_SET,
LC_VIEW_STEP_INSERT,
LC_VIEW_STEP_DELETE,
LC_VIEW_STOP,
LC_VIEW_PLAY,
LC_VIEW_VIEWPOINT_FRONT,
LC_VIEW_VIEWPOINT_BACK,
LC_VIEW_VIEWPOINT_TOP,
LC_VIEW_VIEWPOINT_BOTTOM,
LC_VIEW_VIEWPOINT_LEFT,
LC_VIEW_VIEWPOINT_RIGHT,
LC_VIEW_VIEWPOINT_HOME,
LC_VIEW_CAMERA_MENU,
LC_VIEW_CAMERA_RESET,
LC_HELP_ABOUT,
LC_TOOLBAR_ANIMATION,
LC_TOOLBAR_ADDKEYS,
LC_TOOLBAR_SNAPMENU,
LC_TOOLBAR_LOCKMENU,
LC_TOOLBAR_FASTRENDER,
LC_EDIT_MOVEXY_SNAP_0,
LC_EDIT_MOVEXY_SNAP_1,
LC_EDIT_MOVEXY_SNAP_2,
LC_EDIT_MOVEXY_SNAP_3,
LC_EDIT_MOVEXY_SNAP_4,
LC_EDIT_MOVEXY_SNAP_5,
LC_EDIT_MOVEXY_SNAP_6,
LC_EDIT_MOVEXY_SNAP_7,
LC_EDIT_MOVEXY_SNAP_8,
LC_EDIT_MOVEXY_SNAP_9,
LC_EDIT_MOVEZ_SNAP_0,
LC_EDIT_MOVEZ_SNAP_1,
LC_EDIT_MOVEZ_SNAP_2,
LC_EDIT_MOVEZ_SNAP_3,
LC_EDIT_MOVEZ_SNAP_4,
LC_EDIT_MOVEZ_SNAP_5,
LC_EDIT_MOVEZ_SNAP_6,
LC_EDIT_MOVEZ_SNAP_7,
LC_EDIT_MOVEZ_SNAP_8,
LC_EDIT_MOVEZ_SNAP_9,
LC_EDIT_ANGLE_SNAP_0,
LC_EDIT_ANGLE_SNAP_1,
LC_EDIT_ANGLE_SNAP_2,
LC_EDIT_ANGLE_SNAP_3,
LC_EDIT_ANGLE_SNAP_4,
LC_EDIT_ANGLE_SNAP_5,
LC_EDIT_ANGLE_SNAP_6,
LC_EDIT_ANGLE_SNAP_7,
LC_EDIT_ANGLE_SNAP_8,
LC_EDIT_ANGLE_SNAP_9,
LC_EDIT_ACTION_SELECT,
LC_EDIT_ACTION_INSERT,
LC_EDIT_ACTION_LIGHT,
LC_EDIT_ACTION_SPOTLIGHT,
LC_EDIT_ACTION_CAMERA,
LC_EDIT_ACTION_MOVE,
LC_EDIT_ACTION_ROTATE,
LC_EDIT_ACTION_ERASER,
LC_EDIT_ACTION_PAINT,
LC_EDIT_ACTION_ZOOM,
LC_EDIT_ACTION_ZOOM_REGION,
LC_EDIT_ACTION_PAN,
LC_EDIT_ACTION_ROTATE_VIEW,
LC_EDIT_ACTION_ROLL,
};
enum LC_ACTIONS
{
LC_ACTION_SELECT,
LC_ACTION_INSERT,
LC_ACTION_LIGHT,
LC_ACTION_SPOTLIGHT,
LC_ACTION_CAMERA,
LC_ACTION_MOVE,
LC_ACTION_ROTATE,
LC_ACTION_ERASER,
LC_ACTION_PAINT,
LC_ACTION_ZOOM,
LC_ACTION_ZOOM_REGION,
LC_ACTION_PAN,
LC_ACTION_ROTATE_VIEW,
LC_ACTION_ROLL,
LC_ACTION_CURVE
};
// Select by Name dialog data
enum LC_SEL_DATA_TYPE
{
LC_SELDLG_PIECE,
LC_SELDLG_CAMERA,
LC_SELDLG_LIGHT,
LC_SELDLG_GROUP
};
struct LC_SEL_DATA
{
const char* name;
unsigned char type;
bool selected;
void* pointer;
};
struct LC_PIECE_MODIFY
{
Piece* piece;
lcVector3 Position;
lcVector3 Rotation;
char name[81];
int from;
int to;
bool hidden;
int color;
};
struct LC_CAMERA_MODIFY
{
Camera* camera;
lcVector3 Eye;
lcVector3 Target;
lcVector3 Up;
char name[81];
float fovy;
float znear;
float zfar;
bool hidden;
};
// Image
enum LC_IMAGE_FORMATS
{
LC_IMAGE_BMP,
LC_IMAGE_GIF,
LC_IMAGE_JPG,
LC_IMAGE_PNG,
LC_IMAGE_AVI
};
struct LC_IMAGE_OPTS
{
unsigned char quality;
bool interlaced;
bool transparent;
bool truecolor;
unsigned char background[3];
float pause;
unsigned int format;
};
struct LC_IMAGEDLG_OPTS
{
char filename[LC_MAXPATH];
unsigned short from;
unsigned short to;
bool multiple;
unsigned short width;
unsigned short height;
LC_IMAGE_OPTS imopts;
};
enum LC_DIALOGS
{
LC_DLG_FILE_OPEN_PROJECT,
LC_DLG_FILE_SAVE_PROJECT,
LC_DLG_FILE_MERGE_PROJECT,
LC_DLG_FILE_OPEN,
LC_DLG_FILE_SAVE,
LC_DLG_DIRECTORY_BROWSE,
LC_DLG_PICTURE_SAVE,
LC_DLG_HTML,
LC_DLG_POVRAY,
LC_DLG_WAVEFRONT,
LC_DLG_MINIFIG,
LC_DLG_ARRAY,
LC_DLG_PREFERENCES,
LC_DLG_PROPERTIES,
LC_DLG_TERRAIN,
LC_DLG_LIBRARY,
LC_DLG_SELECTBYNAME,
LC_DLG_STEPCHOOSE,
LC_DLG_EDITGROUPS,
LC_DLG_GROUP,
LC_DLG_EDITCATEGORY,
LC_DLG_ABOUT
};
enum LC_FILEOPENDLG_TYPES
{
LC_FILEOPENDLG_DAT,
LC_FILEOPENDLG_LCF,
LC_FILEOPENDLG_LUP
};
struct LC_FILEOPENDLG_OPTS
{
int type;
char path[LC_MAXPATH];
int numfiles;
char** filenames;
};
enum LC_FILESAVEDLG_TYPES
{
LC_FILESAVEDLG_LCF,
};
struct LC_FILESAVEDLG_OPTS
{
int type;
char path[LC_MAXPATH];
};
struct LC_DLG_DIRECTORY_BROWSE_OPTS
{
const char* Title;
char Path[LC_MAXPATH];
};
struct LC_POVRAYDLG_OPTS
{
bool render;
char povpath[LC_MAXPATH];
char outpath[LC_MAXPATH];
char libpath[LC_MAXPATH];
};
struct LC_HTMLDLG_OPTS
{
char path[LC_MAXPATH];
bool singlepage;
bool index;
bool images;
bool listend;
bool liststep;
bool highlight;
bool htmlext;
LC_IMAGEDLG_OPTS imdlg;
};
struct LC_ARRAYDLG_OPTS
{
unsigned short n1DCount;
unsigned short n2DCount;
unsigned short n3DCount;
unsigned char nArrayDimension;
float f2D[3];
float f3D[3];
float fMove[3];
float fRotate[3];
};
struct LC_PROPERTIESDLG_OPTS
{
char strAuthor[101];
char strDescription[101];
char strComments[256];
char* strTitle;
char* strFilename;
const char** PieceNames;
int NumPieces;
int* PieceColorCount;
int NumColors;
};
struct LC_GROUPEDITDLG_OPTS
{
int piececount;
Piece** pieces;
Group** piecesgroups;
int groupcount;
Group** groups;
Group** groupsgroups;
};
struct LC_PREFERENCESDLG_OPTS
{
int nMouse;
int nSaveInterval;
char strUser[101];
char strPath[LC_MAXPATH];
unsigned long nDetail;
float fLineWidth;
int AASamples;
unsigned long nSnap;
unsigned short nAngleSnap;
unsigned short nGridSize;
unsigned long nScene;
float fDensity;
char strBackground[LC_MAXPATH];
float fBackground[4];
float fFog[4];
float fAmbient[4];
float fGrad1[3];
float fGrad2[3];
char strFooter[256];
char strHeader[256];
};
struct LC_CATEGORYDLG_OPTS
{
String Name;
String Keywords;
};
enum LC_TRANSFORM_TYPE
{
LC_TRANSFORM_ABSOLUTE_TRANSLATION,
LC_TRANSFORM_RELATIVE_TRANSLATION,
LC_TRANSFORM_ABSOLUTE_ROTATION,
LC_TRANSFORM_RELATIVE_ROTATION,
};
#endif