Branch data Line data Source code
1 : : //-------------------------------------------------------------------------
2 : : // Filename : GeometryEntity.hpp
3 : : //
4 : : // Purpose : This file contains the declarations of the base class
5 : : // GeometryEntity. This is the root of the class hierarchy
6 : : // the encapsulates all geometry information attached to
7 : : // topological entities. The topological entities are
8 : : // independent of their underlying geometric representation.
9 : : //
10 : : // Special Notes :
11 : : //
12 : : // Creator : Xuechen Liu
13 : : //
14 : : // Creation Date : 07/11/96
15 : : //
16 : : // Owner : Malcolm J. Panthaki
17 : : //-------------------------------------------------------------------------
18 : :
19 : : #ifndef GEOMETRY_ENTITY_HPP
20 : : #define GEOMETRY_ENTITY_HPP
21 : :
22 : : // ********** BEGIN STANDARD INCLUDES **********
23 : : // ********** END STANDARD INCLUDES **********
24 : :
25 : : // ********** BEGIN CUBIT INCLUDES **********
26 : : #include "TopologyBridge.hpp"
27 : : #include "GeometryDefines.h"
28 : : #include "CubitBox.hpp"
29 : : #include "CubitObservable.hpp"
30 : : // ********** END CUBIT INCLUDES **********
31 : :
32 : : // ********** BEGIN MACROS DEFINITIONS **********
33 : : // ********** END MACROS DEFINITIONS **********
34 : :
35 : : // ********** BEGIN FORWARD DECLARATIONS **********
36 : : class TopologyEntity ;
37 : : template <class X> class DLIList;
38 : : class GeometryQueryEngine ;
39 : : // ********** END FORWARD DECLARATIONS **********
40 : :
41 : : // ********** BEGIN ENUM DEFINITIONS **********
42 : : // ********** END ENUM DEFINITIONS **********
43 : :
44 : : class CUBIT_GEOM_EXPORT GeometryEntity : public TopologyBridge
45 : : {
46 : : public :
47 : :
48 [ + - ]: 85251 : GeometryEntity() : myId(0) {}
49 : : //- The default constructor
50 : :
51 : : virtual ~GeometryEntity();
52 : : //- The destructor
53 : : //- The destructor is made pure virtual to prevent instantiation
54 : : //- of this class.
55 : :
56 : : virtual CubitBox bounding_box() const = 0;
57 : :
58 : : virtual double measure() = 0;
59 : : //R double
60 : : //R- The numeric value of the measure (its units depend on the dimension
61 : : //R- of the RefEntity being "measured")
62 : : //- A generic geometric extent function.
63 : : //- Returns volume for Lump, area for Surface, length for Curve and
64 : : //- 1.0 for Point
65 : :
66 : : virtual GeometryType geometry_type() = 0;
67 : : //R GeometryType (enum)
68 : : //R- The enumerated type of the geometric representation
69 : : //- Returns the type of geometric representation, e.g.
70 : : //- STRAIGHT_CURVE_TYPE, SPHERE_SURFACE_TYPE, etc
71 : :
72 : 163784 : int get_saved_id() const { return myId; }
73 : 80030 : void set_saved_id( int value ) { myId = value; }
74 : :
75 : : void get_saved_names( std::vector<CubitString> &names );
76 : : void set_saved_names( const std::vector<CubitString>& names );
77 : :
78 : : protected:
79 : : private:
80 : :
81 : : int myId;
82 : : std::vector<CubitString> myNames;
83 : :
84 : : };
85 : :
86 : : // ********** BEGIN HELPER CLASSES **********
87 : : // ********** END HELPER CLASSES **********
88 : :
89 : : // ********** BEGIN INLINE FUNCTIONS **********
90 : : // ********** END INLINE FUNCTIONS **********
91 : :
92 : : // ********** BEGIN FRIEND FUNCTIONS **********
93 : : // ********** END FRIEND FUNCTIONS **********
94 : :
95 : : // ********** BEGIN EXTERN FUNCTIONS **********
96 : : // ********** END EXTERN FUNCTIONS **********
97 : :
98 : : #endif
99 : :
|