us.ihmc.utilities.math.geometry
Interface Shape3d

All Known Implementing Classes:
Box3d, Cylinder3d, Ellipsoid3d, Ramp3d, RotatableTableTerrainObject, Sphere3d, Torus3d, YawableBoxTerrainObject

public interface Shape3d


Method Summary
 void applyTransform(javax.media.j3d.Transform3D transform)
          Apply the given transform to translate and rotate this shape.
 Shape3d applyTransformCopy(javax.media.j3d.Transform3D transform)
          Create a copy of this shape, then apply the given transform to translate and rotate the copy.
 double distance(javax.vecmath.Point3d point)
          Find the distance from the closest point on this shape to the given point.
 void getClosestPointAndNormalAt(javax.vecmath.Point3d closestPointToPack, javax.vecmath.Vector3d normalToPack, javax.vecmath.Point3d pointInWorldToCheck)
          Find the closest point on the surface of this shape to the given point as well as the surface normal at that point.
 boolean isInsideOrOnSurface(javax.vecmath.Point3d pointToCheck)
          Determine whether the given point is on or inside the surface of this shape.
 boolean isInsideOrOnSurface(javax.vecmath.Point3d pointToCheck, double epsilon)
          Determine whether the given point is on or inside the surface of this shape, within a given tolerance or error level.
 void orthogonalProjection(javax.vecmath.Point3d pointToCheckAndPack)
          Find the closest point on the surface of this shape to the given point.
 javax.vecmath.Point3d orthogonalProjectionCopy(javax.vecmath.Point3d pointToCheck)
          Find the closest point on the surface of this shape to the given point.
 

Method Detail

applyTransform

void applyTransform(javax.media.j3d.Transform3D transform)
Apply the given transform to translate and rotate this shape.

Parameters:
transform -

applyTransformCopy

Shape3d applyTransformCopy(javax.media.j3d.Transform3D transform)
Create a copy of this shape, then apply the given transform to translate and rotate the copy.

Parameters:
transform -
Returns:

distance

double distance(javax.vecmath.Point3d point)
Find the distance from the closest point on this shape to the given point.

Parameters:
point -
Returns:

getClosestPointAndNormalAt

void getClosestPointAndNormalAt(javax.vecmath.Point3d closestPointToPack,
                                javax.vecmath.Vector3d normalToPack,
                                javax.vecmath.Point3d pointInWorldToCheck)
Find the closest point on the surface of this shape to the given point as well as the surface normal at that point.

Parameters:
closestPointToPack - out parameter packed with the resulting closest point on the shape
normalToPack - out parameter packed with the resulting normal vector
pointInWorldToCheck -

isInsideOrOnSurface

boolean isInsideOrOnSurface(javax.vecmath.Point3d pointToCheck)
Determine whether the given point is on or inside the surface of this shape.

Parameters:
pointToCheck -
Returns:

isInsideOrOnSurface

boolean isInsideOrOnSurface(javax.vecmath.Point3d pointToCheck,
                            double epsilon)
Determine whether the given point is on or inside the surface of this shape, within a given tolerance or error level.

Parameters:
pointToCheck -
epsilon -
Returns:

orthogonalProjection

void orthogonalProjection(javax.vecmath.Point3d pointToCheckAndPack)
Find the closest point on the surface of this shape to the given point. If the given point is on or inside the shape, then it is not changed.

Parameters:
pointToCheckAndPack - both an input parameter (the point to check), and an output parameter (packed with the resulting ortho point).

orthogonalProjectionCopy

javax.vecmath.Point3d orthogonalProjectionCopy(javax.vecmath.Point3d pointToCheck)
Find the closest point on the surface of this shape to the given point. If the given point is on or inside the shape, then it returned unchanged.

Parameters:
referencePoint -
Returns:
a new point on surface of the shape