summaryrefslogtreecommitdiff
path: root/inc/ShapeAlgo_AlgoContainer.hxx
blob: b0fff311e2a433d917f2a113bb09f5f6e3f449cd (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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
// 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 _ShapeAlgo_AlgoContainer_HeaderFile
#define _ShapeAlgo_AlgoContainer_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_ShapeAlgo_AlgoContainer_HeaderFile
#include <Handle_ShapeAlgo_AlgoContainer.hxx>
#endif

#ifndef _Handle_ShapeAlgo_ToolContainer_HeaderFile
#include <Handle_ShapeAlgo_ToolContainer.hxx>
#endif
#ifndef _MMgt_TShared_HeaderFile
#include <MMgt_TShared.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Handle_ShapeAnalysis_Wire_HeaderFile
#include <Handle_ShapeAnalysis_Wire.hxx>
#endif
#ifndef _Handle_ShapeExtend_WireData_HeaderFile
#include <Handle_ShapeExtend_WireData.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_TColGeom_HSequenceOfBoundedCurve_HeaderFile
#include <Handle_TColGeom_HSequenceOfBoundedCurve.hxx>
#endif
#ifndef _Handle_TColGeom2d_HSequenceOfBoundedCurve_HeaderFile
#include <Handle_TColGeom2d_HSequenceOfBoundedCurve.hxx>
#endif
#ifndef _Handle_Geom_BSplineSurface_HeaderFile
#include <Handle_Geom_BSplineSurface.hxx>
#endif
#ifndef _Handle_Geom_Surface_HeaderFile
#include <Handle_Geom_Surface.hxx>
#endif
#ifndef _Handle_Geom_Curve_HeaderFile
#include <Handle_Geom_Curve.hxx>
#endif
#ifndef _GeomAbs_Shape_HeaderFile
#include <GeomAbs_Shape.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
class ShapeAlgo_ToolContainer;
class ShapeAnalysis_Wire;
class ShapeExtend_WireData;
class Geom_BSplineCurve;
class TColGeom_SequenceOfCurve;
class Geom2d_BSplineCurve;
class TColGeom2d_SequenceOfCurve;
class TColGeom_HSequenceOfBoundedCurve;
class TColGeom2d_HSequenceOfBoundedCurve;
class TopoDS_Shape;
class Geom_BSplineSurface;
class Geom_Surface;
class TopoDS_Wire;
class TopoDS_Face;
class Geom_Curve;



class ShapeAlgo_AlgoContainer : public MMgt_TShared {

public:

  //! Empty constructor <br>
  Standard_EXPORT   ShapeAlgo_AlgoContainer();
  //! Sets ToolContainer <br>
        void SetToolContainer(const Handle(ShapeAlgo_ToolContainer)& TC) ;
  //! Returns ToolContainer <br>
        Handle_ShapeAlgo_ToolContainer ToolContainer() const;
  //! Finds the best way to connect and connects <nextsewd> to already <br>
//!          built <sewd> (in <saw>). <br>
//!          Returns False if <nextsewd> cannot be connected, otherwise - True. <br>
//!          <maxtol> specifies the maximum tolerance with which <nextsewd> can <br>
//!          be added. <br>
//!          <distmin> is used to receive the minimum distance between <nextsewd> <br>
//!          and <sewd>. <br>
//!          <revsewd>   is True if <sewd>     has been reversed before connecting. <br>
//!          <revnextwd> is True if <nextsewd> has been reversed before connecting. <br>
//!          Uses functionality of ShapeAnalysis_Wire. <br>
  Standard_EXPORT   virtual  Standard_Boolean ConnectNextWire(const Handle(ShapeAnalysis_Wire)& saw,const Handle(ShapeExtend_WireData)& nextsewd,const Standard_Real maxtol,Standard_Real& distmin,Standard_Boolean& revsewd,Standard_Boolean& revnextsewd) const;
  
  Standard_EXPORT   virtual  void ApproxBSplineCurve(const Handle(Geom_BSplineCurve)& bspline,TColGeom_SequenceOfCurve& seq) const;
  
  Standard_EXPORT   virtual  void ApproxBSplineCurve(const Handle(Geom2d_BSplineCurve)& bspline,TColGeom2d_SequenceOfCurve& seq) const;
  
  Standard_EXPORT   virtual  Standard_Boolean C0BSplineToSequenceOfC1BSplineCurve(const Handle(Geom_BSplineCurve)& BS,Handle(TColGeom_HSequenceOfBoundedCurve)& seqBS) const;
  //! Converts C0 B-Spline curve into sequence of C1 B-Spline curves. <br>
//!          Calls ShapeUpgrade::C0BSplineToSequenceOfC1BSplineCurve. <br>
  Standard_EXPORT   virtual  Standard_Boolean C0BSplineToSequenceOfC1BSplineCurve(const Handle(Geom2d_BSplineCurve)& BS,Handle(TColGeom2d_HSequenceOfBoundedCurve)& seqBS) const;
  //! Converts a shape on C0 geometry into the shape on C1 geometry. <br>
  Standard_EXPORT   virtual  TopoDS_Shape C0ShapeToC1Shape(const TopoDS_Shape& shape,const Standard_Real tol) const;
  //! Converts a surface to B-Spline. <br>
//!          Uses ShapeConstruct. <br>
  Standard_EXPORT   virtual  Handle_Geom_BSplineSurface ConvertSurfaceToBSpline(const Handle(Geom_Surface)& surf,const Standard_Real UF,const Standard_Real UL,const Standard_Real VF,const Standard_Real VL) const;
  //! Return 2 wires with the same number of edges. The both Edges <br>
//!          number i of these wires have got the same ratio between <br>
//!          theirs parameter lengths and their wire parameter lengths. <br>
  Standard_EXPORT   virtual  Standard_Boolean HomoWires(const TopoDS_Wire& wireIn1,const TopoDS_Wire& wireIn2,TopoDS_Wire& wireOut1,TopoDS_Wire& wireOut2,const Standard_Boolean byParam) const;
  //! Returns the outer wire on the face <Face>. <br>
  Standard_EXPORT   virtual  TopoDS_Wire OuterWire(const TopoDS_Face& face) const;
  //! Converts surface to periodic form. <br>
//!          Calls ShapeCustom_Surface. <br>
  Standard_EXPORT   virtual  Handle_Geom_Surface ConvertToPeriodic(const Handle(Geom_Surface)& surf) const;
  //! Computes exact UV bounds of all wires on the face <br>
  Standard_EXPORT   virtual  void GetFaceUVBounds(const TopoDS_Face& F,Standard_Real& Umin,Standard_Real& Umax,Standard_Real& Vmin,Standard_Real& Vmax) const;
  //! Convert Geom_Curve to Geom_BSplineCurve <br>
  Standard_EXPORT   virtual  Handle_Geom_BSplineCurve ConvertCurveToBSpline(const Handle(Geom_Curve)& C3D,const Standard_Real First,const Standard_Real Last,const Standard_Real Tol3d,const GeomAbs_Shape Continuity,const Standard_Integer MaxSegments,const Standard_Integer MaxDegree) const;




  DEFINE_STANDARD_RTTI(ShapeAlgo_AlgoContainer)

protected:




private: 


Handle_ShapeAlgo_ToolContainer myTC;


};


#include <ShapeAlgo_AlgoContainer.lxx>



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


#endif