summaryrefslogtreecommitdiff
path: root/inc/IGESConvGeom.hxx
blob: 820b5a38cd3768b79912dda0aa7e69cc5b516ae8 (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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _IGESConvGeom_HeaderFile
#define _IGESConvGeom_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_Macro_HeaderFile
#include <Standard_Macro.hxx>
#endif

#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Handle_IGESGeom_SplineCurve_HeaderFile
#include <Handle_IGESGeom_SplineCurve.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Handle_Geom_BSplineCurve_HeaderFile
#include <Handle_Geom_BSplineCurve.hxx>
#endif
#ifndef _Handle_Geom2d_BSplineCurve_HeaderFile
#include <Handle_Geom2d_BSplineCurve.hxx>
#endif
#ifndef _Handle_IGESGeom_SplineSurface_HeaderFile
#include <Handle_IGESGeom_SplineSurface.hxx>
#endif
#ifndef _Handle_Geom_BSplineSurface_HeaderFile
#include <Handle_Geom_BSplineSurface.hxx>
#endif
class IGESGeom_SplineCurve;
class Geom_BSplineCurve;
class Geom2d_BSplineCurve;
class IGESGeom_SplineSurface;
class Geom_BSplineSurface;
class IGESConvGeom_GeomBuilder;


//! This package is intended to gather geometric conversion which <br>
//!           are not immediate but can be used for several purposes : <br>
//!           mainly, standard conversion to and from CasCade geometric and <br>
//!           topologic data, and adaptations of IGES files as required <br>
//!           (as replacing Spline entities to BSpline equivalents). <br>
class IGESConvGeom  {
public:

  void* operator new(size_t,void* anAddress) 
  {
    return anAddress;
  }
  void* operator new(size_t size) 
  {
    return Standard::Allocate(size); 
  }
  void  operator delete(void *anAddress) 
  {
    if (anAddress) Standard::Free((Standard_Address&)anAddress); 
  }

  //! Converts a SplineCurve from IGES to a BSplineCurve from CasCade <br>
//!           <epscoef> gives tolerance to consider coefficient to be nul <br>
//!           <epsgeom> gives tolerance to consider poles to be equal <br>
//!           The returned value is a status with these possible values : <br>
//!           - 0  OK, done <br>
//!           - 1  the result is not guaranteed to be C0 (with <epsgeom>) <br>
//!           - 2  SplineType not processed (allowed : max 3) <br>
//!                (no result produced) <br>
//!           - 3  error during creation of control points <br>
//!                (no result produced) <br>
//!           - 4  polynomial equation is not correct (no result produced) <br>
//!           - 5  less than one segment (no result produced) <br>
  Standard_EXPORT   static  Standard_Integer SplineCurveFromIGES(const Handle(IGESGeom_SplineCurve)& igesent,const Standard_Real epscoef,const Standard_Real epsgeom,Handle(Geom_BSplineCurve)& result) ;
  //! Tries to increase curve continuity with tolerance <epsgeom> <br>
//!           <continuity> is the new desired continuity, can be 1 or 2 <br>
//!           (more than 2 is considered as 2). <br>
//!           Returns the new maximum continuity obtained on all knots. <br>
//!           Remark that, for instance with <continuity> = 2, even if not <br>
//!           all the knots can be passed to C2, all knots which can be are. <br>
  Standard_EXPORT   static  Standard_Integer IncreaseCurveContinuity(const Handle(Geom_BSplineCurve)& curve,const Standard_Real epsgeom,const Standard_Integer continuity = 2) ;
  
  Standard_EXPORT   static  Standard_Integer IncreaseCurveContinuity(const Handle(Geom2d_BSplineCurve)& curve,const Standard_Real epsgeom,const Standard_Integer continuity = 2) ;
  //! Converts a SplineSurface from IGES to a BSplineSurface from CasCade <br>
//!           <epscoef> gives tolerance to consider coefficient to be nul <br>
//!           <epsgeom> gives tolerance to consider poles to be equal <br>
//!           The returned value is a status with these possible values : <br>
//!           - 0  OK, done <br>
//!           - 1  the result is not guaranteed to be C0 (with <epsgeom>) <br>
//!           - 2  degree is not compatible with code boundary type <br>
//!                (warning) but C0 is OK <br>
//!           - 3  idem but C0 is not guaranteed (warning) <br>
//!           - 4  degree has been determined to be nul, either in U or V <br>
//!                (no result produced) <br>
//!           - 5  less than one segment in U or V (no result produced) <br>
  Standard_EXPORT   static  Standard_Integer SplineSurfaceFromIGES(const Handle(IGESGeom_SplineSurface)& igesent,const Standard_Real epscoef,const Standard_Real epsgeom,Handle(Geom_BSplineSurface)& result) ;
  //! Tries to increase Surface continuity with tolerance <epsgeom> <br>
//!           <continuity> is the new desired continuity, can be 1 or 2 <br>
//!           (more than 2 is considered as 2). <br>
//!           Returns the new maximum continuity obtained on all knots. <br>
//!           Remark that, for instance with <continuity> = 2, even if not <br>
//!           all the knots can be passed to C2, all knots which can be are. <br>
  Standard_EXPORT   static  Standard_Integer IncreaseSurfaceContinuity(const Handle(Geom_BSplineSurface)& surface,const Standard_Real epsgeom,const Standard_Integer continuity = 2) ;





protected:





private:




friend class IGESConvGeom_GeomBuilder;

};





// other Inline functions and methods (like "C++: function call" methods)


#endif