Integration of OCCT 6.5.0 from SVN
[occt.git] / src / StepToGeom / StepToGeom_MakeLine.cxx
1 // File:        StepToGeom_MakeLine.cxx
2 // Created:     Fri Jul  2 17:51:47 1993
3 // Author:      Martine LANGLOIS
4 // sln 22.10.2001. CTS23496: Line is not created if direction have not been succesfully created (StepToGeom_MakeLine(...) function)
5
6 #include <StepToGeom_MakeLine.ixx>
7 #include <StepGeom_Line.hxx>
8 #include <StepGeom_Vector.hxx>
9 #include <StepGeom_CartesianPoint.hxx>
10 #include <StepToGeom_MakeVectorWithMagnitude.hxx>
11 #include <StepToGeom_MakeCartesianPoint.hxx>
12 #include <Geom_CartesianPoint.hxx>
13 #include <Geom_Line.hxx>
14 #include <Geom_VectorWithMagnitude.hxx>
15 #include <gp_Pnt.hxx>
16 #include <gp_Vec.hxx>
17 #include <gp_Dir.hxx>
18
19 //=============================================================================
20 // Creation d' une Line de Geom a partir d' une Line de Step
21 //=============================================================================
22
23 Standard_Boolean StepToGeom_MakeLine::Convert (const Handle(StepGeom_Line)& SC, Handle(Geom_Line)& CC)
24 {
25   Handle(Geom_CartesianPoint) P;
26   if (StepToGeom_MakeCartesianPoint::Convert(SC->Pnt(),P))
27   {
28     // sln 22.10.2001. CTS23496: Line is not created if direction have not been succesfully created 
29     Handle(Geom_VectorWithMagnitude) D;
30     if (StepToGeom_MakeVectorWithMagnitude::Convert(SC->Dir(),D))
31     {
32       const gp_Dir V(D->Vec());
33       CC = new Geom_Line(P->Pnt(), V);
34       return Standard_True;
35     }
36   }
37   return Standard_False;
38 }