#ifndef __LEDSPARSERSTL_H__ #define __LEDSPARSERSTL_H__ #include "mathlib.h" #include "parserstl.h" #include "math.h" class CLEDSGeometry; ////////////////////////////////////////////////////////////////////////////// // CLEDSParserSTL Class // class CLEDSParserSTL : public CParserSTL { ////////////////////////////////////////////////// // Enumerated Types // ////////////////////////////////////////////////// // Initialization // public: CLEDSParserSTL(); virtual ~CLEDSParserSTL(); virtual VOID Init(CHAR *pcFile, CHAR **ppcDirectories, UINT_32 uiDirectories, CParserSTL **ppyy_CParserSTL, YYLTYPE *pyylloc, YY_PARSE_TYPE *pfyy_Parse, CScanner **ppyy_CScanner, int *pyyleng, YY_BEGIN_INITIAL_TYPE *pfyy_BeginInitial, YY_GET_CURRENT_BUFFER_TYPE *pfyy_GetCurrentBuffer, YY_CREATE_BUFFER_TYPE *pfyy_CreateBuffer, YY_DELETE_BUFFER_TYPE *pfyy_DeleteBuffer, YY_SWITCH_TO_BUFFER_TYPE *pfyy_SwitchToBuffer, YY_SET_VALUE_INT_TYPE *pfyy_SetValueInt, YY_SET_VALUE_FLOAT_TYPE *pfyy_SetValueFloat, YY_SET_VALUE_STRING_TYPE *pfyy_SetValueString); virtual VOID Uninit(); VOID Local_Uninit(); ////////////////////////////////////////////////// // AST Functions // public: virtual VOID AddLumpSet(CHAR *pcFile, UINT_32 uiLine, UINT_32 uiColumn) = 0; virtual VOID EndLumpSet() = 0; VOID AddLump(CHAR *pcFile, UINT_32 uiLine, UINT_32 uiColumn); VOID EndLump(); virtual VOID AddTriangle(CHAR *pcFile, UINT_32 uiLine, UINT_32 uiColumn) = 0; VOID EndTriangle(); VOID AddVertex(CHAR *pcFile, UINT_32 uiLine, UINT_32 uiColumn, FLOAT fX, FLOAT fY, FLOAT fZ); protected: virtual VOID AddFirstVertex(FLOAT fX, FLOAT fY, FLOAT fZ) = 0; virtual VOID AddMiddleVertex(FLOAT fX, FLOAT fY, FLOAT fZ) = 0; virtual VOID AddLastVertex(FLOAT fX, FLOAT fY, FLOAT fZ) = 0; ////////////////////////////////////////////////// // Accessor Functions // public: inline CLEDSGeometry *GetCLEDSGeometry() {return m_pCLEDSGeometry;}; ////////////////////////////////////////////////// // Class Variables // ////////////////////////////////////////////////// // Member Variables // public: protected: CLEDSGeometry *m_pCLEDSGeometry; UINT_32 m_uiVertexCount; Point *m_pPtFirst; Point *m_pPtPrev; Point *m_pPtCur; /* Point *m_pPtFirstStored; Point *m_pPtPrevStored; Point *m_pPtCurStored; */ UINT_32 m_uiFirstStored; UINT_32 m_uiPrevStored; UINT_32 m_uiCurStored; }; ////////////////////////////////////////////////////////////////////// // Inlined Functions // #endif // __LEDSPARSERSTL_H__