#ifndef OBJECTPLACER_H #define OBJECTPLACER_H #include "Containers.h" namespace GtpVisibilityPreprocessor { class Vector3; class Preprocessor; /** A class for managing interactive object placement */ class ObjectPlacer { public: /** Default constructor. */ ObjectPlacer(); virtual ~ObjectPlacer() {} /** Adds a library objects. */ void AddObject(SceneGraphLeaf *obj); /** Selects the next library object. */ void NextObject(); /** Selects the previous library object. */ void PreviousObject(); /** Adds an object at the indicated position. */ void PlaceObject(const Vector3 &p); /** Adds an object at the indicated position. */ void PlaceObject(SceneGraphLeaf *l, const Vector3 &p); /** Returns the currently active object. */ SceneGraphLeaf *GetCurrentObject(); /** Returns a ref to the object container. */ DynamicObjectsContainer &GetDynamicObjects() { return mLibraryObjects; } protected: DynamicObjectsContainer mLibraryObjects; int mCurrentObject; }; } #endif // OBJECTPLACER_H