public class OptimizedBvh extends Object implements Serializable
| Modifier and Type | Field and Description |
|---|---|
static int |
MAX_NUM_PARTS_IN_BITS |
static int |
MAX_SUBTREE_SIZE_IN_BYTES |
| Constructor and Description |
|---|
OptimizedBvh() |
| Modifier and Type | Method and Description |
|---|---|
void |
assignInternalNodeFromLeafNode(int internalNode,
int leafNodeIndex) |
void |
build(StridingMeshInterface triangles,
boolean useQuantizedAabbCompression,
Vector3f _aabbMin,
Vector3f _aabbMax) |
Vector3f |
getAabbMax(int nodeIndex) |
Vector3f |
getAabbMin(int nodeIndex) |
void |
mergeInternalNodeAabb(int nodeIndex,
Vector3f newAabbMin,
Vector3f newAabbMax) |
long |
quantizeWithClamp(Vector3f point) |
void |
refit(StridingMeshInterface meshInterface) |
void |
refitPartial(StridingMeshInterface meshInterface,
Vector3f aabbMin,
Vector3f aabbMax) |
void |
reportAabbOverlappingNodex(NodeOverlapCallback nodeCallback,
Vector3f aabbMin,
Vector3f aabbMax) |
void |
reportBoxCastOverlappingNodex(NodeOverlapCallback nodeCallback,
Vector3f raySource,
Vector3f rayTarget,
Vector3f aabbMin,
Vector3f aabbMax) |
void |
reportRayOverlappingNodex(NodeOverlapCallback nodeCallback,
Vector3f raySource,
Vector3f rayTarget) |
void |
setInternalNodeAabbMax(int nodeIndex,
Vector3f aabbMax) |
void |
setInternalNodeAabbMin(int nodeIndex,
Vector3f aabbMin) |
void |
setInternalNodeEscapeIndex(int nodeIndex,
int escapeIndex) |
void |
setQuantizationValues(Vector3f aabbMin,
Vector3f aabbMax) |
void |
setQuantizationValues(Vector3f aabbMin,
Vector3f aabbMax,
float quantizationMargin) |
void |
swapLeafNodes(int i,
int splitIndex) |
void |
unQuantize(Vector3f vecOut,
long vecIn) |
void |
updateBvhNodes(StridingMeshInterface meshInterface,
int firstNode,
int endNode,
int index) |
public static final int MAX_SUBTREE_SIZE_IN_BYTES
public static final int MAX_NUM_PARTS_IN_BITS
public void setInternalNodeAabbMin(int nodeIndex,
Vector3f aabbMin)
public void setInternalNodeAabbMax(int nodeIndex,
Vector3f aabbMax)
public Vector3f getAabbMin(int nodeIndex)
public Vector3f getAabbMax(int nodeIndex)
public void setQuantizationValues(Vector3f aabbMin, Vector3f aabbMax, float quantizationMargin)
public void setInternalNodeEscapeIndex(int nodeIndex,
int escapeIndex)
public void mergeInternalNodeAabb(int nodeIndex,
Vector3f newAabbMin,
Vector3f newAabbMax)
public void swapLeafNodes(int i,
int splitIndex)
public void assignInternalNodeFromLeafNode(int internalNode,
int leafNodeIndex)
public void build(StridingMeshInterface triangles, boolean useQuantizedAabbCompression, Vector3f _aabbMin, Vector3f _aabbMax)
public void refit(StridingMeshInterface meshInterface)
public void refitPartial(StridingMeshInterface meshInterface, Vector3f aabbMin, Vector3f aabbMax)
public void updateBvhNodes(StridingMeshInterface meshInterface, int firstNode, int endNode, int index)
public void reportAabbOverlappingNodex(NodeOverlapCallback nodeCallback, Vector3f aabbMin, Vector3f aabbMax)
public void reportRayOverlappingNodex(NodeOverlapCallback nodeCallback, Vector3f raySource, Vector3f rayTarget)
public void reportBoxCastOverlappingNodex(NodeOverlapCallback nodeCallback, Vector3f raySource, Vector3f rayTarget, Vector3f aabbMin, Vector3f aabbMax)
public long quantizeWithClamp(Vector3f point)
public void unQuantize(Vector3f vecOut, long vecIn)