#ifndef __mSIFPART_H__ #define __mSIFPART_H__ #include "genlib.h" #include "datalib.h" #include "sifsolid.h" class CSIFPartGeomIter; ////////////////////////////////////////////////////////////////////////////// // CSIFPart Class // class CSIFPart { public: friend class CSIFPartGeomIter; ////////////////////////////////////////////////// // Initialization // public: CSIFPart(); ~CSIFPart(); VOID Init(); VOID AddSolid(CSIFSolid *); VOID MakeSingleShellPart(CLEDSGeometry *); ////////////////////////////////////////////////// // Accessor Functions // FLOAT GetUnits() {return m_fUnits;}; FLOAT GetCoordPrecision() {return m_fCoordPrecision;}; FLOAT GetDesiredAccuracy() {return m_fDesiredAccuracy;}; VOID SetUnits(FLOAT fUnits) { m_fUnits = fUnits;}; VOID SetCoordPrecision(FLOAT fCoordPrecision) { m_fCoordPrecision = fCoordPrecision;}; VOID SetDesiredAccuracy(FLOAT fDesiredAccuracy) { m_fDesiredAccuracy = fDesiredAccuracy;}; CList *GetListSolids() {return m_pCListSolids;}; ////////////////////////////////////////////////// // Output Functions // VOID OutputLayer(FLOAT, INT_32 iPrecisionExp); ////////////////////////////////////////////////// // Member Variables // CList *m_pCListSolids; FLOAT m_fUnits; FLOAT m_fCoordPrecision; FLOAT m_fDesiredAccuracy; }; class CSIFPartGeomIter { public: CSIFPartGeomIter(); inline ~CSIFPartGeomIter() {}; VOID Init(CSIFPart *); protected: BOOL Valid(); public: // Iteration Functions CLEDSGeometry *PeekNext(); protected: CSIFPart *m_pCSIFPart; CSIFSolid *m_pCurSolid; CListIter m_SolidListIter; CSIFSolidGeomIter m_SolidGeomIter; }; #endif // __mSIFPART_H__