00001
00002 #ifndef EDFIELD_H
00003 #define EDFIELD_H
00004
00005
00006
00007 #define MAX_FILE_FIELDS 128
00008
00009 enum {
00010 FILE_FIELD_TYPE_LINEAR,
00011 FILE_FIELD_TYPE_ORIENTATION,
00012 FILE_FIELD_TYPE_VELOCITY,
00013 FILE_FIELD_TYPE_SPHERICAL,
00014
00015 FILE_FIELD_TYPE_MAX
00016 };
00017
00018 enum {
00019 FILE_FIELD_AXIS_XY,
00020 FILE_FIELD_AXIS_XZ,
00021 FILE_FIELD_AXIS_ZY,
00022 FILE_FIELD_AXIS_X,
00023 FILE_FIELD_AXIS_Y,
00024 FILE_FIELD_AXIS_Z,
00025 };
00026
00027 typedef struct {
00028 long Type;
00029 VEC Pos;
00030 MAT Matrix;
00031 float Size[3];
00032
00033 VEC Dir;
00034 REAL Mag;
00035 REAL Damping;
00036
00037 REAL RadStart;
00038 REAL RadEnd;
00039 REAL GradStart;
00040 REAL GradEnd;
00041 } FILE_FIELD;
00042
00043
00044
00045 extern void InitFileFields(void);
00046 extern void KillFileFields(void);
00047 extern void LoadFileFields(char *file);
00048 extern void SaveFileFields(char *file);
00049 extern FILE_FIELD *AllocFileField(void);
00050 extern void FreeFileField(FILE_FIELD *field);
00051 extern void DrawFields(void);
00052 extern void DisplayFieldInfo(FILE_FIELD *field);
00053 extern void EditFields(void);
00054 extern void LoadFileFieldModels(void);
00055 extern void FreeFileFieldModels(void);
00056
00057
00058
00059 extern FILE_FIELD *CurrentField;
00060
00061 #endif