Branch data Line data Source code
1 : : //- Class: CAMergePartner
2 : : //- Owner: Greg Nielson
3 : : //- Description: Cubit attribute for merge partners.
4 : : //- Checked by:
5 : : //- Version:
6 : :
7 : : #ifndef CA_MERGE_PARTNER_HPP
8 : : #define CA_MERGE_PARTNER_HPP
9 : :
10 : : #include "CubitAttrib.hpp"
11 : : #include "CubitString.hpp"
12 : : #include "CubitDefines.h"
13 : : #include "CADefines.hpp"
14 : :
15 : : class RefEntity;
16 : : class RefEntity;
17 : : template <class X> class DLIList;
18 : :
19 : : class CUBIT_GEOM_EXPORT CAMergePartner: public CubitAttrib
20 : : {
21 : :
22 : : private:
23 : : int mergeID;
24 : : //- a unique id to verify proper merging
25 : :
26 : : int isSurvivor;
27 : : CubitSense bridge_sense_;
28 : :
29 : : public:
30 : : CAMergePartner(RefEntity*, const CubitSimpleAttrib&);
31 : : //- construct a CAMP from a simple attribute
32 : :
33 : : void initialize();
34 : : //- initialize the data for this CA
35 : :
36 : : virtual ~CAMergePartner();
37 : :
38 : : CubitStatus actuate();
39 : :
40 : : CubitStatus actuate_list(DLIList<RefEntity*>);
41 : :
42 : : CubitStatus update();
43 : :
44 : : CubitStatus reset();
45 : : //- just reset the merge id
46 : :
47 : : CubitSimpleAttrib cubit_simple_attrib();
48 : :
49 : : CubitSimpleAttrib cubit_simple_attrib(CubitString);
50 : :
51 : 9800 : int merge_id(){return mergeID;}
52 : :
53 : 352212 : int int_attrib_type() {return CA_MERGE_PARTNER;}
54 : : //- returns the enumerated attribute type
55 : :
56 : 0 : CubitSense bridge_sense()
57 : 0 : { return bridge_sense_; }
58 : :
59 : : static void set_survivor( CubitSimpleAttrib& csa, int is_survivor );
60 : : static CubitBoolean is_survivor( const CubitSimpleAttrib& csa );
61 : :
62 : : static void set_bridge_sense(CubitSimpleAttrib& csa, CubitSense sense);
63 : : static CubitSense get_bridge_sense( const CubitSimpleAttrib& csa_ptr );
64 : :
65 : : static void set_saved_id( CubitSimpleAttrib& csa, int id );
66 : : static int get_saved_id( const CubitSimpleAttrib& csa );
67 : : // returns zero if not set.
68 : :
69 : : void merge_prepare(DLIList<RefEntity*> &merge_list);
70 : : //- pass back a list of mergable entities with same unique id
71 : :
72 : : virtual void print();
73 : : //- print the info in this attribute
74 : :
75 : : };
76 : :
77 : 0 : inline CubitStatus CAMergePartner::reset()
78 : : {
79 : 0 : mergeID = -1;
80 : 0 : hasUpdated = CUBIT_FALSE;
81 : 0 : hasActuated = CUBIT_FALSE;
82 : 0 : hasWritten = CUBIT_FALSE;
83 : 0 : deleteAttrib = CUBIT_FALSE;
84 : 0 : bridge_sense_ = CUBIT_UNKNOWN;
85 : 0 : return CUBIT_SUCCESS;
86 : : }
87 : :
88 : : CubitAttrib* CAMergePartner_creator(RefEntity* entity, const CubitSimpleAttrib &p_csa);
89 : :
90 : : #endif
91 : :
|