1 // Copyright (c) 1999-2014 OPEN CASCADE SAS
3 // This file is part of Open CASCADE Technology software library.
5 // This library is free software; you can redistribute it and/or modify it under
6 // the terms of the GNU Lesser General Public License version 2.1 as published
7 // by the Free Software Foundation, with special exception defined in the file
8 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
9 // distribution for complete text of the license and disclaimer of any warranty.
11 // Alternatively, this file may be used under the terms of Open CASCADE
12 // commercial license or contractual agreement.
15 #include <Standard_Type.hxx>
16 #include <Vrml_Material.hxx>
17 #include <VrmlConverter_Drawer.hxx>
18 #include <VrmlConverter_IsoAspect.hxx>
19 #include <VrmlConverter_LineAspect.hxx>
20 #include <VrmlConverter_PointAspect.hxx>
21 #include <VrmlConverter_ShadingAspect.hxx>
23 IMPLEMENT_STANDARD_RTTIEXT(VrmlConverter_Drawer,Standard_Transient)
25 VrmlConverter_Drawer::VrmlConverter_Drawer():
27 myIsoOnPlane(Standard_False),
28 myFreeBoundaryDraw(Standard_True),
29 myUnFreeBoundaryDraw(Standard_True),
30 myWireDraw(Standard_True),
31 myChordialDeviation(0.1),
32 myTypeOfDeflection(Aspect_TOD_RELATIVE),
33 myMaximalParameterValue(500.),
34 myDeviationCoefficient(0.001),
35 myDrawHiddenLine(Standard_False)
39 void VrmlConverter_Drawer::SetTypeOfDeflection(const Aspect_TypeOfDeflection aTypeOfDeflection)
41 myTypeOfDeflection = aTypeOfDeflection;
44 Aspect_TypeOfDeflection VrmlConverter_Drawer::TypeOfDeflection() const
46 return myTypeOfDeflection;
49 void VrmlConverter_Drawer::SetMaximalChordialDeviation(const Standard_Real aChordialDeviation)
51 myChordialDeviation = aChordialDeviation;
54 Standard_Real VrmlConverter_Drawer::MaximalChordialDeviation() const
56 return myChordialDeviation;
59 void VrmlConverter_Drawer::SetDeviationCoefficient(const Standard_Real aCoefficient)
61 myDeviationCoefficient = aCoefficient;
64 Standard_Real VrmlConverter_Drawer::DeviationCoefficient() const
66 return myDeviationCoefficient;
69 void VrmlConverter_Drawer::SetDiscretisation(const Standard_Integer d)
74 Standard_Integer VrmlConverter_Drawer::Discretisation() const
79 void VrmlConverter_Drawer::SetMaximalParameterValue(const Standard_Real Value)
81 myMaximalParameterValue = Value;
84 Standard_Real VrmlConverter_Drawer::MaximalParameterValue() const
86 return myMaximalParameterValue;
89 void VrmlConverter_Drawer::SetIsoOnPlane(const Standard_Boolean OnOff)
94 Standard_Boolean VrmlConverter_Drawer::IsoOnPlane()const
99 Handle (VrmlConverter_IsoAspect) VrmlConverter_Drawer::UIsoAspect()
101 if (myUIsoAspect.IsNull())
103 Handle(Vrml_Material) m = new Vrml_Material;
104 myUIsoAspect = new VrmlConverter_IsoAspect (m, Standard_False, 1);
109 void VrmlConverter_Drawer::SetUIsoAspect ( const Handle(VrmlConverter_IsoAspect)& anAspect)
111 myUIsoAspect = anAspect;
114 Handle (VrmlConverter_IsoAspect) VrmlConverter_Drawer::VIsoAspect ()
116 if (myVIsoAspect.IsNull())
118 Handle(Vrml_Material) m = new Vrml_Material;
119 myVIsoAspect = new VrmlConverter_IsoAspect (m, Standard_False, 1);
124 void VrmlConverter_Drawer::SetVIsoAspect ( const Handle(VrmlConverter_IsoAspect)& anAspect)
126 myVIsoAspect = anAspect;
129 Handle(VrmlConverter_LineAspect) VrmlConverter_Drawer::FreeBoundaryAspect()
131 if (myFreeBoundaryAspect.IsNull())
133 Handle(Vrml_Material) m = new Vrml_Material;
134 myFreeBoundaryAspect = new VrmlConverter_LineAspect(m, Standard_False);
136 return myFreeBoundaryAspect;
139 void VrmlConverter_Drawer::SetFreeBoundaryAspect(const Handle(VrmlConverter_LineAspect)& anAspect)
141 myFreeBoundaryAspect = anAspect;
144 void VrmlConverter_Drawer::SetFreeBoundaryDraw(const Standard_Boolean OnOff)
146 myFreeBoundaryDraw = OnOff;
149 Standard_Boolean VrmlConverter_Drawer::FreeBoundaryDraw() const
151 return myFreeBoundaryDraw;
154 Handle(VrmlConverter_LineAspect) VrmlConverter_Drawer::WireAspect()
156 if (myWireAspect.IsNull())
158 Handle(Vrml_Material) m = new Vrml_Material;
159 myWireAspect = new VrmlConverter_LineAspect(m, Standard_False);
164 void VrmlConverter_Drawer::SetWireAspect(const Handle(VrmlConverter_LineAspect)& anAspect)
166 myWireAspect = anAspect;
169 void VrmlConverter_Drawer::SetWireDraw(const Standard_Boolean OnOff)
174 Standard_Boolean VrmlConverter_Drawer::WireDraw() const
179 Handle(VrmlConverter_LineAspect) VrmlConverter_Drawer::UnFreeBoundaryAspect()
181 if (myUnFreeBoundaryAspect.IsNull())
183 Handle(Vrml_Material) m = new Vrml_Material;
184 myUnFreeBoundaryAspect = new VrmlConverter_LineAspect(m, Standard_False);
186 return myUnFreeBoundaryAspect;
189 void VrmlConverter_Drawer::SetUnFreeBoundaryAspect(const Handle(VrmlConverter_LineAspect)& anAspect)
191 myUnFreeBoundaryAspect = anAspect;
194 void VrmlConverter_Drawer::SetUnFreeBoundaryDraw(const Standard_Boolean OnOff)
196 myUnFreeBoundaryDraw = OnOff;
199 Standard_Boolean VrmlConverter_Drawer::UnFreeBoundaryDraw() const
201 return myUnFreeBoundaryDraw;
204 Handle(VrmlConverter_LineAspect) VrmlConverter_Drawer::LineAspect()
206 if (myLineAspect.IsNull())
208 Handle(Vrml_Material) m = new Vrml_Material;
209 myLineAspect = new VrmlConverter_LineAspect(m, Standard_False);
214 void VrmlConverter_Drawer::SetLineAspect(const Handle(VrmlConverter_LineAspect)& anAspect)
216 myLineAspect = anAspect;
219 Handle(VrmlConverter_PointAspect) VrmlConverter_Drawer::PointAspect()
221 if (myPointAspect.IsNull())
223 Handle(Vrml_Material) m = new Vrml_Material;
224 myPointAspect = new VrmlConverter_PointAspect(m, Standard_False);
226 return myPointAspect;
229 void VrmlConverter_Drawer::SetPointAspect(const Handle(VrmlConverter_PointAspect)& anAspect)
231 myPointAspect = anAspect;
234 Handle(VrmlConverter_ShadingAspect) VrmlConverter_Drawer::ShadingAspect()
236 if (myShadingAspect.IsNull())
238 myShadingAspect = new VrmlConverter_ShadingAspect;
240 return myShadingAspect;
243 void VrmlConverter_Drawer::SetShadingAspect(const Handle(VrmlConverter_ShadingAspect)& anAspect)
245 myShadingAspect = anAspect;
248 Standard_Boolean VrmlConverter_Drawer::DrawHiddenLine () const {return myDrawHiddenLine;}
250 void VrmlConverter_Drawer::EnableDrawHiddenLine () {myDrawHiddenLine=Standard_True;}
252 void VrmlConverter_Drawer::DisableDrawHiddenLine () {myDrawHiddenLine=Standard_False;}
254 Handle (VrmlConverter_LineAspect) VrmlConverter_Drawer::HiddenLineAspect ()
256 if (myHiddenLineAspect.IsNull())
258 Handle(Vrml_Material) m = new Vrml_Material;
259 myHiddenLineAspect = new VrmlConverter_LineAspect(m, Standard_False);
261 return myHiddenLineAspect;
264 void VrmlConverter_Drawer::SetHiddenLineAspect ( const Handle(VrmlConverter_LineAspect)& anAspect)
266 myHiddenLineAspect = anAspect;
269 Handle (VrmlConverter_LineAspect) VrmlConverter_Drawer::SeenLineAspect ()
271 if (mySeenLineAspect.IsNull())
273 Handle(Vrml_Material) m = new Vrml_Material;
274 mySeenLineAspect = new VrmlConverter_LineAspect(m, Standard_False);
276 return mySeenLineAspect;
279 void VrmlConverter_Drawer::SetSeenLineAspect ( const Handle(VrmlConverter_LineAspect)& anAspect)
281 mySeenLineAspect = anAspect;