All Implemented Interfaces:
It basically works by casting a pick ray
against the bounding volumes of the TerrainQuad and its children, gathering
all of the TerrainPatches hit (in distance order.) The triangles of each patch
are then tested using the BresenhamYUpGridTracer to determine which triangles
to test and in what order. When a hit is found, it is guaranteed to be the
first such hit and can immediately be returned.
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Vector3f getTerrainIntersection( Ray worldPick,
Ask for the point of intersection between the given ray and the terrain.
worldPick - our pick ray, in world space.
Returns: null if no pick is found. Otherwise it returns a Vector3f populated with the pick
protected boolean getTriangles(float gridX,
Request the triangles (in world coord space) of a TerrainBlock that
correspond to the given grid location. The triangles are stored in the
class fields _gridTriA and _gridTriB.
gridX - grid row
gridY - grid column
patch - the TerrainPatch we are working with
Returns: true if the grid point is valid for the given block, false if it
is off the block.
protected int findClosestHeightIndex(
Finds the closest height point to a position. Will always be left/above
position - the position to check at
patch - the patch to get height values from
Returns: an index to the height position of the given block.