#pragma once #include #include #include #include namespace RNR { class Camera; class Workspace : public ModelInstance { public: Workspace(); virtual std::string getClassName() { return "Workspace"; } virtual void onChildAdded(RNR::Instance* childAdded); virtual void onChildRemoved(RNR::Instance* childRemoved); void buildGeom(); Camera* getCurrentCamera() const; void setCurrentCamera(Camera *value); private: virtual void deserializeProperty(char* prop_name, pugi::xml_node prop); void buildGeomInstance(Instance* instance); bool m_geomDirty; Ogre::StaticGeometry* m_geom; Ogre::SceneNode* m_worldspawn; Ogre::Entity* m_partEntity; std::shared_ptr currentCamera; }; }