Branch data Line data Source code
1 : : //- Class: CAUniqueId
2 : : //- Owner: Greg Nielson
3 : : //- Description: Cubit attribute for mesh interval.
4 : : //- Checked by:
5 : : //- Version:
6 : :
7 : : #ifndef CA_UNIQUE_ID_HPP
8 : : #define CA_UNIQUE_ID_HPP
9 : :
10 : : #include "CubitAttrib.hpp"
11 : : #include "DLIList.hpp"
12 : : #include "CADefines.hpp"
13 : :
14 : : typedef std::map<long, long> UIDMap;
15 : :
16 : : class CUBIT_GEOM_EXPORT CAUniqueId: public CubitAttrib
17 : : {
18 : : private:
19 : :
20 : : int uniqueId;
21 : : //- the unique id tag for an entity
22 : :
23 : : static DLIList<CAUniqueId *> allCAUniqueIds;
24 : : //- list of all CAUI's; used in actuate_all function
25 : :
26 : : static bool autoUniqueId;
27 : : //- flag controlling whether uids are automatically created (even when no other
28 : : //- CA's request them)
29 : :
30 : : static UIDMap oldUIDToNewUID;
31 : :
32 : : public:
33 : :
34 : : virtual ~CAUniqueId();
35 : :
36 : : CAUniqueId(RefEntity*, const CubitSimpleAttrib&);
37 : : //- make a CAMI from a simple attribute
38 : :
39 : : CubitStatus actuate();
40 : :
41 : : CubitStatus update();
42 : :
43 : 0 : CubitStatus reset() {return CUBIT_SUCCESS;};
44 : : //- don't need to do anything, as all the data gets assigned
45 : : //- and not appended
46 : :
47 : : CubitSimpleAttrib cubit_simple_attrib();
48 : :
49 : : int unique_id() { return uniqueId;}
50 : :
51 : : void unique_id (int id) {uniqueId = id;};
52 : :
53 : 266252 : int int_attrib_type() {return CA_UNIQUE_ID;};
54 : :
55 : : static CubitStatus actuate_all();
56 : : //- actuate all the CAUI's on the list, then empty the list
57 : :
58 : : static bool auto_unique_id();
59 : : static void auto_unique_id(const bool flag);
60 : : //- get/set autoUniqueId
61 : :
62 : : virtual void print();
63 : : //- print the value of this attribute
64 : :
65 : 2232 : static UIDMap get_old_to_new_uid_map() { return oldUIDToNewUID; }
66 : : static void clear_out_old_to_new_map();
67 : :
68 : : };
69 : :
70 : : inline bool CAUniqueId::auto_unique_id()
71 : : {
72 : : return autoUniqueId;
73 : : }
74 : :
75 : : inline void CAUniqueId::auto_unique_id(const bool flag)
76 : : {
77 : : autoUniqueId = flag;
78 : : }
79 : :
80 : : CubitAttrib* CAUniqueId_creator(RefEntity* entity, const CubitSimpleAttrib &p_csa);
81 : :
82 : : #endif
83 : :
|