X-Git-Url: http://git.megacz.com/?p=anneal.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fqfat%2Fgeom%2FVec.java;h=c601b15916069bad7e85bfc0b3447fcd0d1bb0a1;hp=56b357e018cd44cf4b607c024ff82ed8920a4756;hb=5f15a6155bf7fbf2d62b3ab9fd992a54af10a95a;hpb=162b76f92f5adaf80b312bee2a6bcd5b7ba2eabd diff --git a/src/edu/berkeley/qfat/geom/Vec.java b/src/edu/berkeley/qfat/geom/Vec.java index 56b357e..c601b15 100644 --- a/src/edu/berkeley/qfat/geom/Vec.java +++ b/src/edu/berkeley/qfat/geom/Vec.java @@ -1,4 +1,5 @@ package edu.berkeley.qfat.geom; +import javax.media.opengl.*; /** vector in 3-space; immutable */ public final class Vec { @@ -8,13 +9,14 @@ public final class Vec { public Vec(Point p1, Point p2) { this(p2.x-p1.x, p2.y-p1.y, p2.z-p1.z); } public Vec cross(Vec v) { return new Vec(y*v.z-z*v.y, z*v.x-x*v.z, x*v.y-y*v.x); } public Vec plus(Vec v) { return new Vec(x+v.x, y+v.y, z+v.z); } + public Vec minus(Vec v) { return new Vec(x-v.x, y-v.y, z-v.z); } public Vec norm() { return mag()==0 ? this : div(mag()); } - public Vec times(Matrix m) { return m.apply(this); } public float mag() { return (float)Math.sqrt(x*x+y*y+z*z); } public float dot(Vec v) { return x*v.x + y*v.y + z*v.z; } public Vec times(float mag) { return new Vec(x*mag, y*mag, z*mag); } public Vec div(float mag) { return new Vec(x/mag, y/mag, z/mag); } public String toString() { return "<"+x+","+y+","+z+">"; } + public void glNormal(GL gl) { gl.glNormal3f(x, y, z); } /** fundamental error quadric for the plane with this normal passing through p */ public Matrix fundamentalQuadric(Point p) {