7fd59977 |
1 | // File: TestTopOpeDraw_Displayer.cxx |
2 | // Created: Mon Sep 9 15:31:31 1996 |
3 | // Author: Jean Yves LEBEY |
4 | // <jyl@bistrox.paris1.matra-dtv.fr> |
5 | |
6 | #include <TestTopOpeDraw_Displayer.hxx> |
7 | |
8 | #include <TestTopOpeDraw_DrawableSHA.hxx> |
9 | #include <TestTopOpeDraw_DrawableP3D.hxx> |
10 | #include <TestTopOpeDraw_DrawableP2D.hxx> |
11 | #include <TestTopOpeDraw_DrawableC3D.hxx> |
12 | #include <TestTopOpeDraw_DrawableC2D.hxx> |
13 | #include <TestTopOpeDraw_DrawableSUR.hxx> |
14 | #include <TestTopOpeDraw_TTOT.hxx> |
15 | |
16 | #include <Precision.hxx> |
17 | #include <DBRep.hxx> |
18 | #include <Draw.hxx> |
19 | #include <Draw_Appli.hxx> |
20 | #include <DBRep.hxx> |
21 | |
22 | #ifdef WNT |
23 | Standard_IMPORT Draw_Viewer dout; |
24 | #endif |
25 | |
26 | //======================================================================= |
27 | //function : TestTopOpeDraw_Displayer |
28 | //purpose : |
29 | //======================================================================= |
30 | |
31 | TestTopOpeDraw_Displayer::TestTopOpeDraw_Displayer() |
32 | { |
33 | InitDisplayer(); |
34 | } |
35 | |
36 | //======================================================================= |
37 | //function : TestTopOpeDraw_Displayer |
38 | //purpose : |
39 | //======================================================================= |
40 | |
41 | TestTopOpeDraw_Displayer::TestTopOpeDraw_Displayer(const TCollection_AsciiString& namedbrep,const TopoDS_Shape& S) |
42 | { |
43 | InitDisplayer(); |
44 | DisplayShape(namedbrep,S); |
45 | } |
46 | |
47 | //======================================================================= |
48 | //function : TestTopOpeDraw_Displayer |
49 | //purpose : |
50 | //======================================================================= |
51 | |
52 | TestTopOpeDraw_Displayer::TestTopOpeDraw_Displayer |
53 | (const TCollection_AsciiString& namedbrep,const TCollection_AsciiString& namedisp,const TopoDS_Shape& S) |
54 | { |
55 | InitDisplayer(); |
56 | DisplayShape(namedbrep,namedisp,S); |
57 | } |
58 | |
59 | //======================================================================= |
60 | //function : DisplayShape |
61 | //purpose : |
62 | //======================================================================= |
63 | |
64 | void TestTopOpeDraw_Displayer::DisplayShape(const TCollection_AsciiString& namedbrep, const TopoDS_Shape& S) |
65 | { |
66 | if (S.IsNull()) return; |
67 | SetShape(namedbrep,S); |
68 | DisplayShapePrivate(); |
69 | } |
70 | |
71 | //======================================================================= |
72 | //function : DisplayShape |
73 | //purpose : |
74 | //======================================================================= |
75 | |
76 | void TestTopOpeDraw_Displayer::DisplayShape |
77 | (const TCollection_AsciiString& namedbrep,const TCollection_AsciiString& namedisp,const TopoDS_Shape& S) |
78 | { |
79 | if (S.IsNull()) return; |
80 | SetShape(namedbrep,S); |
81 | myNameDisplay = namedisp; |
82 | DisplayShapePrivate(); |
83 | } |
84 | |
85 | //======================================================================= |
86 | //function : DisplayShapePrivate |
87 | //purpose : |
88 | //======================================================================= |
89 | |
90 | void TestTopOpeDraw_Displayer::DisplayShapePrivate() |
91 | { |
92 | if (myShape.IsNull()) return; |
93 | TopAbs_ShapeEnum t = myShape.ShapeType(); |
94 | |
95 | myNameDisplay.Prepend(" "); |
96 | if ( ! myNameColorIs ) myNameColor = TestTopOpeDraw_TTOT::ShapeColor(myShape); |
97 | |
98 | if (myDisplayNameWithOrientation) TestTopOpeDraw_TTOT::CatOrientation(myShape,myNameDisplay); |
99 | if (myDisplayNameWithGeometry) TestTopOpeDraw_TTOT::CatGeometry(myShape,myNameDisplay); |
100 | Draw_Color ConnCol = Draw_jaune; |
101 | if (t == TopAbs_VERTEX) ConnCol = myNameColor; |
102 | Draw_Color EdgeCol = Draw_rouge; |
103 | if (myColIs) { |
104 | ConnCol = EdgeCol = myCol; |
105 | } |
106 | Handle(TestTopOpeDraw_DrawableSHA) D; |
107 | Standard_Integer nbisos = mySnbisos; |
108 | Standard_Boolean nbisosdef = mySnbisosdef; |
109 | Standard_Integer discret = mySdiscret; |
110 | Standard_Boolean discretdef = mySdiscretdef; |
111 | Standard_CString csn = myNameDBRep.ToCString(); |
112 | Handle(DBRep_DrawableShape) DBS = Handle(DBRep_DrawableShape)::DownCast(Draw::Get(csn)); |
113 | if (!DBS.IsNull() && !nbisosdef) { |
114 | nbisos = DBS->NbIsos(); |
115 | } |
116 | if (!DBS.IsNull() && !discretdef) { |
117 | discret = DBS->Discret(); |
118 | } |
119 | D = new TestTopOpeDraw_DrawableSHA |
120 | (myShape, |
121 | Draw_vert,ConnCol,EdgeCol,Draw_bleu,//free,shared,other,isos |
122 | mySsize,nbisos,discret, |
123 | myNameDisplay.ToCString(),myNameColor, |
124 | myDisplayGeometry); |
125 | |
126 | if (myTol != 0.0 ) D->SetTol(myTol); |
127 | if (myPar != -1.0 ) D->SetPar(myPar); |
128 | |
129 | char* pname = (char *)myNameDBRep.ToCString(); |
130 | Draw::Set(pname,Handle(DBRep_DrawableShape)::DownCast(D)); |
131 | } |
132 | |
133 | //======================================================================= |
134 | //function : InitDisplayer |
135 | //purpose : |
136 | //======================================================================= |
137 | |
138 | void TestTopOpeDraw_Displayer::InitDisplayer() |
139 | { |
140 | myDisplayGeometry = Standard_False; |
141 | myDisplayNameWithGeometry = Standard_False; |
142 | myDisplayNameWithOrientation = Standard_False; |
143 | |
144 | myShape.Nullify(); |
145 | NameDBRep().Copy(""); |
146 | NameDisplay().Copy(""); |
147 | |
148 | mySsize = 100.; |
149 | mySnbisos = DBRep::NbIsos(); |
150 | mySnbisosdef = Standard_False; |
151 | mySdiscret = DBRep::Discretisation(); |
152 | mySdiscretdef = Standard_False; |
153 | myTol = 0.0; |
154 | myTolIs = Standard_False; |
155 | myPar = -1.0; |
156 | myParIs = Standard_False; |
157 | myCol = Draw_blanc; |
158 | myColIs = Standard_False; |
159 | myNameColor = Draw_blanc; |
160 | myNameColorIs = Standard_False; |
161 | } |
162 | |
163 | //======================================================================= |
164 | //function : SetShape |
165 | //purpose : |
166 | //======================================================================= |
167 | |
168 | void TestTopOpeDraw_Displayer::SetShape(const TCollection_AsciiString& namedbrep,const TopoDS_Shape& S) |
169 | { |
170 | myShape = S; |
171 | myNameDBRep = namedbrep; |
172 | myNameDisplay = namedbrep; |
173 | if (myDisplayNameWithOrientation) TestTopOpeDraw_TTOT::CatOrientation(myShape,myNameDisplay); |
174 | if (myDisplayNameWithGeometry) TestTopOpeDraw_TTOT::CatGeometry(myShape,myNameDisplay); |
175 | } |
176 | |
177 | //======================================================================= |
178 | //function : TestTopOpeDraw_P3DDisplayer |
179 | //purpose : |
180 | //======================================================================= |
181 | |
182 | TestTopOpeDraw_P3DDisplayer::TestTopOpeDraw_P3DDisplayer() |
183 | {} |
184 | |
185 | //======================================================================= |
186 | //function : TestTopOpeDraw_P3DDisplayer |
187 | //purpose : |
188 | //======================================================================= |
189 | |
190 | TestTopOpeDraw_P3DDisplayer::TestTopOpeDraw_P3DDisplayer(const TCollection_AsciiString& namedbrep, const gp_Pnt& P) |
191 | { |
192 | DisplayP3D(namedbrep,P); |
193 | } |
194 | |
195 | //======================================================================= |
196 | //function : TestTopOpeDraw_P3DDisplayer |
197 | //purpose : |
198 | //======================================================================= |
199 | |
200 | TestTopOpeDraw_P3DDisplayer::TestTopOpeDraw_P3DDisplayer |
201 | (const TCollection_AsciiString& namedbrep,const Standard_Real x, const Standard_Real y, const Standard_Real z) |
202 | { |
203 | DisplayP3D(namedbrep,x,y,z); |
204 | } |
205 | |
206 | //======================================================================= |
207 | //function : DisplayP3D |
208 | //purpose : |
209 | //======================================================================= |
210 | |
211 | void TestTopOpeDraw_P3DDisplayer::DisplayP3D |
212 | (const TCollection_AsciiString& namedbrep,const Standard_Real x, const Standard_Real y, const Standard_Real z) |
213 | { |
214 | gp_Pnt P(x,y,z); |
215 | DisplayP3D(namedbrep,P); |
216 | } |
217 | |
218 | //======================================================================= |
219 | //function : DisplayP3D |
220 | //purpose : |
221 | //======================================================================= |
222 | |
223 | void TestTopOpeDraw_P3DDisplayer::DisplayP3D |
224 | (const TCollection_AsciiString& namedbrep,const gp_Pnt& P) |
225 | { |
226 | TCollection_AsciiString namedisp(" "); namedisp += namedbrep; |
227 | Handle(TestTopOpeDraw_DrawableP3D) D = |
228 | new TestTopOpeDraw_DrawableP3D(P,Draw_Square, |
229 | Draw_Color(Draw_rouge), |
230 | namedisp.ToCString(), |
231 | Draw_Color(Draw_cyan),1); |
232 | char* pname = (char *)namedbrep.ToCString(); |
233 | Draw::Set(pname,D); |
234 | dout<<D; |
235 | } |
236 | |
237 | //======================================================================= |
238 | //function : TestTopOpeDraw_P2DDisplayer |
239 | //purpose : |
240 | //======================================================================= |
241 | |
242 | TestTopOpeDraw_P2DDisplayer::TestTopOpeDraw_P2DDisplayer() |
243 | { |
244 | SetColor(Draw_Color(Draw_rouge)); |
245 | SetNameColor(Draw_Color(Draw_cyan)); |
246 | } |
247 | |
248 | //======================================================================= |
249 | //function : TestTopOpeDraw_P2DDisplayer |
250 | //purpose : |
251 | //======================================================================= |
252 | |
253 | TestTopOpeDraw_P2DDisplayer::TestTopOpeDraw_P2DDisplayer |
254 | (const TCollection_AsciiString& namedbrep, const gp_Pnt2d& P) |
255 | { |
256 | DisplayP2D(namedbrep,P); |
257 | } |
258 | |
259 | //======================================================================= |
260 | //function : TestTopOpeDraw_P2DDisplayer |
261 | //purpose : |
262 | //======================================================================= |
263 | |
264 | TestTopOpeDraw_P2DDisplayer::TestTopOpeDraw_P2DDisplayer |
265 | (const TCollection_AsciiString& namedbrep,const Standard_Real x, const Standard_Real y) |
266 | { |
267 | DisplayP2D(namedbrep,x,y); |
268 | } |
269 | |
270 | //======================================================================= |
271 | //function : DisplayP2D |
272 | //purpose : |
273 | //======================================================================= |
274 | |
275 | void TestTopOpeDraw_P2DDisplayer::DisplayP2D |
276 | (const TCollection_AsciiString& namedbrep,const Standard_Real x, const Standard_Real y) |
277 | { |
278 | gp_Pnt2d P(x,y); |
279 | DisplayP2D(namedbrep,P); |
280 | } |
281 | |
282 | //======================================================================= |
283 | //function : DisplayP2D |
284 | //purpose : |
285 | //======================================================================= |
286 | |
287 | void TestTopOpeDraw_P2DDisplayer::DisplayP2D |
288 | (const TCollection_AsciiString& namedbrep,const gp_Pnt2d& P) |
289 | { |
290 | TCollection_AsciiString namedisp(" "); namedisp += namedbrep; |
291 | Handle(TestTopOpeDraw_DrawableP2D) D; |
292 | D = new TestTopOpeDraw_DrawableP2D(P, |
293 | Draw_Square,myCol, |
294 | namedisp.ToCString(),myNameColor, |
295 | 1); |
296 | char* pname = (char *)namedbrep.ToCString(); |
297 | Draw::Set(pname,D); |
298 | dout<<D; |
299 | } |
300 | |
301 | //======================================================================= |
302 | //function : TestTopOpeDraw_C3DDisplayer |
303 | //purpose : |
304 | //======================================================================= |
305 | |
306 | TestTopOpeDraw_C3DDisplayer::TestTopOpeDraw_C3DDisplayer() |
307 | { |
308 | InitC3DDisplayer(); |
309 | } |
310 | |
311 | //======================================================================= |
312 | //function : TestTopOpeDraw_C3DDisplayer |
313 | //purpose : |
314 | //======================================================================= |
315 | |
316 | TestTopOpeDraw_C3DDisplayer::TestTopOpeDraw_C3DDisplayer(const Handle(Geom_Curve& C)) |
317 | { |
318 | InitC3DDisplayer(); |
319 | DisplayC3D(C); |
320 | } |
321 | |
322 | //======================================================================= |
323 | //function : InitC3DDisplayer |
324 | //purpose : |
325 | //======================================================================= |
326 | |
327 | void TestTopOpeDraw_C3DDisplayer::InitC3DDisplayer() |
328 | { |
329 | myCDdiscret = 16; |
330 | myCDdeflect = 0.01; |
331 | myCDdrawmod = 1; |
332 | myCDdisplayorigin = Standard_True; |
333 | } |
334 | |
335 | //======================================================================= |
336 | //function : DisplayC3D |
337 | //purpose : |
338 | //======================================================================= |
339 | |
340 | void TestTopOpeDraw_C3DDisplayer::DisplayC3D(const Handle(Geom_Curve& C)) |
341 | { |
342 | if (C.IsNull()) return; |
343 | Draw_ColorKind col = TestTopOpeDraw_TTOT::GeometryColor(TopOpeBRepDS_CURVE); |
344 | Handle(TestTopOpeDraw_DrawableC3D) D; |
345 | D = new TestTopOpeDraw_DrawableC3D |
346 | (C,col, |
347 | "",col, |
348 | myCDdiscret,myCDdeflect,myCDdrawmod,myCDdisplayorigin); |
349 | dout<<D; |
350 | } |
351 | |
352 | //======================================================================= |
353 | //function : TestTopOpeDraw_C2DDisplayer |
354 | //purpose : |
355 | //======================================================================= |
356 | |
357 | TestTopOpeDraw_C2DDisplayer::TestTopOpeDraw_C2DDisplayer() |
358 | { |
359 | InitC2DDisplayer(); |
360 | } |
361 | |
362 | //======================================================================= |
363 | //function : TestTopOpeDraw_C2DDisplayer |
364 | //purpose : |
365 | //======================================================================= |
366 | |
367 | TestTopOpeDraw_C2DDisplayer::TestTopOpeDraw_C2DDisplayer |
368 | (const Handle(Geom2d_Curve& C)) |
369 | { |
370 | InitC2DDisplayer(); |
371 | DisplayC2D(C); |
372 | } |
373 | |
374 | //======================================================================= |
375 | //function : InitC2DDisplayer |
376 | //purpose : |
377 | //======================================================================= |
378 | |
379 | void TestTopOpeDraw_C2DDisplayer::InitC2DDisplayer() |
380 | { |
381 | myC2Ddiscret = 16; |
382 | myC2Ddisplayorigin = Standard_True; |
383 | myC2Ddisplaycurvradius = Standard_False; |
384 | myC2Dradiusmax = 1.e3; |
385 | myC2Dradiusratio = 0.1; |
386 | Draw_ColorKind col = TestTopOpeDraw_TTOT::GeometryColor(TopOpeBRepDS_CURVE); |
387 | SetColor(Draw_Color(col)); |
388 | SetNameColor(Draw_Color(col)); |
389 | } |
390 | |
391 | //======================================================================= |
392 | //function : DisplayC2D |
393 | //purpose : |
394 | //======================================================================= |
395 | |
396 | void TestTopOpeDraw_C2DDisplayer::DisplayC2D(const Handle(Geom2d_Curve& C)) |
397 | { |
398 | if (C.IsNull()) return; |
399 | Handle(TestTopOpeDraw_DrawableC2D) D = new TestTopOpeDraw_DrawableC2D |
400 | (C,myCol,"",myNameColor, |
401 | myC2Ddiscret,myC2Ddisplayorigin, |
402 | myC2Ddisplaycurvradius,myC2Dradiusmax,myC2Dradiusratio); |
403 | dout<<D; |
404 | } |
405 | |
406 | //======================================================================= |
407 | //function : DisplayC2D |
408 | //purpose : |
409 | //======================================================================= |
410 | |
411 | void TestTopOpeDraw_C2DDisplayer::DisplayC2D |
412 | (const TCollection_AsciiString& namedbrep,const TCollection_AsciiString& namedisp,const Handle(Geom2d_Curve& C)) |
413 | { |
414 | Handle(TestTopOpeDraw_DrawableC2D) D = new TestTopOpeDraw_DrawableC2D |
415 | (C,myCol,namedisp.ToCString(),myNameColor, |
416 | myC2Ddiscret,myC2Ddisplayorigin, |
417 | myC2Ddisplaycurvradius,myC2Dradiusmax,myC2Dradiusratio); |
418 | char* pname = (char *)namedbrep.ToCString(); |
419 | Draw::Set(pname,D); |
420 | } |
421 | |
422 | //======================================================================= |
423 | //function : TestTopOpeDraw_SurfaceDisplayer |
424 | //purpose : |
425 | //======================================================================= |
426 | |
427 | TestTopOpeDraw_SurfaceDisplayer::TestTopOpeDraw_SurfaceDisplayer() |
428 | { |
429 | InitSurfaceDisplayer(); |
430 | } |
431 | |
432 | //======================================================================= |
433 | //function : TestTopOpeDraw_SurfaceDisplayer |
434 | //purpose : |
435 | //======================================================================= |
436 | |
437 | TestTopOpeDraw_SurfaceDisplayer::TestTopOpeDraw_SurfaceDisplayer |
438 | (const Handle(Geom_Surface& S)) |
439 | { |
440 | InitSurfaceDisplayer(); |
441 | DisplaySurface(S); |
442 | } |
443 | |
444 | //======================================================================= |
445 | //function : InitDisplayer |
446 | //purpose : |
447 | //======================================================================= |
448 | |
449 | void TestTopOpeDraw_SurfaceDisplayer::InitSurfaceDisplayer() |
450 | { |
451 | mySDBoundColor = Draw_vert; |
452 | mySDIsoColor = Draw_bleu; |
453 | mySDNormalColor = Draw_blanc; |
454 | mySDnu = 0; |
455 | mySDnv = 0; |
456 | mySDdiscret = 16; |
457 | mySDdeflect = 0.01; |
458 | mySDdrawmod = 1; |
459 | mySDdisplayorigin = Standard_True; |
460 | } |
461 | |
462 | //======================================================================= |
463 | //function : DisplaySurface |
464 | //purpose : |
465 | //======================================================================= |
466 | |
467 | void TestTopOpeDraw_SurfaceDisplayer::DisplaySurface(const Handle(Geom_Surface& S)) |
468 | { |
469 | if (S.IsNull()) return; |
7fd59977 |
470 | Handle(TestTopOpeDraw_DrawableSUR) D; |
471 | D = new TestTopOpeDraw_DrawableSUR |
472 | (S,mySDIsoColor,mySDBoundColor,mySDNormalColor, |
473 | "",myNameColor, |
474 | mySDnu,mySDnv,mySDdiscret,mySDdeflect,mySDdrawmod,mySDdisplayorigin); |
475 | dout<<D; |
476 | } |