cgma
|
00001 //- Class: CAPartitionVG 00002 //- Owner: Tim Tautges 00003 //- Description: Cubit attribute for partition virtual geometry 00004 //- Checked by: 00005 //- Version: 00006 //- 00007 //- This attribute holds the information necessary to re-partition 00008 //- an entity into several parts. This attribute does not store the 00009 //- data necessary to create the virtual entities that partitions this 00010 //- entity; those data are stored on a CAVirtualVG attribute. 00011 //- 00012 //- This attribute stores the following data: 00013 //- numPC, numPS: the number of partition curves, surfaces this entity 00014 //- will be split into 00015 //- vgUIDs[0..3*numPC-1]: uids of start and end vertices, and of partition 00016 //- curve formed from those 00017 //- vgUIDs[3*numPC..(end)]: for each partition surface, the uids of the 00018 //- bounding curves (some of them may be virtual), then the uid of the 00019 //- partition surface itself 00020 //- numBdyCurves[numPS]: number of bounding curves for each surface 00021 //- 00022 //- For partition surfaces, this attribute actuates by: 00023 //- . actuating partition VG attributes on next-lower order entities 00024 //- . actuating virtual VG attributes on self 00025 //- . gathering up the bounding curve uid's & edges, removing those 00026 //- already bounding the (non-partitioned) entity 00027 //- . using these to partition the entity 00028 //- 00029 00030 #ifndef CA_PARTITION_VG_HPP 00031 #define CA_PARTITION_VG_HPP 00032 00033 #include "CubitAttrib.hpp" 00034 #include "DLIList.hpp" 00035 #include "CADefines.hpp" 00036 00037 class Point; 00038 class RefEntity; 00039 class CubitSimpleAttrib; 00040 class RefEntity; 00041 class PartitionCurve; 00042 class PartitionSurface; 00043 class CubitVector; 00044 class RefEdge; 00045 class RefVertex; 00046 class RefEdge; 00047 class BasicTopologyEntity; 00048 class ToolDataUser; 00049 00050 class CAPartitionVG: public CubitAttrib 00051 { 00052 00053 private: 00054 int numPC, numPS; 00055 //- the number of partition curves and surfaces on this entity 00056 00057 DLIList<int> vgUIDs; 00058 //- unique ids of various entities 00059 00060 DLIList<int> numBdyCurves; 00061 //- for each partition surface, the number of bounding curves 00062 00063 public: 00064 CAPartitionVG(RefEntity*, const CubitSimpleAttrib&); 00065 //- construct a CAPVG from a simple attribute 00066 00067 virtual ~CAPartitionVG() {}; 00068 00069 CubitStatus actuate(); 00070 00071 CubitStatus update(); 00072 00073 CubitStatus reset(); 00074 //- reset info; called from CAU and also from update! 00075 00076 CubitSimpleAttrib cubit_simple_attrib(); 00077 00078 CubitSimpleAttrib cubit_simple_attrib(CubitString); 00079 00080 int int_attrib_type() {return CA_PARTITION_VG;} 00081 //- returns the enumerated attribute type 00082 00083 }; 00084 00085 CubitAttrib* CAPartitionVG_creator(RefEntity* entity, const CubitSimpleAttrib& p_csa); 00086 00087 #endif