/// 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_NURBSCURVE #define X3DTK_X3D_NURBSCURVE #include "X3DTypes.h" #include "X3D_X3DParametricGeometryNode.h" namespace X3DTK { namespace X3D { /*! \brief Base class declared in , part of the * NURBS component defining a NurbsCurve * ( * documentation). * * \ingroup X3DSceneGraph */ class NurbsCurve : public X3DParametricGeometryNode { public: /// Constructor. NurbsCurve(); /// Destructor. virtual ~NurbsCurve(); /// Sets the controlPoint attribute. void setControlPoint(const MFVec3f &controlPoint); /// Sets the tesselation attribute. void setTesselation(const SFInt32 &tesselation); /// Sets the weight attribute. void setWeight(const MFDouble &weight); /// Sets the knot attribute. void setKnot(const MFDouble &knot); /// Sets the order attribute. void setOrder(const SFInt32 &order); /// Gets the controlPoint attribute. inline const MFVec3f &getControlPoint() const {return _controlPoint;}; /// Gets the tesselation attribute. inline const SFInt32 &getTesselation() const {return _tesselation;}; /// Gets the weight attribute. inline const MFDouble &getWeight() const {return _weight;}; /// Gets the knot attribute. inline const MFDouble &getKnot() const {return _knot;}; /// Gets the order attribute. inline const SFInt32 &getOrder() const {return _order;}; private: /// Set of control points. MFVec3f _controlPoint; /// Absolute number of subdivision steps. SFInt32 _tesselation; /// Weight values assigned to each control point. MFDouble _weight; /// Knot vector. MFDouble _knot; /// Order of the curve. SFInt32 _order; }; } } #endif