| 9 | class CollisionMeshDesc; |
| 10 | |
| 11 | class LocalCollisionTriangle |
| 12 | { |
| 13 | public: |
| 14 | static constexpr auto VERTEX_COUNT = 3; |
| 15 | |
| 16 | private: |
| 17 | // Fields |
| 18 | |
| 19 | std::array<int, VERTEX_COUNT> _vertexIds = {}; |
| 20 | |
| 21 | public: |
| 22 | // Constructors |
| 23 | |
| 24 | LocalCollisionTriangle(int vertexId0, int vertexId1, int vertexId2); |
| 25 | |
| 26 | // Getters |
| 27 | |
| 28 | const Vector3& GetVertex0(const std::vector<Vector3>& vertices) const; |
| 29 | const Vector3& GetVertex1(const std::vector<Vector3>& vertices) const; |
| 30 | const Vector3& GetVertex2(const std::vector<Vector3>& vertices) const; |
| 31 | Vector3 GetNormal(const std::vector<Vector3>& vertices) const; |
| 32 | BoundingBox GetAabb(const std::vector<Vector3>& vertices) const; |
| 33 | |
| 34 | // Inquirers |
| 35 | |
| 36 | bool Intersects(const Ray& ray, float& dist, const std::vector<Vector3>& vertices) const; |
| 37 | |
| 38 | // Debug |
| 39 | |
| 40 | void DrawDebug(const Matrix& transformMatrix, const Matrix& rotMatrix, const std::vector<Vector3>& vertices) const; |
| 41 | }; |
| 42 | |
| 43 | struct CollisionTriangleData |
| 44 | { |