Branch data Line data Source code
1 : :
2 : : #include "FacetEntity.hpp"
3 : : #include "CubitFacet.hpp"
4 : : #include "CubitPoint.hpp"
5 : : #include "CubitFacetEdge.hpp"
6 : : #include "GfxDebug.hpp"
7 : : #include "CubitBox.hpp"
8 : : #include "ChollaSurface.hpp"
9 : : #include "CubitMessage.hpp"
10 : :
11 : : #include "ChollaDebug.hpp"
12 : : static int fg_color = CUBIT_MAGENTA_INDEX;
13 : 0 : void dcolor(int icol)
14 : : {
15 : 0 : fg_color = icol;
16 : 0 : }
17 : :
18 : 0 : void ddraw( FacetEntity *facet_ptr )
19 : : {
20 : 0 : facet_ptr->debug_draw( fg_color );
21 : 0 : }
22 : :
23 : 0 : void dfdraw( CubitFacet *facet_ptr )
24 : : {
25 : 0 : facet_ptr->debug_draw( fg_color );
26 : 0 : }
27 : :
28 : 0 : void dedraw( CubitFacetEdge *facet_ptr )
29 : : {
30 : 0 : facet_ptr->debug_draw( fg_color );
31 : 0 : }
32 : :
33 : 0 : void dpdraw( CubitPoint *facet_ptr )
34 : : {
35 : 0 : facet_ptr->debug_draw( fg_color );
36 : 0 : }
37 : :
38 : :
39 : 0 : void dview()
40 : : {
41 : 0 : GfxDebug::flush();
42 : 0 : GfxDebug::mouse_xforms();
43 : 0 : }
44 : :
45 : 0 : void dzoom(CubitBox &box)
46 : : {
47 : 0 : GfxDebug::zoom(box);
48 : 0 : }
49 : :
50 : :
51 : 0 : void dsurfdraw( ChollaSurface *surf)
52 : : {
53 [ # # ]: 0 : DLIList<FacetEntity*> surface_facets;
54 [ # # ]: 0 : surf->get_facets(surface_facets);
55 [ # # ][ # # ]: 0 : dldraw(surface_facets);
56 : 0 : }
57 : :
58 : :
59 : 0 : void dldraw( DLIList<FacetEntity *> &facet_list )
60 : : {
61 : : FacetEntity *facet_ptr;
62 [ # # ]: 0 : for (int ii=0; ii<facet_list.size(); ii++)
63 : : {
64 : 0 : facet_ptr = facet_list.get_and_step();
65 : 0 : facet_ptr->debug_draw( fg_color, 0 );
66 : : }
67 : 0 : GfxDebug::flush();
68 : 0 : }
69 : :
70 : 0 : void dfldraw( DLIList<CubitFacet *> &facet_list )
71 : : {
72 : : CubitFacet *facet_ptr;
73 [ # # ]: 0 : for (int ii=0; ii<facet_list.size(); ii++)
74 : : {
75 : 0 : facet_ptr = facet_list.get_and_step();
76 : 0 : facet_ptr->debug_draw( fg_color, 0 );
77 : : }
78 : 0 : GfxDebug::flush();
79 : 0 : }
80 : :
81 : 0 : void deldraw( DLIList<CubitFacetEdge *> &edge_list )
82 : : {
83 : : CubitFacetEdge *edge_ptr;
84 [ # # ]: 0 : for (int ii=0; ii<edge_list.size(); ii++)
85 : : {
86 : 0 : edge_ptr = edge_list.get_and_step();
87 : 0 : edge_ptr->debug_draw( fg_color, 0 );
88 : : }
89 : 0 : GfxDebug::flush();
90 : 0 : }
91 : :
92 : 0 : void dpldraw( DLIList<CubitPoint *> &point_list )
93 : : {
94 : : CubitPoint *point_ptr;
95 [ # # ]: 0 : for (int ii=0; ii<point_list.size(); ii++)
96 : : {
97 : 0 : point_ptr = point_list.get_and_step();
98 : 0 : point_ptr->debug_draw( fg_color, 0 );
99 : : }
100 : 0 : GfxDebug::flush();
101 : 0 : }
102 : :
103 : 0 : int dflcheck( DLIList<CubitFacet *> &facet_list )
104 : : {
105 : : int ii;
106 : 0 : int ier = 0;
107 [ # # ]: 0 : for (ii=0; ii<facet_list.size(); ii++)
108 : : {
109 : 0 : CubitFacet *facet_ptr = facet_list.get_and_step();
110 : 0 : ier += dfcheck( facet_ptr );
111 : : }
112 : 0 : return ier;
113 : : }
114 : :
115 : 0 : int dcheck( DLIList<FacetEntity *> &facet_list )
116 : : {
117 : : int ii;
118 : 0 : int ier = 0;
119 [ # # ]: 0 : for (ii=0; ii<facet_list.size(); ii++)
120 : : {
121 : 0 : CubitFacet *facet_ptr = (CubitFacet *)facet_list.get_and_step();
122 : 0 : ier += dfcheck( facet_ptr );
123 : : }
124 : 0 : return ier;
125 : : }
126 : :
127 : 0 : int dfcheck( CubitFacet *facet_ptr )
128 : : {
129 : 0 : int ier = 0;
130 : :
131 : : // check edges
132 : :
133 : : int ii, jj;
134 [ # # ]: 0 : for (ii=0; ii<3; ii++)
135 : : {
136 [ # # ]: 0 : CubitFacetEdge *edge_ptr = facet_ptr->edge( ii );
137 [ # # ]: 0 : DLIList <CubitFacet *> facet_list;
138 [ # # ]: 0 : edge_ptr->facets( facet_list );
139 : 0 : int found = 0;
140 [ # # ][ # # ]: 0 : for (jj=0; jj<facet_list.size() && !found; jj++)
[ # # ][ # # ]
141 : : {
142 [ # # ]: 0 : CubitFacet *f = facet_list.get_and_step();
143 [ # # ]: 0 : if (f == facet_ptr)
144 : : {
145 : 0 : found = 1;
146 : : }
147 : : }
148 [ # # ]: 0 : if (!found)
149 : : {
150 [ # # ][ # # ]: 0 : PRINT_ERROR( "Facet %d is not in Edge %d adjacency list\n",
[ # # ][ # # ]
[ # # ]
151 [ # # ]: 0 : facet_ptr->id(), edge_ptr->id() );
152 : 0 : ier++;
153 : : }
154 : :
155 : : // check the edge's orientation on the facet
156 : :
157 : : CubitPoint *ep0, *ep1;
158 [ # # ]: 0 : int use = facet_ptr->edge_use( ii );
159 [ # # ]: 0 : if (use > 0)
160 : : {
161 [ # # ]: 0 : ep0 = edge_ptr->point( 0 );
162 [ # # ]: 0 : ep1 = edge_ptr->point( 1 );
163 : : }
164 : : else
165 : : {
166 [ # # ]: 0 : ep1 = edge_ptr->point( 0 );
167 [ # # ]: 0 : ep0 = edge_ptr->point( 1 );
168 : : }
169 : :
170 [ # # ]: 0 : CubitPoint *fp0 = facet_ptr->point( (ii+1)%3 );
171 [ # # ]: 0 : CubitPoint *fp1 = facet_ptr->point( (ii+2)%3 );
172 [ # # ][ # # ]: 0 : if (fp0 != ep0 || fp1 != ep1)
173 : : {
174 [ # # ][ # # ]: 0 : PRINT_ERROR( "Edge %d on Facet %d is not oriented with points %d and %d correctly\n",
[ # # ][ # # ]
[ # # ][ # # ]
[ # # ]
175 [ # # ]: 0 : edge_ptr->id(), facet_ptr->id(), fp0->id(), fp1->id() );
176 : 0 : ier++;
177 : : }
178 [ # # ]: 0 : }
179 : :
180 : : // check nodes
181 : :
182 [ # # ]: 0 : for (ii=0; ii<3; ii++)
183 : : {
184 [ # # ]: 0 : CubitPoint *point_ptr = facet_ptr->point( ii );
185 [ # # ]: 0 : DLIList <CubitFacet *> facet_list;
186 [ # # ]: 0 : point_ptr->facets( facet_list );
187 : 0 : int found = 0;
188 [ # # ][ # # ]: 0 : for (jj=0; jj<facet_list.size() && !found; jj++)
[ # # ][ # # ]
189 : : {
190 [ # # ]: 0 : CubitFacet *f = facet_list.get_and_step();
191 [ # # ]: 0 : if (f == facet_ptr)
192 : : {
193 : 0 : found = 1;
194 : : }
195 : : }
196 [ # # ]: 0 : if (!found)
197 : : {
198 [ # # ][ # # ]: 0 : PRINT_ERROR( "Facet %d is not in Point %d adjacency list\n",
[ # # ][ # # ]
[ # # ]
199 [ # # ]: 0 : facet_ptr->id(), point_ptr->id() );
200 : 0 : ier++;
201 : : }
202 [ # # ]: 0 : }
203 : 0 : return ier;
204 : : }
205 : :
206 : : // draw a vector
207 : 0 : void dray( const CubitVector &start, const CubitVector &vec, double length )
208 : : {
209 [ # # ][ # # ]: 0 : CubitVector end = start+length*vec;
210 [ # # ]: 0 : GfxDebug::draw_vector(end, start, fg_color );
211 [ # # ]: 0 : GfxDebug::flush();
212 : 0 : }
213 : :
214 : : // draw a point
215 : 0 : void dpoint( const CubitVector &pt )
216 : : {
217 : 0 : GfxDebug::draw_point(pt, fg_color);
218 : 0 : GfxDebug::flush();
219 : :
220 : 0 : }
221 : :
222 : 0 : int get_color()
223 : : {
224 : 0 : return fg_color;
225 [ + - ][ + - ]: 6540 : }
226 : :
227 : : //EOF
228 : :
|