Branch data Line data Source code
1 : : //-------------------------------------------------------------------------
2 : : // Filename : PartitionEntity.hpp
3 : : //
4 : : // Purpose : Base class for partition entities
5 : : //
6 : : // Special Notes :
7 : : //
8 : : // Creator : Jason Kraftcheck
9 : : //
10 : : // Creation Date : 04/21/02
11 : : //-------------------------------------------------------------------------
12 : :
13 : : #ifndef PARTITION_ENTITY_HPP
14 : : #define PARTITION_ENTITY_HPP
15 : :
16 : : #include "SubEntitySet.hpp"
17 : : #include "CubitBox.hpp"
18 : : class FacetEntity;
19 : : class CubitTransformMatrix;
20 : : class CubitPoint;
21 : :
22 : : class PartitionEntity
23 : : {
24 : :
25 : : public:
26 : :
27 : : virtual ~PartitionEntity();
28 : :
29 : : TopologyBridge* partitioned_entity() const;
30 : :
31 : : SubEntitySet& sub_entity_set() const;
32 : :
33 : : virtual CubitStatus move_to_geometry( CubitVector& position );
34 : :
35 : : CubitStatus relax_to_geometry( CubitPoint* facet_point,
36 : : const CubitVector* input_position = 0 );
37 : :
38 : : int mark;
39 : :
40 : : virtual void print_debug_info( const char* prefix = 0,
41 : : bool print_subentity_set = true ) const;
42 : : void print_partitioned_entity( const char* prefix = 0 ) const;
43 : :
44 : : virtual void transform(const CubitTransformMatrix& xform) = 0;
45 : :
46 : : virtual void reverse_sense() = 0;
47 : :
48 : : virtual void notify_split( FacetEntity* old_entity,
49 : : FacetEntity* new_entity ) = 0;
50 : :
51 : : virtual CubitStatus save( CubitSimpleAttrib& attrib ) = 0;
52 : :
53 : : virtual CubitBox bounding_box() const = 0; // for abstracttree
54 : :
55 : : protected:
56 : :
57 : : PartitionEntity( );
58 : :
59 : : private:
60 : :
61 : : // don't allow assignment (make assignment private)
62 : : PartitionEntity( const PartitionEntity& );
63 : : void operator=( const PartitionEntity& );
64 : :
65 : : friend class SubEntitySet;
66 : :
67 : : SubEntitySet* entitySet;
68 : : PartitionEntity* entitySetNext;
69 : : // These variables are set/cleared by SubEntitySet.
70 : : // They are never modified directly by this class.
71 : :
72 : : int entitySetId;
73 : : // An ID in the SubEntitySet used for save and restore.
74 : : };
75 : :
76 : 0 : inline TopologyBridge* PartitionEntity::partitioned_entity() const
77 : : {
78 : 0 : return entitySet->get_entity();
79 : : }
80 : :
81 : 0 : inline SubEntitySet& PartitionEntity::sub_entity_set() const
82 : : {
83 : 0 : return *entitySet;
84 : : }
85 : :
86 : : #endif
|