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<>