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