Package-level declarations
Types
Runtime character object. This object usually represents the player or a humanoid AI. It uses a single rigid body, usually with a capsule shape to simulate movement and collision for the character. The character is a keyframed object, the application controls it by setting the velocity.
Base class for character class
Base class for configuration of a character
Encapsulates a collision contact between a character and another rigid body / character
Uniquely identifies a contact between a character and another body or character
This class receives callbacks when a virtual character hits something. Once created, register it on a CharacterVirtual by using the character's SetListener method.
This class contains settings that allow you to override the behavior of a character's collision response
ID of a character. Used primarily to identify deleted characters and to sort deterministically.
Contains the configuration of a character
Runtime character object. This object usually represents the player. Contrary to the Character class it doesn't use a rigid body but moves doing collision checks only (hence the name virtual). The advantage of this is that you can determine when the character moves in the frame (usually this has to happen at a very particular point in the frame) but the downside is that other objects don't see this virtual character. To make a CharacterVirtual visible to the simulation, you can optionally create an inner rigid body through CharacterVirtualSettings::mInnerBodyShape. A CharacterVirtual is not tracked by the PhysicsSystem so you need to update it yourself. This also means that a call to PhysicsSystem::SaveState will not save its state, you need to call CharacterVirtual::SaveState yourself.
Contains the configuration of a character
Interface class that allows a CharacterVirtual to check collision with other CharacterVirtual instances. Since CharacterVirtual instances are not registered anywhere, it is up to the application to test collision against relevant characters. The characters could be stored in a tree structure to make this more efficient.
Simple collision checker that loops over all registered characters. This is a brute force checking algorithm. If you have a lot of characters you may want to store your characters in a hierarchical structure to make this more efficient. Note that this is not thread safe, so make sure that only one CharacterVirtual is checking collision at a time.