package utils.scene.u3d;
import org.apache.commons.math3.geometry.euclidean.threed.Vector3D;
import utils.scene.Point3D;
public class Mesh3DTriangle {
private Point3D[] points = new Point3D[3];
private Vector3D edge1;
private Vector3D edge2;
private Vector3D n;
private double norm;
public Mesh3DTriangle(Point3D point1, Point3D point2, Point3D point3) {
points[0] = point1;
points[1] = point2;
points[2] = point3;
Vector3D vert0 = new Vector3D(getPointOne().x, getPointOne().y, getPointOne().z);
Vector3D vert1 = new Vector3D(getPointTwo().x, getPointTwo().y, getPointTwo().z);
Vector3D vert2 = new Vector3D(getPointThree().x, getPointThree().y, getPointThree().z);
edge1 = vert1.subtract(vert0);
edge2 = vert2.subtract(vert0);
n = Vector3D.crossProduct(edge1, edge2);
setNorm(n.getNorm());
}
public Point3D getPointOne() {
return points[0];
}
public Point3D getPointTwo() {
return points[1];
}
public Point3D getPointThree() {
return points[2];
}
public Vector3D getEdge1() {
return edge1;
}
public void setEdge1(Vector3D edge1) {
this.edge1 = edge1;
}
public Vector3D getEdge2() {
return edge2;
}
public void setEdge2(Vector3D edge2) {
this.edge2 = edge2;
}
public Vector3D getN() {
return n;
}
public void setN(Vector3D n) {
this.n = n;
}
public double getNorm() {
return norm;
}
public void setNorm(double norm) {
this.norm = norm;
}
}