public abstract class AbstractDrawable3DObject
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
protected BoundingBox |
bbox |
protected java.awt.Color[] |
colors |
protected java.lang.Boolean |
degenerated |
protected java.lang.Boolean |
is2d |
protected boolean |
marked |
protected boolean |
marked2 |
protected Vector3d |
normal |
protected double |
nv0v1 |
protected int |
precedence |
static double |
PRECISION |
protected Vector3d |
v0 |
protected Vector3d |
v0v1 |
protected Vector3d |
v1 |
protected Vector3d[] |
vertices |
protected java.lang.Double |
zindex |
Constructor and Description |
---|
AbstractDrawable3DObject(Vector3d[] vertices,
java.awt.Color[] colors)
Default constructor
|
Modifier and Type | Method and Description |
---|---|
abstract void |
draw(java.awt.Graphics2D g2d)
Draw this object on a Graphics2D object
|
protected static java.awt.Color |
getColorsBarycenter(java.awt.Color c1,
java.awt.Color c2,
double w1,
double w2) |
Vector3d |
getNormal()
Get the normal vector.
|
int |
getPrecedence()
Get the precedence of this object, i.e.
|
protected java.awt.geom.Path2D |
getProjectedContour()
Get the projected contour (i.e.
|
protected java.awt.geom.Path2D |
getProjectedPolyLine()
Get the projected polyline of this object
|
Vector3d |
getProvidedNormal()
Get the normal vector.
|
boolean |
is2D()
Determinates if this object is 2D in looking at the z coordinates
(when all the drawn objects are 2D, we can avoid the projection)
|
int |
isBehind(Vector3d v,
double a) |
static boolean |
isBehind(Vector3d M,
Vector3d v,
double a) |
protected boolean |
isDegenerate() |
protected static boolean |
isEqual(double d1,
double d2) |
protected static boolean |
isGreaterOrEqual(double d1,
double d2) |
protected static boolean |
isLowerOrEqual(double d1,
double d2) |
protected boolean |
isNanOrInf() |
static boolean |
isNanOrInf(Vector3d v) |
protected static boolean |
isNegativeOrNull(double d) |
protected static boolean |
isNull(double d) |
protected boolean |
isPlanar()
Determinates if the object is contained into a plane
|
protected static boolean |
isPositiveOrNull(double d) |
protected static double[] |
minmax2D(AbstractDrawable3DObject o,
double x,
double y)
Get min-max of the projections of the vertices of o on v
|
protected static double[] |
minmax3D(AbstractDrawable3DObject o,
Vector3d v)
Get min-max of the projections of the vertices of o on v
|
static void |
resetDefaultPrecedence()
Reset the default precedence
|
protected void |
setNormal()
Set the normal vector
|
void |
setPrecedence(int precedence)
Set the precedence of this object.
|
public static final double PRECISION
protected final Vector3d[] vertices
protected final java.awt.Color[] colors
protected int precedence
protected java.lang.Boolean is2d
protected java.lang.Double zindex
protected Vector3d v0
protected Vector3d v1
protected Vector3d v0v1
protected double nv0v1
protected Vector3d normal
protected BoundingBox bbox
protected boolean marked
protected boolean marked2
protected java.lang.Boolean degenerated
public AbstractDrawable3DObject(Vector3d[] vertices, java.awt.Color[] colors) throws InvalidPolygonException
vertices
- the verticesInvalidPolygonException
public abstract void draw(java.awt.Graphics2D g2d)
g2d
- the Graphics2d object where to drawpublic static void resetDefaultPrecedence()
public void setPrecedence(int precedence)
precedence
- the precedence of this objectpublic int getPrecedence()
the
- precedencepublic boolean is2D()
public Vector3d getProvidedNormal()
public Vector3d getNormal()
protected void setNormal()
protected boolean isPlanar()
public int isBehind(Vector3d v, double a)
protected java.awt.geom.Path2D getProjectedPolyLine()
protected java.awt.geom.Path2D getProjectedContour()
protected static final boolean isNull(double d)
d
- a numberprotected static final boolean isPositiveOrNull(double d)
d
- a numberprotected static final boolean isNegativeOrNull(double d)
d
- a numberprotected static final boolean isGreaterOrEqual(double d1, double d2)
d1
- a numberd2
- a numberprotected static final boolean isLowerOrEqual(double d1, double d2)
d1
- a numberd2
- a numberprotected static final boolean isEqual(double d1, double d2)
d1
- a numberd2
- a numberprotected static final double[] minmax3D(AbstractDrawable3DObject o, Vector3d v)
o
- an objectv
- a vectorprotected static final double[] minmax2D(AbstractDrawable3DObject o, double x, double y)
o
- an objectv
- a vectorprotected static final java.awt.Color getColorsBarycenter(java.awt.Color c1, java.awt.Color c2, double w1, double w2)
protected boolean isDegenerate()
protected boolean isNanOrInf()
public static final boolean isNanOrInf(Vector3d v)