From b9cc8e8871de73bf70406913f18b446a1fc723e8 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Tue, 12 Jan 2010 13:01:59 +0100 Subject: Generate triangle data from tile heightmaps --- src/de/gamezock/metacraft/data/Triangle.java | 40 ++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/de/gamezock/metacraft/data/Triangle.java (limited to 'src/de/gamezock/metacraft/data/Triangle.java') diff --git a/src/de/gamezock/metacraft/data/Triangle.java b/src/de/gamezock/metacraft/data/Triangle.java new file mode 100644 index 0000000..bcfce9d --- /dev/null +++ b/src/de/gamezock/metacraft/data/Triangle.java @@ -0,0 +1,40 @@ +package de.gamezock.metacraft.data; + +import javax.vecmath.Point3f; +import javax.vecmath.Vector3f; + +public class Triangle { + private Point3f[] vertices; + private Vector3f[] normals; + + + public Triangle(Point3f v1, Point3f v2, Point3f v3) { + vertices = new Point3f[3]; + + vertices[0] = v1; + vertices[1] = v2; + vertices[2] = v3; + + normals = new Vector3f[3]; + + Vector3f edge1 = new Vector3f(), edge2 = new Vector3f(); + edge1.sub(v1, v2); + edge2.sub(v3, v2); + + Vector3f normal = new Vector3f(); + normal.cross(edge1, edge2); + normal.normalize(); + + normals[0] = new Vector3f(normal); + normals[1] = new Vector3f(normal); + normals[2] = new Vector3f(normal); + } + + public Point3f getVertex(int i) { + return vertices[i]; + } + + public Vector3f getNormal(int i) { + return normals[i]; + } +} -- cgit v1.2.3