cgma
|
00001 //--------------------------------------------------------------------------- 00002 // Class: ImprintLineSegment 00003 // Description: Utility class for boundary imprinting (ImprintBoundaryTool). 00004 // Stores a line segment and its bounding box. Also holds on 00005 // to the owner of the edge. 00006 // Owner: David R. White 00007 // Creation Date: 4/15/2002 00008 //--------------------------------------------------------------------------- 00009 #ifndef IMPRINTLINESEGMENT_HPP 00010 #define IMPRINTLINESEGMENT_HPP 00011 00012 #include "MemoryManager.hpp" 00013 template <class X> class DLIList; 00014 #include "CubitBox.hpp" 00015 class CubitVector; 00016 class RefEntity; 00017 class ImprintPointData; 00018 class ImprintMatchData; 00019 00020 class ImprintLineSegment 00021 { 00022 private: 00023 ImprintPointData *startPoint; 00024 ImprintPointData *endPoint; 00025 ImprintLineSegment *nextSeg, *prevSeg; 00026 CubitBox boundingBox; 00027 RefEntity *myOwner; 00028 DLIList <ImprintMatchData*> *segMatches; 00029 00030 CubitBoolean inactiveFlag; 00031 static MemoryManager memoryManager; 00032 //- memory management object 00033 public: 00034 ImprintLineSegment(ImprintPointData *start_point, 00035 ImprintPointData *end_point, 00036 RefEntity *owner_v); 00037 00038 ~ImprintLineSegment(); 00039 00040 SetDynamicMemoryAllocation(memoryManager) 00041 //- class specific new and delete operators 00042 CubitBox& bounding_box() 00043 {return boundingBox;} 00044 //- Bounding box for the line segment. 00045 00046 ImprintPointData *get_start() 00047 {return startPoint;} 00048 ImprintPointData *get_end() 00049 {return endPoint;} 00050 RefEntity* owner() 00051 {return myOwner;} 00052 //- Entity that this segment lies on. 00053 00054 CubitBoolean get_inactive() 00055 {return inactiveFlag;} 00056 void set_inactive(CubitBoolean m) 00057 {inactiveFlag=m;} 00058 00059 ImprintLineSegment* get_next() 00060 {return nextSeg;} 00061 ImprintLineSegment* get_prev() 00062 {return prevSeg;} 00063 00064 void set_next(ImprintLineSegment *v) 00065 {nextSeg = v;} 00066 void set_prev(ImprintLineSegment *v) 00067 {prevSeg = v;} 00068 00069 void add_match_data(ImprintMatchData* m_d); 00070 00071 void get_match_data(DLIList<ImprintMatchData*> &match_data); 00072 00073 }; 00074 #endif