47 template<
typename T,
typename... Args>
48 auto addController(Args &&...args) ->
typename std::enable_if<std::is_base_of<AbstractController, T>::value, T&>::type {
53 template<
typename T,
typename... Args>
54 auto addView(Args &&...args) ->
typename std::enable_if<std::is_base_of<AbstractView, T>::value, T&>::type {
55 m_viewList.emplace_back(
new T(std::forward<Args>(args)...));
56 return *
static_cast<T*
>(
m_viewList.back().get());
59 template<
typename T,
typename... Args>
60 auto setCollisionHelper(Args &&...args) ->
typename std::enable_if<std::is_base_of<CollisionHelper, T>::value, T&>::type {
82 #endif // GK_SCENE_HPP_
const SceneObjectList & objects() const
std::list< std::unique_ptr< AbstractController > > m_controllerList
auto addController(Args &&...args) -> typename std::enable_if< std::is_base_of< AbstractController, T >::value, T &>::type
auto addView(Args &&...args) -> typename std::enable_if< std::is_base_of< AbstractView, T >::value, T &>::type
auto setCollisionHelper(Args &&...args) -> typename std::enable_if< std::is_base_of< CollisionHelper, T >::value, T &>::type
std::list< std::unique_ptr< AbstractView > > m_viewList
void addCollisionChecker(std::function< void(SceneObject &)> checker)
SceneObjectList m_objects
Abstract base class for objects that can be drawn to a render target.
void checkCollisionsFor(SceneObject &object)
std::unique_ptr< CollisionHelper > m_collisionHelper
SceneObject & addObject(SceneObject &&object)
void draw(const SceneObject &object, RenderTarget &target, RenderStates states) const
SceneObjectList & objects()