public final class Rectangle extends java.lang.Object implements Savable, java.lang.Cloneable, java.io.Serializable
Rectangle
defines a finite plane within three-dimensional space
that is specified via three points (A, B, C). These three points define a
triangle with the fourth point defining the rectangle (B + C) - A.
The corner points are named as follows:
C +---+ D | | | | | | | | A +---+ B
If angle BAC isn't exactly 90 degrees, then the resulting shape is actually parallelogram, not a rectangle.
Constructor and Description |
---|
Rectangle()
Constructor creates a new
Rectangle with no defined corners. |
Rectangle(Vector3f a,
Vector3f b,
Vector3f c)
Constructor creates a new
Rectangle with defined A, B, and C
points that define the area of the rectangle. |
Modifier and Type | Method and Description |
---|---|
Vector3f |
calculateD()
Returns the coordinates of the 4th corner, calculated by the formula
D = (B + C) - A .
|
Vector3f |
calculateNormal(Vector3f normal)
Returns a normal vector, calculated by the formula
|
Rectangle |
clone()
Create a copy of this rectangle.
|
Vector3f |
getA()
getA returns the first point of the rectangle. |
Vector3f |
getB()
getB returns the second point of the rectangle. |
Vector3f |
getC()
getC returns the third point of the rectangle. |
Vector3f |
random()
random returns a random point within the plane defined by:
A, B, C, and (B + C) - A. |
Vector3f |
random(Vector3f result)
random returns a random point within the plane defined by:
A, B, C, and (B + C) - A. |
void |
read(JmeImporter importer)
De-serialize this rectangle from the specified importer, for example
when loading from a J3O file.
|
void |
setA(Vector3f a)
setA sets the first point of the rectangle. |
void |
setB(Vector3f b)
setB sets the second point of the rectangle. |
void |
setC(Vector3f c)
setC sets the third point of the rectangle. |
void |
write(JmeExporter e)
Serialize this rectangle to the specified exporter, for example when
saving to a J3O file.
|
public Rectangle()
Rectangle
with no defined corners.
A, B, and C must be set to define a valid rectangle.public Vector3f getA()
getA
returns the first point of the rectangle.public void setA(Vector3f a)
setA
sets the first point of the rectangle.a
- the first point of the rectangle.public Vector3f getB()
getB
returns the second point of the rectangle.public void setB(Vector3f b)
setB
sets the second point of the rectangle.b
- the second point of the rectangle.public Vector3f getC()
getC
returns the third point of the rectangle.public void setC(Vector3f c)
setC
sets the third point of the rectangle.c
- the third point of the rectangle.public Vector3f calculateD()
public Vector3f calculateNormal(Vector3f normal)
(C - B) x (B - A) N = ------------------- |(C - B) x (B - A)|
normal
- storage for the normal, or null for a new Vector3fnormal
or a new Vector3f)public Vector3f random()
random
returns a random point within the plane defined by:
A, B, C, and (B + C) - A.public Vector3f random(Vector3f result)
random
returns a random point within the plane defined by:
A, B, C, and (B + C) - A.result
- Vector to store result inpublic void write(JmeExporter e) throws java.io.IOException
public void read(JmeImporter importer) throws java.io.IOException
public Rectangle clone()
clone
in class java.lang.Object