home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BUG 15
/
BUGCD1998_06.ISO
/
aplic
/
felixcad
/
fcaddata.z
/
FDT_TYPE.H
< prev
next >
Wrap
C/C++ Source or Header
|
1997-07-03
|
6KB
|
132 lines
/****************************************************************************
(C) FELIX Computer Aided Technologies GmbH 1995-96
Module: Definitions of data types, structures and functions for FDT
File: fdt_type.h
Author: R. Nuernberger
Created: Oct. 18, 1993
Updated:
****************************************************************************/
#ifndef _fdt_types_h
#define _fdt_types_h
/* Byte Alignment 2 */
#pragma pack(2)
#define ANSI
typedef double fdt_real; // Type Real
typedef fdt_real fdt_point[3]; // Type Point Coordinates
typedef unsigned long fdt_name[2]; // Type des Entity Name or Selection Set Name
typedef fdt_real fdt_matrix[4][4]; // Type of the FDT transformation matrix
#define T 3 // Translation vector of 3D matrix
struct fdt_binary { // Structure for binary extended entity data
short clen; // Length in bytes
char *buf; // Pointer to data
};
union fdt_u_val { // Union for data of FDT result buffer
fdt_real rreal; // Floating point value
fdt_point rpoint; // Point coordinates
short rint; // Short integer
long rlong; // Long integer
LPSTR rstring; // Pointer to string
unsigned long rlname[2]; //
struct fdt_binary rbinary; // Structure for binary Extended Entity Data info
};
struct resbuf { // Result Buffer
struct resbuf *rbnext; // Pointer to next element
short restype; // Type of data in union resval
union fdt_u_val resval; // Union for the data
};
struct cursordef { // Cursor Definition
short cursorstyle; // Cursor Style
fdt_point cursorpnt1; // First Defpoint
fdt_point cursorpnt2; // Second Defpoint
};
/* Control bits for fdt_initget() */
#define RSG_NONULL 0x001 // No null input accepted
#define RSG_NOZERO 0x002 // No zero input accepted
#define RSG_NONEG 0x004 // No negative value input accepted
#define RSG_NOLIM 0x008 // (not yet evaluated)
#define RSG_GETZ 0x010 // Returns Z coordinate
#define RSG_DASH 0x020 // (not yet evaluated)
#define RSG_2D 0x040 // Z coordinate ignored
#define RSG_OTHER 0x080 // Any keyboard input accepted
#define RSG_BUTTON 0x100 // Keywords are displayed in context bar (options bar)
/* Cursor Style Definitions (bit-coded) */
#define CUR_BIGCROSS 1 // Big crosshair (over entire window, in the current UCS)
#define CUR_SMALLCROSS 2 // Small crosshair
#define CUR_WINDOW 4 // Window in VCS
#define CUR_PICKBOX 8 // Select Box
#define CUR_SNAPBOX 16 // Snap Box
#define CUR_RB_BAND 32 // Single rubberband
#define CUR_DRB_BAND 64 // Double rubberband
#define CUR_VBIGCROSS 128 // Crosshair (over entire window, in the current VCS)
#define CUR_UCSWINDOW 256 // Window in UCS
/* Definitions of Snap Modes (bit coded) */
#define SN_NONE 0 // No snap
#define SN_END 1 // End point
#define SN_MID 2 // Mid point
#define SN_CEN 4 // Center point
#define SN_PNT 8 // Point entity
#define SN_QUA 16 // Quadrant
#define SN_INT 32 // Intersection
#define SN_INS 64 // Insertion base point
#define SN_PER 128 // Perpendicular point
#define SN_TAN 256 // Tangent
#define SN_NXT 512 // Next point on entity
#define SN_APPINT 1024 // Virtual Intersection
/* Result Type Definitions for the function fdt_getinput() */
#define GC_NOTVALID 0 // Invalid input
#define GC_USER_BREAK 1 // Break
#define GC_VALUE 2 // Numerical input
#define GC_3DPOINT 4 // 3D-point input
#define GC_STRING 8 // String input
#define GC_CURSOR_MOVE 16 // Cursor movement
#define GC_CHAR 32 // Single character input
#define GC_SNAME 64 // Selection set specification
#define GC_ENAME 128 // Entity name specification
#define GC_ENAMEPNT 256 // Entity name and 3D-point
#define GC_KWORD 512 // Keyword input (pre-defined by fdt_initget())
/* Definitions of predifined dragmodes (bit coded) */
#define DRAG_VERT_LINE 1 // drages vertical line at cursorposition
#define DRAG_HORZ_LINE 2 // drages horizontal line at cursorposition
#define DRAG_GEN_LINE1 4 // drages line at cursorposition (needs two points)
#define DRAG_GEN_LINE2 8 // drages line at cursorposition (needs one points)
#define DRAG_CIRC_RAD 16 // drags circle using radius
#define DRAG_CIRC_DIA1 32 // drags circle using midpoint and diameter
#define DRAG_CIRC_DIA2 64 // drags circle using perepheriepoint and diameter
#define DRAG_ARC 128 // drags arc
/* Definitions of predifined reasons for notifications (NOT bit-coded !!) */
#define NOTIFY_NEW 1 // after open a new drawing
#define NOTIFY_OPEN 2 // after open a existing drawing
#define NOTIFY_SAVE 3 // before saving a dreawing
#define NOTIFY_CLOSE 4 // before closeing a drawing
#define NOTIFY_EXIT 5 // before exit FCAD
/* Definitions of images types */
#define TYPE_NON 0xFFFF
#define TYPE_BMP 0
#define TYPE_WMF 1
/* Reset Byte Alignment */
#pragma pack()
#endif
/* end of file */