nape.dynamics

..
Arbiter

Arbiter representing the state of an interaction between two Bodys.

These objects are automatically reused, and you should not keep your own references to them.

ArbiterIterator

Haxe Iterator compatible iterator over Nape list.

ArbiterList

Nape list of Arbiter type objects

Internally this list is at present implemented as a linked list with object pooled nodes and iterators with various fast paths made for standard access patterns (For instance accessing successive elements runs in constant time when using random access functions)

Iteration of this list can be done in various ways, but the preferred way on all targets, is through use of the foreach function:

list.foreach(function (obj) {
});
This method is inlined so that in haxe no closure will need to be created.

In AS3, a closure would need to be created in general, so for performance reasons you 'may' choose to use iteration as follows:
for (var i:int = 0; i < list.length; i++) {

ArbiterType

Enumeration of Arbiter types.

CollisionArbiter

Arbiter sub type for collision interactions.

Contact

Contact point for collision interactions

These objects are automatically reused and you should not keep references to them.

ContactIterator

Haxe Iterator compatible iterator over Nape list.

ContactList

Nape list of Contact type objects

Internally this list is at present implemented as a linked list with object pooled nodes and iterators with various fast paths made for standard access patterns (For instance accessing successive elements runs in constant time when using random access functions)

Iteration of this list can be done in various ways, but the preferred way on all targets, is through use of the foreach function:

list.foreach(function (obj) {
});
This method is inlined so that in haxe no closure will need to be created.

In AS3, a closure would need to be created in general, so for performance reasons you 'may' choose to use iteration as follows:
for (var i:int = 0; i < list.length; i++) {

FluidArbiter

Fluid interaction subtype for Arbiter.

InteractionFilter

InteractionFilter provides bit flags for low-level filtering of interactions.

For a given interaction type, two Shapes will be permitted to interact only if (shape1.group & shape2.mask) != 0 && (shape2.group & shape1.mask) != 0

There are 32 real groups corresponding to a set bit in the group/mask fields. For instance a group value of 0x120 corresponds to the 'real' groups 5 and 8 as 0x120 = (1<<5) | (1<<8)

Nape provides group/mask for each interaction type. The actual precedence of interactions is further defined simply as: Sensor > Fluid > Collision.
Two static bodies can never interact, and with the exception of sensor interaction, at least one of the two bodies must be dynamic.
Sensor interactions have the highest precedence, followed by fluid and then collisions. Sensor interaction is permitted only if one of the shapes is sensorEnabled, whilst fluid is permitted only if one of the shapes is fluidEnabled.

if ((shapeA.sensorEnabled || shapeB.sensorEnabled) && shapeA.filter.shouldSense(shapeB.filter)) {

InteractionGroup

InteractionGroups are another way of filtering interactions.

InteractionGroups form tree structures which are checked along side InteractionFilters when deciding if two Shapes should interact.

InteractionGroups are assigned to any Interactor (not just Shapes), and two Shapes will interact only if the most recent common ancestor in the InteractionGroup tree permits it.

For the purposes of the search, if any Interactor has no InteractionGroup assigned, we search up the Compound tree first.

InteractionGroupIterator

Haxe Iterator compatible iterator over Nape list.

InteractionGroupList

Nape list of InteractionGroup type objects

Internally this list is at present implemented as a linked list with object pooled nodes and iterators with various fast paths made for standard access patterns (For instance accessing successive elements runs in constant time when using random access functions)

Iteration of this list can be done in various ways, but the preferred way on all targets, is through use of the foreach function:

list.foreach(function (obj) {
});
This method is inlined so that in haxe no closure will need to be created.

In AS3, a closure would need to be created in general, so for performance reasons you 'may' choose to use iteration as follows:
for (var i:int = 0; i < list.length; i++) {