Stowy Physics Engine 0.1.0
Loading...
Searching...
No Matches
ManifoldFactory.hpp
Go to the documentation of this file.
1
12#pragma once
13
14#include "Collider.hpp"
15#include "Manifold.hpp"
16#include "Simplex.hpp"
17#include "Transform.hpp"
18
19namespace stw
20{
21class CollisionBody;
22
29namespace algo
30{
40 const CircleCollider* a, const Transform* ta,
41 const CircleCollider* b, const Transform* tb);
42
52 const CircleCollider* a, const Transform* ta,
53 const BoxCollider* b, const Transform* tb);
54
64 const BoxCollider* a, const Transform* ta,
65 const CircleCollider* b, const Transform* tb);
66
76 const BoxCollider* a, const Transform* ta,
77 const BoxCollider* b, const Transform* tb);
78
88 const AabbCollider* a, const Transform* ta,
89 const AabbCollider* b, const Transform* tb);
90
100 const AabbCollider* a, const Transform* ta,
101 const CircleCollider* b, const Transform* tb);
102
112 const CircleCollider* a, const Transform* ta,
113 const AabbCollider* b, const Transform* tb);
114
125 const Collider* colliderA,
126 const Transform* transformA,
127 const Collider* colliderB,
128 const Transform* transformB,
129 const Vector2& direction
130);
131
141 const Collider* colliderA,
142 const Transform* transformA,
143 const Collider* colliderB,
144 const Transform* transformB
145);
146
153bool NextSimplex(const Simplex& points, Vector2& direction);
160bool SameDirection(Vector2 direction, Vector2 ao);
161
168bool Line(const Simplex& points, Vector2& direction);
175bool Triangle(const Simplex& points, Vector2& direction);
176
187 const Simplex& simplex,
188 const Collider* colliderA,
189 const Transform* transformA,
190 const Collider* colliderB,
191 const Transform* transformB
192);
193
195 const BoxCollider* colliderA,
196 const Transform* transformA,
197 const BoxCollider* colliderB,
198 const Transform* transformB
199);
200}
201}
Contains all the Colliders classes.
Contains the Manifold class.
Contains the Simplex struct.
Contains the Transform struct.
An Axis Aligned Bounding Box collider.
Definition Collider.hpp:182
A rotatable box collider.
Definition Collider.hpp:104
A circle collider.
Definition Collider.hpp:152
A pure virtual struct that represents colliders.
Definition Collider.hpp:31
Manifold FindAabbCircleManifold(const AabbCollider *a, const Transform *ta, const CircleCollider *b, const Transform *tb)
Finds the collision manifold between A and B.
Definition ManifoldFactory.cpp:156
bool NextSimplex(const Simplex &points, Vector2 &direction)
Finds the next simplex for the GJK algorithm.
Definition ManifoldFactory.cpp:293
bool Triangle(const Simplex &points, Vector2 &direction)
Triangle case for the NextSimplex function.
Definition ManifoldFactory.cpp:322
Manifold Gjk(const Collider *colliderA, const Transform *transformA, const Collider *colliderB, const Transform *transformB)
Finds the manifold between A and B using GJK.
Definition ManifoldFactory.cpp:253
Manifold Sat(const BoxCollider *colliderA, const Transform *transformA, const BoxCollider *colliderB, const Transform *transformB)
Definition ManifoldFactory.cpp:419
Manifold FindAabbAabbManifold(const AabbCollider *a, const Transform *ta, const AabbCollider *b, const Transform *tb)
Finds the collision manifold between A and B.
Definition ManifoldFactory.cpp:69
Manifold Epa(const Simplex &simplex, const Collider *colliderA, const Transform *transformA, const Collider *colliderB, const Transform *transformB)
Find the manifold from the last simplex of the GJK algorithm.
Definition ManifoldFactory.cpp:351
bool SameDirection(Vector2 direction, Vector2 ao)
Finds if both vectors are going in the same direction.
Definition ManifoldFactory.cpp:306
bool Line(const Simplex &points, Vector2 &direction)
Line case for the NextSimplex function.
Definition ManifoldFactory.cpp:311
Manifold FindBoxCircleManifold(const BoxCollider *a, const Transform *ta, const CircleCollider *b, const Transform *tb)
Finds the collision manifold between A and B.
Definition ManifoldFactory.cpp:52
Manifold FindCircleCircleManifold(const CircleCollider *a, const Transform *ta, const CircleCollider *b, const Transform *tb)
Finds the collision manifold between A and B.
Definition ManifoldFactory.cpp:14
Manifold FindBoxBoxManifold(const BoxCollider *a, const Transform *ta, const BoxCollider *b, const Transform *tb)
Finds the collision manifold between A and B.
Definition ManifoldFactory.cpp:58
Manifold FindCircleBoxManifold(const CircleCollider *a, const Transform *ta, const BoxCollider *b, const Transform *tb)
Finds the collision manifold between A and B.
Definition ManifoldFactory.cpp:42
Vector2 Support(const Collider *colliderA, const Transform *transformA, const Collider *colliderB, const Transform *transformB, const Vector2 &direction)
Support function of the GJK algorithm.
Definition ManifoldFactory.cpp:241
Manifold FindCircleAabbManifold(const CircleCollider *a, const Transform *ta, const AabbCollider *b, const Transform *tb)
Finds the collision manifold between A and B.
Definition ManifoldFactory.cpp:235
Definition BroadPhaseGrid.hpp:18
Definition Manifold.hpp:20
Struct representing the simplest form that can "select" an area in any dimension.
Definition Simplex.hpp:23
A transform of an object. Contains position, scale and rotation.
Definition Transform.hpp:22
A struct representing a 2D Vector.
Definition Vector2.hpp:21