


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 halfspace, 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 threadsafe: 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 halfspace 
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 3Ddrawing 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 