/// This file is part of the X3DToolKit library /// Copyright (C) 2002-2004 Yannick Le Goc (legoc@imag.fr) /// http://artis.imag.fr/Members/Yannick.Legoc/X3D/ /// This library is free software; you can redistribute it and/or /// modify it under the terms of the GNU Lesser General Public /// License as published by the Free Software Foundation; either /// version 2.1 of the License, or (at your option) any later version. /// This library is distributed in the hope that it will be useful, /// but WITHOUT ANY WARRANTY; without even the implied warranty of /// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU /// Lesser General Public License for more details. /// You should have received a copy of the GNU Lesser General Public /// License along with this library; if not, write to the Free Software /// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef X3DTK_X3D_NURBSPOSITIONINTERPOLATOR #define X3DTK_X3D_NURBSPOSITIONINTERPOLATOR #include "X3DTypes.h" #include "X3D_X3DInterpolatorNode.h" namespace X3DTK { namespace X3D { /*! \brief Base class declared in , part of the * NURBS component defining an NurbsPositionInterpolator * ( * documentation). * * \ingroup X3DSceneGraph */ class NurbsPositionInterpolator : public X3DInterpolatorNode { public: /// Constructor. NurbsPositionInterpolator(); /// Destructor. virtual ~NurbsPositionInterpolator(); /// Sets the fractionAbsolute attribute. void setFractionAbsolute(const SFBool &fractionAbsolute); /// Sets the dimension attribute. void setDimension(const SFInt32 &dimension); /// Sets the keyValue attribute. void setKeyValue(const MFVec3f &keyValue); /// Sets the keyWeight attribute. void setKeyWeight(const MFDouble &keyWeight); /// Sets the knot attribute. void setKnot(const MFDouble &knot); /// Sets the order attribute. void setOrder(const SFInt32 &order); /// Gets the fractionAbsolute attribute. inline const SFBool &getFractionAbsolute() const {return _fractionAbsolute;}; /// Gets the dimension attribute. inline const SFInt32 &getDimenstion() const {return _dimension;}; /// Gets the keyValue attribute. inline const MFVec3f &getKeyValue() const {return _keyValue;}; /// Gets the keyWeight attribute. inline const MFDouble &getKeyWeight() const {return _keyWeight;}; /// Gets the knot attribute. inline const MFDouble &getKnot() const {return _knot;}; /// Gets the order attribute. inline const SFInt32 &getOrder() const {return _order;}; private: /// ??? SFBool _fractionAbsolute; /// Number of control points. SFInt32 _dimension; /// Values of the piecewise function corresponding to the key attribute. MFVec3f _keyValue; /// Weight values assigned to each control point. MFDouble _keyWeight; /// Knot vector. MFDouble _knot; /// Order of the curve. SFInt32 _order; }; } } #endif