CopperLicht API Documentation
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.
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 Attributes | Method Name and Description |
---|---|
createClone(node)
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