i6engine
1.0
|
Represents the physical state of an object simulated by the Bullet library. Contains the btTransform and a pointer to the associated rigidBody. More...
#include <D:/Projekte/i6engine/libs/i6engine-modules/include/i6engine/modules/physics/PhysicsNode.h>
Public Member Functions | |
PhysicsNode (const int64_t id, const int64_t compId, const Vec3 &position, const Quaternion &rotation, const Vec3 &scale, const api::CollisionGroup &cg, const api::attributeMap ¶ms, api::ShatterInterest shatterInterest, PhysicsManager *pm) | |
constructor More... | |
~PhysicsNode () | |
destructor More... | |
bool | addChild (const int64_t compId, const Vec3 &position, const Quaternion &rotation, const Vec3 &scale, const api::CollisionGroup &cg, const api::PhysicalStateComponent::ShapeType shapeType, const api::attributeMap &shapeParams) |
adds a new child shape to this node More... | |
void | removeChild (int64_t compId) |
removes a child shape More... | |
bool | empty () const |
void | reset () |
Clears all forces and sets the velocity to 0, so that e.g. a bike after shattering doesn't still move after resetting. More... | |
void | setPosition (const Vec3 &position, int64_t id) |
Override from PhysicalStateComponent to update internal transform. Sets new position by calling PhysicalStateComponent::SetPosition(const Vec3 position) and updates internal transform PhysicsNode::_transform. More... | |
void | setRotation (const Quaternion &rotation, int64_t id) |
Override from PhysicalStateComponent to update internal transform. Sets new rotation by calling PhysicalStateComponent::setRotation(const Quaternion rotation) and updates internal transform PhysicsNode::_transform. More... | |
void | setScale (const Vec3 &scale, int64_t id) |
Override from PhysicalStateComponent to update internal transform. Sets new scale by calling PhysicalStateComponent::setScale(Vec3 scale). More... | |
void | getWorldTransform (btTransform &worldTrans) const |
Called by Bullet when the object is first scheduled for simulation to retrieve the initial transform. More... | |
void | setWorldTransform (const btTransform &worldTrans) |
Called by Bullet when the simulated object has moved. More... | |
btRigidBody * | getRigidBody () const |
returns the rigidBody of the PhysicsNode More... | |
api::RayTestResult | HitTest (const Vec3 &from, const Vec3 &to) |
Tests a Hit with a ray given by the vector. More... | |
int64_t | getID () const |
returns the GO id of the Node More... | |
int64_t | getCompID () const |
uint32_t | getCrashType () |
returns the CrashType of the Node More... | |
void | setCollisionFlags (const api::CollisionGroup &cg) |
sets the collision flags of the Node More... | |
void | setCrashType (uint32_t ct) |
sets the crashtype of the node More... | |
void | setCrashMask (uint32_t cm) |
sets the crash mask of the Node More... | |
uint32_t | getCrashMask () |
returns the CrashMask of the Node More... | |
Vec3 | getPosition () const |
returns the position of the node More... | |
Quaternion | getRotation () const |
returns the rotation of the node More... | |
Vec3 | getScale () const |
returns the scale of the node More... | |
void | applyRotation (const Quaternion &rotation, int64_t id) |
applies the new rotation transforming rotation and forces More... | |
api::ShatterInterest | getShatterInterest () const |
get the collision interest More... | |
void | Tick () |
called during every physics tick More... | |
void | createVelocityComponent (double maxSpeed, double resistanceCoefficient, double windage) |
creates a new VelocityComponent More... | |
void | deleteVelocityComponent () |
deletes a VelocityComponent More... | |
Friends | |
class | PhysicsMailbox |
class | PhysicsManager |
class | PhysicsVelocityComponent |
Represents the physical state of an object simulated by the Bullet library. Contains the btTransform and a pointer to the associated rigidBody.
The class is responsible for signing rigidBodys in and out the PhysicsController.
Update Mechanism for positioning:
Definition at line 81 of file PhysicsNode.h.
i6e::modules::PhysicsNode::PhysicsNode | ( | const int64_t | id, |
const int64_t | compId, | ||
const Vec3 & | position, | ||
const Quaternion & | rotation, | ||
const Vec3 & | scale, | ||
const api::CollisionGroup & | cg, | ||
const api::attributeMap & | params, | ||
api::ShatterInterest | shatterInterest, | ||
PhysicsManager * | pm | ||
) |
constructor
i6e::modules::PhysicsNode::~PhysicsNode | ( | ) |
destructor
bool i6e::modules::PhysicsNode::addChild | ( | const int64_t | compId, |
const Vec3 & | position, | ||
const Quaternion & | rotation, | ||
const Vec3 & | scale, | ||
const api::CollisionGroup & | cg, | ||
const api::PhysicalStateComponent::ShapeType | shapeType, | ||
const api::attributeMap & | shapeParams | ||
) |
adds a new child shape to this node
void i6e::modules::PhysicsNode::applyRotation | ( | const Quaternion & | rotation, |
int64_t | id | ||
) |
applies the new rotation transforming rotation and forces
void i6e::modules::PhysicsNode::createVelocityComponent | ( | double | maxSpeed, |
double | resistanceCoefficient, | ||
double | windage | ||
) |
creates a new VelocityComponent
void i6e::modules::PhysicsNode::deleteVelocityComponent | ( | ) |
deletes a VelocityComponent
bool i6e::modules::PhysicsNode::empty | ( | ) | const |
|
inline |
Definition at line 165 of file PhysicsNode.h.
|
inline |
returns the CrashMask of the Node
Definition at line 196 of file PhysicsNode.h.
|
inline |
returns the CrashType of the Node
Definition at line 172 of file PhysicsNode.h.
|
inline |
returns the GO id of the Node
Definition at line 161 of file PhysicsNode.h.
|
inline |
returns the position of the node
Definition at line 201 of file PhysicsNode.h.
|
inline |
returns the rigidBody of the PhysicsNode
Definition at line 151 of file PhysicsNode.h.
|
inline |
returns the rotation of the node
Definition at line 206 of file PhysicsNode.h.
|
inline |
returns the scale of the node
Definition at line 211 of file PhysicsNode.h.
|
inline |
get the collision interest
Definition at line 221 of file PhysicsNode.h.
|
inline |
Called by Bullet when the object is first scheduled for simulation to retrieve the initial transform.
Definition at line 141 of file PhysicsNode.h.
api::RayTestResult i6e::modules::PhysicsNode::HitTest | ( | const Vec3 & | from, |
const Vec3 & | to | ||
) |
Tests a Hit with a ray given by the vector.
void i6e::modules::PhysicsNode::removeChild | ( | int64_t | compId | ) |
removes a child shape
void i6e::modules::PhysicsNode::reset | ( | ) |
Clears all forces and sets the velocity to 0, so that e.g. a bike after shattering doesn't still move after resetting.
void i6e::modules::PhysicsNode::setCollisionFlags | ( | const api::CollisionGroup & | cg | ) |
sets the collision flags of the Node
|
inline |
sets the crash mask of the Node
Definition at line 189 of file PhysicsNode.h.
|
inline |
sets the crashtype of the node
Definition at line 182 of file PhysicsNode.h.
void i6e::modules::PhysicsNode::setPosition | ( | const Vec3 & | position, |
int64_t | id | ||
) |
Override from PhysicalStateComponent to update internal transform. Sets new position by calling PhysicalStateComponent::SetPosition(const Vec3 position) and updates internal transform PhysicsNode::_transform.
[in] | position | new position |
void i6e::modules::PhysicsNode::setRotation | ( | const Quaternion & | rotation, |
int64_t | id | ||
) |
Override from PhysicalStateComponent to update internal transform. Sets new rotation by calling PhysicalStateComponent::setRotation(const Quaternion rotation) and updates internal transform PhysicsNode::_transform.
[in] | rotation | new rotation |
void i6e::modules::PhysicsNode::setScale | ( | const Vec3 & | scale, |
int64_t | id | ||
) |
Override from PhysicalStateComponent to update internal transform. Sets new scale by calling PhysicalStateComponent::setScale(Vec3 scale).
[in] | scale | new scale |
void i6e::modules::PhysicsNode::setWorldTransform | ( | const btTransform & | worldTrans | ) |
Called by Bullet when the simulated object has moved.
void i6e::modules::PhysicsNode::Tick | ( | ) |
called during every physics tick
|
friend |
Definition at line 82 of file PhysicsNode.h.
|
friend |
Definition at line 83 of file PhysicsNode.h.
|
friend |
Definition at line 84 of file PhysicsNode.h.