/// 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_SCENE_H #define X3DTK_X3D_SCENE_H #include "ProcessHistory.h" #include "X3DTypes.h" #include "X3D_X3DGroupingNode.h" #include "X3D_X3DBoundedObject.h" #include "X3DRoute.h" namespace X3DTK { namespace X3D { /*! \brief Class providing a Scene, root node of an X3D scene graph. * * * \ingroup X3DSceneGraph */ class Scene : public X3DGroupingNode, public X3DBoundedObject { friend class ::X3DTK::ProcessHistory; friend class ::X3DTK::X3DRoute; public: /// Constructor. Scene(); /// Destructor. virtual ~Scene(); /// Sets the filename of the Scene. void setFileName(const SFString &file); /// Gets the name of the file. inline const SFString &getFileName() const {return _fileName;}; /// Gets the routes. inline const MFRoute &getRoutes() const {return _routes;}; /// Gets the history. inline ProcessHistory &getProcessHistory() {return _history;}; /// Removes the routes. void removeRoutes(); private: /// Sets the history. void setProcessHistory(const ProcessHistory &history); /// Sets the routes. void setRoutes(const MFRoute &routes); /// File attribute. SFString _fileName; MFRoute _routes; ProcessHistory _history; }; } } #endif