Branch data Line data Source code
1 : : //- Class: CubitSimpleAttrib
2 : : //- Owner: Greg Nielson
3 : : //- Description: This class is used to carry information from
4 : : //- the cubit attribute classes to the solid model
5 : : //- attributes.
6 : : //- Checked By:
7 : : //- Version: $Id:
8 : :
9 : : #ifndef CUBIT_SIMPLE_ATTRIB_HPP
10 : : #define CUBIT_SIMPLE_ATTRIB_HPP
11 : :
12 : : #if defined(_MSC_VER)
13 : : #pragma warning(push)
14 : : #pragma warning(disable : 4251) // hide warnings about template dll exports
15 : : #endif
16 : :
17 : : #include "CubitString.hpp"
18 : : #include "CubitDefines.h"
19 : : #include <vector>
20 : : #include "CGMGeomConfigure.h"
21 : : #include <new>
22 : :
23 : : class CUBIT_GEOM_EXPORT CubitSimpleAttrib {
24 : : private:
25 : :
26 : : std::vector<CubitString> stringDataList; // List of CubitString attribute data
27 : :
28 : : std::vector<double> doubleDataList; // List of double attribute data
29 : :
30 : : std::vector<int> intDataList; // List of int attribute data
31 : :
32 : : static CubitBoolean pushAttribs;
33 : : //- if true, when saving attributes, push them to non-primary bridges
34 : : //- on merged ref entities
35 : :
36 : : public:
37 : :
38 : : // returns whether this CSA is valid (it is invalid if the data is empty)
39 : : bool isEmpty() const;
40 : :
41 : : CubitSimpleAttrib();
42 : : //- default constructor
43 : :
44 : : explicit CubitSimpleAttrib(const CubitString new_character_type,
45 : : const CubitString new_string_data = CubitString(),
46 : : const CubitString new_more_string_data = CubitString(),
47 : : const int* new_integer_data = NULL,
48 : : const double* new_double_data = NULL);
49 : : //- constructor
50 : :
51 : : explicit CubitSimpleAttrib(const std::vector<CubitString> *string_list,
52 : : const std::vector<double> *double_list = NULL,
53 : : const std::vector<int> *int_list = NULL);
54 : : //- constructor
55 : :
56 : : CubitSimpleAttrib(const CubitSimpleAttrib& csa_ptr);
57 : : //- copy constructor, sort of
58 : :
59 : : ~CubitSimpleAttrib();
60 : : //- destructor
61 : :
62 : : CubitSimpleAttrib& operator=(const CubitSimpleAttrib &other);
63 : :
64 : : CubitString character_type() const;
65 : : //- returns the type of attribute from the first item in the string list
66 : :
67 : : static void initialize_settings();
68 : :
69 : 382196 : const std::vector<CubitString>& string_data_list() const {return stringDataList;}
70 : 732 : std::vector<CubitString>& string_data_list() {return stringDataList;}
71 : :
72 : : void string_data_list( const std::vector<CubitString>& new_list);
73 : :
74 : 264380 : const std::vector<double>& double_data_list() const {return doubleDataList;}
75 : 0 : std::vector<double>& double_data_list() {return doubleDataList;}
76 : :
77 : : void double_data_list(const std::vector<double>& new_list);
78 : :
79 : 341188 : const std::vector<int>& int_data_list() const {return intDataList;}
80 : 5184 : std::vector<int>& int_data_list() {return intDataList;}
81 : :
82 : : void int_data_list(const std::vector<int>& new_list);
83 : :
84 : :
85 : : bool operator==(const CubitSimpleAttrib& other) const;
86 : : //- return true if the two csa's are equivalent
87 : :
88 : : void print() const;
89 : : //- print the contents of this simpleattrib
90 : :
91 : 780880 : static CubitBoolean get_push_attribs() {return pushAttribs;};
92 : 0 : static void set_push_attribs(CubitBoolean flag) {pushAttribs = flag;};
93 : : //- get/set pushAttribs
94 : :
95 : : };
96 : :
97 : :
98 : : #if defined(_MSC_VER)
99 : : #pragma warning(pop)
100 : : #endif
101 : :
102 : : #endif
103 : :
104 : :
105 : :
106 : :
107 : :
108 : :
109 : :
110 : :
|