Branch data Line data Source code
1 : : //-------------------------------------------------------------------------
2 : : // Filename : CompositePoint.hpp
3 : : //
4 : : // Purpose : Decorator for Points owned by higher-order Composites
5 : : //
6 : : // Special Notes : This object is used a) to complete the child topology
7 : : // graph of curves and b) to stitch points.
8 : : //
9 : : // Creator : Jason Kraftcheck
10 : : //
11 : : // Creation Date : 03/07/02
12 : : //-------------------------------------------------------------------------
13 : :
14 : : #ifndef COMPOSITE_POINT_HPP
15 : : #define COMPOSITE_POINT_HPP
16 : :
17 : : #include "Point.hpp"
18 : : #include "TBOwner.hpp"
19 : : #include "CompositeCurve.hpp"
20 : : #include "VGDefines.h"
21 : : template <class X> class DLIList;
22 : :
23 : : class CompositePoint : public TBPoint, public TBOwner
24 : : {
25 : : friend class CompositeCurve;
26 : :
27 : : public:
28 : : int HadBridgeRemoved;
29 : :
30 : : CompositePoint( TBPoint* real_pt );
31 : : virtual ~CompositePoint();
32 : :
33 : 0 : CompositeCurve* next_curve( CompositeCurve* prev = 0 ) const
34 [ # # ]: 0 : { return prev ? prev->next( this ) : firstCurve; }
35 : :
36 : 0 : TBPoint* get_point() const
37 : 0 : { return realPoint; }
38 : :
39 : 0 : void append_simple_attribute_virt( const CubitSimpleAttrib& csa )
40 : : {
41 [ # # ]: 0 : if(get_point())
42 : 0 : get_point()->append_simple_attribute_virt( csa );
43 : 0 : }
44 : 0 : void remove_simple_attribute_virt( const CubitSimpleAttrib& csa )
45 : : {
46 [ # # ]: 0 : if(get_point())
47 : 0 : get_point()->remove_simple_attribute_virt( csa );
48 : 0 : }
49 : 0 : void remove_all_simple_attribute_virt()
50 : : {
51 [ # # ]: 0 : if(get_point())
52 : 0 : get_point()->remove_all_simple_attribute_virt();
53 : 0 : }
54 : 0 : CubitStatus get_simple_attribute( DLIList<CubitSimpleAttrib>& list )
55 : : {
56 [ # # ]: 0 : if(get_point())
57 : 0 : return get_point()->get_simple_attribute( list );
58 : 0 : return CUBIT_FAILURE;
59 : : }
60 : 0 : CubitStatus get_simple_attribute( const CubitString& name,
61 : : DLIList<CubitSimpleAttrib>& attrib_list )
62 : : {
63 [ # # ]: 0 : if(get_point())
64 : 0 : return get_point()->get_simple_attribute( name, attrib_list );
65 : 0 : return CUBIT_FAILURE;
66 : : }
67 : :
68 : : GeometryQueryEngine* get_geometry_query_engine() const;
69 : :
70 : : void get_parents_virt( DLIList<TopologyBridge*>& );
71 : : void get_children_virt( DLIList<TopologyBridge*>& );
72 : 0 : int layer() const { return COMPOSITE_LAYER; }
73 : :
74 : 0 : CubitVector coordinates() const
75 : : {
76 [ # # ]: 0 : if(get_point())
77 : 0 : return get_point()->coordinates();
78 : 0 : return CubitVector(0,0,0);
79 : : }
80 : :
81 : : CubitStatus remove_bridge( TopologyBridge* bridge );
82 : : CubitStatus swap_bridge( TopologyBridge* old_tb, TopologyBridge* new_tb, bool );
83 : : void notify_reversed( TopologyBridge* bridge );
84 : :
85 : : void print_debug_info( const char* prefix = 0, bool brief = false ) const;
86 : :
87 : : CubitStatus stitch( CompositePoint* point );
88 : : void unstitch_all();
89 : : void get_stitched( DLIList<CompositePoint*>& result );
90 : :
91 : : private:
92 : :
93 : : CompositeCurve* firstCurve;
94 : :
95 : : TBPoint* realPoint;
96 : :
97 : : CompositePoint* stitchNext;
98 : : };
99 : :
100 : : #endif
|