|
||||
File indexing completed on 2025-01-18 10:04:01
0001 // Created on: 1993-01-09 0002 // Created by: CKY / Contract Toubro-Larsen ( Kiran ) 0003 // Copyright (c) 1993-1999 Matra Datavision 0004 // Copyright (c) 1999-2014 OPEN CASCADE SAS 0005 // 0006 // This file is part of Open CASCADE Technology software library. 0007 // 0008 // This library is free software; you can redistribute it and/or modify it under 0009 // the terms of the GNU Lesser General Public License version 2.1 as published 0010 // by the Free Software Foundation, with special exception defined in the file 0011 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT 0012 // distribution for complete text of the license and disclaimer of any warranty. 0013 // 0014 // Alternatively, this file may be used under the terms of Open CASCADE 0015 // commercial license or contractual agreement. 0016 0017 #ifndef _IGESGeom_SplineCurve_HeaderFile 0018 #define _IGESGeom_SplineCurve_HeaderFile 0019 0020 #include <Standard.hxx> 0021 0022 #include <Standard_Integer.hxx> 0023 #include <TColStd_HArray1OfReal.hxx> 0024 #include <TColStd_HArray2OfReal.hxx> 0025 #include <IGESData_IGESEntity.hxx> 0026 #include <Standard_Real.hxx> 0027 0028 0029 class IGESGeom_SplineCurve; 0030 DEFINE_STANDARD_HANDLE(IGESGeom_SplineCurve, IGESData_IGESEntity) 0031 0032 //! Defines IGESSplineCurve, Type <112> Form <0> 0033 //! in package IGESGeom 0034 //! The parametric spline is a sequence of parametric 0035 //! polynomial segments. The curve could be of the type 0036 //! Linear, Quadratic, Cubic, Wilson-Fowler, Modified 0037 //! Wilson-Fowler, B-Spline. The N polynomial segments 0038 //! are delimited by the break points T(1), T(2), T(3), 0039 //! ..., T(N+1). 0040 class IGESGeom_SplineCurve : public IGESData_IGESEntity 0041 { 0042 0043 public: 0044 0045 0046 Standard_EXPORT IGESGeom_SplineCurve(); 0047 0048 //! This method is used to set the fields of the class 0049 //! SplineCurve 0050 //! - aType : Spline Type 0051 //! 1 = Linear 0052 //! 2 = Quadratic 0053 //! 3 = Cubic 0054 //! 4 = Wilson-Fowler 0055 //! 5 = Modified Wilson-Fowler 0056 //! 6 = B Spline 0057 //! - aDegree : Degree of continuity w.r.t. arc length 0058 //! - nbDimensions : Number of dimensions 0059 //! 2 = Planar 0060 //! 3 = Non-planar 0061 //! - allBreakPoints : Array of break points 0062 //! - allXPolynomials : X coordinate polynomials of segments 0063 //! - allYPolynomials : Y coordinate polynomials of segments 0064 //! - allZPolynomials : Z coordinate polynomials of segments 0065 //! - allXValues : Values of 1st, 2nd, 3rd derivatives of 0066 //! X polynomials at the terminate point 0067 //! and values of X at terminate point 0068 //! - allYValues : Values of 1st, 2nd, 3rd derivatives of 0069 //! Y polynomials at the terminate point 0070 //! and values of Y at terminate point 0071 //! - allZvalues : Values of 1st, 2nd, 3rd derivatives of 0072 //! Z polynomials at the terminate point 0073 //! and values of Z at terminate point 0074 //! raises exception if allXPolynomials, allYPolynomials 0075 //! & allZPolynomials are not of same size OR allXValues, allYValues 0076 //! & allZValues are not of size 4 0077 Standard_EXPORT void Init (const Standard_Integer aType, const Standard_Integer aDegree, const Standard_Integer nbDimensions, const Handle(TColStd_HArray1OfReal)& allBreakPoints, const Handle(TColStd_HArray2OfReal)& allXPolynomials, const Handle(TColStd_HArray2OfReal)& allYPolynomials, const Handle(TColStd_HArray2OfReal)& allZPolynomials, const Handle(TColStd_HArray1OfReal)& allXvalues, const Handle(TColStd_HArray1OfReal)& allYvalues, const Handle(TColStd_HArray1OfReal)& allZvalues); 0078 0079 //! returns the type of Spline curve 0080 Standard_EXPORT Standard_Integer SplineType() const; 0081 0082 //! returns the degree of the curve 0083 Standard_EXPORT Standard_Integer Degree() const; 0084 0085 //! returns the number of dimensions 0086 //! 2 = Planar 0087 //! 3 = Non-planar 0088 Standard_EXPORT Standard_Integer NbDimensions() const; 0089 0090 //! returns the number of segments 0091 Standard_EXPORT Standard_Integer NbSegments() const; 0092 0093 //! returns breakpoint of piecewise polynomial 0094 //! raises exception if Index <= 0 or Index > NbSegments() + 1 0095 Standard_EXPORT Standard_Real BreakPoint (const Standard_Integer Index) const; 0096 0097 //! returns X coordinate polynomial for segment referred to by Index 0098 //! raises exception if Index <= 0 or Index > NbSegments() 0099 Standard_EXPORT void XCoordPolynomial (const Standard_Integer Index, Standard_Real& AX, Standard_Real& BX, Standard_Real& CX, Standard_Real& DX) const; 0100 0101 //! returns Y coordinate polynomial for segment referred to by Index 0102 //! raises exception if Index <= 0 or Index > NbSegments() 0103 Standard_EXPORT void YCoordPolynomial (const Standard_Integer Index, Standard_Real& AY, Standard_Real& BY, Standard_Real& CY, Standard_Real& DY) const; 0104 0105 //! returns Z coordinate polynomial for segment referred to by Index 0106 //! raises exception if Index <= 0 or Index > NbSegments() 0107 Standard_EXPORT void ZCoordPolynomial (const Standard_Integer Index, Standard_Real& AZ, Standard_Real& BZ, Standard_Real& CZ, Standard_Real& DZ) const; 0108 0109 //! returns the value of X polynomial, the values of 1st, 2nd and 0110 //! 3rd derivatives of the X polynomial at the terminate point 0111 Standard_EXPORT void XValues (Standard_Real& TPX0, Standard_Real& TPX1, Standard_Real& TPX2, Standard_Real& TPX3) const; 0112 0113 //! returns the value of Y polynomial, the values of 1st, 2nd and 0114 //! 3rd derivatives of the Y polynomial at the termminate point 0115 Standard_EXPORT void YValues (Standard_Real& TPY0, Standard_Real& TPY1, Standard_Real& TPY2, Standard_Real& TPY3) const; 0116 0117 //! returns the value of Z polynomial, the values of 1st, 2nd and 0118 //! 3rd derivatives of the Z polynomial at the termminate point 0119 Standard_EXPORT void ZValues (Standard_Real& TPZ0, Standard_Real& TPZ1, Standard_Real& TPZ2, Standard_Real& TPZ3) const; 0120 0121 0122 0123 0124 DEFINE_STANDARD_RTTIEXT(IGESGeom_SplineCurve,IGESData_IGESEntity) 0125 0126 protected: 0127 0128 0129 0130 0131 private: 0132 0133 0134 Standard_Integer theType; 0135 Standard_Integer theDegree; 0136 Standard_Integer theNbDimensions; 0137 Handle(TColStd_HArray1OfReal) theBreakPoints; 0138 Handle(TColStd_HArray2OfReal) theXCoordsPolynomial; 0139 Handle(TColStd_HArray2OfReal) theYCoordsPolynomial; 0140 Handle(TColStd_HArray2OfReal) theZCoordsPolynomial; 0141 Handle(TColStd_HArray1OfReal) theXvalues; 0142 Handle(TColStd_HArray1OfReal) theYvalues; 0143 Handle(TColStd_HArray1OfReal) theZvalues; 0144 0145 0146 }; 0147 0148 0149 0150 0151 0152 0153 0154 #endif // _IGESGeom_SplineCurve_HeaderFile
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |