Branch data Line data Source code
1 : : //- Class: TDGeomFacet
2 : : //- Description: Tool data for building a geometry from a mesh.
3 : : //- Owner: Steve Owen
4 : : //- Checked by:
5 : : //- Version:
6 : : #include "TDGeomFacet.hpp"
7 : : #include "CubitFacetEdge.hpp"
8 : : #include "CubitFacet.hpp"
9 : : #include "CastTo.hpp"
10 : : #include "ChollaVolume.hpp"
11 : : #include "ChollaSurface.hpp"
12 : : #include "ChollaCurve.hpp"
13 : : #include "ChollaPoint.hpp"
14 : : #include "CubitPoint.hpp"
15 : :
16 [ + - ][ + - ]: 5236 : TDGeomFacet::TDGeomFacet()
[ + - ][ + - ]
[ + - ]
17 : : {
18 : 2618 : blockId = -1;
19 : 2618 : hitFlag = 0;
20 : 2618 : partnerEdgeList = NULL;
21 : 2618 : partnerPointList = NULL;
22 : 2618 : }
23 : :
24 [ + - ][ + - ]: 7854 : TDGeomFacet::~TDGeomFacet()
[ + - ][ + - ]
25 : : {
26 [ - + ]: 2618 : if (partnerEdgeList != NULL)
27 [ # # ][ # # ]: 0 : delete partnerEdgeList;
28 [ - + ]: 2618 : if (partnerPointList != NULL)
29 [ # # ][ # # ]: 0 : delete partnerPointList;
30 [ - + ]: 5236 : }
31 : :
32 : 49104 : int TDGeomFacet::is_geom_facet(const ToolData* td)
33 : : {
34 [ + - ][ + + ]: 49104 : return (CAST_TO(const_cast<ToolData*>(td), TDGeomFacet) != NULL);
35 : : }
36 : :
37 : 1870 : CubitStatus TDGeomFacet::add_geom_facet( FacetEntity *facet_ptr, int block_id )
38 : : {
39 : 1870 : TDGeomFacet* td = (TDGeomFacet*) facet_ptr->get_TD( &TDGeomFacet::is_geom_facet );
40 [ + - ]: 1870 : if ( td == NULL )
41 : : {
42 [ + - ]: 1870 : td = new TDGeomFacet;
43 : 1870 : facet_ptr->add_TD( td );
44 : : }
45 : 1870 : td->set_block_id( block_id);
46 : 1870 : return CUBIT_SUCCESS;
47 : : }
48 : :
49 : 0 : CubitStatus TDGeomFacet::add_geom_facet( CubitFacet *facet_ptr, int block_id)
50 : : {
51 : 0 : TDGeomFacet *td = (TDGeomFacet*) facet_ptr->get_TD(&TDGeomFacet::is_geom_facet);
52 [ # # ]: 0 : if ( td == NULL )
53 : : {
54 [ # # ]: 0 : td = new TDGeomFacet;
55 : 0 : facet_ptr->add_TD( td );
56 : : }
57 : 0 : td->set_block_id( block_id);
58 : 0 : return CUBIT_SUCCESS;
59 : : }
60 : 748 : CubitStatus TDGeomFacet::add_geom_facet( CubitFacetEdge *edge_ptr, int block_id )
61 : : {
62 : 748 : TDGeomFacet *td = (TDGeomFacet*) edge_ptr->get_TD(&TDGeomFacet::is_geom_facet);
63 [ + - ]: 748 : if ( td == NULL )
64 : : {
65 [ + - ]: 748 : td = new TDGeomFacet;
66 : 748 : edge_ptr->add_TD( td );
67 : : }
68 : 748 : td->set_block_id( block_id);
69 : 748 : return CUBIT_SUCCESS;
70 : : }
71 : 0 : CubitStatus TDGeomFacet::add_geom_facet( CubitPoint *point_ptr, int block_id )
72 : : {
73 : 0 : TDGeomFacet* td = (TDGeomFacet*) point_ptr->get_TD(&TDGeomFacet::is_geom_facet);
74 [ # # ]: 0 : if ( td == NULL )
75 : : {
76 [ # # ]: 0 : td = new TDGeomFacet;
77 : 0 : point_ptr->add_TD( td );
78 : : }
79 : 0 : td->set_block_id( block_id);
80 : :
81 : 0 : return CUBIT_SUCCESS;
82 : : }
83 : :
84 : 18634 : TDGeomFacet* TDGeomFacet::get_geom_facet( FacetEntity *facet_ptr )
85 : : {
86 : 18634 : TDGeomFacet* td = (TDGeomFacet*) facet_ptr->get_TD(&TDGeomFacet::is_geom_facet);
87 [ + - ]: 18634 : if ( td != NULL )
88 : : {
89 : 18634 : return td;
90 : : }
91 : 0 : return (TDGeomFacet*) NULL;
92 : : }
93 : 7392 : TDGeomFacet* TDGeomFacet::get_geom_facet( CubitPoint *point_ptr )
94 : : {
95 : 7392 : TDGeomFacet *td = (TDGeomFacet*) point_ptr->get_TD(&TDGeomFacet::is_geom_facet);
96 [ + - ]: 7392 : if ( td != NULL )
97 : : {
98 : 7392 : return td;
99 : : }
100 : 0 : return (TDGeomFacet*) NULL;
101 : : }
102 : 16577 : TDGeomFacet* TDGeomFacet::get_geom_facet( CubitFacetEdge *edge_ptr )
103 : : {
104 : 16577 : TDGeomFacet *td = (TDGeomFacet*) edge_ptr->get_TD(&TDGeomFacet::is_geom_facet);
105 [ + + ]: 16577 : if ( td != NULL )
106 : : {
107 : 6512 : return td;
108 : : }
109 : 10065 : return (TDGeomFacet*) NULL;
110 : : }
111 : 0 : TDGeomFacet* TDGeomFacet::get_geom_facet( CubitFacet *facet_ptr )
112 : : {
113 : 0 : TDGeomFacet *td = (TDGeomFacet*) facet_ptr->get_TD(&TDGeomFacet::is_geom_facet);
114 [ # # ]: 0 : if ( td != NULL )
115 : : {
116 : 0 : return td;
117 : : }
118 : 0 : return (TDGeomFacet*) NULL;
119 : : }
120 : :
121 : :
122 : 0 : int TDGeomFacet::get_block_id( FacetEntity *facet_ptr )
123 : : {
124 : 0 : TDGeomFacet *td = (TDGeomFacet*) facet_ptr->get_TD(&TDGeomFacet::is_geom_facet);
125 [ # # ]: 0 : if ( td != NULL )
126 : : {
127 : 0 : return td->get_block_id();
128 : : }
129 : 0 : return -1;
130 : : }
131 : :
132 : 0 : int TDGeomFacet::get_block_id( CubitFacet *facet_ptr )
133 : : {
134 : 0 : TDGeomFacet *td = (TDGeomFacet*) facet_ptr->get_TD(&TDGeomFacet::is_geom_facet);
135 [ # # ]: 0 : if ( td != NULL )
136 : : {
137 : 0 : return td->get_block_id();
138 : : }
139 : 0 : return -1;
140 : : }
141 : :
142 : 0 : int TDGeomFacet::get_block_id( CubitFacetEdge *edge_ptr )
143 : : {
144 : 0 : TDGeomFacet *td = (TDGeomFacet*) edge_ptr->get_TD(&TDGeomFacet::is_geom_facet);
145 [ # # ]: 0 : if ( td != NULL )
146 : : {
147 : 0 : return td->get_block_id();
148 : : }
149 : 0 : return -1;
150 : : }
151 : 0 : void TDGeomFacet::add_cholla_owner( ChollaEntity *cholla_entity )
152 : : {
153 [ # # ]: 0 : ChollaSurface *cholla_surface = dynamic_cast<ChollaSurface *> (cholla_entity);
154 [ # # ]: 0 : if (cholla_surface != NULL)
155 : 0 : add_cholla_surf(cholla_surface);
156 : : else
157 : : {
158 [ # # ]: 0 : ChollaCurve *cholla_curve = dynamic_cast<ChollaCurve *> (cholla_entity);
159 [ # # ]: 0 : if (cholla_curve != NULL)
160 : 0 : add_cholla_curve( cholla_curve );
161 : : else
162 : : {
163 [ # # ]: 0 : ChollaPoint *cholla_point = dynamic_cast<ChollaPoint *> (cholla_entity);
164 [ # # ]: 0 : if (cholla_point != NULL)
165 : 0 : add_cholla_point( cholla_point );
166 : : else
167 : 0 : assert(0); // not a recognized cholla entity
168 : : }
169 : : }
170 : 0 : return;
171 : : }
172 : 3267 : void TDGeomFacet::add_cholla_surf( ChollaSurface *f_s_m )
173 : : {
174 : : int ii;
175 [ + + ]: 3795 : for ( ii = ChollaSurfaceList.size(); ii > 0; ii-- )
176 : : {
177 : 528 : ChollaSurface *fsm_ptr = ChollaSurfaceList.get_and_step();
178 [ - + ]: 528 : if (f_s_m == fsm_ptr)
179 : : {
180 : 0 : return;
181 : : }
182 : : }
183 : 3267 : ChollaSurfaceList.append(f_s_m);
184 : 3267 : return;
185 : : }
186 : 0 : int TDGeomFacet::get_hit_flag( FacetEntity *facet_ptr )
187 : : {
188 : 0 : TDGeomFacet *td = (TDGeomFacet*) facet_ptr->get_TD(&TDGeomFacet::is_geom_facet);
189 [ # # ]: 0 : if ( td != NULL )
190 : : {
191 : 0 : return td->get_hit_flag();
192 : : }
193 : 0 : return -1;
194 : : }
195 : 0 : void TDGeomFacet::set_hit_flag( FacetEntity *facet_ptr, int new_val )
196 : : {
197 : 0 : TDGeomFacet *td = (TDGeomFacet*) facet_ptr->get_TD(&TDGeomFacet::is_geom_facet);
198 [ # # ]: 0 : if ( td != NULL )
199 : : {
200 : 0 : td->set_hit_flag(new_val);
201 : : }
202 : 0 : return;
203 : : }
204 : :
205 : 0 : CubitBoolean TDGeomFacet::is_partner( CubitFacetEdge *edge_ptr )
206 : : {
207 [ # # ]: 0 : if (partnerEdgeList == NULL)
208 : 0 : return CUBIT_FALSE;
209 [ # # ]: 0 : for (int ii=0; ii<partnerEdgeList->size(); ii++)
210 : : {
211 [ # # ]: 0 : if (partnerEdgeList->get_and_step() == edge_ptr)
212 : 0 : return CUBIT_TRUE;
213 : : }
214 : 0 : return CUBIT_FALSE;
215 : : }
216 : 0 : CubitBoolean TDGeomFacet::is_partner( CubitPoint *point_ptr )
217 : : {
218 [ # # ]: 0 : if (partnerPointList == NULL)
219 : 0 : return CUBIT_FALSE;
220 [ # # ]: 0 : for (int ii=0; ii<partnerPointList->size(); ii++)
221 : : {
222 [ # # ]: 0 : if (partnerPointList->get_and_step() == point_ptr)
223 : 0 : return CUBIT_TRUE;
224 : : }
225 : 0 : return CUBIT_FALSE;
226 : : }
227 : :
228 : 0 : void TDGeomFacet::reset_TD_as_new()
229 : : {
230 : 0 : blockId = -1;
231 : 0 : hitFlag = 0;
232 : 0 : partnerEdgeList = NULL;
233 : 0 : partnerPointList = NULL;
234 : 0 : ChollaSurfaceList.clean_out();
235 : 0 : ChollaCurveList.clean_out();
236 : 0 : myPoints.clean_out();
237 : : //normal??????;
238 : : //need to delete these?
239 : 0 : partnerEdgeList=NULL;
240 : 0 : partnerPointList=NULL;
241 : :
242 : 0 : }
243 : :
244 : 0 : int TDGeomFacet::geo_type()
245 : : {
246 [ # # ]: 0 : if (ChollaSurfaceList.size() > 0)
247 : 0 : return 2;
248 [ # # ]: 0 : else if (ChollaCurveList.size() > 0)
249 : 0 : return 1;
250 [ # # ]: 0 : else if (myPoints.size() > 0)
251 : 0 : return 0;
252 : 0 : return -1;
253 : : }
254 : :
255 : 0 : CubitBoolean TDGeomFacet::is_in_volume( ChollaVolume *chvol_ptr )
256 : : {
257 [ # # ]: 0 : for (int ii=0; ii<ChollaSurfaceList.size(); ii++)
258 : : {
259 : 0 : ChollaSurface *chsurf_ptr = ChollaSurfaceList.get_and_step();
260 [ # # ]: 0 : if (chsurf_ptr->is_in_volume( chvol_ptr ))
261 : 0 : return CUBIT_TRUE;
262 : : }
263 [ # # ]: 0 : for (int jj=0; jj<ChollaCurveList.size(); jj++)
264 : : {
265 : 0 : ChollaCurve *chcurv_ptr = ChollaCurveList.get_and_step();
266 [ # # ]: 0 : if (chcurv_ptr->is_in_volume( chvol_ptr ))
267 : 0 : return CUBIT_TRUE;
268 : : }
269 : 0 : return CUBIT_FALSE;
270 : : }
271 : :
272 : :
273 : :
|