Branch data Line data Source code
1 : : //- Class: ChollaPoint
2 : : //- Owner: Steven J. Owen
3 : : //- Description: Maintains a list of mesh. This is used to store
4 : : //- the exterior skin while creating a geometry from a mesh.
5 : : //- Created: 4/27/01
6 : : //- Checked By:
7 : : //- Version:
8 : :
9 : : #ifndef ChollaPoint_HPP
10 : : #define ChollaPoint_HPP
11 : :
12 : : #include "DLIList.hpp"
13 : : #include "ChollaEntity.hpp"
14 : :
15 : : class Curve;
16 : : class FacetEntity;
17 : : class ChollaCurve;
18 : : class ChollaSurface;
19 : : class ChollaVolume;
20 : :
21 : : class ChollaPoint : public ChollaEntity
22 : : {
23 : : private:
24 : :
25 : : DLIList<ChollaCurve*> curveList;
26 : : FacetEntity *myCubitPoint;
27 : : void *myPoint;
28 : : int id;
29 : : ChollaPoint *myMergePartner;
30 : :
31 : : public:
32 : :
33 : : ChollaPoint( );
34 : : //- default constructor
35 : :
36 : : ~ChollaPoint();
37 : : // destructor
38 : :
39 : 418 : void add_facet(FacetEntity *exterior_node)
40 : 418 : { myCubitPoint = exterior_node; }
41 : : //- define the node associated with this point
42 : :
43 : 0 : void remove_facet( void )
44 : 0 : {myCubitPoint = NULL;}
45 : : //- sets myCubitPoint to NULL
46 : :
47 : 0 : void remove_facet( FacetEntity *facet_pnt )
48 [ # # ]: 0 : {if( myCubitPoint == facet_pnt ) myCubitPoint = NULL;}
49 : : //- sets myCubitPoint to NULL only if specified facet_pnt matches with myCubitPoint
50 : :
51 : :
52 : 1947 : FacetEntity *get_facets()
53 : 1947 : {return myCubitPoint;}
54 : : //- get the point
55 : :
56 : 1188 : void add_curve( ChollaCurve *fcm_ptr )
57 : 1188 : {curveList.append_unique( fcm_ptr );}
58 : : //- associate a curve with this point
59 : :
60 : 0 : inline void remove_curve( ChollaCurve *fcm_ptr )
61 : 0 : { curveList.remove( fcm_ptr ); }
62 : : //- removes a curve attached with it
63 : :
64 : 0 : DLIList<ChollaCurve*> &get_curves()
65 : 0 : {return curveList;}
66 : : //- get the list of curves attached to this point
67 : :
68 : 0 : DLIList<ChollaCurve*> *get_curve_list_ptr()
69 : 0 : {return &curveList;}
70 : : //- get the pointer to the list of curves
71 : :
72 : 418 : void assign_geometric_point(void *point)
73 : 418 : {myPoint = point;}
74 : : //- set the geometric point associated with the ChollaPoint
75 : :
76 : 1606 : void* get_geometric_point()
77 : 1606 : {return myPoint;}
78 : : //- return the geometric point associated with the ChollaPoint
79 : :
80 : 0 : int get_id(){return id;}
81 : :
82 : : void get_surfaces(DLIList<ChollaSurface *> &surf_list);
83 : : //- get list of associated cholla surfaces
84 : :
85 : : CubitBoolean is_in_curve( ChollaCurve *chcurve );
86 : : // return whether this point is in the given curve
87 : :
88 : : CubitBoolean is_in_surface( ChollaSurface *cholla_surf );
89 : : // return whether this point is in the given surface
90 : :
91 : : CubitBoolean is_in_volume( ChollaVolume *cholla_vol );
92 : : // return whether this point is in the given volume
93 : :
94 : : CubitStatus verify_curves();
95 : : //- verify that all curves at this point have this point as an adjacency
96 : :
97 : : ChollaPoint *merge_partner(){ return myMergePartner; }
98 : :
99 : 0 : void set_merge_partner( ChollaPoint *merge_partner )
100 : 0 : { myMergePartner = merge_partner;}
101 : :
102 : :
103 : : };
104 : :
105 : : template <> struct DLIListSorter<ChollaPoint*>
106 : : {
107 : : bool operator()(ChollaPoint* a, ChollaPoint* b) { return a->get_id() < b->get_id(); }
108 : : };
109 : :
110 : : #endif
111 : :
112 : :
|