Physics2D: Add support for trigger and callbacks

This commit is contained in:
Jérôme Leclercq
2017-02-21 15:58:31 +01:00
parent c2e4ccaf72
commit 7b47a6ad2e
6 changed files with 179 additions and 2 deletions

View File

@@ -42,8 +42,15 @@ namespace Nz
virtual float ComputeInertialMatrix(float mass) const = 0;
inline unsigned int GetCollisionId() const;
virtual ColliderType2D GetType() const = 0;
inline bool IsTrigger() const;
inline void SetCollisionId(unsigned long typeId);
inline void SetTrigger(bool trigger);
Collider2D& operator=(const Collider2D&) = delete;
Collider2D& operator=(Collider2D&&) = delete;
@@ -53,6 +60,12 @@ namespace Nz
protected:
virtual std::vector<cpShape*> CreateShapes(RigidBody2D* body) const = 0;
bool m_trigger;
unsigned int m_collisionId;
private:
virtual std::vector<cpShape*> GenerateShapes(RigidBody2D* body) const;
static Collider2DLibrary::LibraryMap s_library;
};