de.grogra.vecmath.geom
Class FrustumBase
java.lang.Object
de.grogra.vecmath.geom.VolumeBase
de.grogra.vecmath.geom.TransformableVolume
de.grogra.vecmath.geom.FrustumBase
- All Implemented Interfaces:
- Volume
- Direct Known Subclasses:
- Cone, Cylinder
public abstract class FrustumBase
- extends TransformableVolume
This class represents the geometry of a cone. In local object
coordinates, the tip is located at the origin, the axis points
in the z-direction, and the half opening angle is 45 degrees.
- Author:
- Ole Kniemeyer
|
Field Summary |
static int |
BASE
|
static int |
LATERAL
|
float |
scaleV
Scaling factor for v coordinate: v coordinates of lateral
face range from 0 to scaleV. |
static int |
TOP
|
| Fields inherited from class de.grogra.vecmath.geom.TransformableVolume |
m00, m01, m02, m10, m11, m12, m20, m21, m22, t0, t1, t2 |
| Methods inherited from class de.grogra.vecmath.geom.TransformableVolume |
getDiscExtent, getDiscsExtent, getFrobeniusNorm, getObjectToWorldRotationScale, getTransformation, invalidate, invTransformPoint, scale, setTransformation, setTransformation, transformPoint, transformTranspose, transformVector, translate |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
BASE
public static final int BASE
- See Also:
- Constant Field Values
LATERAL
public static final int LATERAL
- See Also:
- Constant Field Values
scaleV
public float scaleV
- Scaling factor for v coordinate: v coordinates of lateral
face range from 0 to scaleV.
TOP
public static final int TOP
- See Also:
- Constant Field Values
FrustumBase
public FrustumBase()
boxContainsBoundary
public boolean boxContainsBoundary(BoundingBox box,
Tuple3d center,
double radius,
Variables temp)
- Description copied from interface:
Volume
- Returns
true if the specified box contains
(part of) the boundary surface of this volume. Otherwise, if box and
boundary do not overlap, this method should return false,
but may also return true if an exact computation
would be too expensive or complicated.
Note that a box contains the boundary of a closed set S iff
both have a non-empty intersection and the box is not contained
in the open set of S.
- Parameters:
box - bounding boxcenter - center coordinates of boxradius - radius of enclosing spheretemp - has to be provided by the invoker, may be used in implementations
- Returns:
true if box contains (part of) the boundary of this volume
intersect
public boolean intersect(Line line)
- Intersects this object with
line. The result
is will be written to line by a modification of
Line.start and Line.end.
- Parameters:
line - the line to intersect with
- Returns:
true iff the computed intersection is valid and not empty