summaryrefslogtreecommitdiff
path: root/inc/IGESGeom_SplineSurface.hxx
blob: 8aa3e04a453e5082da77840347384d520f333f5d (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
// 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 _IGESGeom_SplineSurface_HeaderFile
#define _IGESGeom_SplineSurface_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_DefineHandle_HeaderFile
#include <Standard_DefineHandle.hxx>
#endif
#ifndef _Handle_IGESGeom_SplineSurface_HeaderFile
#include <Handle_IGESGeom_SplineSurface.hxx>
#endif

#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Handle_TColStd_HArray1OfReal_HeaderFile
#include <Handle_TColStd_HArray1OfReal.hxx>
#endif
#ifndef _Handle_IGESBasic_HArray2OfHArray1OfReal_HeaderFile
#include <Handle_IGESBasic_HArray2OfHArray1OfReal.hxx>
#endif
#ifndef _IGESData_IGESEntity_HeaderFile
#include <IGESData_IGESEntity.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
class TColStd_HArray1OfReal;
class IGESBasic_HArray2OfHArray1OfReal;
class Standard_DimensionMismatch;
class Standard_OutOfRange;


//! defines IGESSplineSurface, Type <114> Form <0> <br>
//!          in package IGESGeom <br>
//!          A parametric spline surface is a grid of polynomial <br>
//!          patches. Patch could be of the type Linear, Quadratic, <br>
//!          Cubic, Wilson-Fowler, Modified Wilson-Fowler, B-Spline <br>
//!          The M * N grid of patches is defined by the 'u' break <br>
//!          points TU(1), TU(2), ..., TU(M+1) and the 'v' break <br>
//!          points TV(1), TV(2), TV(3) ..., TV(N+1). <br>
class IGESGeom_SplineSurface : public IGESData_IGESEntity {

public:

  
  Standard_EXPORT   IGESGeom_SplineSurface();
  //! This method is used to set the fields of the class <br>
//!           SplineSurface <br>
//!       - aBoundaryType   : Type of Spline boundary <br>
//!                           1 = Linear <br>
//!                           2 = Quadratic <br>
//!                           3 = Cubic <br>
//!                           4 = Wilson-Fowler <br>
//!                           5 = Modified Wilson-Fowler <br>
//!                           6 = B-spline <br>
//!       - aPatchType      : Type of patch contained in the grid <br>
//!                           1 = Cartesian Product <br>
//!                           0 = Unspecified <br>
//!       - allUBreakpoints : u values of grid lines <br>
//!       - allVBreakpoints : v values of grid lines <br>
//!       - allXCoeffs      : X coefficients of M x N patches <br>
//!       - allYCoeffs      : Y coefficients of M x N patches <br>
//!       - allZCoeffs      : Z coefficients of M x N patches <br>
//! raises exception if allXCoeffs, allYCoeffs & allZCoeffs are not <br>
//! of the same size. <br>
//! or if the size of each element of the double array is not 16 <br>
  Standard_EXPORT     void Init(const Standard_Integer aBoundaryType,const Standard_Integer aPatchType,const Handle(TColStd_HArray1OfReal)& allUBreakpoints,const Handle(TColStd_HArray1OfReal)& allVBreakpoints,const Handle(IGESBasic_HArray2OfHArray1OfReal)& allXCoeffs,const Handle(IGESBasic_HArray2OfHArray1OfReal)& allYCoeffs,const Handle(IGESBasic_HArray2OfHArray1OfReal)& allZCoeffs) ;
  //! returns the number of U segments <br>
  Standard_EXPORT     Standard_Integer NbUSegments() const;
  //! returns the number of V segments <br>
  Standard_EXPORT     Standard_Integer NbVSegments() const;
  //! returns boundary type <br>
  Standard_EXPORT     Standard_Integer BoundaryType() const;
  //! returns patch type <br>
  Standard_EXPORT     Standard_Integer PatchType() const;
  //! returns U break point of the grid line referred to by anIndex <br>
//! raises exception if anIndex <= 0 or anIndex > NbUSegments() + 1 <br>
  Standard_EXPORT     Standard_Real UBreakPoint(const Standard_Integer anIndex) const;
  //! returns V break point of the grid line referred to by anIndex <br>
//! raises exception if anIndex <= 0 or anIndex > NbVSegments() + 1 <br>
  Standard_EXPORT     Standard_Real VBreakPoint(const Standard_Integer anIndex) const;
  //! returns X polynomial of patch referred to by anIndex1, anIndex2 <br>
//! raises exception if anIndex1 <= 0 or anIndex1 > NbUSegments() <br>
//!                  or anIndex2 <= 0 or anIndex2 > NbVSegments() <br>
  Standard_EXPORT     Handle_TColStd_HArray1OfReal XPolynomial(const Standard_Integer anIndex1,const Standard_Integer anIndex2) const;
  //! returns Y polynomial of patch referred to by anIndex1, anIndex2 <br>
//! raises exception if anIndex1 <= 0 or anIndex1 > NbUSegments() <br>
//!                  or anIndex2 <= 0 or anIndex2 > NbVSegments() <br>
  Standard_EXPORT     Handle_TColStd_HArray1OfReal YPolynomial(const Standard_Integer anIndex1,const Standard_Integer anIndex2) const;
  //! returns Z polynomial of patch referred to by anIndex1, anIndex2 <br>
//! raises exception if anIndex1 <= 0 or anIndex1 > NbUSegments() <br>
//!                  or anIndex2 <= 0 or anIndex2 > NbVSegments() <br>
  Standard_EXPORT     Handle_TColStd_HArray1OfReal ZPolynomial(const Standard_Integer anIndex1,const Standard_Integer anIndex2) const;
  //! returns in one all the polynomial values "in bulk" <br>
//!           usefull for massive treatements <br>
  Standard_EXPORT     void Polynomials(Handle(IGESBasic_HArray2OfHArray1OfReal)& XCoef,Handle(IGESBasic_HArray2OfHArray1OfReal)& YCoef,Handle(IGESBasic_HArray2OfHArray1OfReal)& ZCoef) const;




  DEFINE_STANDARD_RTTI(IGESGeom_SplineSurface)

protected:




private: 


Standard_Integer theBoundaryType;
Standard_Integer thePatchType;
Handle_TColStd_HArray1OfReal theUBreakPoints;
Handle_TColStd_HArray1OfReal theVBreakPoints;
Handle_IGESBasic_HArray2OfHArray1OfReal theXCoeffs;
Handle_IGESBasic_HArray2OfHArray1OfReal theYCoeffs;
Handle_IGESBasic_HArray2OfHArray1OfReal theZCoeffs;


};





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


#endif