Newer
Older
import cz.fidentis.analyst.mesh.core.MeshFacet;
import cz.fidentis.analyst.mesh.core.MeshModel;
import cz.fidentis.analyst.symmetry.Plane;
/**
* A cutting plane.
*
* @author Radek Oslejsek
*/
public class DrawablePlane extends DrawableMesh {
private final Plane plane;
/**
* Constructor.
* @param model Mesh model of the plane
* @param plane The plane
*/
public DrawablePlane(MeshModel model, Plane plane) {
super(model);
if (plane == null) {
throw new IllegalArgumentException("plane");
}
this.plane = plane;
}
/**
* Constructor.
* @param facet Mesh facet of the plane
* @param plane The plane
*/
public DrawablePlane(MeshFacet facet, Plane plane) {
super(facet);
if (plane == null) {
throw new IllegalArgumentException("plane");
}
this.plane = new Plane(plane);
}
public Plane getPlane() {
return plane;
}
/**
* Translate the plane along its normal
*
* @param value
*/
public void translatePlane(double value) {
// Move real plane
this.plane.translate(value);
// Move Drawable plane
Vector3d move = this.plane.getNormal();
move.x *= value;
move.y *= value;
move.z *= value;
for (int i = 0; i < 4; ++i) {
getFacets().get(0).getVertex(i).getPosition().sub(move);
}