Branch data Line data Source code
1 : : //-------------------------------------------------------------------------
2 : : // Filename : CompositeAttrib.cpp
3 : : //
4 : : // Purpose : Container for attribute data placed on composite geometry.
5 : : //
6 : : // Special Notes : This object is intended for internal use by CompositeGeom
7 : : // exclusively.
8 : : //
9 : : // Creator : Jason Kraftcheck
10 : : //
11 : : // Creation Date : 07/01/03
12 : : //-------------------------------------------------------------------------
13 : :
14 : : #include "CompositeAttrib.hpp"
15 : : #include "CubitString.hpp"
16 : : #include "CubitSimpleAttrib.hpp"
17 : :
18 : : //-------------------------------------------------------------------------
19 : : // Purpose : Construct composite attribute object from CSA
20 : : //
21 : : // Special Notes :
22 : : //
23 : : // Creator : Jason Kraftcheck
24 : : //
25 : : // Creation Date : 06/30/03
26 : : //-------------------------------------------------------------------------
27 : 0 : CompositeAttrib::CompositeAttrib( const CubitSimpleAttrib& attrib, CompositeAttrib* n )
28 [ # # ][ # # ]: 0 : : int_array(0), real_array(0), string_array(0), next(n)
[ # # ][ # # ]
[ # # ]
29 : : {
30 [ # # ][ # # ]: 0 : int_array = attrib.int_data_list();
31 [ # # ][ # # ]: 0 : real_array = attrib.double_data_list();
32 [ # # ][ # # ]: 0 : string_array = attrib.string_data_list();
33 : 0 : }
34 : :
35 : : //-------------------------------------------------------------------------
36 : : // Purpose : Copy constructor
37 : : //
38 : : // Special Notes :
39 : : //
40 : : // Creator : Jason Kraftcheck
41 : : //
42 : : // Creation Date : 06/30/03
43 : : //-------------------------------------------------------------------------
44 : 0 : CompositeAttrib::CompositeAttrib( const CompositeAttrib& copy)
45 [ # # ][ # # ]: 0 : : next(0)
46 : : {
47 [ # # ]: 0 : int_array = copy.int_array;
48 [ # # ]: 0 : real_array = copy.real_array;
49 [ # # ]: 0 : string_array = copy.string_array;
50 : 0 : }
51 : :
52 : : //-------------------------------------------------------------------------
53 : : // Purpose : Populate attribute for saving
54 : : //
55 : : // Special Notes :
56 : : //
57 : : // Creator : Jason Kraftcheck
58 : : //
59 : : // Creation Date : 06/30/03
60 : : //-------------------------------------------------------------------------
61 : 0 : void CompositeAttrib::append_to_csa( CubitSimpleAttrib& attrib ) const
62 : : {
63 : 0 : append_to_lists(attrib.string_data_list(),
64 : 0 : attrib.int_data_list(),
65 : 0 : attrib.double_data_list());
66 : 0 : }
67 : :
68 : : //-------------------------------------------------------------------------
69 : : // Purpose : Common functionality for append_to_csa() and csa()
70 : : //
71 : : // Special Notes :
72 : : //
73 : : // Creator : Jason Kraftcheck
74 : : //
75 : : // Creation Date : 06/30/03
76 : : //-------------------------------------------------------------------------
77 : 0 : void CompositeAttrib::append_to_lists( std::vector<CubitString>& string_list,
78 : : std::vector<int>& int_list,
79 : : std::vector<double>& real_list ) const
80 : : {
81 : 0 : int_list.insert(int_list.end(), int_array.begin(), int_array.end());
82 : 0 : real_list.insert(real_list.end(), real_array.begin(), real_array.end());
83 : 0 : string_list.insert(string_list.end(), string_array.begin(), string_array.end());
84 : 0 : }
85 : :
86 : : //-------------------------------------------------------------------------
87 : : // Purpose : Copy data into CSA for return to higher level
88 : : //
89 : : // Special Notes :
90 : : //
91 : : // Creator : Jason Kraftcheck
92 : : //
93 : : // Creation Date : 06/30/03
94 : : //-------------------------------------------------------------------------
95 : 0 : CubitSimpleAttrib CompositeAttrib::csa() const
96 : : {
97 [ # # ]: 0 : std::vector<CubitString> string_list;
98 [ # # ][ # # ]: 0 : std::vector<int> int_list;
99 [ # # ][ # # ]: 0 : std::vector<double> real_list;
100 [ # # ]: 0 : append_to_lists( string_list, int_list, real_list );
101 [ # # ][ # # ]: 0 : return CubitSimpleAttrib(&string_list, &real_list, &int_list);
102 : : }
103 : :
104 : :
105 : : //-------------------------------------------------------------------------
106 : : // Purpose : CompositeAttrib destructor
107 : : //
108 : : // Special Notes :
109 : : //
110 : : // Creator : Jason Kraftcheck
111 : : //
112 : : // Creation Date : 06/30/03
113 : : //-------------------------------------------------------------------------
114 [ # # ][ # # ]: 0 : CompositeAttrib::~CompositeAttrib()
115 : : {
116 : 0 : }
117 : :
118 : : //-------------------------------------------------------------------------
119 : : // Purpose : Compare to a csa
120 : : //
121 : : // Special Notes :
122 : : //
123 : : // Creator : Jason Kraftcheck
124 : : //
125 : : // Creation Date : 06/30/03
126 : : //-------------------------------------------------------------------------
127 : 0 : bool CompositeAttrib::equals( const CubitSimpleAttrib& attrib ) const
128 : : {
129 [ # # ][ # # ]: 0 : if (attrib.string_data_list().size() != string_array.size() ||
130 [ # # ][ # # ]: 0 : attrib.int_data_list().size() != int_array.size() ||
131 : 0 : attrib.double_data_list().size() != real_array.size())
132 : 0 : return false;
133 : :
134 [ # # ]: 0 : return std::equal(string_array.begin(), string_array.end(), attrib.string_data_list().begin()) &&
135 [ # # ][ # # ]: 0 : std::equal(int_array.begin(), int_array.end(), attrib.int_data_list().begin()) &&
136 : 0 : std::equal(real_array.begin(), real_array.end(), attrib.double_data_list().begin());
137 : : }
|