@NoOffset @Properties(inherit=Bullet3Collision.class) public class b3DynamicBvh extends Pointer
| Modifier and Type | Class and Description |
|---|---|
static class |
b3DynamicBvh.IClone |
static class |
b3DynamicBvh.ICollide |
static class |
b3DynamicBvh.IWriter |
static class |
b3DynamicBvh.sStkCLN |
static class |
b3DynamicBvh.sStkNN |
static class |
b3DynamicBvh.sStkNP |
static class |
b3DynamicBvh.sStkNPS |
Pointer.CustomDeallocator, Pointer.Deallocator, Pointer.NativeDeallocator, Pointer.ReferenceCounter| Modifier and Type | Field and Description |
|---|---|
static int |
B3_DOUBLE_STACKSIZE
enum b3DynamicBvh::
|
static int |
B3_SIMPLE_STACKSIZE
enum b3DynamicBvh::
|
| Constructor and Description |
|---|
b3DynamicBvh() |
b3DynamicBvh(long size)
Native array allocator.
|
b3DynamicBvh(Pointer p)
Pointer cast constructor.
|
| Modifier and Type | Method and Description |
|---|---|
static int |
_allocate(b3IntArray ifree,
sStkNPSArray stock,
b3DynamicBvh.sStkNPS value) |
static void |
benchmark() |
void |
clear() |
void |
clone(b3DynamicBvh dest) |
void |
clone(b3DynamicBvh dest,
b3DynamicBvh.IClone iclone) |
static void |
collideKDOP(b3DbvtNode root,
b3Vector3 normals,
float[] offsets,
int count,
b3DynamicBvh.ICollide policy) |
static void |
collideKDOP(b3DbvtNode root,
b3Vector3 normals,
FloatBuffer offsets,
int count,
b3DynamicBvh.ICollide policy) |
static void |
collideKDOP(b3DbvtNode root,
b3Vector3 normals,
FloatPointer offsets,
int count,
b3DynamicBvh.ICollide policy) |
static void |
collideOCL(b3DbvtNode root,
b3Vector3 normals,
float[] offsets,
b3Vector3 sortaxis,
int count,
b3DynamicBvh.ICollide policy) |
static void |
collideOCL(b3DbvtNode root,
b3Vector3 normals,
float[] offsets,
b3Vector3 sortaxis,
int count,
b3DynamicBvh.ICollide policy,
boolean fullsort) |
static void |
collideOCL(b3DbvtNode root,
b3Vector3 normals,
FloatBuffer offsets,
b3Vector3 sortaxis,
int count,
b3DynamicBvh.ICollide policy) |
static void |
collideOCL(b3DbvtNode root,
b3Vector3 normals,
FloatBuffer offsets,
b3Vector3 sortaxis,
int count,
b3DynamicBvh.ICollide policy,
boolean fullsort) |
static void |
collideOCL(b3DbvtNode root,
b3Vector3 normals,
FloatPointer offsets,
b3Vector3 sortaxis,
int count,
b3DynamicBvh.ICollide policy) |
static void |
collideOCL(b3DbvtNode root,
b3Vector3 normals,
FloatPointer offsets,
b3Vector3 sortaxis,
int count,
b3DynamicBvh.ICollide policy,
boolean fullsort) |
void |
collideTT(b3DbvtNode root0,
b3DbvtNode root1,
b3DynamicBvh.ICollide policy) |
void |
collideTTpersistentStack(b3DbvtNode root0,
b3DbvtNode root1,
b3DynamicBvh.ICollide policy) |
static void |
collideTU(b3DbvtNode root,
b3DynamicBvh.ICollide policy) |
void |
collideTV(b3DbvtNode root,
b3DbvtAabbMm volume,
b3DynamicBvh.ICollide policy) |
static int |
countLeaves(b3DbvtNode node) |
boolean |
empty() |
static void |
enumLeaves(b3DbvtNode root,
b3DynamicBvh.ICollide policy) |
static void |
enumNodes(b3DbvtNode root,
b3DynamicBvh.ICollide policy) |
b3DynamicBvh |
getPointer(long i) |
b3DbvtNode |
insert(b3DbvtAabbMm box,
Pointer data) |
b3DbvtNode |
m_free() |
b3DynamicBvh |
m_free(b3DbvtNode setter) |
int |
m_leaves() |
b3DynamicBvh |
m_leaves(int setter) |
int |
m_lkhd() |
b3DynamicBvh |
m_lkhd(int setter) |
int |
m_opath() |
b3DynamicBvh |
m_opath(int setter) |
b3DbvtNode |
m_root() |
b3DynamicBvh |
m_root(b3DbvtNode setter) |
sStkNNArray |
m_stkStack() |
b3DynamicBvh |
m_stkStack(sStkNNArray setter) |
static int |
maxdepth(b3DbvtNode node) |
static int |
nearest(int[] i,
b3DynamicBvh.sStkNPS a,
float v,
int l,
int h) |
static int |
nearest(IntBuffer i,
b3DynamicBvh.sStkNPS a,
float v,
int l,
int h) |
static int |
nearest(IntPointer i,
b3DynamicBvh.sStkNPS a,
float v,
int l,
int h) |
void |
optimizeBottomUp() |
void |
optimizeIncremental(int passes) |
void |
optimizeTopDown() |
void |
optimizeTopDown(int bu_treshold) |
b3DynamicBvh |
position(long position) |
static void |
rayTest(b3DbvtNode root,
b3Vector3 rayFrom,
b3Vector3 rayTo,
b3DynamicBvh.ICollide policy)
rayTest is a re-entrant ray test, and can be called in parallel as long as the b3AlignedAlloc is thread-safe (uses locking etc)
rayTest is slower than rayTestInternal, because it builds a local stack, using memory allocations, and it recomputes signs/rayDirectionInverses each time
|
void |
rayTestInternal(b3DbvtNode root,
b3Vector3 rayFrom,
b3Vector3 rayTo,
b3Vector3 rayDirectionInverse,
int[] signs,
float lambda_max,
b3Vector3 aabbMin,
b3Vector3 aabbMax,
b3DynamicBvh.ICollide policy) |
void |
rayTestInternal(b3DbvtNode root,
b3Vector3 rayFrom,
b3Vector3 rayTo,
b3Vector3 rayDirectionInverse,
IntBuffer signs,
float lambda_max,
b3Vector3 aabbMin,
b3Vector3 aabbMax,
b3DynamicBvh.ICollide policy) |
void |
rayTestInternal(b3DbvtNode root,
b3Vector3 rayFrom,
b3Vector3 rayTo,
b3Vector3 rayDirectionInverse,
IntPointer signs,
float lambda_max,
b3Vector3 aabbMin,
b3Vector3 aabbMax,
b3DynamicBvh.ICollide policy)
rayTestInternal is faster than rayTest, because it uses a persistent stack (to reduce dynamic memory allocations to a minimum) and it uses precomputed signs/rayInverseDirections
rayTestInternal is used by b3DynamicBvhBroadphase to accelerate world ray casts
|
void |
remove(b3DbvtNode leaf) |
void |
update(b3DbvtNode leaf) |
void |
update(b3DbvtNode leaf,
b3DbvtAabbMm volume) |
boolean |
update(b3DbvtNode leaf,
b3DbvtAabbMm volume,
b3Vector3 velocity) |
boolean |
update(b3DbvtNode leaf,
b3DbvtAabbMm volume,
b3Vector3 velocity,
float margin) |
boolean |
update(b3DbvtNode leaf,
b3DbvtAabbMm volume,
float margin) |
void |
update(b3DbvtNode leaf,
int lookahead) |
void |
write(b3DynamicBvh.IWriter iwriter) |
address, asBuffer, asByteBuffer, availablePhysicalBytes, calloc, capacity, capacity, close, deallocate, deallocate, deallocateReferences, deallocator, deallocator, equals, fill, formatBytes, free, getDirectBufferAddress, getPointer, getPointer, getPointer, hashCode, interruptDeallocatorThread, isNull, isNull, limit, limit, malloc, maxBytes, maxPhysicalBytes, memchr, memcmp, memcpy, memmove, memset, offsetAddress, offsetof, offsetof, parseBytes, physicalBytes, physicalBytesInaccurate, position, put, realloc, referenceCount, releaseReference, retainReference, setNull, sizeof, sizeof, toString, totalBytes, totalCount, totalPhysicalBytes, withDeallocator, zeropublic static final int B3_SIMPLE_STACKSIZE
public static final int B3_DOUBLE_STACKSIZE
public b3DynamicBvh(Pointer p)
Pointer(Pointer).public b3DynamicBvh(long size)
Pointer.position(long).public b3DynamicBvh()
public b3DynamicBvh position(long position)
public b3DynamicBvh getPointer(long i)
getPointer in class Pointerpublic b3DbvtNode m_root()
public b3DynamicBvh m_root(b3DbvtNode setter)
public b3DbvtNode m_free()
public b3DynamicBvh m_free(b3DbvtNode setter)
public int m_lkhd()
public b3DynamicBvh m_lkhd(int setter)
public int m_leaves()
public b3DynamicBvh m_leaves(int setter)
public b3DynamicBvh m_opath(int setter)
@ByRef public sStkNNArray m_stkStack()
public b3DynamicBvh m_stkStack(sStkNNArray setter)
public void clear()
public void optimizeBottomUp()
public void optimizeTopDown(int bu_treshold)
public void optimizeTopDown()
public void optimizeIncremental(int passes)
public b3DbvtNode insert(@Cast(value="const b3DbvtVolume*") @ByRef b3DbvtAabbMm box, Pointer data)
public void update(b3DbvtNode leaf, int lookahead)
public void update(b3DbvtNode leaf)
public void update(b3DbvtNode leaf, @Cast(value="b3DbvtVolume*") @ByRef b3DbvtAabbMm volume)
@Cast(value="bool") public boolean update(b3DbvtNode leaf, @Cast(value="b3DbvtVolume*") @ByRef b3DbvtAabbMm volume, @Const @ByRef b3Vector3 velocity, @Cast(value="b3Scalar") float margin)
@Cast(value="bool") public boolean update(b3DbvtNode leaf, @Cast(value="b3DbvtVolume*") @ByRef b3DbvtAabbMm volume, @Const @ByRef b3Vector3 velocity)
@Cast(value="bool") public boolean update(b3DbvtNode leaf, @Cast(value="b3DbvtVolume*") @ByRef b3DbvtAabbMm volume, @Cast(value="b3Scalar") float margin)
public void remove(b3DbvtNode leaf)
public void write(b3DynamicBvh.IWriter iwriter)
public void clone(@ByRef b3DynamicBvh dest, b3DynamicBvh.IClone iclone)
public void clone(@ByRef b3DynamicBvh dest)
public static int maxdepth(@Const b3DbvtNode node)
public static int countLeaves(@Const b3DbvtNode node)
public static void benchmark()
public static void enumNodes(@Const b3DbvtNode root, @ByRef b3DynamicBvh.ICollide policy)
public static void enumLeaves(@Const b3DbvtNode root, @ByRef b3DynamicBvh.ICollide policy)
public void collideTT(@Const b3DbvtNode root0, @Const b3DbvtNode root1, @ByRef b3DynamicBvh.ICollide policy)
public void collideTTpersistentStack(@Const b3DbvtNode root0, @Const b3DbvtNode root1, @ByRef b3DynamicBvh.ICollide policy)
public void collideTV(@Const b3DbvtNode root, @Cast(value="const b3DbvtVolume*") @ByRef b3DbvtAabbMm volume, @ByRef b3DynamicBvh.ICollide policy)
public static void rayTest(@Const b3DbvtNode root, @Const @ByRef b3Vector3 rayFrom, @Const @ByRef b3Vector3 rayTo, @ByRef b3DynamicBvh.ICollide policy)
public void rayTestInternal(@Const b3DbvtNode root, @Const @ByRef b3Vector3 rayFrom, @Const @ByRef b3Vector3 rayTo, @Const @ByRef b3Vector3 rayDirectionInverse, @Cast(value="unsigned int*") IntPointer signs, @Cast(value="b3Scalar") float lambda_max, @Const @ByRef b3Vector3 aabbMin, @Const @ByRef b3Vector3 aabbMax, @ByRef b3DynamicBvh.ICollide policy)
public void rayTestInternal(@Const b3DbvtNode root, @Const @ByRef b3Vector3 rayFrom, @Const @ByRef b3Vector3 rayTo, @Const @ByRef b3Vector3 rayDirectionInverse, @Cast(value="unsigned int*") IntBuffer signs, @Cast(value="b3Scalar") float lambda_max, @Const @ByRef b3Vector3 aabbMin, @Const @ByRef b3Vector3 aabbMax, @ByRef b3DynamicBvh.ICollide policy)
public void rayTestInternal(@Const b3DbvtNode root, @Const @ByRef b3Vector3 rayFrom, @Const @ByRef b3Vector3 rayTo, @Const @ByRef b3Vector3 rayDirectionInverse, @Cast(value="unsigned int*") int[] signs, @Cast(value="b3Scalar") float lambda_max, @Const @ByRef b3Vector3 aabbMin, @Const @ByRef b3Vector3 aabbMax, @ByRef b3DynamicBvh.ICollide policy)
public static void collideKDOP(@Const b3DbvtNode root, @Const b3Vector3 normals, @Cast(value="const b3Scalar*") FloatPointer offsets, int count, @ByRef b3DynamicBvh.ICollide policy)
public static void collideKDOP(@Const b3DbvtNode root, @Const b3Vector3 normals, @Cast(value="const b3Scalar*") FloatBuffer offsets, int count, @ByRef b3DynamicBvh.ICollide policy)
public static void collideKDOP(@Const b3DbvtNode root, @Const b3Vector3 normals, @Cast(value="const b3Scalar*") float[] offsets, int count, @ByRef b3DynamicBvh.ICollide policy)
public static void collideOCL(@Const b3DbvtNode root, @Const b3Vector3 normals, @Cast(value="const b3Scalar*") FloatPointer offsets, @Const @ByRef b3Vector3 sortaxis, int count, @ByRef b3DynamicBvh.ICollide policy, @Cast(value="bool") boolean fullsort)
public static void collideOCL(@Const b3DbvtNode root, @Const b3Vector3 normals, @Cast(value="const b3Scalar*") FloatPointer offsets, @Const @ByRef b3Vector3 sortaxis, int count, @ByRef b3DynamicBvh.ICollide policy)
public static void collideOCL(@Const b3DbvtNode root, @Const b3Vector3 normals, @Cast(value="const b3Scalar*") FloatBuffer offsets, @Const @ByRef b3Vector3 sortaxis, int count, @ByRef b3DynamicBvh.ICollide policy, @Cast(value="bool") boolean fullsort)
public static void collideOCL(@Const b3DbvtNode root, @Const b3Vector3 normals, @Cast(value="const b3Scalar*") FloatBuffer offsets, @Const @ByRef b3Vector3 sortaxis, int count, @ByRef b3DynamicBvh.ICollide policy)
public static void collideOCL(@Const b3DbvtNode root, @Const b3Vector3 normals, @Cast(value="const b3Scalar*") float[] offsets, @Const @ByRef b3Vector3 sortaxis, int count, @ByRef b3DynamicBvh.ICollide policy, @Cast(value="bool") boolean fullsort)
public static void collideOCL(@Const b3DbvtNode root, @Const b3Vector3 normals, @Cast(value="const b3Scalar*") float[] offsets, @Const @ByRef b3Vector3 sortaxis, int count, @ByRef b3DynamicBvh.ICollide policy)
public static void collideTU(@Const b3DbvtNode root, @ByRef b3DynamicBvh.ICollide policy)
public static int nearest(@Const IntPointer i, @Const b3DynamicBvh.sStkNPS a, @Cast(value="b3Scalar") float v, int l, int h)
public static int nearest(@Const IntBuffer i, @Const b3DynamicBvh.sStkNPS a, @Cast(value="b3Scalar") float v, int l, int h)
public static int nearest(@Const int[] i, @Const b3DynamicBvh.sStkNPS a, @Cast(value="b3Scalar") float v, int l, int h)
@Name(value="allocate") public static int _allocate(@ByRef b3IntArray ifree, @ByRef sStkNPSArray stock, @Const @ByRef b3DynamicBvh.sStkNPS value)
Copyright © 2024. All rights reserved.