## Documentation

- Overview
- Website
- Tutorials
- Class Index

## Classes

- _global_
- CL3D
- CL3D.AnimatedMeshSceneNode
- CL3D.Animator
- CL3D.AnimatorAnimateTexture
- CL3D.AnimatorCameraFPS
- CL3D.AnimatorCameraModelViewer
- CL3D.AnimatorCollisionResponse
- CL3D.AnimatorFlyCircle
- CL3D.AnimatorFlyStraight
- CL3D.AnimatorFollowPath
- CL3D.AnimatorOnClick
- CL3D.AnimatorOnProximity
- CL3D.AnimatorRotation
- CL3D.BillboardSceneNode
- CL3D.BoundingBoxTriangleSelector
- CL3D.Box3d
- CL3D.CameraSceneNode
- CL3D.ColorF
- CL3D.CopperCubeVariable
- CL3D.CopperLicht
- CL3D.CubeSceneNode
- CL3D.HotspotSceneNode
- CL3D.Light
- CL3D.LightSceneNode
- CL3D.Line3d
- CL3D.Material
- CL3D.Matrix4
- CL3D.Mesh
- CL3D.MeshBuffer
- CL3D.MeshSceneNode
- CL3D.MeshTriangleSelector
- CL3D.MetaTriangleSelector
- CL3D.Mobile2DInputSceneNode
- CL3D.OctTreeTriangleSelector
- CL3D.Overlay2DSceneNode
- CL3D.ParticleSystemSceneNode
- CL3D.PathSceneNode
- CL3D.Plane3d
- CL3D.Quaternion
- CL3D.Renderer
- CL3D.Scene
- CL3D.SceneNode
- CL3D.SkyBoxSceneNode
- CL3D.SoundSceneNode
- CL3D.TerrainSceneNode
- CL3D.Texture
- CL3D.TextureManager
- CL3D.Triangle3d
- CL3D.TriangleSelector
- CL3D.Vect2d
- CL3D.Vect3d
- CL3D.Vertex3D
- CL3D.WaterSurfaceSceneNode

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.

Method Summary
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.
| getRelatedSceneNode() 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.
| 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.

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