/////////////////////////////////////////////////////////////////////////////// // Copyright (C) 2002-2019, Open Design Alliance (the "Alliance"). // All rights reserved. // // This software and its documentation and related materials are owned by // the Alliance. The software may only be incorporated into application // programs owned by members of the Alliance, subject to a signed // Membership Agreement and Supplemental Software License Agreement with the // Alliance. The structure and organization of this software are the valuable // trade secrets of the Alliance and its suppliers. The software is also // protected by copyright law and international treaty provisions. Application // programs incorporating this software must include the following statement // with their copyright notices: // // This application incorporates Open Design Alliance software pursuant to a license // agreement with Open Design Alliance. // Open Design Alliance Copyright (C) 2002-2019 by Open Design Alliance. // All rights reserved. // // By use of this software, its documentation or related materials, you // acknowledge and accept the above terms. /////////////////////////////////////////////////////////////////////////////// #ifndef OD_GECSPL3D_H #define OD_GECSPL3D_H /*!DOM*/ #include "Ge/GeSplineEnt3d.h" #include "TD_PackPush.h" /** \details This class represents 3D interpolation cubic spline curves. Currently not implemented. Corresponding C++ library: TD_Ge */ class GE_TOOLKIT_EXPORT OdGeCubicSplineCurve3d : public OdGeSplineEnt3d { public: /** \details Default constructor for objects of the OdGeCubicSplineCurve3d class. */ OdGeCubicSplineCurve3d(); /** \details Constructor for objects of the OdGeCubicSplineCurve3d class. Creates a clone of an existing object of the same class. \param source [in] Object to be cloned. \remarks Currently not implemented. */ OdGeCubicSplineCurve3d( const OdGeCubicSplineCurve3d& source); /** \details Constructor for objects of the OdGeCubicSplineCurve3d class. Constructs a periodic (closed) cubic spline curve. The last fit point must equal the first one. \param fitPnts [in] An array of 3D fit points. \param tol [in] Geometric tolerance. \remarks Currently not implemented. */ OdGeCubicSplineCurve3d( const OdGePoint3dArray& fitPnts, const OdGeTol& tol = OdGeContext::gTol); /** \details Constructor for objects of the OdGeCubicSplineCurve3d class. Constructs a cubic spline curve based on fit points, starting and ending derivatives of the cubic spline curve. \param fitPnts [in] An array of 3D fit points. \param tol [in] Geometric tolerance. \param startDeriv [in] Starting derivative of the cubic spline curve. \param endDeriv [in] Ending derivative of this cubic spline curve. \remarks Currently not implemented. */ OdGeCubicSplineCurve3d( const OdGePoint3dArray& fitPnts, const OdGeVector3d& startDeriv, const OdGeVector3d& endDeriv, const OdGeTol& tol = OdGeContext::gTol); /** \details Constructor for objects of the OdGeCubicSplineCurve3d class. Constructs a cubic spline curve based on a reference curve. \param curve [in] A curve to be approximated by this cubic spline curve. \remarks Currently not implemented. */ OdGeCubicSplineCurve3d( const OdGeCurve3d& curve, double epsilon #ifndef SWIG = OdGeContext::gTol.equalPoint() #endif ); /** \details Constructor for objects of the OdGeCubicSplineCurve3d class. Constructs a cubic spline curve based on fit points, knot vectors and first derivatives at the fit points. It can create periodic (closed) and non-periodic (open) cubic spline curves. \param fitPnts [in] An array of 3D fit points. \param knots [in] Knot vector. \param isPeriodic [in] True if and only if the cubic spline curve is to be periodic (closed). \param firstDerivs [in] Array of first derivatives at the fit points. \remarks Currently not implemented. */ OdGeCubicSplineCurve3d( const OdGeKnotVector& knots, const OdGePoint3dArray& fitPnts, const OdGeVector3dArray& firstDerivs, bool isPeriodic = false); /** \details Returns the number of fit points. \returns Number of fit points. \remarks Currently not implemented. */ int numFitPoints() const; /** \details Returns the fit point at the specified index. \param fitPointIndex [in] Fit point index. \returns Fit point at the specified index. \remarks Currently not implemented. */ OdGePoint3d fitPointAt( int fotPointIndex) const; /** \details Sets the fit point at the specified index, and returns a reference to this curve. \param fitPointIndex [in] Fit point index. \param point [in] Any 3D point. \returns Reference to this curve. \remarks Currently not implemented. */ OdGeCubicSplineCurve3d& setFitPointAt( int fitPointIndex, const OdGePoint3d& point); /** \details Returns the first derivative at the specified index. \param fitPointIndex [in] Fit point index. \returns First derivative at the specified index. \remarks Currently not implemented. */ OdGeVector3d firstDerivAt( int fitPointIndex) const; /** \details Sets the first derivative at the specified index, and returns a reference to this curve. \param fitPointIndex [in] Fit point index. \param deriv [in] The first derivative at the fit point. \returns Reference to this curve. \remarks Currently not implemented. */ OdGeCubicSplineCurve3d& setFirstDerivAt( int fitPointIndex, const OdGeVector3d& deriv); /** \details This is the assignment operator for objects of the OdGeCubicSplineCurve3d class. Assigns the value of the second operand to the first one. \param spline [in] OdGeCubicSplineCurve3d object to be assigned. \returns A reference to this OdGeCubicSplineCurve3d object. */ OdGeCubicSplineCurve3d& operator =( const OdGeCubicSplineCurve3d& spline); }; #include "TD_PackPop.h" #endif