0022627: Change OCCT memory management defaults
[occt.git] / src / TestTopOpeDraw / TestTopOpeDraw_Displayer.cxx
CommitLineData
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
23Standard_IMPORT Draw_Viewer dout;
24#endif
25
26//=======================================================================
27//function : TestTopOpeDraw_Displayer
28//purpose :
29//=======================================================================
30
31TestTopOpeDraw_Displayer::TestTopOpeDraw_Displayer()
32{
33 InitDisplayer();
34}
35
36//=======================================================================
37//function : TestTopOpeDraw_Displayer
38//purpose :
39//=======================================================================
40
41TestTopOpeDraw_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
52TestTopOpeDraw_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
64void 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
76void 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
90void 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
138void 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
168void 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
182TestTopOpeDraw_P3DDisplayer::TestTopOpeDraw_P3DDisplayer()
183{}
184
185//=======================================================================
186//function : TestTopOpeDraw_P3DDisplayer
187//purpose :
188//=======================================================================
189
190TestTopOpeDraw_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
200TestTopOpeDraw_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
211void 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
223void 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
242TestTopOpeDraw_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
253TestTopOpeDraw_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
264TestTopOpeDraw_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
275void 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
287void 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
306TestTopOpeDraw_C3DDisplayer::TestTopOpeDraw_C3DDisplayer()
307{
308 InitC3DDisplayer();
309}
310
311//=======================================================================
312//function : TestTopOpeDraw_C3DDisplayer
313//purpose :
314//=======================================================================
315
316TestTopOpeDraw_C3DDisplayer::TestTopOpeDraw_C3DDisplayer(const Handle(Geom_Curve& C))
317{
318 InitC3DDisplayer();
319 DisplayC3D(C);
320}
321
322//=======================================================================
323//function : InitC3DDisplayer
324//purpose :
325//=======================================================================
326
327void 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
340void 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
357TestTopOpeDraw_C2DDisplayer::TestTopOpeDraw_C2DDisplayer()
358{
359 InitC2DDisplayer();
360}
361
362//=======================================================================
363//function : TestTopOpeDraw_C2DDisplayer
364//purpose :
365//=======================================================================
366
367TestTopOpeDraw_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
379void 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
396void 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
411void 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
427TestTopOpeDraw_SurfaceDisplayer::TestTopOpeDraw_SurfaceDisplayer()
428{
429 InitSurfaceDisplayer();
430}
431
432//=======================================================================
433//function : TestTopOpeDraw_SurfaceDisplayer
434//purpose :
435//=======================================================================
436
437TestTopOpeDraw_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
449void 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
467void 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}