CopperLicht API Documentation
Class CL3D.OctTreeTriangleSelector
OctTree implementation of a triangle selector, useful for collision detection.
Extends
CL3D.TriangleSelector.
Class Overview
CL3D.OctTreeTriangleSelector(Mesh, scenenode, minimalPolysPerNode, materialToIgnore, materialToIgnore2)
Implementation of TriangleSelector for huge meshes, useful for collision detection.
The internal structure of this mesh is an occtree, speeding up queries using an axis aligne box (getTrianglesInBox).
Every CL3D.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.
- Parameters:
- {CL3D.Mesh} Mesh
- the CL3D.Mesh representing the geometry
- {CL3D.SceneNode} scenenode
- the CL3D.SceneNode representing the position of the geometry
- {Number} minimalPolysPerNode
- (optional) minmal polygons per oct tree node. Default is 64.
- materialToIgnore
- {Number} (optional) material type to ignore for collision. Can be set to null.
- materialToIgnore2
- {Number} (optional) material type to ignore for collision. Can be set to null.
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
|
|
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.
|
- Methods borrowed from class CL3D.TriangleSelector:
- getCollisionPointWithLine, setNodeToIgnore
Method Detail
createClone(node)
Creates a clone of this triangle selector, for a new scene node
- Parameters:
- node
- {CL3D.SceneNode} scene node the selector is based on
- Returns:
- 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:
- 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
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:
- {CL3D.Box3d} box
- {CL3D.Matrix4} transform
- a transformation matrix which transforms all triangles before returning them
- {Array} outArray
- output array of the triangles