25# pragma warning(disable:4355)
195 bool getEnable()
const;
201 bool isEnabled()
const;
414 return m_frame.
get();
419 return m_frame.
get();
424 return m_rigidBody.
get();
429 return m_rigidBody.
get();
#define AGX_DECLARE_POINTER_TYPES(type)
#define AGXSTREAM_DECLARE_SERIALIZABLE(T)
Use this in a Serializable class to add the required methods Important: Use full namespace in the dec...
#define AGXPHYSICS_EXPORT
#define AGX_DECLARE_VECTOR_TYPES(type)
This class is an abstract base class for all classes that can be stored and retrieved from an Archive...
The complete physical system with bodies, interactions, data layout, time stepper,...
This class provides conversion services between Euler angles in any of the 24 conventions and corresp...
The object defining a frame of reference and providing transformations operations.
Representation of a name string.
With this class you can attach an ObserverFrame object relative to a RigidBody.
bool isEnabled() const
Access the state enable flag.
void attachWithWorldTransform(agx::RigidBody *body, const agx::AffineMatrix4x4 &transform=agx::AffineMatrix4x4())
Attach the ObserverFrame to a rigid body.
void setLocalPosition(const agx::Vec3 &p)
Assign the parent relative translate of this frame.
void detach()
Detach the current rigid body, setting the current rigid body to the world and the frame to identity.
bool setCmAndInertiaInObserver(agx::RigidBody *body, const agx::SPDMatrix3x3 &inertia)
Set the specified inertia in the frame of the observer on the rigid body.
void setRotation(const agx::Quat &q)
Set the rotation of the frame relative to world frame.
agx::Vec3 transformPointToWorld(const agx::Vec3 &pointLocal) const
void setName(const agx::Name &name)
Assign new name to this ObserverFrame.
void setPosition(agx::Real x, agx::Real y, agx::Real z)
Assign the final (world) translate of this frame.
agx::Vec3 getRelativePosition(const agx::RigidBody *body) const
agx::Frame * getParentFrame()
void setLocalRotation(const agx::Quat &q)
Assign the parent relative rotation of this frame.
agx::Vec3 getRelativePosition(const agx::ObserverFrame *obs) const
const agx::AffineMatrix4x4 & getLocalTransform() const
agx::Vec3 transformVectorToWorld(const agx::Vec3 &vectorLocal) const
agx::Quat getRelativeRotation(const agx::ObserverFrame *obs) const
agx::Vec3 getRelativeAngularVelocity(const agx::ObserverFrame *obs) const
agx::Vec3 getLocalPosition() const
agx::Vec3 transformPointToLocal(const agx::Vec3 &pointWorld) const
agx::Vec3 getRelativeAcceleration(const agx::RigidBody *body) const
agx::Vec3 getRelativeAngularVelocity(const agx::RigidBody *body) const
ObserverFrame(const agx::Name &name="", agx::RigidBody *body=nullptr, const agx::AffineMatrix4x4 &transform=agx::AffineMatrix4x4())
Construct given name.
agx::Quat getRotation() const
Current model frame rotation, given in world coordinate frame.
agx::Vec3 getPosition() const
Current model frame position, given in world coordinate frame.
void setSystem(agx::DynamicsSystem *system)
Assign dynamics system which this body belongs to.
agx::Name getName() const
agx::Quat getLocalRotation() const
agx::RigidBody * getAttachment() const
void setRotation(const agx::OrthoMatrix3x3 &m)
Set the rotation of the frame relative to world frame.
agx::Quat getRelativeRotation(const agx::RigidBody *body) const
agx::Vec3 getAngularVelocity() const
agx::Vec3 getRelativeVelocity(const agx::RigidBody *body) const
void setRotation(const agx::EulerAngles &e)
Set the rotation of the frame relative to world frame.
agx::Vec3 getAngularAcceleration() const
bool getEnable() const
Access the state enable flag.
agx::Vec3 getVelocity() const
const agx::RigidBody * getRigidBody() const
bool setParentFrame(agx::Frame *frame)
Set the parent Frame of this ObserverFrame.
agx::DynamicsSystem * getSystem()
agx::Frame * getFrame()
Returns the model frame containing model the transformation and utilities to manipulate position,...
void setLocalTransform(const agx::AffineMatrix4x4 &matrix)
Assign the local transformation matrix for this frame ignoring any eventual parent transformation.
agx::Vec3 getAcceleration() const
ObserverFrame(agx::RigidBody *body, const agx::AffineMatrix4x4 &transform=agx::AffineMatrix4x4())
Construct without name.
const agx::Frame * getParentFrame() const
void attach(agx::RigidBody *body, const agx::AffineMatrix4x4 &transform=agx::AffineMatrix4x4())
Attach the ObserverFrame to a rigid body.
void setLocalRotation(const agx::EulerAngles &e)
Assign the parent relative rotation of this frame.
void setLocalPosition(agx::Real x, agx::Real y, agx::Real z)
Assign the parent relative translate of this frame.
void setPosition(const agx::Vec3 &p)
Assign the final (world) translate of this frame.
void setTransform(const agx::AffineMatrix4x4 &matrix)
This method will set the local matrix of this frame to be the matrix m multiplied with the inverse of...
agx::Vec3 transformVectorToLocal(const agx::Vec3 &vectorWorld) const
agx::Vec3 getRelativeAngularAcceleration(const agx::ObserverFrame *obs) const
const agx::DynamicsSystem * getSystem() const
agx::Vec3 getRelativeAngularAcceleration(const agx::RigidBody *body) const
agx::Vec3 getRelativeAcceleration(const agx::ObserverFrame *obs) const
agx::Vec3 getRelativeVelocity(const agx::ObserverFrame *obs) const
void setEnable(bool enable)
Change state enable of this ObserverFrame.
Specialized types of matrices for holding orthogonal transformation matrices.
Base class providing referencing counted objects.
The rigid body class, combining a geometric model and a frame of reference.
Specialized type of matrices for holding symmetric positive definite matrices.
This class is a combined container which has the find complexity of a HashTable, deterministic iterat...
The agx namespace contains the dynamics/math part of the AGX Dynamics API.
agx::SetVector< ObserverFrameRef > ObserverFrameRefSetVector
void AGXPHYSICS_EXPORT init()
Initialize AGX Dynamics API including thread resources and must be executed before using the AGX API.