Branch data Line data Source code
1 : : //- Class: CAPartitionVG
2 : : //- Owner: Tim Tautges
3 : : //- Description: Cubit attribute for partition virtual geometry
4 : : //- Checked by:
5 : : //- Version:
6 : : //-
7 : : //- This attribute holds the information necessary to re-partition
8 : : //- an entity into several parts. This attribute does not store the
9 : : //- data necessary to create the virtual entities that partitions this
10 : : //- entity; those data are stored on a CAVirtualVG attribute.
11 : : //-
12 : : //- This attribute stores the following data:
13 : : //- numPC, numPS: the number of partition curves, surfaces this entity
14 : : //- will be split into
15 : : //- vgUIDs[0..3*numPC-1]: uids of start and end vertices, and of partition
16 : : //- curve formed from those
17 : : //- vgUIDs[3*numPC..(end)]: for each partition surface, the uids of the
18 : : //- bounding curves (some of them may be virtual), then the uid of the
19 : : //- partition surface itself
20 : : //- numBdyCurves[numPS]: number of bounding curves for each surface
21 : : //-
22 : : //- For partition surfaces, this attribute actuates by:
23 : : //- . actuating partition VG attributes on next-lower order entities
24 : : //- . actuating virtual VG attributes on self
25 : : //- . gathering up the bounding curve uid's & edges, removing those
26 : : //- already bounding the (non-partitioned) entity
27 : : //- . using these to partition the entity
28 : : //-
29 : :
30 : : #ifndef CA_PARTITION_VG_HPP
31 : : #define CA_PARTITION_VG_HPP
32 : :
33 : : #include "CubitAttrib.hpp"
34 : : #include "DLIList.hpp"
35 : : #include "CADefines.hpp"
36 : :
37 : : class Point;
38 : : class RefEntity;
39 : : class CubitSimpleAttrib;
40 : : class RefEntity;
41 : : class PartitionCurve;
42 : : class PartitionSurface;
43 : : class CubitVector;
44 : : class RefEdge;
45 : : class RefVertex;
46 : : class RefEdge;
47 : : class BasicTopologyEntity;
48 : : class ToolDataUser;
49 : :
50 : : class CAPartitionVG: public CubitAttrib
51 : : {
52 : :
53 : : private:
54 : : int numPC, numPS;
55 : : //- the number of partition curves and surfaces on this entity
56 : :
57 : : DLIList<int> vgUIDs;
58 : : //- unique ids of various entities
59 : :
60 : : DLIList<int> numBdyCurves;
61 : : //- for each partition surface, the number of bounding curves
62 : :
63 : : public:
64 : : CAPartitionVG(RefEntity*, const CubitSimpleAttrib&);
65 : : //- construct a CAPVG from a simple attribute
66 : :
67 [ + - ][ + - ]: 47556 : virtual ~CAPartitionVG() {};
[ - + ]
68 : :
69 : : CubitStatus actuate();
70 : :
71 : : CubitStatus update();
72 : :
73 : : CubitStatus reset();
74 : : //- reset info; called from CAU and also from update!
75 : :
76 : : CubitSimpleAttrib cubit_simple_attrib();
77 : :
78 : : CubitSimpleAttrib cubit_simple_attrib(CubitString);
79 : :
80 : 130724 : int int_attrib_type() {return CA_PARTITION_VG;}
81 : : //- returns the enumerated attribute type
82 : :
83 : : };
84 : :
85 : : CubitAttrib* CAPartitionVG_creator(RefEntity* entity, const CubitSimpleAttrib& p_csa);
86 : :
87 : : #endif
|