Branch data Line data Source code
1 : : //- File: CAEntityColor.cpp
2 : : //- Owner: Joel Kopp
3 : : //- Description: Cubit Attribute for entity colors.
4 : : //- Checked By:
5 : : //- Version:
6 : :
7 : : #include "CAEntityColor.hpp"
8 : : #include "RefEntity.hpp"
9 : : #include "RefVolume.hpp"
10 : : #include "CastTo.hpp"
11 : : #include "CubitMessage.hpp"
12 : :
13 : 10348 : CubitAttrib* CAEntityColor_creator(RefEntity* entity, const CubitSimpleAttrib &p_csa)
14 : : {
15 [ + - ]: 10348 : return new CAEntityColor(entity, p_csa);
16 : : }
17 : :
18 : 10348 : CAEntityColor::CAEntityColor(RefEntity* new_attrib_owner,
19 : : const CubitSimpleAttrib &csa_ptr)
20 : 10348 : : CubitAttrib(new_attrib_owner)
21 : : {
22 : 10348 : entityColor = 0;
23 : :
24 [ + - ][ - + ]: 10348 : if(!csa_ptr.isEmpty())
25 : : {
26 [ # # ]: 0 : const std::vector<int>& i_list = csa_ptr.int_data_list();
27 [ # # ][ # # ]: 0 : assert(i_list.size() > 0);
28 [ # # ]: 0 : entityColor = i_list[0];
29 : : }
30 : 10348 : }
31 : :
32 : 31044 : CAEntityColor::~CAEntityColor()
33 : : {
34 [ - + ]: 20696 : }
35 : :
36 : :
37 : 0 : CubitStatus CAEntityColor::actuate()
38 : : {
39 [ # # ]: 0 : if ( hasActuated)
40 : 0 : return CUBIT_SUCCESS;
41 : :
42 [ # # ]: 0 : if ( !attribOwnerEntity )
43 : 0 : return CUBIT_FAILURE;
44 : :
45 : 0 : deleteAttrib = CUBIT_FALSE;
46 : :
47 : : //- If actuating after import, change the color. Else (auto actuated) color is already changed...
48 [ # # ][ # # ]: 0 : if( attribOwnerEntity->color() == CUBIT_DEFAULT_COLOR_INDEX ||
[ # # ]
49 [ # # ]: 0 : dynamic_cast<RefVolume*>(attribOwnerEntity) )
50 : : {
51 : 0 : attribOwnerEntity->color(entityColor);
52 : : }
53 : :
54 : 0 : hasActuated = CUBIT_TRUE;
55 : 0 : return CUBIT_SUCCESS;
56 : : }
57 : :
58 : 10348 : CubitStatus CAEntityColor::update()
59 : : {
60 : 10348 : delete_attrib(CUBIT_TRUE);
61 : 10348 : return CUBIT_SUCCESS;
62 : :
63 : : /*
64 : : if ( hasUpdated )
65 : : return CUBIT_SUCCESS;
66 : :
67 : : if ( !attribOwnerEntity)
68 : : return CUBIT_FAILURE;
69 : :
70 : : entityColor = attribOwnerEntity->color();
71 : :
72 : : // set the updated flag
73 : : hasUpdated = CUBIT_TRUE;
74 : :
75 : : if( entityColor == -1 )
76 : : {
77 : : delete_attrib(CUBIT_TRUE);
78 : : return CUBIT_SUCCESS;
79 : : }
80 : :
81 : : return CUBIT_SUCCESS;
82 : : */
83 : : }
84 : :
85 : 0 : void CAEntityColor::merge_owner(CubitAttrib *deletable_attrib)
86 : : {
87 : : // take the id with the lowest value
88 [ # # ]: 0 : CAEntityColor *other_caecolor = CAST_TO(deletable_attrib, CAEntityColor);
89 : :
90 [ # # ]: 0 : if (other_caecolor)
91 : 0 : entityColor = other_caecolor->color();
92 : 0 : }
93 : :
94 : 10348 : CubitSimpleAttrib CAEntityColor::cubit_simple_attrib()
95 : : {
96 [ + - ]: 10348 : std::vector<CubitString> cs_list;
97 [ + - ][ + - ]: 20696 : std::vector<int> i_list;
98 : :
99 [ + - ]: 10348 : i_list.push_back ( entityColor );
100 : :
101 [ + - ][ + - ]: 10348 : cs_list.push_back(att_internal_name());
[ + - ][ + - ]
102 : :
103 [ + - ][ + - ]: 20696 : return CubitSimpleAttrib(&cs_list, NULL, &i_list);
104 : : }
105 : :
106 : 0 : void CAEntityColor::print()
107 : : {
108 : : // print info on this attribute
109 : :
110 [ # # ]: 0 : PRINT_INFO("CAEntityColor: owner = %s %d: color ",
111 [ # # ]: 0 : attribOwnerEntity->class_name(), attribOwnerEntity->id());
112 [ # # ]: 0 : if ( entityColor > -1 )
113 [ # # ]: 0 : PRINT_INFO(" %d\n",
114 [ # # ]: 0 : entityColor);
115 : : else
116 [ # # ][ # # ]: 0 : PRINT_INFO("\n");
117 [ + - ][ + - ]: 6540 : }
|