| 1 | //- Class: CAVirtualVG |
|---|
| 2 | //- Owner: Tim Tautges |
|---|
| 3 | //- Description: Cubit attribute for virtual geometry entities |
|---|
| 4 | //- (holds both virtual vertices and virtual curves) |
|---|
| 5 | //- Checked by: |
|---|
| 6 | //- Version: |
|---|
| 7 | //- |
|---|
| 8 | //- This attribute stores: |
|---|
| 9 | //- numVV: number of virtual vertices |
|---|
| 10 | //- numVC: number of virtual curves |
|---|
| 11 | //- vgUIDs[0..numVV-1]: UID's of virtual vertices |
|---|
| 12 | //- vgUIDs[numVV..(end)]: for each curve, UID's of start, end vertices, then |
|---|
| 13 | //- UID of virtual curve |
|---|
| 14 | //- posVector[0..numVV-1]: position of virtual vertices |
|---|
| 15 | //- posVector[numVV..(end)]: positions of vpoints defining vcurve (not including ends) |
|---|
| 16 | //- numVCPoints: number of virtual points for each virtual curve |
|---|
| 17 | |
|---|
| 18 | #ifndef CA_VIRTUAL_VG_HPP |
|---|
| 19 | #define CA_VIRTUAL_VG_HPP |
|---|
| 20 | |
|---|
| 21 | #include "CubitAttrib.hpp" |
|---|
| 22 | #include "DLIList.hpp" |
|---|
| 23 | #include "CADefines.hpp" |
|---|
| 24 | |
|---|
| 25 | class Point; |
|---|
| 26 | class RefEntity; |
|---|
| 27 | class CubitSimpleAttrib; |
|---|
| 28 | //class ParasitePoint; |
|---|
| 29 | //class ParasiteCurve; |
|---|
| 30 | |
|---|
| 31 | class CAVirtualVG: public CubitAttrib |
|---|
| 32 | { |
|---|
| 33 | |
|---|
| 34 | friend class CAPartitionVG; |
|---|
| 35 | |
|---|
| 36 | protected: |
|---|
| 37 | int numVV, numVC; |
|---|
| 38 | //- the number of virtual points and curves contained in this attr |
|---|
| 39 | |
|---|
| 40 | DLIList<int> vgUIDs; |
|---|
| 41 | //- unique ids of virtual points and curves contained in this attr |
|---|
| 42 | |
|---|
| 43 | DLIList<CubitVector*> posVector; |
|---|
| 44 | //- position vectors for virtual curves |
|---|
| 45 | |
|---|
| 46 | DLIList<int> numVCPoints; |
|---|
| 47 | //- for each virtual curve, the number of virtual points in that curve |
|---|
| 48 | |
|---|
| 49 | // void add_vvertex(ParasitePoint *vpoint); |
|---|
| 50 | //- adds data for the RefVertex defined by this vpoint to this CA |
|---|
| 51 | |
|---|
| 52 | // void add_vcurve(ParasiteCurve *vcurve); |
|---|
| 53 | //- adds data for this vcurve to this CA |
|---|
| 54 | |
|---|
| 55 | public: |
|---|
| 56 | CAVirtualVG(RefEntity* ); |
|---|
| 57 | |
|---|
| 58 | CAVirtualVG(RefEntity*, CubitSimpleAttrib*); |
|---|
| 59 | //- construct a CAPVG from a simple attribute |
|---|
| 60 | |
|---|
| 61 | virtual ~CAVirtualVG() {}; |
|---|
| 62 | |
|---|
| 63 | //HEADER- RTTI and safe casting functions. |
|---|
| 64 | virtual const type_info& entity_type_info() const { return typeid(*this);} |
|---|
| 65 | //R- The geometric modeler type |
|---|
| 66 | //- This function returns the type of the geometric modeler. |
|---|
| 67 | |
|---|
| 68 | CubitStatus actuate(); |
|---|
| 69 | |
|---|
| 70 | CubitStatus update(); |
|---|
| 71 | |
|---|
| 72 | CubitStatus reset(); |
|---|
| 73 | //- reset info; called from CAU and also from update! |
|---|
| 74 | |
|---|
| 75 | CubitSimpleAttrib* cubit_simple_attrib(); |
|---|
| 76 | |
|---|
| 77 | CubitSimpleAttrib* cubit_simple_attrib(CubitString); |
|---|
| 78 | |
|---|
| 79 | int int_attrib_type() {return CA_VIRTUAL_VG;} |
|---|
| 80 | //- returns the enumerated attribute type |
|---|
| 81 | |
|---|
| 82 | }; |
|---|
| 83 | |
|---|
| 84 | CubitAttrib* CAVirtualVG_creator(RefEntity* entity, CubitSimpleAttrib *p_csa); |
|---|
| 85 | |
|---|
| 86 | #endif |
|---|