Branch data Line data Source code
1 : : //- Class: CubitAttrib
2 : : //- Owner: Greg Nielson
3 : : //- Description: implementation of the CubitAttrib class.
4 : : //- Checked By:
5 : : //- Version:
6 : :
7 : : #include "CastTo.hpp"
8 : : #include "CubitAttrib.hpp"
9 : : #include "CubitAttribUser.hpp"
10 : : #include "Body.hpp"
11 : : #include "RefVolume.hpp"
12 : : #include "RefFace.hpp"
13 : : #include "RefEdge.hpp"
14 : : #include "RefVertex.hpp"
15 : : #include "CADeferredAttrib.hpp"
16 : : #include "RefEntity.hpp"
17 : : #include "DLIList.hpp"
18 : : #include "RefEntityFactory.hpp"
19 : : #include "MergeTool.hpp"
20 : : #include "ModelQueryEngine.hpp"
21 : : #include "GeometryQueryTool.hpp"
22 : :
23 : :
24 : :
25 : :
26 : 288446 : CubitAttrib::CubitAttrib(RefEntity *attrib_owner)
27 : : {
28 : 288446 : attribOwnerEntity = attrib_owner;
29 : 288446 : hasActuated = CUBIT_FALSE;
30 : 288446 : hasUpdated = CUBIT_FALSE;
31 : 288446 : hasWritten = CUBIT_FALSE;
32 : 288446 : deleteAttrib = CUBIT_FALSE;
33 : 288446 : nextAttrib = NULL;
34 : :
35 : : // add this to the owner
36 [ + + ]: 288446 : if (attrib_owner) attrib_owner->add_cubit_attrib(this);
37 : 288446 : }
38 : :
39 : 227084 : CubitAttrib::~CubitAttrib()
40 : : {
41 [ + + ]: 227084 : if( !hasActuated )
42 : 223504 : CADeferredAttrib::remove_unactuated_ca( this );
43 [ - + ]: 227084 : }
44 : :
45 : 0 : CubitStatus CubitAttrib::actuate_list(DLIList<RefEntity*> entity_list)
46 : : {
47 : : RefEntity * ref_ent;
48 [ # # ]: 0 : for(int i = entity_list.size(); i > 0; i--)
49 : : {
50 : 0 : ref_ent = entity_list.get_and_step();
51 : 0 : ref_ent->actuate_cubit_attrib(CA_ENTITY_NAME);
52 : 0 : ref_ent->actuate_cubit_attrib ( CA_UNIQUE_ID );
53 : 0 : ref_ent->actuate_cubit_attrib(CA_SIZING_FUNCTION_SKELETON);
54 : 0 : ref_ent->actuate_cubit_attrib(CA_MESH_INTERVAL);
55 : 0 : ref_ent->actuate_cubit_attrib(CA_GROUP);
56 : 0 : ref_ent->actuate_cubit_attrib(CA_GENESIS_ENTITY);
57 : : // ref_ent->actuate_cubit_attrib ( CA_ENTITY_ID );
58 : 0 : ref_ent->actuate_cubit_attrib ( CA_MESH_SCHEME );
59 : 0 : ref_ent->actuate_cubit_attrib ( CA_SMOOTH_SCHEME );
60 : 0 : ref_ent->actuate_cubit_attrib ( CA_PARTITION_VG );
61 : 0 : ref_ent->actuate_cubit_attrib ( CA_COMPOSITE_VG );
62 : 0 : ref_ent->actuate_cubit_attrib ( CA_VIRTUAL_VG );
63 : 0 : ref_ent->actuate_cubit_attrib(CA_MERGE_PARTNER);
64 : 0 : ref_ent->actuate_cubit_attrib(CA_DEFERRED_ATTRIB);
65 : 0 : ref_ent->actuate_cubit_attrib(CA_MESH_CONTAINER);
66 : 0 : ref_ent->actuate_cubit_attrib(CA_BODIES);
67 : 0 : ref_ent->actuate_cubit_attrib ( CA_ENTITY_ID );
68 : 0 : ref_ent->actuate_cubit_attrib(CA_ENTITY_COLOR);
69 : 0 : ref_ent->actuate_cubit_attrib(CA_ENTITY_TOL);
70 : : //#ifdef CAT
71 : 0 : ref_ent->actuate_cubit_attrib(CA_VERTEX_FORCE);
72 : 0 : ref_ent->actuate_cubit_attrib(CA_SURFACE_FORCE);
73 : 0 : ref_ent->actuate_cubit_attrib(CA_CURVE_FORCE);
74 : 0 : ref_ent->actuate_cubit_attrib(CA_VERTEX_DISPLACEMENT);
75 : 0 : ref_ent->actuate_cubit_attrib(CA_SURFACE_DISPLACEMENT);
76 : 0 : ref_ent->actuate_cubit_attrib(CA_CURVE_DISPLACEMENT);
77 : 0 : ref_ent->actuate_cubit_attrib(CA_VOLUME_DISPLACEMENT);
78 : 0 : ref_ent->actuate_cubit_attrib(CA_SURFACE_PRESSURE);
79 : 0 : ref_ent->actuate_cubit_attrib(CA_CURVE_PRESSURE);
80 : 0 : ref_ent->actuate_cubit_attrib(CA_SURFACE_TEMPERATURE);
81 : 0 : ref_ent->actuate_cubit_attrib(CA_CURVE_TEMPERATURE);
82 : 0 : ref_ent->actuate_cubit_attrib(CA_VERTEX_TEMPERATURE);
83 : 0 : ref_ent->actuate_cubit_attrib(CA_SURFACE_HEATFLUX);
84 : 0 : ref_ent->actuate_cubit_attrib(CA_CURVE_HEATFLUX);
85 : 0 : ref_ent->actuate_cubit_attrib(CA_SURFACE_CONVECTION);
86 : 0 : ref_ent->actuate_cubit_attrib(CA_CURVE_CONVECTION);
87 : 0 : ref_ent->actuate_cubit_attrib(CA_SURFACE_CONTACT);
88 : 0 : ref_ent->actuate_cubit_attrib(CA_CURVE_CONTACT);
89 : 0 : ref_ent->actuate_cubit_attrib(CA_COORD_SYS);
90 : 0 : ref_ent->actuate_cubit_attrib(CA_PROPERTY_BLOCK);
91 : 0 : ref_ent->actuate_cubit_attrib(CA_MATERIAL_BLOCK);
92 : : //#endif
93 : 0 : ref_ent->actuate_cubit_attrib(CA_MERGE_STATUS);
94 : : }
95 : 0 : return CUBIT_SUCCESS;
96 : : }
97 : :
98 : 235867 : void CubitAttrib::has_written(CubitBoolean set_has_written)
99 : : {
100 : 235867 : hasWritten = set_has_written;
101 : :
102 : : // if the written flag is being set to true, reset the hasUpdated flag
103 [ + + ]: 235867 : if (CUBIT_TRUE == hasWritten)
104 : 26440 : hasUpdated = CUBIT_FALSE;
105 : 235867 : }
106 : :
107 : 241598 : CubitBoolean CubitAttrib::has_written() const
108 : 241598 : {return hasWritten;}
109 : :
110 : 0 : void CubitAttrib::remove_attribute()
111 : : {
112 [ # # ]: 0 : if (has_written())
113 : 0 : attribOwnerEntity->remove_attrib_geometry_entity(this);
114 : 0 : }
115 : :
116 : 0 : void CubitAttrib::add_attribute()
117 : : {
118 : 0 : attribOwnerEntity->add_cubit_attrib(this);
119 : 0 : }
120 : :
121 : 0 : int CubitAttrib::equivalent(const CubitSimpleAttrib& csa_ptr)
122 : : {
123 : : //- return true if the csa and this are equivalent
124 [ # # ]: 0 : CubitSimpleAttrib this_csa_ptr = cubit_simple_attrib();
125 : :
126 [ # # ][ # # ]: 0 : return this_csa_ptr == csa_ptr;
127 : : }
128 : :
129 : 0 : void CubitAttrib::print()
130 : : {
131 : : // print some details about this attrib
132 [ # # ][ # # ]: 0 : PRINT_INFO("Attrib type %s, Owner = %s %d, Actuated=%d, Updated=%d, "
[ # # ]
133 : : "Written=%d, Delete=%d\n",
134 : : att_internal_name(),
135 : : (attribOwnerEntity ? attribOwnerEntity->class_name() : "(none)"),
136 : : (attribOwnerEntity ? attribOwnerEntity->id() : 0),
137 : : hasActuated, hasUpdated,
138 [ # # ]: 0 : hasWritten, deleteAttrib);
139 : :
140 [ + - ][ + - ]: 6540 : }
141 : :
|