45 bool mEnhancedInternalEdgeRemoval =
false;
77 return mCosMaxSlopeAngle < cNoMaxSlopeAngle && inNormal.
Dot(mUp) < mCosMaxSlopeAngle;
92 static const char * sToString(EGroundState inState);
100 bool IsSupported()
const {
return mGroundState == EGroundState::OnGround || mGroundState == EGroundState::OnSteepGround; }
141 static constexpr float cNoMaxSlopeAngle = 0.9999f;
#define JPH_EXPORT
Definition: Core.h:236
std::uint64_t uint64
Definition: Core.h:456
#define JPH_NAMESPACE_END
Definition: Core.h:378
#define JPH_NAMESPACE_BEGIN
Definition: Core.h:372
JPH_INLINE constexpr float DegreesToRadians(float inV)
Convert a value from degrees to radians.
Definition: Math.h:13
#define JPH_OVERRIDE_NEW_DELETE
Macro to override the new and delete functions.
Definition: Memory.h:31
JPH_INLINE float Cos(float inX)
Cosine of x (input in radians)
Definition: Trigonometry.h:20
ID of a body. This is a way of reasoning about bodies in a multithreaded simulation while avoiding ra...
Definition: BodyID.h:13
Base class for character class.
Definition: CharacterBase.h:54
void SetMaxSlopeAngle(float inMaxSlopeAngle)
Set the maximum angle of slope that character can still walk on (radians)
Definition: CharacterBase.h:65
RVec3 GetGroundPosition() const
Get the contact point with the ground.
Definition: CharacterBase.h:103
Vec3 GetUp() const
Definition: CharacterBase.h:70
SubShapeID GetGroundSubShapeID() const
Sub part of the body that we're standing on.
Definition: CharacterBase.h:118
void SetUp(Vec3Arg inUp)
Set the up vector for the character.
Definition: CharacterBase.h:69
RefConst< Shape > mShape
Definition: CharacterBase.h:132
virtual ~CharacterBase()=default
Destructor.
Vec3 mUp
Definition: CharacterBase.h:135
Vec3 GetGroundVelocity() const
Velocity in world space of ground.
Definition: CharacterBase.h:109
bool IsSupported() const
Returns true if the player is supported by normal or steep ground.
Definition: CharacterBase.h:100
EGroundState
Definition: CharacterBase.h:84
bool IsSlopeTooSteep(Vec3Arg inNormal) const
Check if the normal of the ground surface is too steep to walk on.
Definition: CharacterBase.h:73
BodyID mGroundBodyID
Definition: CharacterBase.h:148
float mCosMaxSlopeAngle
Definition: CharacterBase.h:144
float GetCosMaxSlopeAngle() const
Definition: CharacterBase.h:66
BodyID GetGroundBodyID() const
BodyID of the object the character is standing on. Note may have been removed!
Definition: CharacterBase.h:115
EGroundState GetGroundState() const
Current ground state.
Definition: CharacterBase.h:97
const PhysicsMaterial * GetGroundMaterial() const
Material that the character is standing on.
Definition: CharacterBase.h:112
PhysicsSystem * mSystem
Definition: CharacterBase.h:129
Vec3 GetGroundNormal() const
Get the contact normal with the ground.
Definition: CharacterBase.h:106
uint64 GetGroundUserData() const
User data value of the body that we're standing on.
Definition: CharacterBase.h:121
Plane mSupportingVolume
Definition: CharacterBase.h:138
SubShapeID mGroundBodySubShapeID
Definition: CharacterBase.h:149
const Shape * GetShape() const
Get the current shape that the character is using.
Definition: CharacterBase.h:81
Base class for configuration of a character.
Definition: CharacterBase.h:21
virtual ~CharacterBaseSettings()=default
Virtual destructor.
CharacterBaseSettings(const CharacterBaseSettings &inSettings)=default
RefConst< Shape > mShape
Definition: CharacterBase.h:49
JPH_OVERRIDE_NEW_DELETE CharacterBaseSettings()=default
Constructor.
Class that makes another class non-copyable. Usage: Inherit from NonCopyable.
Definition: NonCopyable.h:11
Definition: PhysicsMaterial.h:23
static RefConst< PhysicsMaterial > sDefault
Default material that is used when a shape has no materials defined.
Definition: PhysicsMaterial.h:31
Definition: PhysicsSystem.h:29
An infinite plane described by the formula X . Normal + Constant = 0.
Definition: Plane.h:11
Definition: Reference.h:157
Definition: Reference.h:35
RefTarget & operator=(const RefTarget &)
Assignment operator.
Definition: Reference.h:48
Base class for all shapes (collision volume of a body). Defines a virtual interface for collision det...
Definition: Shape.h:186
Definition: StateRecorder.h:105
A sub shape id contains a path to an element (usually a triangle or other primitive type) of a compou...
Definition: SubShapeID.h:23
JPH_INLINE float Dot(Vec3Arg inV2) const
Dot product.
Definition: Vec3.inl:649
static JPH_INLINE Vec3 sAxisY()
Definition: Vec3.h:54
static JPH_INLINE Vec3 sZero()
Vector with all zeros.
Definition: Vec3.inl:107