Branch data Line data Source code
1 : : //-------------------------------------------------------------------------
2 : : // Filename : PartitionBody.hpp
3 : : //
4 : : // Purpose : BodySM implementation for partition geometry
5 : : //
6 : : // Special Notes : Catches transforms
7 : : //
8 : : // Creator : Jason Kraftcheck
9 : : //
10 : : // Creation Date : 02/13/03
11 : : //-------------------------------------------------------------------------
12 : :
13 : : #ifndef PARTITION_BODY_HPP
14 : : #define PARTITION_BODY_HPP
15 : :
16 : : #include "BodySM.hpp"
17 : : #include "PartitionEntity.hpp"
18 : :
19 : : class CubitFacetPoint;
20 : : class SegmentedCurve;
21 : : class PartitionPoint;
22 : :
23 : : class PartitionBody : public BodySM, public PartitionEntity
24 : : {
25 : : public:
26 : :
27 : : PartitionBody( BodySM* );
28 : :
29 : : ~PartitionBody();
30 : :
31 : :
32 : : /************** Functions from BodySM **************/
33 : : /*
34 : : CubitStatus move( const CubitVector& offset );
35 : :
36 : : CubitStatus rotate( const CubitVector& axis, double angle );
37 : :
38 : : CubitStatus scale( double factor );
39 : :
40 : : CubitStatus scale( const CubitVector& factors );
41 : :
42 : : CubitStatus reflect( const CubitVector& axis );
43 : :
44 : : CubitStatus restore();
45 : :
46 : : CubitStatus reverse();
47 : : */
48 : : CubitStatus get_transforms( CubitTransformMatrix& );
49 : :
50 : : CubitStatus mass_properties( CubitVector& centroid, double& volume );
51 : :
52 : : CubitPointContainment point_containment( const CubitVector& pos, double tolerance = -1.0 );
53 : :
54 : :
55 : : /************** Functions from TopologyBridge **************/
56 : :
57 : : void append_simple_attribute_virt( const CubitSimpleAttrib& );
58 : :
59 : : void remove_simple_attribute_virt( const CubitSimpleAttrib& );
60 : :
61 : : void remove_all_simple_attribute_virt();
62 : :
63 : : CubitStatus get_simple_attribute( DLIList<CubitSimpleAttrib>& );
64 : :
65 : : CubitStatus get_simple_attribute( const CubitString& name,
66 : : DLIList<CubitSimpleAttrib>& );
67 : :
68 : : virtual int layer() const;
69 : :
70 : : void get_parents_virt( DLIList<TopologyBridge*>& );
71 : :
72 : : void get_children_virt( DLIList<TopologyBridge*>& );
73 : :
74 : : GeometryQueryEngine* get_geometry_query_engine() const;
75 : :
76 : :
77 : : /************** Functions from PartitionEntity **************/
78 : :
79 : : void reverse_sense();
80 : :
81 : : void notify_split( FacetEntity*, FacetEntity* );
82 : :
83 : : CubitStatus save( CubitSimpleAttrib& );
84 : :
85 : : CubitBox bounding_box() const;
86 : :
87 : :
88 : : /************** Local Functions **************/
89 : :
90 : : BodySM* real_body() const;
91 : :
92 : : void add( SubEntitySet& );
93 : :
94 : : void remove( SubEntitySet& );
95 : :
96 : 0 : bool has_children() const { return !!childList; }
97 : :
98 : : void destroy_all_children();
99 : :
100 : 0 : void transform(const CubitTransformMatrix&) {}
101 : :
102 : : void get_all_children( DLIList<PartitionEntity*>& list );
103 : :
104 : : protected:
105 : :
106 : : private:
107 : :
108 : : SubEntitySet* childList;
109 : : };
110 : :
111 : : #endif
112 : :
113 : :
|