Nebula
Loading...
Searching...
No Matches
charactercontext.h
Go to the documentation of this file.
1#pragma once
2//------------------------------------------------------------------------------
9//------------------------------------------------------------------------------
10#include "physicsinterface.h"
11#include "util/bitfield.h"
12
13namespace Physics
14{
15
17{
18public:
20 static CharacterId CreateCharacter(Math::vec3 const& position, CharacterCreateInfo const& info, IndexT scene = 0);
22 static void DestroyCharacter(CharacterId characterId);
25
27 static void SetCharacterBoxSize(CharacterId characterId, Math::vec3 const& halfExtents);
28
30 static void SetCharacterHeight(CharacterId characterId, float newHeight);
31
33 static void SetCharacterPosition(CharacterId characterId, Math::vec3 const& newPosition);
34
37
40
41
45 static CharacterCollision MoveCharacter(CharacterId characterId, Math::vector const& displacement, float minDist, float timeSinceLastMove);
46
47
48};
49
50} // namespace Physics
Definition charactercontext.h:17
static void DestroyCharacter(CharacterId characterId)
Definition charactercontext.cc:118
static Math::vec3 GetCharacterCenterPosition(CharacterId characterId)
Get the character center point.
Definition charactercontext.cc:182
static void SetCharacterBoxSize(CharacterId characterId, Math::vec3 const &halfExtents)
Sets the characters half extents. Character needs to be of box type.
Definition charactercontext.cc:142
static Math::vec3 GetCharacterFootPosition(CharacterId characterId)
Get the position of the lowest point of the characters collider in worldspace.
Definition charactercontext.cc:194
static Character & GetCharacter(CharacterId id)
Definition charactercontext.cc:132
static CharacterCollision MoveCharacter(CharacterId characterId, Math::vector const &displacement, float minDist, float timeSinceLastMove)
Displace a character, and check/resolve collisions along the way.
Definition charactercontext.cc:206
static void SetCharacterPosition(CharacterId characterId, Math::vec3 const &newPosition)
Immediately changes the character world position without doing any collision checks.
Definition charactercontext.cc:171
static void SetCharacterHeight(CharacterId characterId, float newHeight)
Sets the characters height, and adjusts the position so that it doesn't "pop" into the air.
Definition charactercontext.cc:160
static CharacterId CreateCharacter(Math::vec3 const &position, CharacterCreateInfo const &info, IndexT scene=0)
Definition charactercontext.cc:24
Diverse functions for manipulating physics actors.
Definition actorcontext.cc:18
Util::BitField< CharacterCollisionBitsMax > CharacterCollision
Definition physicsinterface.h:52
A 3D vector.
Definition vec3.h:40
A vector is a 3D direction in space.
Definition vector.h:22
Definition physicsinterface.h:144
Definition physicsinterface.h:102
Definition physicsinterface.h:70
int IndexT
Definition types.h:39