For use with a TileMap<>, allows collisions with other rigid bodies inside World<>
More...
|
| TileBody (TileMap< TileType > &tileMap, uint32_t id) |
| Do not call directly, to construct a TileBody use createTileMap()
|
|
virtual void | integrate (Float dt) override |
| Integerates this body, meaning the linear velocity and angular velocity will be integrated into the position and rotation of this body.
|
|
virtual AABB< Float > | getAABB () const override |
| Returns the AABB of this body.
|
|
TileMap< TileType > & | tileMap () const |
| Returns the tile map attached to this rigid body.
|
|
std::array< vec2, 2 > | normals () const |
| Returns the normals of this body. Can be used for all tiles of this body.
|
|
vec2 | getTileLocalPoint (const glm::i32vec2 &iPos) const |
| Returns the local center of the tile located at iPos .
|
|
vec2 | getTileWorldPoint (const glm::i32vec2 &iPos) const |
| Returns the world center of the tile located at iPos .
|
|
TOBB | getTileWorldOBB (const glm::i32vec2 &iPos) const |
| Returns the world oriented bounding box of the tile located at iPos .
|
|
TOBB | getTileWorldOBBOffset (const glm::i32vec2 &iPos, const vec2 &worldOffset) const |
| Returns the world oriented bounding box of the tile located at iPos . with an added offset.
|
|
std::array< vec2, 4 > | getTileWorldOBBOffsetVertices (const glm::i32vec2 &iPos, const vec2 &worldOffset) const |
| Returns the world vertices of the tile located at iPos . with an added offset.
|
|
AABB< Float > | getTileWorldAABB (const glm::i32vec2 &iPos) const |
| Returns the world AABB of a tile located at iPos .
|
|
AABB< Float > | getTileLocalAABB (const glm::i32vec2 &iPos) const |
| Returns the local AABB of a tile located at iPos .
|
|
template<typename OutIt > |
void | queryChunks (const AABB< Float > &intersectBox, OutIt chunks) const |
| Will get the list of chunks that intersect intersectBox , along with their AABBS.
|
|
template<typename OutIt > |
void | queryTiles (const AABB< Float > &intersectBox, OutIt tiles) const |
| Will get the list of tiles that intersect intersectBox .
|
|
glm::i32vec2 | getChunkCoords (const vec2 &localCoords) const |
| Get the chunk that contains localCoords. Chunk may or may not exist.
|
|
glm::i32vec2 | getChunkCoords (const glm::i32vec2 &tileCoords) const |
| Get the chunk that contains tileCoords. Chunk may or may not exist.
|
|
glm::i32vec2 | getTileCoords (const vec2 &localCoords) const |
| Get the tile that contains localCoords. Tile may or may not exist.
|
|
AABB< Float > | getChunkAABB (const glm::i32vec2 &chunk) const |
| Get the AABB of the chunk located at chunk .
|
|
Public Member Functions inherited from Body |
| Body (uint32_t id, BodyType type) |
| constructs a new WorldBody
|
|
virtual vec2 | getWorldPoint (const vec2 &localPoint) const override |
| Gets a local position thats within the local space of this body and transforms into the world space.
|
|
virtual vec2 | getLocalPoint (const vec2 &worldPoint) const override |
| Gets a world position thats space of this body and transforms into the local space of this body.
|
|
virtual vec2 | getWorldPos () override |
| Returns the world position of this body.
|
|
virtual void | setStatic (bool static_) override |
| Either make the body static or dynamic.
|
|
void | addAngularVel (const Float &vel) |
| Applies an angular velocity to this body.
|
|
const vec2 & | com () const |
| Returns the center of mass of this body.
|
|
const vec2 & | centroid () const |
| Returns the centroid of this body.
|
|
Float | rotationalInertia () const |
| Returns rotational inertia scalar of this body.
|
|
Public Member Functions inherited from WorldBody |
| WorldBody (uint32_t id, BodyType bodyType) |
| constructs a new WorldBody
|
|
uint32_t | id () const |
| Returns the id assigned to this body the physics world.
|
|
BodyType | bodyType () const |
| Returns the bodyType of this body, see enum BodyType.
|
|
Transform & | transform () |
| Returns the REFERENCE transform of this body.
|
|
const Transform & | transform () const |
| Returns the CONST REFERENCE transform of this body.
|
|
void | moveBy (const vec2 &amount) |
| Moves the body by amount .
|
|
void | rotateBy (Float amount) |
| Rotates the body by amount .
|
|
void | setPos (const vec2 &pos) |
| Sets the position of this body to pos .
|
|
void | setRot (Float rot) |
| Sets the rotation of this body to rot .
|
|
bool | isStatic () const |
| Returns if the body is static, meaning it cannot be moved by forces or other bodies.
|
|
void | addLinearVel (const vec2 &vel) |
| applies a linear velocity to this body
|
|
Float | mass () const |
| Returns the mass of this body.
|
|
Float | inverseMass () const |
| Returns the inverse mass of this body.
|
|
AABB< Float > | getAABB (const Transform &spaceTransform, const vec2 &localOffset={ Float(0.5f), Float(0.5f) }) const |
|
AABB< Float > | getAABB (const AABB< Float > &localAABB, const Transform &spaceTransform, const vec2 &localOffset={ Float(0.5f), Float(0.5f) }) const |
|
template<typename TileType>
class TileBody< TileType >
For use with a TileMap<>, allows collisions with other rigid bodies inside World<>