Source

runner-hd-fork / src / GameObjects / LevelObjectManager.h

The default branch has multiple heads

Full commit
/*
 * LevelObjectManager.h
 *
 *  Created on: Oct 4, 2010
 *      Author: crt
 */

#ifndef LEVELOBJECTMANAGER_H_
#define LEVELOBJECTMANAGER_H_

#include "Geometry.h"
#include "boost/shared_ptr.hpp"

namespace Game {
namespace GameObjects {

class CLevelObject;

class ILevelObjectManager {
public:
	typedef std::vector<boost::shared_ptr<CLevelObject> > LevelObjectList;

	ILevelObjectManager() { }
	virtual ~ILevelObjectManager() { }

	/** Return all Objects inside given Rectangle */
	virtual LevelObjectList GetObjectRectangle(const Game::Rectangle& rect) { }

	/** Called by a level object when it changes its position or boundaries */
	virtual void ObjectPositionChanged(boost::shared_ptr<CLevelObject> object) { }
};

typedef boost::shared_ptr<ILevelObjectManager> PLevelObjectManager;
typedef boost::weak_ptr<ILevelObjectManager> WLevelObjectManager;

}
}

#endif /* LEVELOBJECTMANAGER_H_ */