Simbody collisions. More...
#include <SimbodyCollision.hh>
Inherits Collision.
Public Types | |
| enum | EntityType { BASE = 0x00000000 , ENTITY = 0x00000001 , MODEL = 0x00000002 , LINK = 0x00000004 , COLLISION = 0x00000008 , LIGHT = 0x00000010 , VISUAL = 0x00000020 , JOINT = 0x00000040 , BALL_JOINT = 0x00000080 , HINGE2_JOINT = 0x00000100 , HINGE_JOINT = 0x00000200 , SLIDER_JOINT = 0x00000400 , SCREW_JOINT = 0x00000800 , UNIVERSAL_JOINT = 0x00001000 , GEARBOX_JOINT = 0x00002000 , FIXED_JOINT = 0x00004000 , ACTOR = 0x00008000 , SHAPE = 0x00010000 , BOX_SHAPE = 0x00020000 , CYLINDER_SHAPE = 0x00040000 , HEIGHTMAP_SHAPE = 0x00080000 , MAP_SHAPE = 0x00100000 , MULTIRAY_SHAPE = 0x00200000 , RAY_SHAPE = 0x00400000 , PLANE_SHAPE = 0x00800000 , SPHERE_SHAPE = 0x01000000 , MESH_SHAPE = 0x02000000 , POLYLINE_SHAPE = 0x04000000 , SENSOR_COLLISION = 0x10000000 } |
| Unique identifiers for all entity types. More... | |
Public Member Functions | |
| SimbodyCollision (LinkPtr _parent) | |
| Constructor. | |
| virtual | ~SimbodyCollision () |
| Destructor. | |
| void | AddChild (BasePtr _child) |
| Add a child to this entity. | |
| void | AddType (EntityType _type) |
| Add a type specifier. | |
| virtual ignition::math::Box | BoundingBox () const |
| Get the bounding box for this collision. | |
| ignition::math::Box | CollisionBoundingBox () const |
| Returns collision bounding box. | |
| const ignition::math::Pose3d & | DirtyPose () const |
| Returns Entity::dirtyPose. | |
| void | FillMsg (msgs::Collision &_msg) |
| Fill a collision message. | |
| virtual void | Fini () |
| Finalize the collision. | |
| BasePtr | GetByName (const std::string &_name) |
| Get by name. | |
| BasePtr | GetChild (const std::string &_name) |
| Get a child by name. | |
| BasePtr | GetChild (unsigned int _i) const |
| Get a child by index. | |
| CollisionPtr | GetChildCollision (const std::string &_name) |
| Get a child collision entity, if one exists. | |
| unsigned int | GetChildCount () const |
| Get the number of children. | |
| LinkPtr | GetChildLink (const std::string &_name) |
| Get a child linke entity, if one exists. | |
| SimTK::ContactGeometry * | GetCollisionShape () const |
| Get the simbody collision shape. | |
| uint32_t | GetId () const |
| Return the ID of this entity. | |
| float | GetLaserRetro () const |
| Get the laser retro reflectiveness. | |
| LinkPtr | GetLink () const |
| Get the link this collision belongs to. | |
| virtual unsigned int | GetMaxContacts () |
| returns number of contacts allowed for this collision. | |
| ModelPtr | GetModel () const |
| Get the model this collision belongs to. | |
| std::string | GetName () const |
| Return the name of the entity. | |
| void | GetNearestEntityBelow (double &_distBelow, std::string &_entityName) |
| Get the distance to the nearest entity below (along the Z-axis) this entity. | |
| BasePtr | GetParent () const |
| Get the parent. | |
| int | GetParentId () const |
| Return the ID of the parent. | |
| ModelPtr | GetParentModel () |
| Get the parent model, if one exists. | |
| bool | GetSaveable () const |
| Get whether the object should be "saved", when the user selects to save the world to xml. | |
| std::string | GetScopedName (bool _prependWorldName=false) const |
| Return the name of this entity with the model scope model1::...::modelN::entityName. | |
| virtual const sdf::ElementPtr | GetSDF () |
| Get the SDF values for the object. | |
| ShapePtr | GetShape () const |
| Get the collision shape. | |
| unsigned int | GetShapeType () const |
| Get the shape type. | |
| CollisionState | GetState () |
| Get the collision state. | |
| SurfaceParamsPtr | GetSurface () const |
| Get the surface parameters. | |
| unsigned int | GetType () const |
| Get the full type definition. | |
| const WorldPtr & | GetWorld () const |
| Get the World this object is in. | |
| bool | HasType (const EntityType &_t) const |
| Returns true if this object's type definition has the given type. | |
| virtual void | Init () |
| Initialize the collision. | |
| ignition::math::Pose3d | InitialRelativePose () const |
| Get the initial relative pose. | |
| bool | IsCanonicalLink () const |
| A helper function that checks if this is a canonical body. | |
| bool | IsPlaceable () const |
| Return whether this collision is movable. | |
| bool | IsSelected () const |
| True if the entity is selected by the user. | |
| bool | IsStatic () const |
| Return whether this entity is static. | |
| virtual void | Load (sdf::ElementPtr _ptr) |
| Load the collision. | |
| virtual void | OnPoseChange () |
| This function is called when the entity's (or one of its parents) pose of the parent has changed. | |
| bool | operator== (const Base &_ent) const |
| Returns true if the entities are the same. | |
| void | PlaceOnEntity (const std::string &_entityName) |
| Move this entity to be ontop of another entity by name. | |
| void | PlaceOnNearestEntityBelow () |
| Move this entity to be ontop of the nearest entity below. | |
| void | Print (const std::string &_prefix) |
| Print this object to screen via gzmsg. | |
| void | ProcessMsg (const msgs::Collision &_msg) |
| Update parameters from a message. | |
| virtual ignition::math::Vector3d | RelativeAngularAccel () const |
| Get the angular acceleration of the collision. | |
| virtual ignition::math::Vector3d | RelativeAngularVel () const |
| Get the angular velocity of the collision. | |
| virtual ignition::math::Vector3d | RelativeLinearAccel () const |
| Get the linear acceleration of the collision. | |
| virtual ignition::math::Vector3d | RelativeLinearVel () const |
| Get the linear velocity of the collision. | |
| ignition::math::Pose3d | RelativePose () const |
| Get the pose of the entity relative to its parent. | |
| void | RemoveChild (const std::string &_name) |
| Remove a child by name. | |
| void | RemoveChild (physics::BasePtr _child) |
| Remove a child by pointer. | |
| virtual void | RemoveChild (unsigned int _id) |
| Remove a child from this entity. | |
| void | RemoveChildren () |
| Remove all children. | |
| virtual void | Reset () |
| Reset the entity. | |
| virtual void | Reset (Base::EntityType _resetType) |
| Calls recursive Reset on one of the Base::EntityType's. | |
| void | SetAnimation (common::PoseAnimationPtr _anim) |
| Set an animation for this entity. | |
| void | SetAnimation (const common::PoseAnimationPtr &_anim, boost::function< void()> _onComplete) |
| Set an animation for this entity. | |
| void | SetCanonicalLink (bool _value) |
| Set to true if this entity is a canonical link for a model. | |
| virtual void | SetCategoryBits (unsigned int _bits) |
| Set the category bits, used during collision detection. | |
| virtual void | SetCollideBits (unsigned int _bits) |
| Set the collide bits, used during collision detection. | |
| void | SetCollision (bool _placeable) |
| Set the encapsulated collision object. | |
| void | SetCollisionShape (SimTK::ContactGeometry *_shape) |
| Set the collision shape. | |
| void | SetInitialRelativePose (const ignition::math::Pose3d &_pose) |
| Set the initial pose. | |
| void | SetLaserRetro (float _retro) |
| Set the laser retro reflectiveness. | |
| virtual void | SetMaxContacts (unsigned int _maxContacts) |
| Number of contacts allowed for this collision. | |
| virtual void | SetName (const std::string &_name) |
| Set the name of the entity. | |
| void | SetParent (BasePtr _parent) |
| Set the parent. | |
| void | SetPlaceable (const bool _placeable) |
| Set if this object is moveable. | |
| void | SetRelativePose (const ignition::math::Pose3d &_pose, const bool _notify=true, const bool _publish=true) |
| Set the pose of the entity relative to its parent. | |
| void | SetSaveable (bool _v) |
| Set whether the object should be "saved", when the user selects to save the world to xml. | |
| void | SetScale (const ignition::math::Vector3d &_scale) |
| Set the scale of the collision. | |
| virtual bool | SetSelected (bool _show) |
| Set whether this entity has been selected by the user through the gui. | |
| void | SetShape (ShapePtr _shape) |
| Set the shape for this collision. | |
| void | SetState (const CollisionState &_state) |
| Set the current collision state. | |
| void | SetStatic (const bool &_static) |
| Set whether this entity is static: immovable. | |
| void | SetWorld (const WorldPtr &_newWorld) |
| Set the world this object belongs to. | |
| void | SetWorldPose (const ignition::math::Pose3d &_pose, const bool _notify=true, const bool _publish=true) |
| Set the world pose of the entity. | |
| void | SetWorldPoseDirty () |
| Indicate that the world pose should be recalculated. | |
| void | SetWorldTwist (const ignition::math::Vector3d &_linear, const ignition::math::Vector3d &_angular, const bool _updateChildren=true) |
| Set angular and linear rates of an physics::Entity. | |
| virtual void | StopAnimation () |
| Stop the current animation, if any. | |
| std::string | TypeStr () const |
| Get the string name for the entity type. | |
| virtual void | Update () |
| Update the object. | |
| virtual void | UpdateParameters (sdf::ElementPtr _sdf) |
| Update the parameters using new sdf values. | |
| common::URI | URI () const |
| Return the common::URI of this entity. | |
| virtual ignition::math::Vector3d | WorldAngularAccel () const |
| Get the angular acceleration of the collision in the world frame. | |
| virtual ignition::math::Vector3d | WorldAngularVel () const |
| Get the angular velocity of the collision in the world frame. | |
| virtual ignition::math::Vector3d | WorldLinearAccel () const |
| Get the linear acceleration of the collision in the world frame. | |
| virtual ignition::math::Vector3d | WorldLinearVel () const |
| Get the linear velocity of the collision in the world frame. | |
| virtual const ignition::math::Pose3d & | WorldPose () const |
| Get the absolute pose of the entity. | |
Protected Member Functions | |
| void | ComputeScopedName () |
| Compute the scoped name of this object based on its parents. | |
| virtual void | RegisterIntrospectionItems () |
| Register items in the introspection service. | |
| virtual void | UnregisterIntrospectionItems () |
| Unregister items in the introspection service. | |
Protected Attributes | |
| common::PoseAnimationPtr | animation |
| Current pose animation. | |
| event::ConnectionPtr | animationConnection |
| Connection used to update an animation. | |
| ignition::math::Pose3d | animationStartPose |
| Start pose of an animation. | |
| Base_V | children |
| Children of this entity. | |
| std::vector< event::ConnectionPtr > | connections |
| All our event connections. | |
| ignition::math::Pose3d | dirtyPose |
| The pose set by a physics engine. | |
| std::vector< common::URI > | introspectionItems |
| All the introspection items regsitered for this. | |
| LinkPtr | link |
| The link this collision belongs to. | |
| transport::NodePtr | node |
| Communication node. | |
| ignition::transport::Node | nodeIgn |
| Ignition communication node. | |
| BasePtr | parent |
| Parent of this entity. | |
| EntityPtr | parentEntity |
| A helper that prevents numerous dynamic_casts. | |
| bool | placeable |
| Flag for placeable. | |
| common::Time | prevAnimationTime |
| Previous time an animation was updated. | |
| transport::PublisherPtr | requestPub |
| Request publisher. | |
| ignition::transport::Node::Publisher | requestPubIgn |
| Request publisher. | |
| ignition::math::Vector3d | scale |
| Scale of the entity. | |
| sdf::ElementPtr | sdf |
| The SDF values for this object. | |
| ShapePtr | shape |
| Pointer to physics::Shape. | |
| SurfaceParamsPtr | surface |
| The surface parameters. | |
| transport::PublisherPtr | visPub |
| Visual publisher. | |
| ignition::transport::Node::Publisher | visPubIgn |
| Visual publisher. | |
| msgs::Visual * | visualMsg |
| Visual message container. | |
| WorldPtr | world |
| Pointer to the world. | |
| ignition::math::Pose3d | worldPose |
| World pose of the entity. | |
Simbody collisions.
|
inherited |
Unique identifiers for all entity types.
| Enumerator | |
|---|---|
| BASE | Base type. |
| ENTITY | Entity type. |
| MODEL | Model type. |
| LINK | Link type. |
| COLLISION | Collision type. |
| LIGHT | Light type. |
| VISUAL | Visual type. |
| JOINT | Joint type. |
| BALL_JOINT | BallJoint type. |
| HINGE2_JOINT | Hing2Joint type. |
| HINGE_JOINT | HingeJoint type. |
| SLIDER_JOINT | SliderJoint type. |
| SCREW_JOINT | ScrewJoint type. |
| UNIVERSAL_JOINT | UniversalJoint type. |
| GEARBOX_JOINT | GearboxJoint type. |
| FIXED_JOINT | FixedJoint type. |
| ACTOR | Actor type. |
| SHAPE | Shape type. |
| BOX_SHAPE | BoxShape type. |
| CYLINDER_SHAPE | CylinderShape type. |
| HEIGHTMAP_SHAPE | HeightmapShape type. |
| MAP_SHAPE | MapShape type. |
| MULTIRAY_SHAPE | MultiRayShape type. |
| RAY_SHAPE | RayShape type. |
| PLANE_SHAPE | PlaneShape type. |
| SPHERE_SHAPE | SphereShape type. |
| MESH_SHAPE | MeshShape type. |
| POLYLINE_SHAPE | PolylineShape type. |
| SENSOR_COLLISION | Indicates a collision shape used for sensing. |
|
explicit |
Constructor.
|
virtual |
Destructor.
|
inherited |
Add a child to this entity.
| [in] | _child | Child entity. |
|
inherited |
Add a type specifier.
| [in] | _type | New type to append to this objects type definition. |
|
virtual |
|
inherited |
Returns collision bounding box.
|
protectedinherited |
Compute the scoped name of this object based on its parents.
|
inherited |
Returns Entity::dirtyPose.
The dirty pose is the pose set by the physics engine before it's value is propagated to the rest of the simulator.
|
inherited |
Fill a collision message.
| [out] | _msg | The message to fill with this collision's data. |
|
virtualinherited |
Finalize the collision.
Reimplemented from Entity.
Reimplemented in DARTCollision, and ODECollision.
|
inherited |
Get by name.
| [in] | _name | Get a child (or self) object by name |
|
inherited |
Get a child by name.
| [in] | _name | Name of the child. |
|
inherited |
Get a child by index.
| [in] | _i | Index of the child to retreive. |
|
inherited |
Get a child collision entity, if one exists.
| [in] | _name | Name of the child collision object. |
|
inherited |
Get the number of children.
|
inherited |
| SimTK::ContactGeometry * GetCollisionShape | ( | ) | const |
Get the simbody collision shape.
|
inherited |
Return the ID of this entity.
This id is unique.
|
inherited |
Get the laser retro reflectiveness.
|
virtualinherited |
returns number of contacts allowed for this collision.
This overrides global value (in PhysicsEngine) if specified.
|
inherited |
Get the model this collision belongs to.
|
inherited |
Return the name of the entity.
|
inherited |
Get the distance to the nearest entity below (along the Z-axis) this entity.
| [out] | _distBelow | The distance to the nearest entity below. |
| [out] | _entityName | The name of the nearest entity below. |
|
inherited |
Get the parent.
|
inherited |
Return the ID of the parent.
|
inherited |
Get the parent model, if one exists.
|
inherited |
Get whether the object should be "saved", when the user selects to save the world to xml.
|
inherited |
Return the name of this entity with the model scope model1::...::modelN::entityName.
| [in] | _prependWorldName | True to prended the returned string with the world name. The result will be world::model1::...::modelN::entityName. |
|
virtualinherited |
|
inherited |
Get the collision shape.
|
inherited |
|
inherited |
Get the collision state.
|
inlineinherited |
|
inherited |
Get the full type definition.
|
inherited |
|
inherited |
Returns true if this object's type definition has the given type.
| [in] | _t | Type to check. |
|
virtualinherited |
|
inherited |
Get the initial relative pose.
|
inlineinherited |
A helper function that checks if this is a canonical body.
|
inherited |
Return whether this collision is movable.
Example on an immovable object is a ray.
|
inherited |
True if the entity is selected by the user.
|
inherited |
Return whether this entity is static.
|
virtual |
|
virtual |
This function is called when the entity's (or one of its parents) pose of the parent has changed.
Implements Entity.
|
inherited |
|
inherited |
|
inherited |
Move this entity to be ontop of the nearest entity below.
|
inherited |
Print this object to screen via gzmsg.
| [in] | _prefix | Usually a set of spaces. |
|
inherited |
Update parameters from a message.
| [in] | _msg | Message to update from. |
|
protectedvirtualinherited |
|
virtualinherited |
Get the angular acceleration of the collision.
Reimplemented from Entity.
|
virtualinherited |
Get the angular velocity of the collision.
Reimplemented from Entity.
|
virtualinherited |
Get the linear acceleration of the collision.
Reimplemented from Entity.
|
virtualinherited |
Get the linear velocity of the collision.
Reimplemented from Entity.
|
inherited |
Get the pose of the entity relative to its parent.
|
inherited |
Remove a child by name.
| [in] | _name | Name of the child. |
|
inherited |
Remove a child by pointer.
| [in] | _child | Pointer to the child. |
|
virtualinherited |
Remove a child from this entity.
| [in] | _id | ID of the child to remove. |
Reimplemented in Link, and Model.
Referenced by Link::RemoveChild(), and Model::RemoveChild().
|
inherited |
Remove all children.
|
virtualinherited |
Reset the entity.
Reimplemented from Base.
Reimplemented in Actor, Link, and Model.
References Base::Reset().
Referenced by Link::Reset(), and Model::Reset().
|
virtualinherited |
Calls recursive Reset on one of the Base::EntityType's.
| [in] | _resetType | The type of reset operation |
Reimplemented from Base.
|
inherited |
Set an animation for this entity.
| [in] | _anim | Pose animation. |
|
inherited |
Set an animation for this entity.
| [in] | _anim | Pose animation. |
| [in] | _onComplete | Callback for when the animation completes. |
|
inherited |
Set to true if this entity is a canonical link for a model.
| [in] | _value | True if the link is canonical. |
|
virtual |
Set the category bits, used during collision detection.
| [in] | _bits | The bits to set. |
Implements Collision.
|
virtual |
Set the collide bits, used during collision detection.
| [in] | _bits | The bits to set. |
Implements Collision.
|
inherited |
Set the encapsulated collision object.
Has a side effect of changing the collision bit masks
| [in] | _placeable | True to make the object movable. |
| void SetCollisionShape | ( | SimTK::ContactGeometry * | _shape | ) |
|
inherited |
Set the initial pose.
| [in] | _pose | The initial pose. |
|
inherited |
Set the laser retro reflectiveness.
| [in] | _retro | The laser retro value. |
|
virtualinherited |
Number of contacts allowed for this collision.
This overrides global value (in PhysicsEngine) if specified.
| [in] | _maxContacts | max num contacts allowed for this collision. |
|
virtualinherited |
|
inherited |
Set the parent.
| [in] | _parent | Parent object. |
|
inherited |
Set if this object is moveable.
| [in] | _placeable | True to make the object movable. |
|
inherited |
Set the pose of the entity relative to its parent.
| [in] | _pose | The new pose. |
| [in] | _notify | True = tell children of the pose change. |
| [in] | _publish | True to publish the pose. |
|
inherited |
Set whether the object should be "saved", when the user selects to save the world to xml.
| [in] | _v | Set to True if the object should be saved. |
|
inherited |
Set the scale of the collision.
| [in] | _scale | Scale to set the collision to. |
|
virtualinherited |
Set whether this entity has been selected by the user through the gui.
| [in] | _show | True to set this entity as selected. |
Reimplemented in Link.
|
inherited |
Set the shape for this collision.
| [in] | _shape | The shape for this collision object. |
|
inherited |
Set the current collision state.
| [in] | The | collision state. |
|
inherited |
Set whether this entity is static: immovable.
| [in] | _static | True = static. |
Referenced by Link::SetStatic().
|
inherited |
Set the world this object belongs to.
This will also set the world for all children.
| [in] | _newWorld | The new World this object is part of. |
|
inherited |
Set the world pose of the entity.
| [in] | _pose | The new world pose. |
| [in] | _notify | True = tell children of the pose change. |
| [in] | _publish | True to publish the pose. |
|
inherited |
Indicate that the world pose should be recalculated.
The recalculation will be done when Collision::GetWorldPose is called.
|
inherited |
Set angular and linear rates of an physics::Entity.
| [in] | _linear | Linear twist. |
| [in] | _angular | Angular twist. |
| [in] | _updateChildren | True to pass this update to child entities. |
|
virtualinherited |
Stop the current animation, if any.
Reimplemented in Model.
|
inherited |
Get the string name for the entity type.
|
protectedvirtualinherited |
Unregister items in the introspection service.
|
inlinevirtualinherited |
Update the object.
Reimplemented in Actor, BulletRayShape, DARTMeshShape, DARTModel, DARTRayShape, Joint, Link, MapShape, MeshShape, Model, MultiRayShape, ODEMeshShape, ODEPolylineShape, ODERayShape, RayShape, and SimbodyRayShape.
Referenced by Link::Update().
|
virtualinherited |
Update the parameters using new sdf values.
| [in] | _sdf | SDF values to update from. |
Reimplemented from Entity.
|
inherited |
Return the common::URI of this entity.
The URI includes the world where the entity is contained and all the hierarchy of sub-entities that can compose this entity. E.g.: A link entity contains the name of the link and the model where the link is contained.
|
virtualinherited |
Get the angular acceleration of the collision in the world frame.
Reimplemented from Entity.
|
virtualinherited |
Get the angular velocity of the collision in the world frame.
Reimplemented from Entity.
|
virtualinherited |
Get the linear acceleration of the collision in the world frame.
Reimplemented from Entity.
|
virtualinherited |
Get the linear velocity of the collision in the world frame.
Reimplemented from Entity.
|
virtualinherited |
Get the absolute pose of the entity.
Reimplemented from Entity.
|
protectedinherited |
Current pose animation.
|
protectedinherited |
Connection used to update an animation.
|
protectedinherited |
Start pose of an animation.
|
protectedinherited |
Children of this entity.
|
protectedinherited |
All our event connections.
|
protectedinherited |
The pose set by a physics engine.
|
protectedinherited |
All the introspection items regsitered for this.
|
protectedinherited |
The link this collision belongs to.
|
protectedinherited |
Communication node.
|
protectedinherited |
Ignition communication node.
|
protectedinherited |
Parent of this entity.
Referenced by BulletMultiRayShape::BulletMultiRayShape(), and SimbodyMultiRayShape::SimbodyMultiRayShape().
|
protectedinherited |
A helper that prevents numerous dynamic_casts.
|
protectedinherited |
Flag for placeable.
|
protectedinherited |
Previous time an animation was updated.
|
protectedinherited |
Request publisher.
|
protectedinherited |
Request publisher.
|
protectedinherited |
Scale of the entity.
|
protectedinherited |
The SDF values for this object.
|
protectedinherited |
Pointer to physics::Shape.
|
protectedinherited |
The surface parameters.
Referenced by GetSurface().
|
protectedinherited |
Visual publisher.
|
protectedinherited |
Visual publisher.
|
protectedinherited |
Visual message container.
|
protectedinherited |
Pointer to the world.
Referenced by BulletFixedJoint::BulletFixedJoint(), BulletHinge2Joint::BulletHinge2Joint(), BulletHingeJoint::BulletHingeJoint(), BulletSliderJoint::BulletSliderJoint(), and BulletUniversalJoint::BulletUniversalJoint().
|
mutableprotectedinherited |
World pose of the entity.
Referenced by WorldPose().