Integration of OCCT 6.5.0 from SVN
[occt.git] / src / GeomToStep / GeomToStep_MakeToroidalSurface.cxx
1 // File:        GeomToStep_MakeToroidalSurface.cxx
2 // Created:     Thu Jun 17 14:47:08 1993
3 // Author:      Martine LANGLOIS
4 //              <mla@mastox>
5
6 #include <GeomToStep_MakeToroidalSurface.ixx>
7 #include <GeomToStep_MakeAxis2Placement3d.hxx>
8 #include <StdFail_NotDone.hxx>
9 #include <Geom_ToroidalSurface.hxx>
10 #include <StepGeom_ToroidalSurface.hxx>
11 #include <TCollection_HAsciiString.hxx>
12 #include <UnitsMethods.hxx>
13
14 //=============================================================================
15 // Creation d' une toroidal_surface de prostep a partir d' une ToroidalSurface
16 // de Geom
17 //=============================================================================
18
19 GeomToStep_MakeToroidalSurface::GeomToStep_MakeToroidalSurface
20   ( const Handle(Geom_ToroidalSurface)& S )
21         
22 {
23   Handle(StepGeom_ToroidalSurface) Surf;
24   Handle(StepGeom_Axis2Placement3d) aPosition;
25   Standard_Real aMajorRadius, aMinorRadius;
26   
27   GeomToStep_MakeAxis2Placement3d MkAxis2(S->Position());
28   aPosition = MkAxis2.Value();
29   aMajorRadius = S->MajorRadius();
30   aMinorRadius = S->MinorRadius();
31   Surf = new StepGeom_ToroidalSurface;
32   Handle(TCollection_HAsciiString) name = new TCollection_HAsciiString("");
33   Standard_Real fact = UnitsMethods::LengthFactor();
34   Surf->Init(name, aPosition, aMajorRadius/fact, aMinorRadius/fact);
35   theToroidalSurface = Surf;
36   done = Standard_True;
37 }
38
39 //=============================================================================
40 // renvoi des valeurs
41 //=============================================================================
42
43 const Handle(StepGeom_ToroidalSurface) &
44       GeomToStep_MakeToroidalSurface::Value() const
45 {
46   StdFail_NotDone_Raise_if(!done == Standard_True,"");
47   return theToroidalSurface;
48 }