AGX Dynamics 2.37.3.3
|
Implements a Wire model with adaptive resolution. More...
Classes | |
class | AreaDefinition |
AreaDefinition that specifies an area in which an eye node can move in an EyeNodeArea constraint. More... | |
class | BodyFixedNode |
The body fixed node is attached to a body at a given offset. More... | |
class | CircularAreaDefinition |
Class for defining a circular area in which the eye node is allowed to exist. More... | |
class | ConnectingNode |
Connecting nodes contains two nodes, one at center of mass and the other at the user defined position. More... | |
class | ContactNode |
Contact node class is a node that, currently, is defined to live on an edge on a geometry (agxCollide::Geometry). More... | |
struct | ContactNodeData |
class | ConvexAreaDefinition |
Class for defining a convex area in which the eye node is allowed to exist. More... | |
class | CylindricalCoordinateRPY |
class | EyeNode |
Eye node is a type of node that can slide along a wire with or without friction. More... | |
class | EyeNodeArea |
Constraint that allows an eye node to move in a 2D area relative a rigid body. More... | |
class | FreeNode |
Free node class used to route wires. More... | |
class | HighResolutionRange |
Class to control variable node density along wires through routed nodes. More... | |
class | ILinkNode |
Interface class for nodes connected to links. More... | |
class | Link |
Object that defines the relation between different types of wires (agxWire::Wire). More... | |
class | LinkObjectStabilizingAlgorithm |
(Optional) Link algorithm that tries to stabilize the link when the link is in contact with an object. More... | |
class | Node |
Class defining a node that is part of a wire. More... | |
class | NodeFrame |
Node coordinate frame in another frame. More... | |
class | NodeMaterial |
Material definition for a wire node Specifies the friction of a wire for sliding through an EyeNode. More... | |
class | RenderIterator |
Proxy class for wire iterators. More... | |
class | ShapeContactNode |
class | StopNode |
Stop node, wire end node used by winches. More... | |
class | Winch |
Winch object which works like agxWire::WireWinchController but enables the features of having stored, inactive, wire segments inside of the winch which can be pulled out given a link. More... | |
class | Wire |
Interface and placeholder of controllers/helpers for wires. More... | |
class | WireController |
Overlaying object handling wires. More... | |
struct | WireNodeForceResult |
Resulting force data from wire distance and bend calculateNodeForces calls. More... | |
struct | WireNodeTensionData |
Structure containing relevant tension data for a node. More... | |
class | WireParameterController |
Class to hold specific parameters for the wire - this makes the wires highly configurable. More... | |
struct | WireSegmentTensionData |
Structure containing relevant tension data for a wire element/segment. More... | |
class | WireSimpleDrumController |
struct | WireSimpleDrumControlPoint |
class | WireTensionController |
class | WireWinchController |
Winch class for handling in and out hauling of wires. More... | |
Enumerations | |
enum class | WireGeometryType { SEGMENT , LUMPED_SPHERE , CONTACT_SENSOR } |
Functions | |
AGXPHYSICS_EXPORT void | extractNodes (NodePtrVector &nodes, const Wire *wire) |
Extracts all the nodes given the render list in the wire. | |
template<typename IteratorCompatibleContainer > | |
IteratorCompatibleContainer::const_iterator | findBeginIterator (const IteratorCompatibleContainer &container, int nodeMask) |
Primitive function to find begin iterator for utility functions below. | |
template<typename IteratorCompatibleContainer > | |
agx::Real | findDistanceFromStartGivenPoint (agx::Real pulledInBegin, const IteratorCompatibleContainer &container, const agx::Vec3 &point) |
Search vector/list container defining a wire for the 3D point -> 1D wire projection. | |
template<typename IteratorCompatibleContainer > | |
agx::Real | findDistanceFromStartGivenPoint (agx::Real pulledInBegin, const IteratorCompatibleContainer &container, const agx::Vec3 &point, typename IteratorCompatibleContainer::const_iterator beginIt, typename IteratorCompatibleContainer::const_iterator endIt, agx::Real &shortestDistanceSquared) |
Search vector/list container defining a wire for the 3D point -> 1D wire projection. | |
template<typename IteratorCompatibleContainer > | |
IteratorCompatibleContainer::const_iterator | findEndIterator (const IteratorCompatibleContainer &container, int nodeMask) |
Primitive function to find end iterator for utility functions below. | |
template<typename IteratorCompatibleContainer > | |
agx::Vec3 | findPointOnWire (const IteratorCompatibleContainer &container, const agx::Vec3 &point) |
Projects any 3D point onto wire. | |
template<typename IteratorCompatibleContainer > | |
agx::Vec3 | findPointOnWire (const IteratorCompatibleContainer &container, const agx::Vec3 &point, const agx::Vec3 n) |
Projects any 3D point onto wire. | |
template<typename IteratorCompatibleContainer > | |
agx::Vec3 | findPointOnWire (const IteratorCompatibleContainer &container, const agx::Vec3 &point, typename IteratorCompatibleContainer::const_iterator beginIt, typename IteratorCompatibleContainer::const_iterator endIt, agx::Real &shortestDistanceSquared) |
Projects any 3D point onto wire. | |
template<typename IteratorCompatibleContainer > | |
agx::Vec3 | findPointOnWire (const IteratorCompatibleContainer &container, const agx::Vec3 &point, typename IteratorCompatibleContainer::const_iterator beginIt, typename IteratorCompatibleContainer::const_iterator endIt, const agx::Vec3 n, agx::Real &shortestDistanceSquared) |
template<typename IteratorCompatibleContainer > | |
const Node * | getNode (const IteratorCompatibleContainer &container, agx::Real distanceFromStart) |
Finds the wire node given current distance from the start of the wire (wire defined to be iterator compatible container). | |
template<typename IteratorCompatibleContainer > | |
Node * | getNode (IteratorCompatibleContainer &container, agx::Real distanceFromStart) |
Finds the wire node given current distance from the start of the wire (wire defined to be iterator compatible container). | |
template<typename It > | |
It | getNodeIterator (agx::Real distanceFromStart, It begin, It end, It containerEnd) |
This function is used by getNode, but can be used of some nodes in the beginning or end of the wire should be excluded. | |
static agx::Vec3 | transformPointToShape (const agx::Vec3 &p, const agxCollide::Geometry *g) |
Transforms a point given in world coordinates to shape coordinates of geometry g. | |
static agx::Vec3 | transformPointToWorld (const agx::Vec3 &p, const agxCollide::Geometry *g) |
Transforms a point given in shape coordinates to world given geometry g. | |
static agx::Vec3 | transformVectorToShape (const agx::Vec3 &v, const agxCollide::Geometry *g) |
Transforms a vector given in world coordinates to shape coordinates of geometry g. | |
static agx::Vec3 | transformVectorToWorld (const agx::Vec3 &v, const agxCollide::Geometry *g) |
Transforms a vector given in shape coordinates to world coordinates given geometry g. | |
Implements a Wire model with adaptive resolution.
typedef agx::ref_ptr< AreaDefinition > agxWire::AreaDefinitionRef |
Definition at line 91 of file EyeNodeArea.h.
typedef agx::ref_ptr< BodyFixedNode > agxWire::BodyFixedNodeRef |
Definition at line 1375 of file agxWire/Node.h.
typedef agx::ref_ptr< ConnectingNode > agxWire::ConnectingNodeRef |
Definition at line 1651 of file agxWire/Node.h.
typedef agx::List< ContactNodeData > agxWire::ContactNodeDataList |
Definition at line 234 of file ShapeContactNode.h.
typedef ContactNodeDataList::const_iterator agxWire::ContactNodeDataListIterator |
Definition at line 237 of file ShapeContactNode.h.
Definition at line 238 of file ShapeContactNode.h.
Definition at line 235 of file ShapeContactNode.h.
typedef agx::HashSet< ContactNodeData* > agxWire::ContactNodeDataSet |
Definition at line 233 of file ShapeContactNode.h.
typedef agx::ref_ptr< ContactNode > agxWire::ContactNodeRef |
Definition at line 2199 of file agxWire/Node.h.
typedef agx::ref_ptr< EyeNodeArea > agxWire::EyeNodeAreaRef |
Definition at line 159 of file EyeNodeArea.h.
typedef agx::ref_ptr< EyeNode > agxWire::EyeNodeRef |
Definition at line 1549 of file agxWire/Node.h.
typedef agx::ref_ptr< FreeNode > agxWire::FreeNodeRef |
Definition at line 1214 of file agxWire/Node.h.
Definition at line 49 of file agxWire/Node.h.
typedef agx::observer_ptr< const ILinkNode > agxWire::ILinkNodeConstObserver |
Definition at line 23 of file ILinkNode.h.
typedef agx::ref_ptr< const ILinkNode > agxWire::ILinkNodeConstRef |
Definition at line 23 of file ILinkNode.h.
typedef agx::observer_ptr< ILinkNode > agxWire::ILinkNodeObserver |
Definition at line 23 of file ILinkNode.h.
typedef agx::ref_ptr< ILinkNode > agxWire::ILinkNodeRef |
Definition at line 23 of file ILinkNode.h.
typedef agx::observer_ptr< const Link > agxWire::LinkConstObserver |
typedef agx::ref_ptr< const Link > agxWire::LinkConstRef |
typedef agx::observer_ptr< const LinkObjectStabilizingAlgorithm > agxWire::LinkObjectStabilizingAlgorithmConstObserver |
Definition at line 27 of file LinkAlgorithms.h.
typedef agx::ref_ptr< const LinkObjectStabilizingAlgorithm > agxWire::LinkObjectStabilizingAlgorithmConstRef |
Definition at line 27 of file LinkAlgorithms.h.
typedef agx::observer_ptr< LinkObjectStabilizingAlgorithm > agxWire::LinkObjectStabilizingAlgorithmObserver |
Definition at line 27 of file LinkAlgorithms.h.
Definition at line 27 of file LinkAlgorithms.h.
typedef agx::observer_ptr< Link > agxWire::LinkObserver |
typedef agx::ref_ptr< Link > agxWire::LinkRef |
typedef NodeContainer::const_iterator agxWire::NodeConstIterator |
Definition at line 57 of file agxWire/Node.h.
typedef NodeContainer::const_reverse_iterator agxWire::NodeConstReverseIterator |
Definition at line 56 of file agxWire/Node.h.
typedef NodeRefListA agxWire::NodeContainer |
Definition at line 53 of file agxWire/Node.h.
typedef NodeContainer::iterator agxWire::NodeIterator |
Definition at line 54 of file agxWire/Node.h.
typedef NodePtrContainer::const_iterator agxWire::NodePtrConstIterator |
Definition at line 72 of file agxWire/Node.h.
Definition at line 70 of file agxWire/Node.h.
typedef NodePtrContainer::iterator agxWire::NodePtrIterator |
Definition at line 71 of file agxWire/Node.h.
typedef agx::List< Node* > agxWire::NodePtrListA |
Definition at line 69 of file agxWire/Node.h.
using agxWire::NodePtrNodeIterHash = typedef agx::LinearProbingHashTable<Node*, NodeIterator> |
Definition at line 62 of file agxWire/Node.h.
typedef agx::Vector< Node* > agxWire::NodePtrVector |
Definition at line 74 of file agxWire/Node.h.
typedef agx::ref_ptr< Node > agxWire::NodeRef |
Definition at line 51 of file agxWire/Node.h.
typedef agx::List< NodeRef > agxWire::NodeRefListA |
Definition at line 52 of file agxWire/Node.h.
typedef agx::Vector<NodeRef> agxWire::NodeRefVector |
Definition at line 58 of file agxWire/Node.h.
typedef NodeContainer::reverse_iterator agxWire::NodeReverseIterator |
Definition at line 55 of file agxWire/Node.h.
Definition at line 25 of file ShapeContactNode.h.
typedef agx::ref_ptr< StopNode > agxWire::StopNodeRef |
Definition at line 1719 of file agxWire/Node.h.
Definition at line 42 of file WireContactUtils.h.
typedef agx::ref_ptr< Winch > agxWire::WinchRef |
typedef agx::observer_ptr< const Wire > agxWire::WireConstObserver |
typedef agx::ref_ptr< const Wire > agxWire::WireConstRef |
Definition at line 45 of file WireNodeForceResult.h.
typedef agx::observer_ptr< Wire > agxWire::WireObserver |
typedef agx::VectorPOD< Wire *> agxWire::WirePtrVector |
typedef agx::ref_ptr< Wire > agxWire::WireRef |
typedef agx::Vector< WireRef> agxWire::WireRefVector |
Definition at line 588 of file WireWinchController.h.
Definition at line 528 of file WireWinchController.h.
Definition at line 89 of file WireTensionController.h.
typedef agx::Vector< agx::observer_ptr< WireWinchController > > agxWire::WireWinchControllerObsVector |
Definition at line 394 of file WireWinchController.h.
Definition at line 392 of file WireWinchController.h.
Definition at line 393 of file WireWinchController.h.
|
strong |
Enumerator | |
---|---|
SEGMENT | |
LUMPED_SPHERE | |
CONTACT_SENSOR |
Definition at line 76 of file agxWire/Node.h.
AGXPHYSICS_EXPORT void agxWire::extractNodes | ( | NodePtrVector & | nodes, |
const Wire * | wire | ||
) |
Extracts all the nodes given the render list in the wire.
I.e., only "visible" nodes will be added.
nodes | - container to fill with nodes |
wire | - a wire |
References extractNodes().
Referenced by extractNodes().
IteratorCompatibleContainer::const_iterator agxWire::findBeginIterator | ( | const IteratorCompatibleContainer & | container, |
int | nodeMask | ||
) |
Primitive function to find begin iterator for utility functions below.
Optimal solution is to use geometry iterators.
container | - container defining the wire |
nodeMask | - nodes to look for |
Definition at line 107 of file WireUtils.h.
agx::Real agxWire::findDistanceFromStartGivenPoint | ( | agx::Real | pulledInBegin, |
const IteratorCompatibleContainer & | container, | ||
const agx::Vec3 & | point | ||
) |
Search vector/list container defining a wire for the 3D point -> 1D wire projection.
I.e., given any 3D point, this function will find the distance along the wire closest to point
.
pulledInBegin | - amount of wire hauled in, in for example a winch at the beginning of the wire |
container | - iterator compatible container (like std::list/vector, agx::Vector etc) with wire node pointers of reference pointers defining a wire |
point | - any 3D point |
Definition at line 204 of file WireUtils.h.
References findDistanceFromStartGivenPoint().
agx::Real agxWire::findDistanceFromStartGivenPoint | ( | agx::Real | pulledInBegin, |
const IteratorCompatibleContainer & | container, | ||
const agx::Vec3 & | point, | ||
typename IteratorCompatibleContainer::const_iterator | beginIt, | ||
typename IteratorCompatibleContainer::const_iterator | endIt, | ||
agx::Real & | shortestDistanceSquared | ||
) |
Search vector/list container defining a wire for the 3D point -> 1D wire projection.
I.e., given any 3D point, this function will find the distance along the wire closest to point
.
pulledInBegin | - amount of wire hauled in, in for example a winch at the beginning of the wire |
container | - iterator compatible container (like std::list/vector, agx::Vector etc) with wire node pointers of reference pointers defining a wire |
point | - any 3D point |
beginIt | - where to begin in container |
endIt | - where to end in container (like while (it != endIt) ...) |
shortestDistanceSquared | - Returns the squared shortest distance. |
Definition at line 150 of file WireUtils.h.
References agxAssert, agx::clamp(), agx::equalsZero(), agx::Infinity, agx::Vec3T< T >::length(), and agx::Vec3T< T >::length2().
Referenced by findDistanceFromStartGivenPoint(), and findPointOnWire().
IteratorCompatibleContainer::const_iterator agxWire::findEndIterator | ( | const IteratorCompatibleContainer & | container, |
int | nodeMask | ||
) |
Primitive function to find end iterator for utility functions below.
Optimal solution is to use geometry iterators.
container | - container defining the wire |
nodeMask | - nodes to look for |
Definition at line 125 of file WireUtils.h.
agx::Vec3 agxWire::findPointOnWire | ( | const IteratorCompatibleContainer & | container, |
const agx::Vec3 & | point | ||
) |
Projects any 3D point onto wire.
Finds point on wire (defined by vector/list container) given any point in 3D.
container | - iterator compatible container (like std::list/vector, agx::Vector etc) with wire node pointers of reference pointers defining a wire |
point | - any 3D point |
point
Definition at line 331 of file WireUtils.h.
References findPointOnWire().
agx::Vec3 agxWire::findPointOnWire | ( | const IteratorCompatibleContainer & | container, |
const agx::Vec3 & | point, | ||
const agx::Vec3 | n | ||
) |
Projects any 3D point onto wire.
Finds point on wire (defined by vector/list container) given any point in 3D.
container | - iterator compatible container (like std::list/vector, agx::Vector etc) with wire node pointers of reference pointers defining a wire |
point | - any 3D point |
n | - Normal |
point
Definition at line 345 of file WireUtils.h.
References findPointOnWire().
agx::Vec3 agxWire::findPointOnWire | ( | const IteratorCompatibleContainer & | container, |
const agx::Vec3 & | point, | ||
typename IteratorCompatibleContainer::const_iterator | beginIt, | ||
typename IteratorCompatibleContainer::const_iterator | endIt, | ||
agx::Real & | shortestDistanceSquared | ||
) |
Projects any 3D point onto wire.
Finds point on wire (defined by vector/list container) given any point in 3D.
container | - iterator compatible container (like std::list/vector, agx::Vector etc) with wire node pointers of reference pointers defining a wire |
point | - any 3D point |
beginIt | - where to begin in container |
endIt | - where to end in container (like while (it != endIt) ...) |
shortestDistanceSquared | - The shortest distance squared returned. |
point
Definition at line 220 of file WireUtils.h.
References agxAssert, agx::equalsZero(), agx::equivalent(), findDistanceFromStartGivenPoint(), agx::Vec3T< T >::normalize(), and agx::RealEpsilon.
Referenced by findPointOnWire().
agx::Vec3 agxWire::findPointOnWire | ( | const IteratorCompatibleContainer & | container, |
const agx::Vec3 & | point, | ||
typename IteratorCompatibleContainer::const_iterator | beginIt, | ||
typename IteratorCompatibleContainer::const_iterator | endIt, | ||
const agx::Vec3 | n, | ||
agx::Real & | shortestDistanceSquared | ||
) |
Definition at line 258 of file WireUtils.h.
References agx::clamp(), agxWire::Node::getFrame(), agxWire::NodeFrame::getWorldPosition(), agx::Vec3T< T >::length2(), agx::Vec3T< T >::normalize(), planeProject, and agx::RealMax.
const Node * agxWire::getNode | ( | const IteratorCompatibleContainer & | container, |
agx::Real | distanceFromStart | ||
) |
Finds the wire node given current distance from the start of the wire (wire defined to be iterator compatible container).
container | - iterator compatible container |
distanceFromStart | - current distance from start |
Definition at line 392 of file WireUtils.h.
References getNodeIterator().
Node * agxWire::getNode | ( | IteratorCompatibleContainer & | container, |
agx::Real | distanceFromStart | ||
) |
Finds the wire node given current distance from the start of the wire (wire defined to be iterator compatible container).
container | - iterator compatible container |
distanceFromStart | - current distance from start |
Definition at line 410 of file WireUtils.h.
References getNodeIterator().
It agxWire::getNodeIterator | ( | agx::Real | distanceFromStart, |
It | begin, | ||
It | end, | ||
It | containerEnd | ||
) |
This function is used by getNode, but can be used of some nodes in the beginning or end of the wire should be excluded.
distanceFromStart | - current distance from start |
begin | - begin iterator |
end | - end iterator |
containerEnd | - iterator to end of the current container |
Definition at line 359 of file WireUtils.h.
References agx::leq().
Referenced by getNode().
|
inlinestatic |
Transforms a point given in world coordinates to shape coordinates of geometry g.
p | - point in world |
g | - geometry with one shape |
Definition at line 69 of file WireUtils.h.
References agxAssert, agxCollide::Geometry::getShapes(), agx::Vec3T< T >::isValid(), agx::Container::size(), and world_to_shape_transform.
|
inlinestatic |
Transforms a point given in shape coordinates to world given geometry g.
p | - point in shape coordinate system |
g | - geometry with one shape |
Definition at line 81 of file WireUtils.h.
References agxAssert, agxCollide::Geometry::getShapes(), agx::Vec3T< T >::isValid(), shape_to_world_transform, and agx::Container::size().
|
inlinestatic |
Transforms a vector given in world coordinates to shape coordinates of geometry g.
v | - vector in world coordinates |
g | - geometry with one shape |
Definition at line 45 of file WireUtils.h.
References agxAssert, agxCollide::Geometry::getShapes(), agx::Vec3T< T >::isValid(), agx::Container::size(), and world_to_shape_transform.
|
inlinestatic |
Transforms a vector given in shape coordinates to world coordinates given geometry g.
v | - vector in shape coordinates |
g | - geometry with one shape |
Definition at line 57 of file WireUtils.h.
References agxAssert, agxCollide::Geometry::getShapes(), agx::Vec3T< T >::isValid(), shape_to_world_transform, and agx::Container::size().