.. | |
---|
AABB | Axis Aligned Bounding Box (AABB)
Note that in many cases of an AABB object being returned by a Nape function
the AABB object will be marked internally as an 'immutable' AABB. This will
always be documented and trying to mutate such an AABB will result in an
error being thrown. |
ConvexResult | Class representing the results of a convex cast operation.
These objects are allocated from an object pool and can
be released back to that pool by calling its dispose method. |
ConvexResultIterator | Haxe Iterator compatible iterator over Nape list. |
ConvexResultList | Nape list of ConvexResult 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++) { |
Geom | Geom class provides interface to collision detection routines in nape. |
GeomPoly | Polygon class with various geometric methods
This class represents a general Polygon, rather than the Polygon class
which is physics shape.
Internally this polygon is stored as a circularly linked list of special
vertex types that are exposed via a Vec2 that is lazily constructed whenever
necessary to the API. |
GeomPolyIterator | Haxe Iterator compatible iterator over Nape list. |
GeomPolyList | Nape list of GeomPoly 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++) { |
GeomVertexIterator | Haxe compatible iterator over vertices of GeomPoly.
Vec2's intrinsically tied to the vertices are exposed through
the iterator which does not modify the state of the polygon. |
IsoFunction | For 'flash' targets only.
Iso-functions for MarchingSquares must be given
as an object implementing this IsoFunction interface. This is for
reasons of avoiding excessive memory allocations that occur through
automatic boxing of arguments/return values when using function values.
Since iso-functions may be called 10,000's of times per-invocation of
marching-squares, this can quickly accumulate into a lot of GC activity. |
IsoFunctionDef | Typedef defining iso-function type for MarchingSquares.
typedef IsoFunctionDef = #if flash IsoFunction #else Float->Float->Float #end;
|
MarchingSquares | Iso-surface extraction into polygons.
This class, with only one static method provides an interface to
an algorithm which will, when given a function mapping each point
in a given AABB to a scalar value extract approximated polygons
which represent the region of the AABB where the function returns
a negative value.
This function could be a mathematical function like the equation of
a circle: function (x, y) return (xx + yy) - r*r
Or something more practical like the biased alpha value interpolated
from a Bitmap:
function (x, y) {
var ix = if (x < 0) 0 else if (x >= bitmap.width - 1) bitmap.width - 2 else Std.int(x);
var iy = if (y < 0) 0 else if (y >= bitmap.height - 1) bitmap.height - 2 else Std.int(y);
var fx = x - ix;
var fy = y - iy;
var gx = 1 - fx;
var gy = 1 - fy; |
Mat23 | 2D Matrix class representing affine transformations:
[ a b tx ]
[ c d ty ]
[ 0 0 1 ]
|
MatMN | A general MxN dimensional matrix.
This object is not often used in Nape :) |
Ray | Parametrically defined ray used in ray casting functions. |
RayResult | Class representing the results of a ray cast operation.
These objects are allocated from an object pool and can
be released back to that pool by calling its dispose method. |
RayResultIterator | Haxe Iterator compatible iterator over Nape list. |
RayResultList | Nape list of RayResult 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++) { |
Vec2 | 2 Dimensional vector.
Note that in many cases of a Vec2 object being returned by a Nape function
the Vec2 object will be marked internally as an 'immutable' Vec2. This will
always be documented and trying to mutate such a Vec2 will result in an
error being thrown.
Vec2 objects can make use of a global object pool, attempting to make use
of a disposed Vec2 will also result in an error with the object pool
working in a FILO order to increase the likelihood of such misuse being
caught.
Additionally Vec2 objects can be created as 'weak'. Passing a weak Vec2 to
any Nape function as an argument will result in the automatic disposal of
the Vec2 once the method has finished with it. There may be exceptions to
this rule which will also be documented; a notable case being the appending
of a weak Vec2 to a Nape Vec2List in which case the disposal of the weak
Vec2 is performed when that Vec2List is handed to a Nape function instead.
Example:
var vertices = Polygon.box(20, 20, true);
var polygon = new Polygon(vertices);
In this example, passing true to the Polygon.box method means
that we will be returned a Vec2List containing only 'weak' Vec2s. Upon
passing this Vec2List to the Polygon constructor, all of the Vec2s from
that list will be automatically disposed. |
Vec2Iterator | Haxe Iterator compatible iterator over Nape list. |
Vec2List | Nape list of Vec2 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++) { |
Vec3 | A 3 dimensional vector object.
In many instances a Vec3 will be accessible from Nape which is marked
as immutable, these cases will be documented and modifying such a Vec3
will result in an error. |
Winding | Enumeration represents the winding of a Polygon.
To appreciate what the winding of a polygon means, think of a polygon who's
vertices are the numbers on a clock face. |