public class RagdollUtils
extends java.lang.Object
This class is shared between JBullet and Native Bullet.
| Modifier and Type | Method and Description |
|---|---|
static java.util.Map<java.lang.Integer,java.util.List<java.lang.Float>> |
buildPointMap(Spatial model)
Build a map of mesh vertices in a subtree of the scene graph.
|
static java.util.List<java.lang.Integer> |
getBoneIndices(Bone bone,
Skeleton skeleton,
java.util.Set<java.lang.String> boneList)
Enumerate the bone indices of the specified bone and all its descendents.
|
static boolean |
hasVertices(int boneIndex,
Mesh[] targets,
float weightThreshold)
Test whether the indexed bone has at least one vertex in the specified
meshes with a weight greater than the specified threshold.
|
static HullCollisionShape |
makeShapeFromPointMap(java.util.Map<java.lang.Integer,java.util.List<java.lang.Float>> pointsMap,
java.util.List<java.lang.Integer> boneIndices,
Vector3f initialScale,
Vector3f initialPosition)
Create a hull collision shape from linked vertices to this bone.
|
static HullCollisionShape |
makeShapeFromVerticeWeights(Spatial model,
java.util.List<java.lang.Integer> boneIndices,
Vector3f initialScale,
Vector3f initialPosition,
float weightThreshold)
Create a hull collision shape from linked vertices to this bone.
|
static int |
readIndex(java.nio.Buffer buffer,
int k)
Read an index from a buffer.
|
static void |
setJointLimit(SixDofJoint joint,
float maxX,
float minX,
float maxY,
float minY,
float maxZ,
float minZ)
Alter the limits of the specified 6-DOF joint.
|
static void |
setTransform(Bone bone,
Vector3f pos,
Quaternion rot,
boolean restoreBoneControl,
java.util.Set<java.lang.String> boneList)
Updates a bone position and rotation.
|
static void |
setUserControl(Bone bone,
boolean bool)
Alter the user-control flags of a bone and all its descendents.
|
public static void setJointLimit(SixDofJoint joint, float maxX, float minX, float maxY, float minY, float maxZ, float minZ)
joint - which joint to alter (not null)maxX - the maximum rotation on the X axis (in radians)minX - the minimum rotation on the X axis (in radians)maxY - the maximum rotation on the Y axis (in radians)minY - the minimum rotation on the Y axis (in radians)maxZ - the maximum rotation on the Z axis (in radians)minZ - the minimum rotation on the Z axis (in radians)public static java.util.Map<java.lang.Integer,java.util.List<java.lang.Float>> buildPointMap(Spatial model)
model - the root of the subtree (may be null)public static HullCollisionShape makeShapeFromPointMap(java.util.Map<java.lang.Integer,java.util.List<java.lang.Float>> pointsMap, java.util.List<java.lang.Integer> boneIndices, Vector3f initialScale, Vector3f initialPosition)
pointsMap - map from bone indices to coordinates (not null,
unaffected)boneIndices - (not null, unaffected)initialScale - scale factors (not null, unaffected)initialPosition - location (not null, unaffected)public static java.util.List<java.lang.Integer> getBoneIndices(Bone bone, Skeleton skeleton, java.util.Set<java.lang.String> boneList)
bone - the input bone (not null)skeleton - the skeleton containing the bone (not null)boneList - a set of bone names (not null, unaffected)public static HullCollisionShape makeShapeFromVerticeWeights(Spatial model, java.util.List<java.lang.Integer> boneIndices, Vector3f initialScale, Vector3f initialPosition, float weightThreshold)
model - the model on which to base the shapeboneIndices - indices of relevant bones (not null, unaffected)initialScale - scale factorsinitialPosition - locationweightThreshold - minimum weight for inclusionpublic static void setTransform(Bone bone, Vector3f pos, Quaternion rot, boolean restoreBoneControl, java.util.Set<java.lang.String> boneList)
bone - the bonepos - the positionrot - the rotationrestoreBoneControl - true → user-control flag should be setboneList - the names of all bones without collision shapes (not
null, unaffected)public static void setUserControl(Bone bone, boolean bool)
bone - the ancestor bone (not null, modified)bool - true to enable user control, false to disablepublic static boolean hasVertices(int boneIndex,
Mesh[] targets,
float weightThreshold)
boneIndex - the index of the bone (≥0)targets - the meshes to search (not null, no null elements)weightThreshold - the threshold (≥0, ≤1)public static int readIndex(java.nio.Buffer buffer,
int k)
buffer - a buffer of bytes or shorts (not null)k - the position from which the index will be read