|
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object net.algart.model3d.common.movement.model.BunkerWall
public final class BunkerWall extends java.lang.Object implements Item
Solid plane wall, used for forming a bunker, where another items are moving and interacting.
Formally, the wall is an infinite half-space, described by an inequality
The bunker wall is fully described by 4 numbers a,b,c,d.
But such wall is infinite and not convenient for drawing in GUI. To solve this problem,
you should specify a set of vertices for every wall: a sequence of 3 or more 3D points, which are supposed
to lie at the plane interaction rule
: the wall is supposed to exist also outside this polygon,
but there it is invisible (transparent).
Note: the norm of (a,b,c) vector is always 1.0: a²+b²+c²=1.0. The coefficients are normalized automatically while instantiating by the constructor.
It is supposed that the wall acts to any item which intersects it, i.e. partially lies
inside the area
This class is immutable and thread-safe: there are no ways to modify settings of the created instance.
AlgART Laboratory 2010
Constructor and Description |
---|
BunkerWall(double a,
double b,
double c,
double d,
double... verticesXYZ)
Creates new wall: an infinite half-space |
Modifier and Type | Method and Description |
---|---|
double |
getA()
The coefficient a in the inequality |
double |
getB()
The coefficient b in the inequality |
double |
getC()
The coefficient c in the inequality |
double |
getD()
The coefficient d in the inequality |
int |
getVerticesCount()
The number of vertices of the polygon which should be drawn: verticesXYZ.length/3, where verticesXYZ is the last argument of the constructor. |
double[] |
getVerticesXYZ()
Returns all vertices of the polygon which should be drawn. |
boolean |
isCenterOutside(HavingCenter item)
Returns true if and only if |
boolean |
isFullyOutside(Spherical item)
Returns true if and only if radius . |
boolean |
isPartiallyOutside(Spherical item)
Returns true if and only if radius . |
java.lang.String |
toString()
Returns a brief string description of this object. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public BunkerWall(double a, double b, double c, double d, double... verticesXYZ)
The coefficients a,b,c,d are passed via the arguments.
The vector (a,b,c) is automatically normalized: all 4 numbers are divided by
The verticesXYZ argument should specify the sequence of 3D vertices of some polygon
inside the plane
The passed verticesXYZ argument is cloned by this constructor: no references to it are maintained by the created object.
a
- the coefficient a.b
- the coefficient b.c
- the coefficient c.d
- the coefficient d.verticesXYZ
- the sequential vertices of some polygon inside the wall boundary, which will be drawn
by 3D-drawing algorithms.java.lang.IllegalArgumentException
- if (a,b,c) is zero (and, so, cannot be normalized),
or if the length of verticesXYZ array is not divisible by 3.Method Detail |
---|
public double getA()
public double getB()
public double getC()
public double getD()
public int getVerticesCount()
public double[] getVerticesXYZ()
The returned array is a clone of the internal array stored in this object.
public boolean isCenterOutside(HavingCenter item)
item
- some item which has a geometrical center
.public boolean isPartiallyOutside(Spherical item)
radius
.
item
- some Spherical
item.public boolean isFullyOutside(Spherical item)
radius
.
item
- some Spherical
item.public java.lang.String toString()
The result of this method may depend on implementation.
toString
in class java.lang.Object
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |