summaryrefslogtreecommitdiff
path: root/src/GeomToStep/GeomToStep_MakeElementarySurface.cxx
blob: ce2f4d763ff3905cf97e899f87d7249d9304f96e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
// File:	GeomToStep_MakeElementarySurface.cxx
// Created:	Tue Jun 22 14:28:02 1993
// Author:	Martine LANGLOIS
//		<mla@mastox>

#include <GeomToStep_MakeElementarySurface.ixx>
#include <StdFail_NotDone.hxx>
#include <StepGeom_ElementarySurface.hxx>
#include <GeomToStep_MakeElementarySurface.hxx>
#include <Geom_CylindricalSurface.hxx>
#include <Geom_ConicalSurface.hxx>
#include <Geom_SphericalSurface.hxx>
#include <Geom_ToroidalSurface.hxx>
#include <Geom_Plane.hxx>
#include <GeomToStep_MakeCylindricalSurface.hxx>
#include <GeomToStep_MakeConicalSurface.hxx>
#include <GeomToStep_MakeSphericalSurface.hxx>
#include <GeomToStep_MakeToroidalSurface.hxx>
#include <GeomToStep_MakePlane.hxx>

//=============================================================================
// Creation d' une ElementarySurface de prostep a partir d' une 
// ElementarySurface de Geom
//=============================================================================

GeomToStep_MakeElementarySurface::GeomToStep_MakeElementarySurface
  ( const Handle(Geom_ElementarySurface)& S)
{
  done = Standard_True;
  if (S->IsKind(STANDARD_TYPE(Geom_CylindricalSurface))) {
    Handle(Geom_CylindricalSurface) Sur = 
      Handle(Geom_CylindricalSurface)::DownCast(S);
    GeomToStep_MakeCylindricalSurface MkCylindrical(Sur);
    theElementarySurface = MkCylindrical.Value();
  }
  else if (S->IsKind(STANDARD_TYPE(Geom_ConicalSurface))) {
    Handle(Geom_ConicalSurface) Sur = 
      Handle(Geom_ConicalSurface)::DownCast(S);
    GeomToStep_MakeConicalSurface MkConical(Sur);
    theElementarySurface = MkConical.Value();
  }
  else if (S->IsKind(STANDARD_TYPE(Geom_SphericalSurface))) {
    Handle(Geom_SphericalSurface) Sur = 
      Handle(Geom_SphericalSurface)::DownCast(S);
    GeomToStep_MakeSphericalSurface MkSpherical(Sur);
    theElementarySurface = MkSpherical.Value();
  }
  else if (S->IsKind(STANDARD_TYPE(Geom_ToroidalSurface))) {
    Handle(Geom_ToroidalSurface) Sur = 
      Handle(Geom_ToroidalSurface)::DownCast(S);
    GeomToStep_MakeToroidalSurface MkToroidal(Sur);
    theElementarySurface = MkToroidal.Value();
  }
  else if (S->IsKind(STANDARD_TYPE(Geom_Plane))) {
    Handle(Geom_Plane) Sur =	Handle(Geom_Plane)::DownCast(S); 
    GeomToStep_MakePlane MkPlane(Sur);
    theElementarySurface = MkPlane.Value();
  }
  else
    done = Standard_False;
}	 


//=============================================================================
// renvoi des valeurs
//=============================================================================

const Handle(StepGeom_ElementarySurface) &
      GeomToStep_MakeElementarySurface::Value() const
{
  StdFail_NotDone_Raise_if(!done == Standard_True,"");
  return theElementarySurface;
}