annotate src/samer/tools/vec2.java @ 8:5e3cbbf173aa tip

Reorganise some more
author samer
date Fri, 05 Apr 2019 22:41:58 +0100
parents bf79fb79ee13
children
rev   line source
samer@0 1 /*
samer@0 2 * Copyright (c) 2000, Samer Abdallah, King's College London.
samer@0 3 * All rights reserved.
samer@0 4 *
samer@0 5 * This software is provided AS iS and WITHOUT ANY WARRANTY;
samer@0 6 * without even the implied warranty of MERCHANTABILITY or
samer@0 7 * FITNESS FOR A PARTICULAR PURPOSE.
samer@0 8 */
samer@0 9
samer@0 10 package samer.tools;
samer@0 11
samer@0 12 public class vec2 implements java.io.Serializable {
samer@0 13 public double x, y;
samer@0 14
samer@0 15 public double norm() { return x*x+y*y; }
samer@0 16 public vec2 neg() { return new vec2(-x,-y); }
samer@0 17 public void add( vec2 a) { x+=a.x; y+=a.y; }
samer@0 18 public void sub( vec2 a) { x-=a.x; y-=a.y; }
samer@0 19 public void mul( double k) { x*=k; y*=k; }
samer@0 20 public void div( double k) { x/=k; y/=k; }
samer@0 21 public void assign( vec2 a) { x=a.x; y=a.y; }
samer@0 22 public void assign( double i, double j) { x=i; y=j; }
samer@0 23 public void normalise() { div( Math.sqrt(norm())); }
samer@0 24
samer@0 25 public static vec2 add( vec2 a, vec2 b) { return new vec2(a.x+b.x,a.y+b.y); }
samer@0 26 public static vec2 sub( vec2 a, vec2 b) { return new vec2(a.x-b.x,a.y-b.y); }
samer@0 27 public static vec2 div( vec2 a, double k) { return new vec2(a.x/k,a.y/k); }
samer@0 28 public static vec2 mul( vec2 a, double k) { return new vec2(a.x*k,a.y*k); }
samer@0 29 public static vec2 mul( double k, vec2 a) { return new vec2(a.x*k,a.y*k); }
samer@0 30 public static double dot( vec2 a, vec2 b) { return a.x*b.x + a.y*b.y; }
samer@0 31
samer@0 32 public vec2() {}
samer@0 33 public vec2( vec2 a) { x=a.x; y=a.y; }
samer@0 34 public vec2( double i, double j) { x=i; y=j; }
samer@0 35 }