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>
6 #include <TestTopOpeDraw_Displayer.hxx>
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>
16 #include <Precision.hxx>
19 #include <Draw_Appli.hxx>
23 Standard_IMPORT Draw_Viewer dout;
26 //=======================================================================
27 //function : TestTopOpeDraw_Displayer
29 //=======================================================================
31 TestTopOpeDraw_Displayer::TestTopOpeDraw_Displayer()
36 //=======================================================================
37 //function : TestTopOpeDraw_Displayer
39 //=======================================================================
41 TestTopOpeDraw_Displayer::TestTopOpeDraw_Displayer(const TCollection_AsciiString& namedbrep,const TopoDS_Shape& S)
44 DisplayShape(namedbrep,S);
47 //=======================================================================
48 //function : TestTopOpeDraw_Displayer
50 //=======================================================================
52 TestTopOpeDraw_Displayer::TestTopOpeDraw_Displayer
53 (const TCollection_AsciiString& namedbrep,const TCollection_AsciiString& namedisp,const TopoDS_Shape& S)
56 DisplayShape(namedbrep,namedisp,S);
59 //=======================================================================
60 //function : DisplayShape
62 //=======================================================================
64 void TestTopOpeDraw_Displayer::DisplayShape(const TCollection_AsciiString& namedbrep, const TopoDS_Shape& S)
66 if (S.IsNull()) return;
67 SetShape(namedbrep,S);
68 DisplayShapePrivate();
71 //=======================================================================
72 //function : DisplayShape
74 //=======================================================================
76 void TestTopOpeDraw_Displayer::DisplayShape
77 (const TCollection_AsciiString& namedbrep,const TCollection_AsciiString& namedisp,const TopoDS_Shape& S)
79 if (S.IsNull()) return;
80 SetShape(namedbrep,S);
81 myNameDisplay = namedisp;
82 DisplayShapePrivate();
85 //=======================================================================
86 //function : DisplayShapePrivate
88 //=======================================================================
90 void TestTopOpeDraw_Displayer::DisplayShapePrivate()
92 if (myShape.IsNull()) return;
93 TopAbs_ShapeEnum t = myShape.ShapeType();
95 myNameDisplay.Prepend(" ");
96 if ( ! myNameColorIs ) myNameColor = TestTopOpeDraw_TTOT::ShapeColor(myShape);
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;
104 ConnCol = EdgeCol = myCol;
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();
116 if (!DBS.IsNull() && !discretdef) {
117 discret = DBS->Discret();
119 D = new TestTopOpeDraw_DrawableSHA
121 Draw_vert,ConnCol,EdgeCol,Draw_bleu,//free,shared,other,isos
122 mySsize,nbisos,discret,
123 myNameDisplay.ToCString(),myNameColor,
126 if (myTol != 0.0 ) D->SetTol(myTol);
127 if (myPar != -1.0 ) D->SetPar(myPar);
129 char* pname = (char *)myNameDBRep.ToCString();
130 Draw::Set(pname,Handle(DBRep_DrawableShape)::DownCast(D));
133 //=======================================================================
134 //function : InitDisplayer
136 //=======================================================================
138 void TestTopOpeDraw_Displayer::InitDisplayer()
140 myDisplayGeometry = Standard_False;
141 myDisplayNameWithGeometry = Standard_False;
142 myDisplayNameWithOrientation = Standard_False;
145 NameDBRep().Copy("");
146 NameDisplay().Copy("");
149 mySnbisos = DBRep::NbIsos();
150 mySnbisosdef = Standard_False;
151 mySdiscret = DBRep::Discretisation();
152 mySdiscretdef = Standard_False;
154 myTolIs = Standard_False;
156 myParIs = Standard_False;
158 myColIs = Standard_False;
159 myNameColor = Draw_blanc;
160 myNameColorIs = Standard_False;
163 //=======================================================================
164 //function : SetShape
166 //=======================================================================
168 void TestTopOpeDraw_Displayer::SetShape(const TCollection_AsciiString& namedbrep,const TopoDS_Shape& S)
171 myNameDBRep = namedbrep;
172 myNameDisplay = namedbrep;
173 if (myDisplayNameWithOrientation) TestTopOpeDraw_TTOT::CatOrientation(myShape,myNameDisplay);
174 if (myDisplayNameWithGeometry) TestTopOpeDraw_TTOT::CatGeometry(myShape,myNameDisplay);
177 //=======================================================================
178 //function : TestTopOpeDraw_P3DDisplayer
180 //=======================================================================
182 TestTopOpeDraw_P3DDisplayer::TestTopOpeDraw_P3DDisplayer()
185 //=======================================================================
186 //function : TestTopOpeDraw_P3DDisplayer
188 //=======================================================================
190 TestTopOpeDraw_P3DDisplayer::TestTopOpeDraw_P3DDisplayer(const TCollection_AsciiString& namedbrep, const gp_Pnt& P)
192 DisplayP3D(namedbrep,P);
195 //=======================================================================
196 //function : TestTopOpeDraw_P3DDisplayer
198 //=======================================================================
200 TestTopOpeDraw_P3DDisplayer::TestTopOpeDraw_P3DDisplayer
201 (const TCollection_AsciiString& namedbrep,const Standard_Real x, const Standard_Real y, const Standard_Real z)
203 DisplayP3D(namedbrep,x,y,z);
206 //=======================================================================
207 //function : DisplayP3D
209 //=======================================================================
211 void TestTopOpeDraw_P3DDisplayer::DisplayP3D
212 (const TCollection_AsciiString& namedbrep,const Standard_Real x, const Standard_Real y, const Standard_Real z)
215 DisplayP3D(namedbrep,P);
218 //=======================================================================
219 //function : DisplayP3D
221 //=======================================================================
223 void TestTopOpeDraw_P3DDisplayer::DisplayP3D
224 (const TCollection_AsciiString& namedbrep,const gp_Pnt& P)
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();
237 //=======================================================================
238 //function : TestTopOpeDraw_P2DDisplayer
240 //=======================================================================
242 TestTopOpeDraw_P2DDisplayer::TestTopOpeDraw_P2DDisplayer()
244 SetColor(Draw_Color(Draw_rouge));
245 SetNameColor(Draw_Color(Draw_cyan));
248 //=======================================================================
249 //function : TestTopOpeDraw_P2DDisplayer
251 //=======================================================================
253 TestTopOpeDraw_P2DDisplayer::TestTopOpeDraw_P2DDisplayer
254 (const TCollection_AsciiString& namedbrep, const gp_Pnt2d& P)
256 DisplayP2D(namedbrep,P);
259 //=======================================================================
260 //function : TestTopOpeDraw_P2DDisplayer
262 //=======================================================================
264 TestTopOpeDraw_P2DDisplayer::TestTopOpeDraw_P2DDisplayer
265 (const TCollection_AsciiString& namedbrep,const Standard_Real x, const Standard_Real y)
267 DisplayP2D(namedbrep,x,y);
270 //=======================================================================
271 //function : DisplayP2D
273 //=======================================================================
275 void TestTopOpeDraw_P2DDisplayer::DisplayP2D
276 (const TCollection_AsciiString& namedbrep,const Standard_Real x, const Standard_Real y)
279 DisplayP2D(namedbrep,P);
282 //=======================================================================
283 //function : DisplayP2D
285 //=======================================================================
287 void TestTopOpeDraw_P2DDisplayer::DisplayP2D
288 (const TCollection_AsciiString& namedbrep,const gp_Pnt2d& P)
290 TCollection_AsciiString namedisp(" "); namedisp += namedbrep;
291 Handle(TestTopOpeDraw_DrawableP2D) D;
292 D = new TestTopOpeDraw_DrawableP2D(P,
294 namedisp.ToCString(),myNameColor,
296 char* pname = (char *)namedbrep.ToCString();
301 //=======================================================================
302 //function : TestTopOpeDraw_C3DDisplayer
304 //=======================================================================
306 TestTopOpeDraw_C3DDisplayer::TestTopOpeDraw_C3DDisplayer()
311 //=======================================================================
312 //function : TestTopOpeDraw_C3DDisplayer
314 //=======================================================================
316 TestTopOpeDraw_C3DDisplayer::TestTopOpeDraw_C3DDisplayer(const Handle(Geom_Curve& C))
322 //=======================================================================
323 //function : InitC3DDisplayer
325 //=======================================================================
327 void TestTopOpeDraw_C3DDisplayer::InitC3DDisplayer()
332 myCDdisplayorigin = Standard_True;
335 //=======================================================================
336 //function : DisplayC3D
338 //=======================================================================
340 void TestTopOpeDraw_C3DDisplayer::DisplayC3D(const Handle(Geom_Curve& C))
342 if (C.IsNull()) return;
343 Draw_ColorKind col = TestTopOpeDraw_TTOT::GeometryColor(TopOpeBRepDS_CURVE);
344 Handle(TestTopOpeDraw_DrawableC3D) D;
345 D = new TestTopOpeDraw_DrawableC3D
348 myCDdiscret,myCDdeflect,myCDdrawmod,myCDdisplayorigin);
352 //=======================================================================
353 //function : TestTopOpeDraw_C2DDisplayer
355 //=======================================================================
357 TestTopOpeDraw_C2DDisplayer::TestTopOpeDraw_C2DDisplayer()
362 //=======================================================================
363 //function : TestTopOpeDraw_C2DDisplayer
365 //=======================================================================
367 TestTopOpeDraw_C2DDisplayer::TestTopOpeDraw_C2DDisplayer
368 (const Handle(Geom2d_Curve& C))
374 //=======================================================================
375 //function : InitC2DDisplayer
377 //=======================================================================
379 void TestTopOpeDraw_C2DDisplayer::InitC2DDisplayer()
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));
391 //=======================================================================
392 //function : DisplayC2D
394 //=======================================================================
396 void TestTopOpeDraw_C2DDisplayer::DisplayC2D(const Handle(Geom2d_Curve& C))
398 if (C.IsNull()) return;
399 Handle(TestTopOpeDraw_DrawableC2D) D = new TestTopOpeDraw_DrawableC2D
400 (C,myCol,"",myNameColor,
401 myC2Ddiscret,myC2Ddisplayorigin,
402 myC2Ddisplaycurvradius,myC2Dradiusmax,myC2Dradiusratio);
406 //=======================================================================
407 //function : DisplayC2D
409 //=======================================================================
411 void TestTopOpeDraw_C2DDisplayer::DisplayC2D
412 (const TCollection_AsciiString& namedbrep,const TCollection_AsciiString& namedisp,const Handle(Geom2d_Curve& C))
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();
422 //=======================================================================
423 //function : TestTopOpeDraw_SurfaceDisplayer
425 //=======================================================================
427 TestTopOpeDraw_SurfaceDisplayer::TestTopOpeDraw_SurfaceDisplayer()
429 InitSurfaceDisplayer();
432 //=======================================================================
433 //function : TestTopOpeDraw_SurfaceDisplayer
435 //=======================================================================
437 TestTopOpeDraw_SurfaceDisplayer::TestTopOpeDraw_SurfaceDisplayer
438 (const Handle(Geom_Surface& S))
440 InitSurfaceDisplayer();
444 //=======================================================================
445 //function : InitDisplayer
447 //=======================================================================
449 void TestTopOpeDraw_SurfaceDisplayer::InitSurfaceDisplayer()
451 mySDBoundColor = Draw_vert;
452 mySDIsoColor = Draw_bleu;
453 mySDNormalColor = Draw_blanc;
459 mySDdisplayorigin = Standard_True;
462 //=======================================================================
463 //function : DisplaySurface
465 //=======================================================================
467 void TestTopOpeDraw_SurfaceDisplayer::DisplaySurface(const Handle(Geom_Surface& S))
469 if (S.IsNull()) return;
471 Draw_ColorKind isocol =
473 TestTopOpeDraw_TTOT::GeometryColor(TopOpeBRepDS_SURFACE);
474 Handle(TestTopOpeDraw_DrawableSUR) D;
475 D = new TestTopOpeDraw_DrawableSUR
476 (S,mySDIsoColor,mySDBoundColor,mySDNormalColor,
478 mySDnu,mySDnv,mySDdiscret,mySDdeflect,mySDdrawmod,mySDdisplayorigin);