From: Oliver O. <fr...@us...> - 2007-03-30 04:04:37
|
Update of /cvsroot/simspark/simspark/spark/kerosin/renderserver In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv26525 Added Files: Tag: projectx baserenderserver.cpp baserenderserver.h baserenderserver_c.cpp Log Message: added baserenderserver class --- NEW FILE: baserenderserver.cpp --- /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- this file is part of simspark Tue May 9 2006 Copyright (C) 2002,2003 Koblenz University Copyright (C) 2007 RoboCup Soccer Server 3D Maintenance Group $Id: baserenderserver.cpp,v 1.1.2.1 2007/03/30 04:04:33 fruit Exp $ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. BaseRenderServer NOTE: This is an abstract renderserver in order to support different render servers HISTORY: 29/03/07 - OO - Initial version */ #include "baserenderserver.h" #include <oxygen/sceneserver/sceneserver.h> #include <oxygen/sceneserver/scene.h> #include <zeitgeist/logserver/logserver.h> using namespace oxygen; using namespace kerosin; using namespace salt; using namespace zeitgeist; void BaseRenderServer::OnLink() { // setup SceneServer reference RegisterCachedPath(mSceneServer, "/sys/server/scene"); if (mSceneServer.expired()) { GetLog()->Error() << "(BaseRenderServer) ERROR: SceneServer not found\n"; } } void BaseRenderServer::OnUnlink() { mActiveScene.reset(); Leaf::OnUnlink(); } bool BaseRenderServer::GetActiveScene() { if (mSceneServer.expired()) { mActiveScene.reset(); } mActiveScene = mSceneServer->GetActiveScene(); if (mActiveScene.get() == 0) { GetLog()->Error() << "(BaseRenderServer) ERROR: found no active scene\n"; return false; } return true; } void BaseRenderServer::UpdateCached() { mActiveScene.reset(); } --- NEW FILE: baserenderserver_c.cpp --- /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- this file is part of simspark Tue May 9 2006 Copyright (C) 2002,2003 Koblenz University Copyright (C) 2007 RoboCup Soccer Server 3D Maintenance Group $Id: baserenderserver_c.cpp,v 1.1.2.1 2007/03/30 04:04:33 fruit Exp $ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #include "baserenderserver.h" #include <oxygen/sceneserver/sceneserver.h> using namespace boost; using namespace kerosin; using namespace zeitgeist; void CLASS(BaseRenderServer)::DefineClass() { DEFINE_BASECLASS(zeitgeist/Leaf); } --- NEW FILE: baserenderserver.h --- /* -*- mode: c++; c-basic-offset: 4; indent-tabs-mode: nil -*- this file is part of simspark Tue May 9 2006 Copyright (C) 2002,2003 Koblenz University Copyright (C) 2007 RoboCup Soccer Server 3D Maintenance Group $Id: baserenderserver.h,v 1.1.2.1 2007/03/30 04:04:33 fruit Exp $ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 of the License. This program 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. BaseRenderServer NOTE: This is an abstract renderserver in order to support different render servers HISTORY: 29/03/07 - OO - Initial version */ #ifndef KEROSIN_BASERENDERSERVER_H #define KEROSIN_BASERENDERSERVER_H #include <zeitgeist/class.h> #include <zeitgeist/leaf.h> namespace oxygen { class Scene; class SceneServer; class Camera; class BaseNode; } namespace kerosin { class BaseRenderServer : public zeitgeist::Leaf { public: virtual ~BaseRenderServer() {} //! display the current active scene virtual void Render() = 0; protected: /** get the active scene node from the sceneServer */ virtual bool GetActiveScene(); /** set up SceneServer reference */ virtual void OnLink(); /** reset SceneServer reference */ virtual void OnUnlink(); /** update variables from a script */ virtual void UpdateCached(); // // Members // protected: /** reference to the current active scene */ boost::shared_ptr<oxygen::Scene> mActiveScene; /** reference to the SceneServer */ CachedPath<oxygen::SceneServer> mSceneServer; }; DECLARE_ABSTRACTCLASS(BaseRenderServer); } //namespace kerosin #endif // KEROSIN_BASERENDERSERVER_H |