File: IGESGeom_SplineSurface.hxx

package info (click to toggle)
oce 0.18.3-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 301,548 kB
  • sloc: cpp: 1,190,609; ansic: 67,225; sh: 11,630; tcl: 7,954; cs: 5,221; python: 2,867; java: 1,522; makefile: 342; xml: 292; perl: 37
file content (131 lines) | stat: -rw-r--r-- 5,093 bytes parent folder | download | duplicates (5)
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
// 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

#include <Standard.hxx>
#include <Standard_DefineHandle.hxx>
#include <Handle_IGESGeom_SplineSurface.hxx>

#include <Standard_Integer.hxx>
#include <Handle_TColStd_HArray1OfReal.hxx>
#include <Handle_IGESBasic_HArray2OfHArray1OfReal.hxx>
#include <IGESData_IGESEntity.hxx>
#include <Standard_Real.hxx>
class TColStd_HArray1OfReal;
class IGESBasic_HArray2OfHArray1OfReal;
class Standard_DimensionMismatch;
class Standard_OutOfRange;


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

public:

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


};







#endif // _IGESGeom_SplineSurface_HeaderFile