AGX Dynamics 2.41.2.0
Loading...
Searching...
No Matches
agxWire::Wire Class Reference

Interface and placeholder of controllers/helpers for wires. More...

#include <Wire.h>

+ Inheritance diagram for agxWire::Wire:

Classes

struct  TensionData
 Structure containing relevant tension data given one look-up. More...
 

Public Types

typedef SimulationProxyT< agxSDK::StepEventListenerbase
 

Public Member Functions

 Wire (agx::Real radius, agx::Real resolutionPerUnitLength, bool enableCollisions=true)
 Constructor given the basic parameters to create a wire.
 
virtual bool add (agxWire::Link *link, bool updateConnectionType=true)
 Add link to the route.
 
virtual bool add (agxWire::Link *link, const agx::Vec3 &relativeTranslate)
 Add link to the route.
 
virtual bool add (agxWire::Node *node)
 Add node to this wire.
 
virtual bool add (agxWire::WireWinchController *winchController)
 Add winch to this wire.
 
virtual bool add (agxWire::WireWinchController *winchController, agx::Real pulledInLength)
 Add winch to this wire.
 
void addGroup (const agx::Name &name)
 Add group for all geometries handled by this collision controller.
 
void addGroup (uint32_t id)
 Add group for all geometries handled by this collision controller.
 
virtual bool attach (agxWire::Node *node, bool begin)
 Attach this wire to a new object given new begin or end node and at which end.
 
virtual bool attach (agxWire::WireWinchController *winchController, bool begin)
 Attach a winch to a free end of this wire.
 
bool changeRigidBody (agxWire::Node *node, agx::RigidBody *newRigidBody) const
 Utility method to change rigid body in any node, given it has a valid node type.
 
virtual agxWire::Wireclone (agxWire::Wire *newWire=nullptr)
 Clone this wire object and return an empty, uninitialized wire.
 
agxWire::WireRef cut (agx::Real distanceAlongWire, size_t minimumResolution, bool includeWinchPulledInLength=true)
 Cut this wire given distance from start (including winches).
 
agxWire::WireRef cut (const agx::Vec3 &worldPoint, size_t minimumResolution)
 Cut this wire given any point in world.
 
virtual bool detach (bool begin)
 Detach begin or end of this wire (if attached to something).
 
agx::Vec3 findPoint (agx::Real distanceFromStart) const
 Returns a point on this wire distanceFromStart meters from the beginning of this wire.
 
agx::Vec3 findPoint (agx::Real distanceFromStart, bool includesWinchesPulledInLength) const
 Returns a point on this wire distanceFromStart meters from the beginning of this wire.
 
agx::Vec3 findPoint (const agx::Vec3 &point) const
 Given any point in 3D, this method will find a point on this wire which is closest to the given point.
 
agx::Real findRestLength (bool includeWinches=true) const
 Extended functionality, compared to getRestLength, to find rest length of this wire in a agxWire::Winch and agxWire::Link system.
 
agx::Real findRestLengthFromStart (const agx::Vec3 &point, bool includeWinchesPulledInLength=true) const
 Given any point in 3D, this method will find the distance along this wire which is closest to the given point.
 
agxWire::WireContactController * getActiveContactController () const
 
WireContactControllerType getActiveContactControllerType () const
 
const agxWire::WireAttachmentController * getBeginAttachment () const
 Return pointer to the attachment controller used at begin of the wire constraint.
 
agxWire::WireDistanceCompositeConstraint * getConstraint () const
 
agx::Real getContactNodeMomentum () const
 
agx::Real getCurrentLength (bool includeWinches=true) const
 Calculates the current length of this wire (stretched/compressed included).
 
agx::Real getCurrentLength (const agxWire::Node *node1, const agxWire::Node *node2) const
 Calculates the current length between node1 and node2 in wire coordinates.
 
agx::Real getCurrentLengthScaler (const agxWire::Node *node) const
 Given node on this wire, calculates the transform from rest length to current length.
 
bool getEnableCollisions () const
 
bool getEnableCollisions (const agx::RigidBody *rb) const
 
bool getEnableCollisions (const agxCollide::Geometry *geometry) const
 
bool getEnableSplitting () const
 
const agxWire::WireAttachmentController * getEndAttachment () const
 Return pointer to the attachment controller used at end of the wire constraint.
 
agxWire::NodegetFirstNode () const
 
agx::FramegetFrame () const
 This wire has a frame which is the parent frame of all internal bodies.
 
void getGeometries (agxCollide::GeometryPtrVector &geoms) const
 Fills geoms with all geometries used by this wire.
 
agxWire::WireGeometryController * getGeometryController () const
 
agxWire::NodegetLastNode () const
 
agx::Real getLinearVelocityDamping () const
 
agx::Real getMass () const
 
agx::MaterialgetMaterial () const
 
agxWire::WireMaterialController * getMaterialController () const
 
agxWire::WireParameterControllergetParameterController () const
 
agx::PropertyContainergetPropertyContainer ()
 
const agx::PropertyContainergetPropertyContainer () const
 
agx::Real getRadius () const
 
agx::Real getRadiusIncludingContactNodeOffsetDistanceMultiplier () const
 
agxWire::RenderIterator getRenderBeginIterator () const
 
agxWire::RenderIterator getRenderEndIterator () const
 
bool getRenderListEmpty () const
 
agx::Real getResolutionPerUnitLength () const
 
virtual agx::Real getRestLength (bool includeWinches=true) const
 Calculates the rest length of this wire.
 
agx::Real getRestLength (const agxWire::Node *node1, const agxWire::Node *node2) const
 Calculates the rest length between two nodes (node1 and node2).
 
agx::Real getRestLengthScaler (const agxWire::Node *node) const
 Given node on this wire, calculates the transform from current length to rest length.
 
agxWire::WireRouteController * getRouteController () const
 
agxWire::WireSimplifyController * getSimplifyController () const
 
const agxUtil::SmoothingFiltergetSmoothingFilter () const
 
agx::SolveIslandSplitAlgorithmgetSplitAlgorithm () const
 Get pointer to solve algorithm.
 
agxWire::WireStabilityController * getStabilityController () const
 
agxWire::WireSegmentTensionData getTension (agx::Real distanceFromStart) const
 Returns the current tension in a point given distance from start of this wire.
 
agxWire::WireSegmentTensionData getTension (const agx::Vec3 &point) const
 Given any point in 3D, this method will find a point on this wire which is closest to the given point and returns the current tension in that point.
 
agxWire::WireNodeTensionData getTension (const agxWire::Node *node) const
 
agxWire::WireWinchControllergetWinchController (size_t i) const
 
bool hasContactNodesOn (const agx::RigidBody *rb) const
 
bool hasContactNodesOn (const agxCollide::Geometry *geometry) const
 
bool hasGeometry (const agxCollide::Geometry *geometry) const
 
bool hasGroup (const agx::Name &name) const
 Find if wire geometries contains group.
 
bool hasGroup (const uint32_t id) const
 Find if wire geometries contains group.
 
bool hasNode (const agxWire::Node *node) const
 
bool hasPropertyContainer () const
 
bool initialized () const
 
bool insert (agxWire::Node *node, agx::Real distanceFromStart, bool includeWinchPulledInLength=true)
 Insert a node in this given distance along this wire.
 
bool insert (agxWire::Node *node, const agx::Vec3 &worldPoint)
 Insert a node given a point in world coordinate system.
 
bool isSimplified () const
 
bool merge (agxWire::WireRef other)
 Merge this wire with other wire.
 
virtual void post (const agx::TimeStamp &t) override
 Clean up after splitting.
 
virtual void pre (const agx::TimeStamp &t) override
 Run stability update.
 
virtual void preCollide (const agx::TimeStamp &) override
 Update geometries.
 
virtual bool remove (agxWire::Node *node)
 Remove node from this wire.
 
virtual bool remove (agxWire::WireWinchController *winchController)
 Remove winch from this wire.
 
void removeGeometries ()
 Removes all geometries.
 
void removeGroup (const agx::Name &name)
 Remove group for all geometries handled by this collision controller.
 
void removeGroup (uint32_t id)
 Remove group for all geometries handled by this collision controller.
 
bool replaceBodyInNodes (agx::RigidBody *currentBody, agx::RigidBody *newBody, agxCollide::Geometry *geometry=nullptr)
 Given currentBody, go through all bodies related to this Wire and replace them with newBody.
 
void replaceContactNodesWithShapeContacts ()
 Replace all contact nodes with shape contact nodes.
 
bool reverse ()
 Reverse this wire - use to match merge where first wire end is connected to second wire begin.
 
agx::Real scaleToCurrentlength (agx::Real restLength, const agxWire::Node *node) const
 Scale rest length to current length.
 
agx::Real scaleToRestlength (agx::Real currentLength, const agxWire::Node *node) const
 Scale current length in world coordinates to rest length.
 
void setActiveContactControllerType (const WireContactControllerType type)
 Choose the type of WireContactController to use Default is the WireShapeContactController.
 
void setEnableCollisions (agx::RigidBody *rb, bool enable)
 Enable or disable collisions between all geometries in a rigid body and this wire.
 
void setEnableCollisions (agxCollide::Geometry *geometry, bool enable, bool forceContactUpdate=false)
 Enable or disable collisions between a geometry and this wire.
 
void setEnableCollisions (bool enable)
 Enable or disable this wire collision handling (i.e., if false, this wire will only contain bodies and constraints, no geometries)
 
void setEnableSplitting (bool splitting)
 enable/disable the ability to automatically split the wire at a body fixed node.
 
void setFrame (agx::Frame *frame)
 Assign new parent frame to this wire.
 
void setInitializationController (agxWire::WireInitializationController *initializationController)
 Assign initialization controller for this wire.
 
void setIsBendResistent (bool isBendResistant)
 This determines if the wire should have a bend constraint or not.
 
void setLinearVelocityDamping (agx::Real linearVelocityDamping)
 Assigns linear velocity damping to all lumped nodes (i.e., rigid bodies owned by this wire) in this wire.
 
virtual void setMaterial (agx::Material *material)
 Sets the material for this wire.
 
void setPropertyContainer (agx::PropertyContainer *propertyContainer)
 Property container for all rigid bodies and geometries that are owned by this wire.
 
virtual void setRadius (agx::Real radius)
 Set the radius of this wire.
 
void setResolutionPerUnitLength (agx::Real resolutionPerUnitLength)
 Assign new resolution per unit length.
 
bool setRouteController (agxWire::WireRouteController *routeController, bool copyCurrentRouteToNew=false)
 Associate new, own implemented, route controller to this wire.
 
void setSmoothedTension (agx::Real newSmoothedTension)
 Assign smoothed tension (can be useful after certain events, like cut) to this wire.
 
void setSmoothedTension (agx::Real newSmoothedTension, agxWire::NodeIterator from, agxWire::NodeIterator to)
 Assign smoothed tension (can be useful after certain events, like cut) to part of this wire.
 
void setSmoothingFilter (agxUtil::SmoothingFilter *filter)
 Assign filter that will be used to filter out the tension values for smoothed tension readings.
 
void setSolveType (agx::Constraint::SolveType solveType)
 Set solve type, either DIRECT, ITERATIVE or DIRECT_AND_ITERATIVE.
 
bool shorten (const agxWire::Node *toNode, bool fromBegin)
 Shorten this wire to a given node.
 
bool simplify (const agx::Frame *parentFrame=nullptr)
 Simplify this wire.
 
bool unsimplify ()
 Unsimplify this wire.
 
void updateNodeTransforms ()
 Updates all node transforms.
 

Static Public Member Functions

static agxWire::Wirefind (agxSDK::Simulation *simulation, const agx::Name &name)
 Find wire instance given simulation and name.
 
static agxWire::Wirefind (agxSDK::Simulation *simulation, const agx::Uuid &uuid)
 Find wire instance given simulation and unique id.
 
static agxWire::WirePtrVector findAll (const agxSDK::Simulation *simulation)
 Finds all agxWire::Wire instances in the given simulation.
 
static agxWire::WirePtrVector findAll (const agxSDK::Simulation *simulation, const agx::Name &name)
 Finds all wire instances given simulation and name.
 
static agxWire::BodyFixedNodegetLumpedNode (agx::RigidBody *rb)
 
static const agxWire::BodyFixedNodegetLumpedNode (const agx::RigidBody *rb)
 
static agxWire::WiregetWire (agx::RigidBody *rb)
 
static agxWire::WiregetWire (agxCollide::Geometry *geometry)
 
static const agxWire::WiregetWire (const agx::RigidBody *rb)
 
static const agxWire::WiregetWire (const agxCollide::Geometry *geometry)
 
static agx::Bool isLumpedNode (const agx::RigidBody *rb)
 
static void setEnableGroupWireCollision (agxCollide::Space *space, const agx::UInt32 group, bool enable)
 Enable/Disable a group (unique group id) against all wires.
 

Protected Member Functions

 Wire ()
 Serializable.
 
virtual ~Wire ()
 Reference counted class, protected destructor.
 
virtual void addNotification () override
 Called when this wire is added to a simulation, if this wire hasn't been initialized before this call it will initialize it self during this call.
 
agxWire::WireAttachmentController * getBeginAttachment ()
 Return pointer to the attachment controller used at begin of the wire constraint.
 
agxWire::WireAttachmentController * getEndAttachment ()
 Return pointer to the attachment controller used at end of the wire constraint.
 
agxSDK::EventListener::Type getType () const
 Hide eventListenerType getType()
 
virtual void removeNotification () override
 Called when this wire is removed from the simulation.
 
virtual void setWinchController (agxWire::WireWinchController *winchController, bool begin)
 Assign new winch controller to this wire.
 
void updateMaterial ()
 Loop through all nodes and update mass (and material NOT IMPLEMENTED)
 

Protected Attributes

WireDistanceCompositeConstraintRef m_constraint
 
agx::FrameRef m_frame
 
WireFrictionControllerRef m_frictionController
 
WireGeometryControllerRef m_geometryController
 
WireInitializationControllerRef m_initializationController
 
bool m_initialized
 
agx::ref_ptr< agx::Referencedm_internalData
 
agx::Real m_linearVelocityDamping
 Only linear velocity damping as real is defined for lumped nodes.
 
WireMaterialControllerRef m_materialController
 
WireParameterController m_parameterController
 
agx::PropertyContainerRef m_propertyContainer
 
agx::ref_ptr< agx::Referencedm_propertyController
 
WireRouteControllerRef m_routeController
 
WireSimplifyControllerRef m_simplifyController
 
agxUtil::SmoothingFilterRef m_smoothingFilter
 
agx::Constraint::SolveType m_solveType
 
agx::ref_ptr< agx::Referencedm_splitAlgorithm
 
bool m_splitEnabled
 
WireStabilityControllerRef m_stabilityController
 
WireWinchControllerRefVector m_winchControllers
 Winch controller vector, always of size 2, default both 0.
 

Detailed Description

Interface and placeholder of controllers/helpers for wires.

Definition at line 61 of file Wire.h.

Member Typedef Documentation

◆ base

typedef SimulationProxyT< agxSDK::StepEventListener > agxWire::Wire::base

Definition at line 64 of file Wire.h.

Constructor & Destructor Documentation

◆ Wire() [1/2]

agxWire::Wire::Wire ( agx::Real  radius,
agx::Real  resolutionPerUnitLength,
bool  enableCollisions = true 
)

Constructor given the basic parameters to create a wire.

Parameters
radius- radius of this wire given in dimension of length
resolutionPerUnitLength- resolution per unit length, i.e., how many discrete nodes that may appear per unit length (length = 10 m, resolutionPerUnitLength = 2 gives at maximum 20 nodes, length 10 m, resolutionPerUnitLength = 0.5 gives at maximum 5 nodes)
enableCollisions- default true. If false, this wire can not collide with anything and will not handle or insert geometries

◆ Wire() [2/2]

agxWire::Wire::Wire ( )
protected

Serializable.

Default constructor.

◆ ~Wire()

virtual agxWire::Wire::~Wire ( )
protectedvirtual

Reference counted class, protected destructor.

Member Function Documentation

◆ add() [1/5]

virtual bool agxWire::Wire::add ( agxWire::Link link,
bool  updateConnectionType = true 
)
virtual

Add link to the route.

Default behavior is that the route determines the connection type of the link connection and overwrites the old connection type. If updateConnectionType is false this call will fail if the connection types mismatches.

Parameters
link- link with predefined connection to this wire
updateConnectionType- default true to update connection in the link given the current route of this wire, false to fail if connection type mismatch
Returns
true if successful - otherwise false

◆ add() [2/5]

virtual bool agxWire::Wire::add ( agxWire::Link link,
const agx::Vec3 relativeTranslate 
)
virtual

Add link to the route.

This method will connect this wire to the link and add the link to the route, i.e., equivalent to: link->connect( wire, relativeTranslate, connectionType ); wire->add( link ); The connection type will be determined given the current route.

Parameters
link- link to connect to and add to route
relativeTranslate- position in this links frame where the connection point is
Returns
true if successful - otherwise false

◆ add() [3/5]

virtual bool agxWire::Wire::add ( agxWire::Node node)
virtual

Add node to this wire.

Note that this call only is valid during initial route, i.e., it is not possible to add nodes when this wire is initialized.

Parameters
node- node to add to this wire
Returns
true if the node was added to this wire - otherwise false (line initialized for example)

◆ add() [4/5]

virtual bool agxWire::Wire::add ( agxWire::WireWinchController winchController)
virtual

Add winch to this wire.

Note that this call only is valid during initial route. I.e., it's not possible to add winches when this wire is initialized.

Parameters
winchController- winch to add
Returns
true if the winch was successfully added to this wire - otherwise false

◆ add() [5/5]

virtual bool agxWire::Wire::add ( agxWire::WireWinchController winchController,
agx::Real  pulledInLength 
)
virtual

Add winch to this wire.

Note that this call only is valid during initial route. I.e., it's not possible to add winches when this wire is initialized.

Parameters
winchController- winch
pulledInLength- length rolled up on the winch
Returns
true if the winch was successfully added to this wire - otherwise false

◆ addGroup() [1/2]

void agxWire::Wire::addGroup ( const agx::Name name)

Add group for all geometries handled by this collision controller.

Parameters
name- name for the new group

◆ addGroup() [2/2]

void agxWire::Wire::addGroup ( uint32_t  id)

Add group for all geometries handled by this collision controller.

Parameters
id- id for the new group

◆ addNotification()

virtual void agxWire::Wire::addNotification ( )
overrideprotectedvirtual

Called when this wire is added to a simulation, if this wire hasn't been initialized before this call it will initialize it self during this call.

◆ attach() [1/2]

virtual bool agxWire::Wire::attach ( agxWire::Node node,
bool  begin 
)
virtual

Attach this wire to a new object given new begin or end node and at which end.

If this wire is attached (i.e., first or last node != free node) a detach will be performed before attach. Valid types of node is Node::BODY_FIXED and Node::CONNECTING. It is not valid to attach from an end where a winch is located.

Parameters
node- new begin or end node (body fixed or connecting)
begin- if true, node will be new begin attachment - otherwise new end attachment
Returns
true if attach was successful (correct node and valid wire) - otherwise false

◆ attach() [2/2]

virtual bool agxWire::Wire::attach ( agxWire::WireWinchController winchController,
bool  begin 
)
virtual

Attach a winch to a free end of this wire.

If an object is attached to begin, it will be detached, and this winch controller will be attached at this position instead.

Parameters
winchController- winch controller to attach
begin- true if winchController should be attached at begin, false at end
Returns
true if the winch controller was attached

◆ changeRigidBody()

bool agxWire::Wire::changeRigidBody ( agxWire::Node node,
agx::RigidBody newRigidBody 
) const

Utility method to change rigid body in any node, given it has a valid node type.

Valid node types are: agxWire::Node::BODY_FIXED, agxWire::Node::CONNECTING and agxWire::Node::EYE.

Notes: BODY_FIXED: If this fixed node is part of a connecting node (cm-node) the body will be changed in the connecting node as well. CONNECTING: If connecting node its center of mass node (fixed) will also change rigid body. EYE: If eye node, and "double eye" was created, both eye nodes will change rigid body.

The node will have the same position in world coordinates after the call to this method. I.e., a new local offset is calculated as well.

Parameters
node- node to change rigid body on (see "Notes" above)
newRigidBody- the new rigid body (if 0, the node will be connected in world)
Returns
true if the change were successful

◆ clone()

virtual agxWire::Wire * agxWire::Wire::clone ( agxWire::Wire newWire = nullptr)
virtual

Clone this wire object and return an empty, uninitialized wire.

Used during cut.

Parameters
newWire- if not null this object is interpreted as the clone (i.e., no 'new' will be created in clone)
Returns
a new empty wire

◆ cut() [1/2]

agxWire::WireRef agxWire::Wire::cut ( agx::Real  distanceAlongWire,
size_t  minimumResolution,
bool  includeWinchPulledInLength = true 
)

Cut this wire given distance from start (including winches).

If successful cut, a new wire is returned with at least minimumResolution number of lumps. The new wire is added to the simulation if this wire was in a simulation.

Parameters
distanceAlongWire- distance along this wire where the cut should be made
minimumResolution- minimum number of lumps the wires (this and the new) after cut (if very short for example)
includeWinchPulledInLength- default true, if false any pulled in length in begin winch will be ignored
Returns
new wire if cut was successful - otherwise 0

◆ cut() [2/2]

agxWire::WireRef agxWire::Wire::cut ( const agx::Vec3 worldPoint,
size_t  minimumResolution 
)

Cut this wire given any point in world.

The cut position will be the one closest to worldPoint on this wire. If successful cut, a new wire is returned with at least minimumResolution number of lumps. The new wire is added to the simulation if this wire was in a simulation.

Parameters
worldPoint- any point in world
minimumResolution- minimum number of lumps the wires (this and the new) after cut (if very short for example)
Returns
new wire if cut was successful - otherwise 0

◆ detach()

virtual bool agxWire::Wire::detach ( bool  begin)
virtual

Detach begin or end of this wire (if attached to something).

Parameters
begin- if true, begin of this wire will be detached - otherwise end
Returns
true if a detach was performed - otherwise false

◆ find() [1/2]

static agxWire::Wire * agxWire::Wire::find ( agxSDK::Simulation simulation,
const agx::Name name 
)
static

Find wire instance given simulation and name.

Parameters
simulation- simulation
name- name of wire instance to find
Returns
wire instance with given name if found - otherwise null

◆ find() [2/2]

static agxWire::Wire * agxWire::Wire::find ( agxSDK::Simulation simulation,
const agx::Uuid uuid 
)
static

Find wire instance given simulation and unique id.

Parameters
simulation- simulation
uuid- UUID of wire instance to find
Returns
wire instance with given UUID if found - otherwise null

◆ findAll() [1/2]

static agxWire::WirePtrVector agxWire::Wire::findAll ( const agxSDK::Simulation simulation)
static

Finds all agxWire::Wire instances in the given simulation.

Parameters
simulation- simulation
Returns
wire instances found in the given simulation

◆ findAll() [2/2]

static agxWire::WirePtrVector agxWire::Wire::findAll ( const agxSDK::Simulation simulation,
const agx::Name name 
)
static

Finds all wire instances given simulation and name.

Parameters
simulation- simulation
name- name of wire instances to find
Returns
wire instances with given name

◆ findPoint() [1/3]

agx::Vec3 agxWire::Wire::findPoint ( agx::Real  distanceFromStart) const

Returns a point on this wire distanceFromStart meters from the beginning of this wire.

Any winch (etc) that can hold/hide parts of this wire is included in the distance. I.e., if a winch, at begin, has 500 meters pulled in and distanceFromStart = 501, the point at 1 meter from the winch is returned.

Parameters
distanceFromStart- distance from start including winch pulled in length
Returns
point in this wire distanceFromStart away

◆ findPoint() [2/3]

agx::Vec3 agxWire::Wire::findPoint ( agx::Real  distanceFromStart,
bool  includesWinchesPulledInLength 
) const

Returns a point on this wire distanceFromStart meters from the beginning of this wire.

If includesWinchesPulledInLength is true, distanceFromStart is assumed to include any pulled in wire at the beginning of this wire. If includesWinchesPulledInLength is false, the distance is assumed to be given from the first visible node of the wire.

Parameters
distanceFromStart- distance from start
includesWinchesPulledInLength- true if distanceFromStart include a begin winch pulled in length, false if distanceFromStart does not include a begin winch pulled in length
Returns
point in this wire distanceFromStart away

◆ findPoint() [3/3]

agx::Vec3 agxWire::Wire::findPoint ( const agx::Vec3 point) const

Given any point in 3D, this method will find a point on this wire which is closest to the given point.

Parameters
point- any point
Returns
a point on this wire closest to point

◆ findRestLength()

agx::Real agxWire::Wire::findRestLength ( bool  includeWinches = true) const

Extended functionality, compared to getRestLength, to find rest length of this wire in a agxWire::Winch and agxWire::Link system.

If this wire is attached to a winch and a link is being pulled in, getRestLength will either return a misleading or zero length but this method will find the actual rest length.

Parameters
includeWinches- if true, the winches pulled in length will be added to the simulated rest length.
Returns
the rest length of this wire, 0 if this wire isn't initialized.

◆ findRestLengthFromStart()

agx::Real agxWire::Wire::findRestLengthFromStart ( const agx::Vec3 point,
bool  includeWinchesPulledInLength = true 
) const

Given any point in 3D, this method will find the distance along this wire which is closest to the given point.

Parameters
point- any point
includeWinchesPulledInLength- if true the algorithm will take the pulled in length, of the begin winch, into account
Returns
the distance from start of this wire, closest to the given point

◆ getActiveContactController()

agxWire::WireContactController * agxWire::Wire::getActiveContactController ( ) const
Returns
pointer to contact controller

◆ getActiveContactControllerType()

WireContactControllerType agxWire::Wire::getActiveContactControllerType ( ) const

◆ getBeginAttachment() [1/2]

agxWire::WireAttachmentController * agxWire::Wire::getBeginAttachment ( )
protected

Return pointer to the attachment controller used at begin of the wire constraint.

Returns
- the begin attachment.

◆ getBeginAttachment() [2/2]

const agxWire::WireAttachmentController * agxWire::Wire::getBeginAttachment ( ) const

Return pointer to the attachment controller used at begin of the wire constraint.

Returns
- the begin attachment.

◆ getConstraint()

WireDistanceCompositeConstraint * agxWire::Wire::getConstraint ( ) const
inline
Returns
the constraint used by this line

Definition at line 1082 of file Wire.h.

Referenced by agxUtil::CollectBodiesAndWiresVisitor::visit().

◆ getContactNodeMomentum()

agx::Real agxWire::Wire::getContactNodeMomentum ( ) const

◆ getCurrentLength() [1/2]

agx::Real agxWire::Wire::getCurrentLength ( bool  includeWinches = true) const

Calculates the current length of this wire (stretched/compressed included).

If the winches are included their pulled in length will be added to the simulated current length.

Parameters
includeWinches- if true, their pulled in length will be added to the simulated current length
Returns
the current length of this wire

◆ getCurrentLength() [2/2]

agx::Real agxWire::Wire::getCurrentLength ( const agxWire::Node node1,
const agxWire::Node node2 
) const

Calculates the current length between node1 and node2 in wire coordinates.

Note that node1 has to be before node2 in this wire, i.e., if you travel along the wire from the beginning, the first node of the two you meet is node1.

Parameters
node1- first wire node
node2- second wire node
Returns
the current length between the node. If something goes wrong, the return value will be -1.

◆ getCurrentLengthScaler()

agx::Real agxWire::Wire::getCurrentLengthScaler ( const agxWire::Node node) const

Given node on this wire, calculates the transform from rest length to current length.

Parameters
node- node on this wire, close to where the scale is about to be used
Returns
the scaler for scaling a current length to a rest length given the violation of the wire near the node

◆ getEnableCollisions() [1/3]

bool agxWire::Wire::getEnableCollisions ( ) const
Returns
true if collisions is enabled for this wire - otherwise false

◆ getEnableCollisions() [2/3]

bool agxWire::Wire::getEnableCollisions ( const agx::RigidBody rb) const
Returns
true if collisions are enabled between ALL the geometries in the rigid body and this wire - otherwise false

◆ getEnableCollisions() [3/3]

bool agxWire::Wire::getEnableCollisions ( const agxCollide::Geometry geometry) const
Returns
true if collisions are enabled between the geometry and this wire - otherwise false

◆ getEnableSplitting()

bool agxWire::Wire::getEnableSplitting ( ) const
Returns
true - if wire has splitting enabled

◆ getEndAttachment() [1/2]

agxWire::WireAttachmentController * agxWire::Wire::getEndAttachment ( )
protected

Return pointer to the attachment controller used at end of the wire constraint.

Returns
- the end attachment.

◆ getEndAttachment() [2/2]

const agxWire::WireAttachmentController * agxWire::Wire::getEndAttachment ( ) const

Return pointer to the attachment controller used at end of the wire constraint.

Returns
- the end attachment.

◆ getFirstNode()

agxWire::Node * agxWire::Wire::getFirstNode ( ) const
Returns
the first node in this wire - null if no nodes

◆ getFrame()

agx::Frame * agxWire::Wire::getFrame ( ) const

This wire has a frame which is the parent frame of all internal bodies.

Returns
frame of this wire

◆ getGeometries()

void agxWire::Wire::getGeometries ( agxCollide::GeometryPtrVector geoms) const

Fills geoms with all geometries used by this wire.

Parameters
geoms- geometry vector to fill

◆ getGeometryController()

WireGeometryController * agxWire::Wire::getGeometryController ( ) const
inline
Returns
pointer to geometry controller

Definition at line 1077 of file Wire.h.

◆ getLastNode()

agxWire::Node * agxWire::Wire::getLastNode ( ) const
Returns
the last node in this wire - null if no nodes

◆ getLinearVelocityDamping()

agx::Real agxWire::Wire::getLinearVelocityDamping ( ) const
Returns
current linear velocity damping used

◆ getLumpedNode() [1/2]

static agxWire::BodyFixedNode * agxWire::Wire::getLumpedNode ( agx::RigidBody rb)
static
Parameters
rb- any rigid body
Returns
the lumped node object if rb is a lumped node, otherwise null

◆ getLumpedNode() [2/2]

static const agxWire::BodyFixedNode * agxWire::Wire::getLumpedNode ( const agx::RigidBody rb)
static
Parameters
rb- any rigid body
Returns
the lumped node object if rb is a lumped node, otherwise null

◆ getMass()

agx::Real agxWire::Wire::getMass ( ) const
Returns
the sum of all discrete node masses in this wire (i.e., the current, total simulated wire mass)

◆ getMaterial()

agx::Material * agxWire::Wire::getMaterial ( ) const
Returns
the material for this wire

◆ getMaterialController()

WireMaterialController * agxWire::Wire::getMaterialController ( ) const
inline
Returns
the material controller

Definition at line 1072 of file Wire.h.

◆ getParameterController()

WireParameterController * agxWire::Wire::getParameterController ( ) const
inline
Returns
the wire parameter controller holding all parameters used to simulate this wire

Definition at line 1057 of file Wire.h.

◆ getPropertyContainer() [1/2]

agx::PropertyContainer * agxWire::Wire::getPropertyContainer ( )
Returns
a pointer to the PropertyContainer. If no one exists, a new will be created and returned

Definition at line 1092 of file Wire.h.

◆ getPropertyContainer() [2/2]

const agx::PropertyContainer * agxWire::Wire::getPropertyContainer ( ) const
Returns
a pointer to the PropertyContainer

Definition at line 1104 of file Wire.h.

◆ getRadius()

agx::Real agxWire::Wire::getRadius ( ) const
Returns
the radius of this wire

◆ getRadiusIncludingContactNodeOffsetDistanceMultiplier()

agx::Real agxWire::Wire::getRadiusIncludingContactNodeOffsetDistanceMultiplier ( ) const
Returns
the radius of this wire including the offset distance for contact nodes

◆ getRenderBeginIterator()

agxWire::RenderIterator agxWire::Wire::getRenderBeginIterator ( ) const
Returns
the iterator to the first node of the visual part of this wire
Note
Check so that the rendering list is not empty before use of this method.
See also
getRenderListEmpty, getRenderEndIterator

◆ getRenderEndIterator()

agxWire::RenderIterator agxWire::Wire::getRenderEndIterator ( ) const
Returns
the iterator the node AFTER the last node that is part of the visual part of this wire
Note
Check so that the rendering list is not empty before use of this method.
See also
getRenderListEmpty, getRenderBeginIterator

◆ getRenderListEmpty()

bool agxWire::Wire::getRenderListEmpty ( ) const
Returns
true if the render list is empty - otherwise false

◆ getResolutionPerUnitLength()

agx::Real agxWire::Wire::getResolutionPerUnitLength ( ) const
Returns
the current resolution per unit length

◆ getRestLength() [1/2]

virtual agx::Real agxWire::Wire::getRestLength ( bool  includeWinches = true) const
virtual

Calculates the rest length of this wire.

If the winches are included their pulled in length will be added to the simulated rest length. Note that this wire doesn't have a rest length before it's initialized.

Parameters
includeWinches- if true, their pulled in length will be added to the simulated rest length
Returns
the rest length of this wire, route length if this wire isn't initialized

◆ getRestLength() [2/2]

agx::Real agxWire::Wire::getRestLength ( const agxWire::Node node1,
const agxWire::Node node2 
) const

Calculates the rest length between two nodes (node1 and node2).

Note that node1 has to be before node2 in this wire, i.e., if you travel along the wire from the beginning, the first node of the two you meet is node1.

Note
It's not defined to call this method if this wire is uninitialized - return value will be -1 until the wire is initialized.
Parameters
node1- first wire node
node2- second wire node
Returns
the rest length between the node. If something goes wrong, the return value will be -1.

◆ getRestLengthScaler()

agx::Real agxWire::Wire::getRestLengthScaler ( const agxWire::Node node) const

Given node on this wire, calculates the transform from current length to rest length.

Parameters
node- node on this wire, close to where the scale is about to be used
Returns
the scaler for scaling a current length to a rest length given the violation of the wire near the node

◆ getRouteController()

WireRouteController * agxWire::Wire::getRouteController ( ) const
inline
Returns
the current route controller

Definition at line 1062 of file Wire.h.

◆ getSimplifyController()

agxWire::WireSimplifyController * agxWire::Wire::getSimplifyController ( ) const
Returns
the simplify controller used by this wire

◆ getSmoothingFilter()

const agxUtil::SmoothingFilter * agxWire::Wire::getSmoothingFilter ( ) const
Returns
the current smoothing filter used

◆ getSplitAlgorithm()

agx::SolveIslandSplitAlgorithm * agxWire::Wire::getSplitAlgorithm ( ) const

Get pointer to solve algorithm.

◆ getStabilityController()

WireStabilityController * agxWire::Wire::getStabilityController ( ) const
inline
Returns
the stability controller

Definition at line 1067 of file Wire.h.

◆ getTension() [1/3]

agxWire::WireSegmentTensionData agxWire::Wire::getTension ( agx::Real  distanceFromStart) const

Returns the current tension in a point given distance from start of this wire.

Any winch (etc) that can hold/hide parts of this wire is included in the distance. I.e., if a winch, at begin, has 500 meters pulled in and distanceFromStart = 501, the tension at 1 meter from the winch is returned.

Parameters
distanceFromStart- distance from start including winch pulled in length
Returns
current tension

◆ getTension() [2/3]

agxWire::WireSegmentTensionData agxWire::Wire::getTension ( const agx::Vec3 point) const

Given any point in 3D, this method will find a point on this wire which is closest to the given point and returns the current tension in that point.

Parameters
point- any point
Returns
current tension closest to point

◆ getTension() [3/3]

agxWire::WireNodeTensionData agxWire::Wire::getTension ( const agxWire::Node node) const
Returns
the current tension at the current position of this node

◆ getType()

agxSDK::EventListener::Type agxWire::Wire::getType ( ) const
protected

Hide eventListenerType getType()

◆ getWinchController()

agxWire::WireWinchController * agxWire::Wire::getWinchController ( size_t  i) const
Returns
winch controller i, where i is 0 or 1, 0 means begin winch and 1 end. Returns zero if i is larger than 2 or if there's no winch at the desired position.

◆ getWire() [1/4]

static agxWire::Wire * agxWire::Wire::getWire ( agx::RigidBody rb)
static
Parameters
rb- any rigid body
Returns
wire if rb is an active wire lumped node, otherwise null

◆ getWire() [2/4]

static agxWire::Wire * agxWire::Wire::getWire ( agxCollide::Geometry geometry)
static
Parameters
geometry- any geometry
Returns
wire if geometry is an active wire geometry, otherwise null

◆ getWire() [3/4]

static const agxWire::Wire * agxWire::Wire::getWire ( const agx::RigidBody rb)
static
Parameters
rb- any rigid body
Returns
wire if rb is an active wire lumped node, otherwise null

◆ getWire() [4/4]

static const agxWire::Wire * agxWire::Wire::getWire ( const agxCollide::Geometry geometry)
static
Parameters
geometry- any geometry
Returns
wire if geometry is an active wire geometry, otherwise null

◆ hasContactNodesOn() [1/2]

bool agxWire::Wire::hasContactNodesOn ( const agx::RigidBody rb) const
Returns
true if wire has contact nodes on rb

◆ hasContactNodesOn() [2/2]

bool agxWire::Wire::hasContactNodesOn ( const agxCollide::Geometry geometry) const
Returns
true if wire has contact nodes on geometry

◆ hasGeometry()

bool agxWire::Wire::hasGeometry ( const agxCollide::Geometry geometry) const
Returns
true if the (cylinder or capsule) geometry belongs to this wires geometries - false otherwise

◆ hasGroup() [1/2]

bool agxWire::Wire::hasGroup ( const agx::Name name) const

Find if wire geometries contains group.

◆ hasGroup() [2/2]

bool agxWire::Wire::hasGroup ( const uint32_t  id) const

Find if wire geometries contains group.

◆ hasNode()

bool agxWire::Wire::hasNode ( const agxWire::Node node) const
Returns
true if this wire has node - otherwise false

◆ hasPropertyContainer()

bool agxWire::Wire::hasPropertyContainer ( ) const
Returns
true if it has an initialized PropertyContainer

Definition at line 1099 of file Wire.h.

References agx::ref_ptr< T >::isValid().

◆ initialized()

bool agxWire::Wire::initialized ( ) const
inline
Returns
true if this wire has been properly initialized - otherwise false

Definition at line 1052 of file Wire.h.

◆ insert() [1/2]

bool agxWire::Wire::insert ( agxWire::Node node,
agx::Real  distanceFromStart,
bool  includeWinchPulledInLength = true 
)

Insert a node in this given distance along this wire.

If distanceFromStart exceeds the current total route length the node will be added instead.

Parameters
node- node to insert
distanceFromStart- distance from start, including pulled in length in begin winch, of this wire where the node should be inserted
includeWinchPulledInLength- default true and should always be true unless a very special winch is used
Returns
true if the node was successfully inserted into this wire - otherwise false
Note
If distance from start is less than the pulled in length the insert will fail because it's not possible to insert nodes before the first node or add to (insert after) the last node.

◆ insert() [2/2]

bool agxWire::Wire::insert ( agxWire::Node node,
const agx::Vec3 worldPoint 
)

Insert a node given a point in world coordinate system.

worldPoint will be projected onto the wire so the insert point will be the closest point on the wire to worldPoint.

Parameters
node- node to insert
worldPoint- point in world
Returns
true if the node was successfully inserted into this wire - otherwise false

◆ isLumpedNode()

static agx::Bool agxWire::Wire::isLumpedNode ( const agx::RigidBody rb)
static
Parameters
rb- rigid body to check if a wire lumped node
Returns
true if rb is a wire lumped node

Referenced by agxUtil::CollectBodiesAndWiresVisitor::visit().

◆ isSimplified()

bool agxWire::Wire::isSimplified ( ) const
Returns
true if this wire is simplified

◆ merge()

bool agxWire::Wire::merge ( agxWire::WireRef  other)

Merge this wire with other wire.

The end of this wire and the begin of the other wire has to be free. The end point of this and the start of the other will be merged.

All properties and parameters from this wire will be used. E.g., if this and other has different radii, the radius of this wire is the final.

Parameters
other- other wire to merge this wire with
Returns
true if merge was successful (other will be empty and removed from simulation) - otherwise false

◆ post()

virtual void agxWire::Wire::post ( const agx::TimeStamp t)
overridevirtual

Clean up after splitting.

◆ pre()

virtual void agxWire::Wire::pre ( const agx::TimeStamp t)
overridevirtual

Run stability update.

◆ preCollide()

virtual void agxWire::Wire::preCollide ( const agx::TimeStamp )
overridevirtual

Update geometries.

◆ remove() [1/2]

virtual bool agxWire::Wire::remove ( agxWire::Node node)
virtual

Remove node from this wire.

Parameters
node- node to remove
Returns
true if the node was successfully removed from this wire - otherwise false (node not in this wire for example)

◆ remove() [2/2]

virtual bool agxWire::Wire::remove ( agxWire::WireWinchController winchController)
virtual

Remove winch from this wire.

See also
detach
Parameters
winchController- winch controller to remove
Returns
if the winch controller was removed

◆ removeGeometries()

void agxWire::Wire::removeGeometries ( )

Removes all geometries.

◆ removeGroup() [1/2]

void agxWire::Wire::removeGroup ( const agx::Name name)

Remove group for all geometries handled by this collision controller.

Parameters
name- name for the group to remove

◆ removeGroup() [2/2]

void agxWire::Wire::removeGroup ( uint32_t  id)

Remove group for all geometries handled by this collision controller.

Parameters
id- id for the group to remove

◆ removeNotification()

virtual void agxWire::Wire::removeNotification ( )
overrideprotectedvirtual

Called when this wire is removed from the simulation.

◆ replaceBodyInNodes()

bool agxWire::Wire::replaceBodyInNodes ( agx::RigidBody currentBody,
agx::RigidBody newBody,
agxCollide::Geometry geometry = nullptr 
)

Given currentBody, go through all bodies related to this Wire and replace them with newBody.

If geom != nullptr then only operate on the contactnodes which is associated with the specified geometry (geom).

Parameters
currentBody- The body currently present in the LineComposite
newBody- The body that will replace the currentBody
geometry-
Returns
true if currentBody was successfully replaced.

◆ replaceContactNodesWithShapeContacts()

void agxWire::Wire::replaceContactNodesWithShapeContacts ( )

Replace all contact nodes with shape contact nodes.

◆ reverse()

bool agxWire::Wire::reverse ( )

Reverse this wire - use to match merge where first wire end is connected to second wire begin.

Returns
true if successful reverse - otherwise false

◆ scaleToCurrentlength()

agx::Real agxWire::Wire::scaleToCurrentlength ( agx::Real  restLength,
const agxWire::Node node 
) const

Scale rest length to current length.

Parameters
restLength- length in world coordinates
node- node where the scale should be calculated
Returns
current length for segment

◆ scaleToRestlength()

agx::Real agxWire::Wire::scaleToRestlength ( agx::Real  currentLength,
const agxWire::Node node 
) const

Scale current length in world coordinates to rest length.

Parameters
currentLength- length in world coordinates
node- node where the scale should be calculated
Returns
rest length for segment

◆ setActiveContactControllerType()

void agxWire::Wire::setActiveContactControllerType ( const WireContactControllerType  type)

Choose the type of WireContactController to use Default is the WireShapeContactController.

The alternative is WireOldContactController,

◆ setEnableCollisions() [1/3]

void agxWire::Wire::setEnableCollisions ( agx::RigidBody rb,
bool  enable 
)

Enable or disable collisions between all geometries in a rigid body and this wire.

Parameters
rb- rigid body
enable- if true, collisions will be enabled, if false, disabled

◆ setEnableCollisions() [2/3]

void agxWire::Wire::setEnableCollisions ( agxCollide::Geometry geometry,
bool  enable,
bool  forceContactUpdate = false 
)

Enable or disable collisions between a geometry and this wire.

Parameters
geometry- geometry to enable/disable collisions against
enable- if true, collisions will be enabled, if false, disabled
forceContactUpdate- if true when disabling contacts, existing contacts will be removed, otherwise not.

◆ setEnableCollisions() [3/3]

void agxWire::Wire::setEnableCollisions ( bool  enable)

Enable or disable this wire collision handling (i.e., if false, this wire will only contain bodies and constraints, no geometries)

Parameters
enable- if true, collision handling will be enabled, false disabled

◆ setEnableGroupWireCollision()

static void agxWire::Wire::setEnableGroupWireCollision ( agxCollide::Space space,
const agx::UInt32  group,
bool  enable 
)
static

Enable/Disable a group (unique group id) against all wires.

◆ setEnableSplitting()

void agxWire::Wire::setEnableSplitting ( bool  splitting)

enable/disable the ability to automatically split the wire at a body fixed node.

That means temporarily making that body fixed node kinematic, and ignoring the bend constraint with that node in the middle.

Internal method chooses the body fixed nodes, and if it is possible to split.

◆ setFrame()

void agxWire::Wire::setFrame ( agx::Frame frame)

Assign new parent frame to this wire.

All objects in this wire will inherit this parent transform.

◆ setInitializationController()

void agxWire::Wire::setInitializationController ( agxWire::WireInitializationController *  initializationController)

Assign initialization controller for this wire.

If initializationController is zero the default controller will be assigned.

Parameters
initializationController- new initialization controller

◆ setIsBendResistent()

void agxWire::Wire::setIsBendResistent ( bool  isBendResistant)

This determines if the wire should have a bend constraint or not.

Parameters
isBendResistant- true if we want a bend constraint

◆ setLinearVelocityDamping()

void agxWire::Wire::setLinearVelocityDamping ( agx::Real  linearVelocityDamping)

Assigns linear velocity damping to all lumped nodes (i.e., rigid bodies owned by this wire) in this wire.

Since all rigid bodies are particles it's defined to have direction dependent damping.

Parameters
linearVelocityDamping- linear velocity damping > 0

◆ setMaterial()

virtual void agxWire::Wire::setMaterial ( agx::Material material)
virtual

Sets the material for this wire.

Parameters
material- new material

◆ setPropertyContainer()

void agxWire::Wire::setPropertyContainer ( agx::PropertyContainer propertyContainer)

Property container for all rigid bodies and geometries that are owned by this wire.

Parameters
propertyContainer- new property container

◆ setRadius()

virtual void agxWire::Wire::setRadius ( agx::Real  radius)
virtual

Set the radius of this wire.

Parameters
radius- new radius > 0

◆ setResolutionPerUnitLength()

void agxWire::Wire::setResolutionPerUnitLength ( agx::Real  resolutionPerUnitLength)

Assign new resolution per unit length.

Parameters
resolutionPerUnitLength- resolution per unit length, i.e., how many discrete nodes that may appear per unit length (length = 10 m, resolutionPerUnitLength = 2 gives at maximum 20 nodes, length 10 m, resolutionPerUnitLength = 0.5 gives at maximum 5 nodes)

◆ setRouteController()

bool agxWire::Wire::setRouteController ( agxWire::WireRouteController *  routeController,
bool  copyCurrentRouteToNew = false 
)

Associate new, own implemented, route controller to this wire.

Implement add, remove and insert in your own route controller to define the behaviors during these calls.

Note
This method can only be used before this wire has been initialized.
Parameters
routeController- new route controller, ignored if null
copyCurrentRouteToNew- if true, and a route is partially done before this call, the routed nodes will be added to the new route
Returns
true if the new route controller is accepted - otherwise false

◆ setSmoothedTension() [1/2]

void agxWire::Wire::setSmoothedTension ( agx::Real  newSmoothedTension)

Assign smoothed tension (can be useful after certain events, like cut) to this wire.

Parameters
newSmoothedTension- the new smoothed tension

◆ setSmoothedTension() [2/2]

void agxWire::Wire::setSmoothedTension ( agx::Real  newSmoothedTension,
agxWire::NodeIterator  from,
agxWire::NodeIterator  to 
)

Assign smoothed tension (can be useful after certain events, like cut) to part of this wire.

Parameters
newSmoothedTension- the new smoothed tension
from- from node
to- to node

◆ setSmoothingFilter()

void agxWire::Wire::setSmoothingFilter ( agxUtil::SmoothingFilter filter)

Assign filter that will be used to filter out the tension values for smoothed tension readings.

If no filter is set (or 0) in the argument, no filter will be used.

Parameters
filter- filter which will be used to smooth the smoothed tension values

◆ setSolveType()

void agxWire::Wire::setSolveType ( agx::Constraint::SolveType  solveType)

Set solve type, either DIRECT, ITERATIVE or DIRECT_AND_ITERATIVE.

◆ setWinchController()

virtual void agxWire::Wire::setWinchController ( agxWire::WireWinchController winchController,
bool  begin 
)
protectedvirtual

Assign new winch controller to this wire.

Parameters
winchController- new winch controller
begin- true if new winch controller is at begin, false at end

◆ shorten()

bool agxWire::Wire::shorten ( const agxWire::Node toNode,
bool  fromBegin 
)

Shorten this wire to a given node.

All nodes from this wire's end to toNode will be removed.

Note
The begin/end has to be free and this wire has to be initialized.
Parameters
toNode- node to short this wire to
fromBegin- true if shorten this wire from begin, false from end
Returns
true if successful - otherwise false

◆ simplify()

bool agxWire::Wire::simplify ( const agx::Frame parentFrame = nullptr)

Simplify this wire.

Returns
true if simplified (successful)

◆ unsimplify()

bool agxWire::Wire::unsimplify ( )

Unsimplify this wire.

Returns
true if unsimplified (successful)

◆ updateMaterial()

void agxWire::Wire::updateMaterial ( )
protected

Loop through all nodes and update mass (and material NOT IMPLEMENTED)

◆ updateNodeTransforms()

void agxWire::Wire::updateNodeTransforms ( )

Updates all node transforms.

Member Data Documentation

◆ m_constraint

WireDistanceCompositeConstraintRef agxWire::Wire::m_constraint
protected

Definition at line 1008 of file Wire.h.

◆ m_frame

agx::FrameRef agxWire::Wire::m_frame
protected

Definition at line 1023 of file Wire.h.

◆ m_frictionController

WireFrictionControllerRef agxWire::Wire::m_frictionController
protected

Definition at line 1018 of file Wire.h.

◆ m_geometryController

WireGeometryControllerRef agxWire::Wire::m_geometryController
protected

Definition at line 1017 of file Wire.h.

◆ m_initializationController

WireInitializationControllerRef agxWire::Wire::m_initializationController
protected

Definition at line 1012 of file Wire.h.

◆ m_initialized

bool agxWire::Wire::m_initialized
protected

Definition at line 1022 of file Wire.h.

◆ m_internalData

agx::ref_ptr<agx::Referenced> agxWire::Wire::m_internalData
protected

Definition at line 1029 of file Wire.h.

◆ m_linearVelocityDamping

agx::Real agxWire::Wire::m_linearVelocityDamping
protected

Only linear velocity damping as real is defined for lumped nodes.

Definition at line 1024 of file Wire.h.

◆ m_materialController

WireMaterialControllerRef agxWire::Wire::m_materialController
protected

Definition at line 1015 of file Wire.h.

◆ m_parameterController

WireParameterController agxWire::Wire::m_parameterController
protected

Definition at line 1013 of file Wire.h.

◆ m_propertyContainer

agx::PropertyContainerRef agxWire::Wire::m_propertyContainer
mutableprotected

Definition at line 1031 of file Wire.h.

◆ m_propertyController

agx::ref_ptr<agx::Referenced> agxWire::Wire::m_propertyController
protected

Definition at line 1030 of file Wire.h.

◆ m_routeController

WireRouteControllerRef agxWire::Wire::m_routeController
protected

Definition at line 1011 of file Wire.h.

◆ m_simplifyController

WireSimplifyControllerRef agxWire::Wire::m_simplifyController
protected

Definition at line 1019 of file Wire.h.

◆ m_smoothingFilter

agxUtil::SmoothingFilterRef agxWire::Wire::m_smoothingFilter
protected

Definition at line 1021 of file Wire.h.

◆ m_solveType

agx::Constraint::SolveType agxWire::Wire::m_solveType
protected

Definition at line 1026 of file Wire.h.

◆ m_splitAlgorithm

agx::ref_ptr<agx::Referenced> agxWire::Wire::m_splitAlgorithm
protected

Definition at line 1028 of file Wire.h.

◆ m_splitEnabled

bool agxWire::Wire::m_splitEnabled
protected

Definition at line 1025 of file Wire.h.

◆ m_stabilityController

WireStabilityControllerRef agxWire::Wire::m_stabilityController
protected

Definition at line 1016 of file Wire.h.

◆ m_winchControllers

WireWinchControllerRefVector agxWire::Wire::m_winchControllers
protected

Winch controller vector, always of size 2, default both 0.

Definition at line 1014 of file Wire.h.


The documentation for this class was generated from the following file: