212 return m_mergedState;
227 return m_actions.
begin();
232 return m_actions.
begin();
237 return m_actions.
end();
242 return m_actions.
end();
#define AGXPHYSICS_EXPORT
Object containing merge-split actions to be processed by the agxSDK::MergeSplitHandler.
agx::Bool add(const MergeSplitAction &action)
Adds the action to the container.
MergeSplitActionContainer(agx::UInt capacity=agx::UInt(256))
Default constructor.
agx::Vector< MergeSplitAction > Actions
void append(const MergeSplitActionContainer &other)
Append actions to this container.
agx::Bool split(const agxSDK::MergedState &mergedState, agxSDK::MergedState::Actions action)
Split given action mask.
Actions::const_iterator ActionsConstIterator
agx::Bool merge(const agxSDK::MergedState &mergedState, agx::MergedBody::EdgeInteraction *edge)
Merge given merged state and an edge.
agx::Bool split(const agxSDK::MergedState &mergedState)
Split given allowed actions in the merged state.
Actions::iterator ActionsIterator
agx::Bool split(const MergedState &mergedState, agx::MergedBody::EdgeInteraction *edge)
Split a single edge.
Data for merge or split actions created in an implementation of an agxSDK::MergeSplitAlgorithm.
MergeSplitAction(const agxSDK::MergedState &mergedState, agxSDK::MergedState::Actions actionType, agx::MergedBody::EdgeInteraction *edge=nullptr)
Construct given merged state, type of action and (optional) an edge to add or remove.
static MergeSplitAction merge(const agxSDK::MergedState &mergedState, agx::MergedBody::EdgeInteraction *edge)
Creates a merge action given a merged state and an edge.
agx::MergedBody::EdgeInteraction * getEdge() const
static MergeSplitAction merge(agx::MergedBody::EdgeInteraction *edge, const agxSDK::MergeSplitHandler *handler)
Creates a merge action given an edge and the merge split handler.
static MergeSplitAction empty()
Creates an empty action.
static MergeSplitAction split(agx::RigidBody *rb, const agxSDK::MergeSplitHandler *handler)
Creates a split action given a rigid body and the merge split handler.
const agxSDK::MergedState & getMergedState() const
static MergeSplitAction split(const agxSDK::MergedState &mergedState, agxSDK::MergedState::Actions action, agx::MergedBody::EdgeInteraction *edge=nullptr)
Creates a split action given a merged state and action.
agxSDK::MergedState::Actions getType() const
static MergeSplitAction split(agx::MergedBody::EdgeInteraction *edge, const agxSDK::MergeSplitHandler *handler)
Creates a split action given an edge and the merge split handler (to fetch allowed actions,...
MergeSplitAction & sync()
Synchronizes data to current state, e.g., bodies that has been merged or splitted after this action w...
agx::Bool isValid() const
Base class for a merge split algorithm handling a set of merged bodies.
Object holding merged bodies and state given a pair of rigid bodies.
agx::BitState< ActionType, agx::Int16 > Actions
EdgeInteraction(agx::RigidBody *rb1, agx::RigidBody *rb2, InteractionTag tag, agx::Bool valid=true)
Construct given two rigid bodies and a valid flag.
The rigid body class, combining a geometric model and a frame of reference.
const MergeSplitAction * const_iterator
MergeSplitAction * iterator
The agxSDK namespace contain classes to bridge the collision detection system and the dynamical simul...