33package com.jogamp.audio.windows.waveout;
38 public static final Vec3f X_AXIS =
new Vec3f( 1, 0, 0);
39 public static final Vec3f Y_AXIS =
new Vec3f( 0, 1, 0);
40 public static final Vec3f Z_AXIS =
new Vec3f( 0, 0, 1);
41 public static final Vec3f NEG_X_AXIS =
new Vec3f(-1, 0, 0);
42 public static final Vec3f NEG_Y_AXIS =
new Vec3f( 0, -1, 0);
43 public static final Vec3f NEG_Z_AXIS =
new Vec3f( 0, 0, -1);
51 public Vec3f(
final Vec3f arg) {
55 public Vec3f(
final float x,
final float y,
final float z) {
60 return new Vec3f(
this);
63 public void set(
final Vec3f arg) {
64 set(arg.x, arg.y, arg.z);
67 public void set(
final float x,
final float y,
final float z) {
74 public void set(
final int i,
final float val) {
76 case 0: x = val;
break;
77 case 1: y = val;
break;
78 case 2: z = val;
break;
79 default:
throw new IndexOutOfBoundsException();
84 public float get(
final int i) {
89 default:
throw new IndexOutOfBoundsException();
93 public float x() {
return x; }
94 public float y() {
return y; }
95 public float z() {
return z; }
97 public void setX(
final float x) { this.x = x; }
98 public void setY(
final float y) { this.y = y; }
99 public void setZ(
final float z) { this.z = z; }
101 public float dot(
final Vec3f arg) {
102 return x * arg.x + y * arg.y + z * arg.z;
105 public float length() {
106 return (
float) Math.sqrt(lengthSquared());
109 public float lengthSquared() {
110 return this.dot(
this);
113 public void normalize() {
114 final float len = length();
115 if (len == 0.0f)
return;
120 public Vec3f times(
final float val) {
121 final Vec3f tmp =
new Vec3f(
this);
127 public void scale(
final float val) {
134 public Vec3f plus(
final Vec3f arg) {
135 final Vec3f tmp =
new Vec3f();
141 public void add(
final Vec3f b) {
146 public void add(
final Vec3f a,
final Vec3f b) {
153 public Vec3f addScaled(
final float s,
final Vec3f arg) {
154 final Vec3f tmp =
new Vec3f();
155 tmp.addScaled(
this, s, arg);
160 public void addScaled(
final Vec3f a,
final float s,
final Vec3f b) {
167 public Vec3f minus(
final Vec3f arg) {
168 final Vec3f tmp =
new Vec3f();
174 public void sub(
final Vec3f b) {
179 public void sub(
final Vec3f a,
final Vec3f b) {
186 public Vec3f cross(
final Vec3f arg) {
187 final Vec3f tmp =
new Vec3f();
188 tmp.cross(
this, arg);
194 public void cross(
final Vec3f a,
final Vec3f b) {
195 x = a.y * b.z - a.z * b.y;
196 y = a.z * b.x - a.x * b.z;
197 z = a.x * b.y - a.y * b.x;
203 public void componentMul(
final Vec3f arg) {
210 public String toString() {
211 return "(" + x +
", " + y +
", " + z +
")";