summaryrefslogtreecommitdiff
path: root/inc/BRepFill_LocationLaw.hxx
blob: 6d6cbf0488d18cd8ea55eaba08940c5d7cc87786 (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
158
159
160
161
162
163
164
165
166
167
168
// 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 _BRepFill_LocationLaw_HeaderFile
#define _BRepFill_LocationLaw_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_BRepFill_LocationLaw_HeaderFile
#include <Handle_BRepFill_LocationLaw.hxx>
#endif

#ifndef _TopoDS_Wire_HeaderFile
#include <TopoDS_Wire.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Handle_GeomFill_HArray1OfLocationLaw_HeaderFile
#include <Handle_GeomFill_HArray1OfLocationLaw.hxx>
#endif
#ifndef _Handle_TColStd_HArray1OfReal_HeaderFile
#include <Handle_TColStd_HArray1OfReal.hxx>
#endif
#ifndef _Handle_TopTools_HArray1OfShape_HeaderFile
#include <Handle_TopTools_HArray1OfShape.hxx>
#endif
#ifndef _Handle_TColStd_HArray1OfInteger_HeaderFile
#include <Handle_TColStd_HArray1OfInteger.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _MMgt_TShared_HeaderFile
#include <MMgt_TShared.hxx>
#endif
#ifndef _GeomFill_PipeError_HeaderFile
#include <GeomFill_PipeError.hxx>
#endif
#ifndef _Handle_GeomFill_LocationLaw_HeaderFile
#include <Handle_GeomFill_LocationLaw.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
class GeomFill_HArray1OfLocationLaw;
class TColStd_HArray1OfReal;
class TopTools_HArray1OfShape;
class TColStd_HArray1OfInteger;
class Standard_OutOfRange;
class TopoDS_Wire;
class TColStd_Array1OfInteger;
class GeomFill_LocationLaw;
class TopoDS_Edge;
class TopoDS_Vertex;
class TopoDS_Shape;


//! Location Law on a  Wire. <br>
class BRepFill_LocationLaw : public MMgt_TShared {

public:

  //! Return a error status, if the  status is not PipeOk then <br>
//!          it exist a parameter tlike the law is not valuable for t. <br>
  Standard_EXPORT     GeomFill_PipeError GetStatus() const;
  //!  Apply a linear   transformation  on each law, to  have <br>
//!          continuity of the global law beetween the edges. <br>
  Standard_EXPORT   virtual  void TransformInG0Law() ;
  //! Apply a linear transformation on each law, to reduce <br>
//!           the   dicontinuities  of law at one  rotation. <br>
  Standard_EXPORT   virtual  void TransformInCompatibleLaw(const Standard_Real AngularTolerance) ;
  
  Standard_EXPORT     void DeleteTransform() ;
  
  Standard_EXPORT     Standard_Integer NbHoles(const Standard_Real Tol = 1.0e-7) ;
  
  Standard_EXPORT     void Holes(TColStd_Array1OfInteger& Interval) const;
  //! Return the number of elementary Law <br>
  Standard_EXPORT     Standard_Integer NbLaw() const;
  //! Return the elementary Law of rank <Index> <br>
//!          <Index> have to be in [1, NbLaw()] <br>
  Standard_EXPORT    const Handle_GeomFill_LocationLaw& Law(const Standard_Integer Index) const;
  //! return the path <br>
  Standard_EXPORT    const TopoDS_Wire& Wire() const;
  //! Return the Edge of rank <Index> in the path <br>
//!          <Index> have to be in [1, NbLaw()] <br>
  Standard_EXPORT    const TopoDS_Edge& Edge(const Standard_Integer Index) const;
  //! Return the vertex of rank <Index> in the path <br>
//!          <Index> have to be in [0, NbLaw()] <br>
  Standard_EXPORT     TopoDS_Vertex Vertex(const Standard_Integer Index) const;
  //! Compute <OutputVertex> like a transformation of <br>
//!          <InputVertex>  the  transformation   is given by <br>
//!          evaluation of the location law   in the vertex of <br>
//!          rank   <Index>. <br>
//!          <Location> is used to manage discontinuities : <br>
//!   - -1 : The law before the vertex is used. <br>
//!   -  1 : The law after the vertex is used. <br>
//!   -  0 : Average of the both laws is used. <br>
  Standard_EXPORT     void PerformVertex(const Standard_Integer Index,const TopoDS_Vertex& InputVertex,const Standard_Real TolMin,TopoDS_Vertex& OutputVertex,const Standard_Integer Location = 0) const;
  //!Return the Curvilinear Bounds of the <Index> Law <br>
  Standard_EXPORT     void CurvilinearBounds(const Standard_Integer Index,Standard_Real& First,Standard_Real& Last) const;
  
  Standard_EXPORT     Standard_Boolean IsClosed() const;
  //! Compute the Law's continuity beetween 2 edges of the path <br>
//! The result can be : <br>
//!  -1 : Case Not connex <br>
//!  0  : It is connex (G0) <br>
//!  1  : It is tangent (G1) <br>
  Standard_EXPORT     Standard_Integer IsG1(const Standard_Integer Index,const Standard_Real SpatialTolerance = 1.0e-7,const Standard_Real AngularTolerance = 1.0e-4) const;
  //! Apply the Law to a shape, for a given Curnilinear abscissa <br>
  Standard_EXPORT     void D0(const Standard_Real Abscissa,TopoDS_Shape& Section) ;
  //! Find the  index Law  and the  parmaeter, for  a given <br>
//!          Curnilinear abscissa <br>
  Standard_EXPORT     void Parameter(const Standard_Real Abscissa,Standard_Integer& Index,Standard_Real& Param) ;
  //!Return the curvilinear abscissa  corresponding to a point <br>
//!                 of  the path, defined by  <Index>  of  Edge and a <br>
//!                parameter on the edge. <br>
  Standard_EXPORT     Standard_Real Abscissa(const Standard_Integer Index,const Standard_Real Param) ;




  DEFINE_STANDARD_RTTI(BRepFill_LocationLaw)

protected:

  //! Initialize all the fields, this methode have to <br>
//!          be called by the constructors of Inherited class. <br>
  Standard_EXPORT     void Init(const TopoDS_Wire& Path) ;
  //! To preseve if possible  the Tangent in transformations <br>
//! It is the default mode. <br>
  Standard_EXPORT     void TangentIsMain() ;
  //! To preseve if possible the Normal in transformations <br>
  Standard_EXPORT     void NormalIsMain() ;
  //! To preseve if possible the BiNormal in transformations <br>
  Standard_EXPORT     void BiNormalIsMain() ;

TopoDS_Wire myPath;
Standard_Real myTol;
Handle_GeomFill_HArray1OfLocationLaw myLaws;
Handle_TColStd_HArray1OfReal myLength;
Handle_TopTools_HArray1OfShape myEdges;
Handle_TColStd_HArray1OfInteger myDisc;


private: 


Standard_Integer myType;


};





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


#endif