Documentation

Classes

Class CL3D.TriangleSelector

Interface to return triangles with specific properties, useful for collision detection.

Class Overview
CL3D.TriangleSelector()
Interface to return triangles with specific properties, useful for collision detection. Every SceneNode may have a triangle selector, available with SceneNode::Selector. This is used for doing collision detection: For example if you know that a collision may have happened in the area between (1,1,1) and (10,10,10), you can get all triangles of the scene node in this area with the TriangleSelector easily and check every triangle if it collided.

This is the base class of all triangle selector implementations. Use MeshTriangleSelector for an implementation for mesh scene nodes, and MetaTriangleSelector for a selector for multiple other triangle selectors and OctTreeTriangleSelector for an implementation for huge meshes.

Method Summary
Method Attributes Method Name and Description
 
Creates a clone of this triangle selector, for a new scene node
 
getAllTriangles(transform, outArray)
Returns all triangles for the scene node associated with this selector
 
getCollisionPointWithLine(start, end, bIgnoreBackFaces, outTriangle, ignoreInvisibleItems)
Returns the collision 3d point of a 3d line with the 3d geometry in this triangle selector.
 
Returns the scenenode this selector is for
 
getTrianglesInBox(box, transform, outArray)
Returns all triangles inside a bounding box, for the scene node associated with this selector.
 
If there are multiple scene nodes in this selector, it is possible to let it ignore one specific node, for example to prevent colliding it against itself.
Method Detail
{CL3D.TriangleSelector} createClone(node)
Creates a clone of this triangle selector, for a new scene node
Parameters:
{CL3D.SceneNode} node
scene node the selector is based on
Returns:
{CL3D.TriangleSelector} returns triangleSelector if this selector can be cloned or null if not

getAllTriangles(transform, outArray)
Returns all triangles for the scene node associated with this selector
Parameters:
{CL3D.Matrix4} transform
a transformation matrix which transforms all triangles before returning them
{Array} outArray
output array of the triangles

{CL3D.Vect3d} getCollisionPointWithLine(start, end, bIgnoreBackFaces, outTriangle, ignoreInvisibleItems)
Returns the collision 3d point of a 3d line with the 3d geometry in this triangle selector.
Parameters:
{CL3D.Vect3d} start
3d point representing the start of the 3d line
{CL3D.Vect3d} end
3d point representing the end of the 3d line
{Boolean} bIgnoreBackFaces
if set to true, this will ignore back faced polygons, making the query twice as fast
{Triangle3d} outTriangle
if set to a triangle, this will contain the 3d triangle with which the line collided
{Boolean} ignoreInvisibleItems
set to true to ignore invisible scene nodes for collision test
Returns:
{CL3D.Vect3d} a 3d position as CL3D.Vect3d if a collision was found or null if no collision was found

getRelatedSceneNode()
Returns the scenenode this selector is for
Returns:
returns SceneNode if this selector is for a specific scene node

getTrianglesInBox(box, transform, outArray)
Returns all triangles inside a bounding box, for the scene node associated with this selector. This method will return at least the triangles that intersect the box, but may return other triangles as well.
Parameters:
box
{CL3D.Box3d}
transform
{CL3D.Matrix4} a transformation matrix which transforms all triangles before returning them
outArray
{Array} output array of the triangles
Returns:
the new CL3D.TriangleSelector

setNodeToIgnore(n)
If there are multiple scene nodes in this selector, it is possible to let it ignore one specific node, for example to prevent colliding it against itself.
Parameters:
n

© 2011-2018 N.Gebhardt, Ambiera
Documentation generated by JsDoc Toolkit