Package com.jme3.bullet.collision.shapes
Class SphericalSegment
java.lang.Object
com.jme3.bullet.NativePhysicsObject
com.jme3.bullet.collision.shapes.CollisionShape
com.jme3.bullet.collision.shapes.ConvexShape
com.jme3.bullet.collision.shapes.SphericalSegment
- All Implemented Interfaces:
 com.jme3.export.Savable,com.jme3.util.clone.JmeCloneable,Cloneable,Comparable<NativePhysicsObject>
A collision shape for a spherical segment with uniform density, based on
 
btConvexInternalShape. By convention, both bases are orthogonal to
 the local Y axis.
 This is an imprecise shape; margin always expands the shape.
- 
Field Summary
FieldsFields inherited from class com.jme3.bullet.collision.shapes.ConvexShape
loggerXFields inherited from class com.jme3.bullet.collision.shapes.CollisionShape
enableContactFilter, logger, margin, scaleFields inherited from class com.jme3.bullet.NativePhysicsObject
loggerN - 
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedNo-argument constructor needed by SavableClassUtil.SphericalSegment(float radius) Instantiate a hemisphere with the specified radius.SphericalSegment(float radius, float yMax, float yMin) Instantiate a spherical segment with the specified dimensions. - 
Method Summary
Modifier and TypeMethodDescriptionbooleancanScale(com.jme3.math.Vector3f scale) Test whether the specified scale factors can be applied to the shape.voidcloneFields(com.jme3.util.clone.Cloner cloner, Object original) Callback fromClonerto convert this shallow-cloned shape into a deep-cloned one, using the specified Cloner and original to resolve copied fields.floatReturn the height of the segment.floatCalculate how far the scaled shape extends from its center of mass, including collision margin.voidread(com.jme3.export.JmeImporter importer) De-serialize the shape from the specified importer, for example when loading from a J3O file.floatEstimate the volume of the collision shape, including scale and margin.floatReturn the radius of the parent sphere.voidwrite(com.jme3.export.JmeExporter exporter) Serialize the shape to the specified exporter, for example when saving to a J3O file.floatyMax()Return the Y offset of the upper base from the center of the parent sphere.floatyMin()Return the Y offset of the lower base from the center of the parent sphere.Methods inherited from class com.jme3.bullet.collision.shapes.ConvexShape
isConcave, isConvex, toHullShape, toSplittableShapeMethods inherited from class com.jme3.bullet.collision.shapes.CollisionShape
aabbCenter, aabbScaledVolume, boundingBox, boundingBox, canSplit, copyShapeProperties, getDefaultMargin, getMargin, getScale, getScaleDp, getShapeType, getShapeType, isContactFilterEnabled, isInfinite, isNonMoving, isPolyhedral, jmeClone, nativeMargin, readShapeProperties, recalculateAabb, setContactFilterEnabled, setDefaultMargin, setMargin, setNativeId, setScale, setScale, setUserIndex, setUserIndex2, toString, updateScale, userIndex, userIndex2Methods inherited from class com.jme3.bullet.NativePhysicsObject
compareTo, countTrackers, dumpTrackers, equals, freeUnusedObjects, hasAssignedNativeObject, hashCode, nativeId, reassignNativeId, setNativeIdNotTracked, unassignNativeObject 
- 
Field Details
- 
logger2
message logger for this class 
 - 
 - 
Constructor Details
- 
SphericalSegment
protected SphericalSegment()No-argument constructor needed by SavableClassUtil. - 
SphericalSegment
public SphericalSegment(float radius) Instantiate a hemisphere with the specified radius.- Parameters:
 radius- the desired radius, before scaling and excluding margin (>0)
 - 
SphericalSegment
public SphericalSegment(float radius, float yMax, float yMin) Instantiate a spherical segment with the specified dimensions.- Parameters:
 radius- the desired radius of the parent sphere, before scaling and excluding margin (>0)yMax- the Y offset of the upper base from the center of the parent sphere, before scaling and excluding margin (≥yMin, ≤radius)yMin- the Y offset of the lower base from the center of the parent sphere, before scaling and excluding margin (≥-radius, ≤yMax)
 
 - 
 - 
Method Details
- 
getHeight
public float getHeight()Return the height of the segment.- Returns:
 - the unscaled height (≥0)
 
 - 
sphereRadius
public float sphereRadius()Return the radius of the parent sphere.- Returns:
 - the unscaled radius (>0)
 
 - 
yMax
public float yMax()Return the Y offset of the upper base from the center of the parent sphere.- Returns:
 - the unscaled offset (≥-radius, ≤radius)
 
 - 
yMin
public float yMin()Return the Y offset of the lower base from the center of the parent sphere.- Returns:
 - the unscaled offset (≥-radius, ≤radius)
 
 - 
canScale
public boolean canScale(com.jme3.math.Vector3f scale) Test whether the specified scale factors can be applied to the shape. For a spherical segment, scaling must be uniform.- Overrides:
 canScalein classCollisionShape- Parameters:
 scale- the desired scale factor for each local axis (may be null, unaffected)- Returns:
 - true if applicable, otherwise false
 
 - 
cloneFields
Callback fromClonerto convert this shallow-cloned shape into a deep-cloned one, using the specified Cloner and original to resolve copied fields.- Specified by:
 cloneFieldsin interfacecom.jme3.util.clone.JmeCloneable- Overrides:
 cloneFieldsin classCollisionShape- Parameters:
 cloner- the Cloner that's cloning this shape (not null)original- the instance from which this shape was shallow-cloned (not null, unaffected)
 - 
maxRadius
public float maxRadius()Calculate how far the scaled shape extends from its center of mass, including collision margin.- Overrides:
 maxRadiusin classCollisionShape- Returns:
 - the distance (in physics-space units, ≥0)
 
 - 
read
De-serialize the shape from the specified importer, for example when loading from a J3O file.- Specified by:
 readin interfacecom.jme3.export.Savable- Overrides:
 readin classCollisionShape- Parameters:
 importer- (not null)- Throws:
 IOException- from the importer
 - 
scaledVolume
public float scaledVolume()Estimate the volume of the collision shape, including scale and margin.- Overrides:
 scaledVolumein classConvexShape- Returns:
 - the estimated volume (in physics-space units cubed, ≥0)
 
 - 
write
Serialize the shape to the specified exporter, for example when saving to a J3O file.- Specified by:
 writein interfacecom.jme3.export.Savable- Overrides:
 writein classCollisionShape- Parameters:
 exporter- (not null)- Throws:
 IOException- from the exporter
 
 -