Branch data Line data Source code
1 : : //- Class: CAMergePartner
2 : : //- Owner: Tim Tautges
3 : : //- Description: Cubit attribute for RefGroups
4 : : //- Checked by:
5 : : //- Version:
6 : :
7 : : #ifndef CA_GROUP_HPP
8 : : #define CA_GROUP_HPP
9 : :
10 : : #include "CubitAttrib.hpp"
11 : : #include "DLIList.hpp"
12 : : #include "CADefines.hpp"
13 : :
14 : : class RefEntity;
15 : : class RefGroup;
16 : :
17 : : class CUBIT_GEOM_EXPORT CAGroup: public CubitAttrib
18 : : {
19 : :
20 : : private:
21 : :
22 : : DLIList<int> groupID;
23 : : //- group ids containing attribOwnerEntity
24 : :
25 : : DLIList<int> uniqueID;
26 : : //- unique ids of groups containing attribOwnerEntity
27 : :
28 : : DLIList<CubitString> groupNames;
29 : : //- names of groups containing attribOwnerEntity
30 : :
31 : : DLIList<int> sequenceNumbers;
32 : : //- sequence numbers of this entity in the groups
33 : :
34 : : DLIList<int> numOwningGroups;
35 : : //- for each group in groupID, number of groups owning those groups
36 : :
37 : : DLIList<int> owningGroupID;
38 : : //- group ids containing groups containing attribOwnerEntity
39 : :
40 : : DLIList<int> owningUniqueID;
41 : : //- unique ids of groups containing groups containing attribOwnerEntity
42 : :
43 : : DLIList<CubitString> owningGroupNames;
44 : : //- names of groups containing groups containing attribOwnerEntity
45 : :
46 : : DLIList<int> owningSequenceNumbers;
47 : : //- sequence numbers of groups in owning groups
48 : :
49 : : //- for each ancestor (a group which owns only other groups, with those
50 : : //- those groups owning only other groups), we store the group id, uid,
51 : : //- name, and the uid of the owned group to which this is an ancestor
52 : : DLIList<int> ancestorGroupID;
53 : : DLIList<int> ancestorUniqueID;
54 : : DLIList<CubitString> ancestorGroupName;
55 : : DLIList<int> ancestorOwnedGroupUid;
56 : : DLIList<int> ancestorSequenceNumbers;
57 : :
58 : : static CubitBoolean initialize_rand;
59 : :
60 : : public:
61 : : CAGroup(RefEntity*, const CubitSimpleAttrib&);
62 : : //- make a CAG from a simple attribute
63 : :
64 : : void initialize();
65 : : //- initialize random number generator for this attribute
66 : :
67 : : virtual ~CAGroup();
68 : :
69 : : CubitStatus actuate();
70 : : //- actuate this attribute
71 : :
72 : : CubitStatus update();
73 : : //- update this attribute
74 : :
75 : : CubitStatus reset();
76 : : //- reset this attribute
77 : :
78 : : CubitSimpleAttrib cubit_simple_attrib();
79 : : //- return a simple attribute with this CA's data
80 : :
81 : : RefGroup *assign_group(RefEntity *owned_entity,
82 : : const int group_id, const int unique_id,
83 : : const CubitString& group_name,
84 : : const int seq_num);
85 : : //- used in actuating this CA
86 : :
87 : : RefGroup *assign_ancestor_group(const int ancestor_id,
88 : : const int ancestor_uid,
89 : : const CubitString& ancestor_name,
90 : : const int owned_group_uid,
91 : : const int seq_num);
92 : :
93 : : void build_ancestor_list(RefGroup *parent_ref_group);
94 : :
95 : 185098 : int int_attrib_type() {return CA_GROUP;}
96 : : //- returns the enumerated attribute type
97 : :
98 : : virtual void has_written(CubitBoolean set_has_written);
99 : : //- class-specific version; resets td_cage on attrib owner
100 : :
101 : 12712 : virtual CubitBoolean has_written() const {return hasWritten;};
102 : : //- class-specific version;
103 : :
104 : : };
105 : :
106 : : CubitAttrib* CAGroup_creator(RefEntity* entity, const CubitSimpleAttrib &p_csa);
107 : :
108 : : #endif
109 : :
|