|
AGX Dynamics 2.41.3.0
|
Wire merged state segment along a wire. More...
#include <MergeSplitUtils.h>
Public Types | |
| enum | EState : agx::UInt32 { FREE = 1 << 0 , MERGED = 1 << 1 , IGNORE = 1 << 2 } |
| using | State = agx::BitState< EState, agx::UInt32 > |
Public Member Functions | |
| WireSegmentMergedState (const agxWire::WireDistanceCompositeConstraint *wire) | |
| Construct given wire constraint. | |
| agxWire::Node * | back () const |
| agxWire::NodeConstIterator | begin () const |
| agxWire::NodeConstIterator | construct (agxWire::NodeConstIterator it) |
| Initialize using iterator to first node (end of previous segment). | |
| agxWire::NodeConstIterator | end () const |
| agxWire::BodyFixedNode * | front () const |
| agx::MergedBody * | getMergedBody () const |
| State | getState () const |
| agx::UInt | size () const |
Static Public Member Functions | |
| static WireSegmentMergedStateContainer | create (const agxWire::Wire *wire) |
| Creates vector of WireMergedState segments along the wire starting from first lumped node to (and including) last lumped node. | |
Wire merged state segment along a wire.
The state of this segment can be: FREE: None of the nodes in this segment is merged. MERGED: All nodes in this segment is merged to the same merged body instance. IGNORE: All nodes in this segment is explicitly merged.
The state is only checked for lumped nodes in the wire. Intermediate contact and/or eye nodes are included in the segment but the merged state may differ.
Note: Say that the wire has 10 nodes - all are merged. Nodes 1 to 6 are merged to mergedBody1 and 7 to 10 are merged to mergedBody2. Calling: auto segments = WireMergedState::create( wire ); will contain two entries, both with state MERGED but since the MergedBody instances differs, the segments are separated.
Definition at line 293 of file MergeSplitUtils.h.
| using agxSDK::MergeSplitUtils::WireSegmentMergedState::State = agx::BitState<EState, agx::UInt32> |
Definition at line 312 of file MergeSplitUtils.h.
| Enumerator | |
|---|---|
| FREE | Segment isn't merged. |
| MERGED | Segment is merged by the MergeSplitHandler. |
| IGNORE | Segemnt is explicitly merged by the user. |
Definition at line 306 of file MergeSplitUtils.h.
| agxSDK::MergeSplitUtils::WireSegmentMergedState::WireSegmentMergedState | ( | const agxWire::WireDistanceCompositeConstraint * | wire | ) |
Construct given wire constraint.
| wire | - wire constraint |
| agxWire::Node * agxSDK::MergeSplitUtils::WireSegmentMergedState::back | ( | ) | const |
| agxWire::NodeConstIterator agxSDK::MergeSplitUtils::WireSegmentMergedState::begin | ( | ) | const |
| agxWire::NodeConstIterator agxSDK::MergeSplitUtils::WireSegmentMergedState::construct | ( | agxWire::NodeConstIterator | it | ) |
Initialize using iterator to first node (end of previous segment).
| it | - first node iterator in this segment |
|
static |
Creates vector of WireMergedState segments along the wire starting from first lumped node to (and including) last lumped node.
Note that the first and last attachment nodes are both excluded.
| wire | - wire instance |
| agxWire::NodeConstIterator agxSDK::MergeSplitUtils::WireSegmentMergedState::end | ( | ) | const |
| agxWire::BodyFixedNode * agxSDK::MergeSplitUtils::WireSegmentMergedState::front | ( | ) | const |
| agx::MergedBody * agxSDK::MergeSplitUtils::WireSegmentMergedState::getMergedBody | ( | ) | const |
| State agxSDK::MergeSplitUtils::WireSegmentMergedState::getState | ( | ) | const |
| agx::UInt agxSDK::MergeSplitUtils::WireSegmentMergedState::size | ( | ) | const |