150 lines
3.3 KiB
C++
150 lines
3.3 KiB
C++
// ASEFile.h
|
|
|
|
enum
|
|
{
|
|
TK_ASE_COLON = TK_USERDEF,
|
|
TK_ASE_OBRACE,
|
|
TK_ASE_CBRACE,
|
|
TK_ASE_ASTERISK,
|
|
TK_MESH,
|
|
TK_TIMEVALUE,
|
|
TK_MESH_NUMVERTEX,
|
|
TK_MESH_NUMFACES,
|
|
TK_MESH_VERTEX_LIST,
|
|
TK_MESH_VERTEX,
|
|
TK_MESH_FACE_LIST,
|
|
TK_MESH_FACE,
|
|
TK_MESH_NUMTVERTEX,
|
|
TK_MESH_TVERTLIST,
|
|
TK_MESH_TVERT,
|
|
TK_MESH_NUMTVFACES,
|
|
TK_MESH_TFACELIST,
|
|
TK_MESH_TFACE,
|
|
TK_MESH_ANIMATION,
|
|
TK_WIREFRAME_COLOR,
|
|
TK_CONTROL_BEZIER_SCALE_KEY,
|
|
TK_CONTROL_SCALE_BEZIER,
|
|
TK_CONTROL_ROT_TCB,
|
|
TK_CONTROL_TCB_ROT_KEY,
|
|
TK_CONTROL_POS_BEZIER,
|
|
TK_CONTROL_BEZIER_POS_KEY,
|
|
TK_NODE_NAME,
|
|
TK_TM_ANIMATION,
|
|
TK_PROP_RECVSHADOW,
|
|
TK_PROP_CASTSHADOW,
|
|
TK_PROP_MOTIONBLUR,
|
|
TK_GEOMOBJECT,
|
|
TK_NODE_PARENT,
|
|
TK_NODE_TM,
|
|
TK_INHERIT_POS,
|
|
TK_INHERIT_ROT,
|
|
TK_INHERIT_SCL,
|
|
TK_TM_ROW0,
|
|
TK_TM_ROW1,
|
|
TK_TM_ROW2,
|
|
TK_TM_ROW3,
|
|
TK_TM_POS,
|
|
TK_TM_ROTAXIS,
|
|
TK_TM_ROTANGLE,
|
|
TK_TM_SCALE,
|
|
TK_TM_SCALEAXIS,
|
|
TK_TM_SCALEAXISANG,
|
|
TK_3DSMAX_ASCIIEXPORT,
|
|
TK_ASE_COMMENT,
|
|
TK_SCENE,
|
|
TK_SCENE_FILENAME,
|
|
TK_SCENE_FIRSTFRAME,
|
|
TK_SCENE_LASTFRAME,
|
|
TK_SCENE_FRAMESPEED,
|
|
TK_SCENE_TICKSPERFRAME,
|
|
TK_SCENE_BACKGROUND_STATIC,
|
|
TK_SCENE_AMBIENT_STATIC,
|
|
TK_MATERIAL_LIST,
|
|
TK_MATERIAL_COUNT,
|
|
TK_MATERIAL,
|
|
TK_MATERIAL_NAME,
|
|
TK_MATERIAL_CLASS,
|
|
TK_MATERIAL_AMBIENT,
|
|
TK_MATERIAL_DIFFUSE,
|
|
TK_MATREIAL_SPECULAR,
|
|
TK_MATERIAL_SHINE,
|
|
TK_MATERIAL_SHINESTRENGTH,
|
|
TK_MATERIAL_TRANSPARENCY,
|
|
TK_MATERIAL_WIRESIZE,
|
|
TK_MATERIAL_SHADING,
|
|
TK_MATERIAL_XP_FALLOFF,
|
|
TK_MATERIAL_SELFILLUM,
|
|
TK_MATERIAL_FALLOFF,
|
|
TK_MATERIAL_SOFTEN,
|
|
TK_MATERIAL_XP_TYPE,
|
|
TK_MAP_DIFFUSE,
|
|
TK_MAP_NAME,
|
|
TK_MAP_CLASS,
|
|
TK_MAP_SUBNO,
|
|
TK_MAP_AMOUNT,
|
|
TK_BITMAP,
|
|
TK_MAP_TYPE,
|
|
TK_UVW_U_OFFSET,
|
|
TK_UVW_V_OFFSET,
|
|
TK_UVW_U_TILING,
|
|
TK_UVW_V_TILING,
|
|
TK_UVW_ANGLE,
|
|
TK_UVW_BLUR,
|
|
TK_UVW_BLUR_OFFSET,
|
|
TK_UVW_NOUSE_AMT,
|
|
TK_UVW_NOISE_SIZE,
|
|
TK_UVW_NOISE_LEVEL,
|
|
TK_UVW_NOISE_PHASE,
|
|
TK_BITMAP_FILTER,
|
|
TK_MESH_SMOOTHING,
|
|
TK_MESH_MTLID,
|
|
TK_LABEL_A,
|
|
TK_LABEL_B,
|
|
TK_LABEL_C,
|
|
TK_LABEL_AB,
|
|
TK_LABEL_BC,
|
|
TK_LABEL_CA,
|
|
};
|
|
|
|
class CASEFile
|
|
{
|
|
public:
|
|
CASEFile();
|
|
~CASEFile();
|
|
static CASEFile* Create(LPCTSTR filename);
|
|
void Delete();
|
|
|
|
void Parse();
|
|
|
|
protected:
|
|
void Init(LPCTSTR filename);
|
|
|
|
void ParseAsciiExport(CTokenizer* tokenizer);
|
|
void ParseComment(CTokenizer* tokenizer);
|
|
void ParseMaterialList(CTokenizer* tokenizer);
|
|
void ParseScene(CTokenizer* tokenizer);
|
|
void ParseGeomObject(CTokenizer* tokenizer);
|
|
|
|
char* m_file;
|
|
int m_export;
|
|
char* m_comment;
|
|
|
|
static keywordArray_t s_symbols[];
|
|
static keywordArray_t s_keywords[];
|
|
static keywordArray_t s_sceneKeywords[];
|
|
static keywordArray_t s_materialKeywords[];
|
|
static keywordArray_t s_mapKeywords[];
|
|
static keywordArray_t s_objectKeywords[];
|
|
static keywordArray_t s_nodeKeywords[];
|
|
static keywordArray_t s_meshKeywords[];
|
|
static keywordArray_t s_vertexKeywords[];
|
|
static keywordArray_t s_faceKeywords[];
|
|
static keywordArray_t s_faceOptionKeywords[];
|
|
static keywordArray_t s_tvertKeywords[];
|
|
static keywordArray_t s_tfaceKeywords[];
|
|
static keywordArray_t s_animationKeywords[];
|
|
static keywordArray_t s_contorlPosBezierKeywords[];
|
|
static keywordArray_t s_controlRotTCBKeywords[];
|
|
static keywordArray_t s_controlScaleBezierKeywords[];
|
|
static keywordArray_t s_labelKeywords[];
|
|
};
|