Branch data Line data Source code
1 : : //-------------------------------------------------------------------------
2 : : // Filename : PartitionLump.hpp
3 : : //
4 : : // Purpose :
5 : : //
6 : : // Special Notes :
7 : : //
8 : : // Creator : Jason Kraftcheck
9 : : //
10 : : // Creation Date : 08/15/02
11 : : //-------------------------------------------------------------------------
12 : : #ifndef PARTITION_LUMP_HPP
13 : : #define PARTITION_LUMP_HPP
14 : :
15 : : #include "DLIList.hpp"
16 : : #include "Lump.hpp"
17 : : #include "PartitionEntity.hpp"
18 : : #include "PartitionShell.hpp"
19 : :
20 : : class PartitionBody;
21 : : class PartitionSurface;
22 : : class PartitionCurve;
23 : : class PartitionPoint;
24 : :
25 : : class PartitionLump : public Lump, public PartitionEntity
26 : : {
27 : :
28 : : public:
29 : : friend class PartitionBody;
30 : :
31 : : PartitionLump( Lump* real_lump );
32 : : PartitionLump( PartitionLump* split_from );
33 : : virtual ~PartitionLump();
34 : :
35 : : Lump* real_lump() const;
36 : :
37 : : PartitionShell* first_shell() const;
38 : : PartitionShell* next_shell( PartitionShell* after_this = 0 ) const;
39 : :
40 : : CubitStatus add( PartitionShell* shell );
41 : : CubitStatus remove( PartitionShell* shell );
42 : : void remove_all_shells();
43 : :
44 : : PartitionBody* get_body() const;
45 : : TopologyBridge* find_parent_body() const;
46 : :
47 : : virtual CubitStatus save( CubitSimpleAttrib& );
48 : :
49 : : void get_parents_virt( DLIList<TopologyBridge*>& );
50 : : void get_children_virt( DLIList<TopologyBridge*>& );
51 : 0 : int layer() const { return sub_entity_set().get_owner_layer(); }
52 : : GeometryQueryEngine* get_geometry_query_engine() const;
53 : :
54 : : void append_simple_attribute_virt( const CubitSimpleAttrib& );
55 : : void remove_simple_attribute_virt( const CubitSimpleAttrib& );
56 : : void remove_all_simple_attribute_virt();
57 : : CubitStatus get_simple_attribute( DLIList<CubitSimpleAttrib>& );
58 : : CubitStatus get_simple_attribute( const CubitString& name,
59 : : DLIList<CubitSimpleAttrib>& );
60 : :
61 : : CubitBox bounding_box() const;
62 : : double measure();
63 : :
64 : : void reverse_sense();
65 : : void transform(const CubitTransformMatrix&);
66 : :
67 : : //void print_debug_info( const char* prefix = 0 ) const;
68 : :
69 : : void notify_split( FacetEntity*, FacetEntity* );
70 : :
71 : : void get_all_children( DLIList<PartitionEntity*>& result );
72 : :
73 : : CubitStatus mass_properties( CubitVector& volume_centrioid,
74 : : double& volume );
75 : :
76 : : CubitPointContainment point_containment( const CubitVector& pos, double tolerance = -1);
77 : :
78 : : private:
79 : :
80 : : PartitionShell* listHead;
81 : : };
82 : :
83 : 0 : inline PartitionShell* PartitionLump::first_shell() const
84 : 0 : { return listHead; }
85 : :
86 : 0 : inline PartitionShell* PartitionLump::next_shell( PartitionShell* prev ) const
87 [ # # ][ # # ]: 0 : { return !prev ? listHead : (prev->myLump == this) ? prev->lumpNext : 0; }
88 : :
89 : : #endif
90 : :
91 : :
92 : :
93 : :
|