Source Code : Implementation of the 4 dimensional vector.

Java Is Open Source Programming Language You Can Download From Java and Java Libraries From http://www.oracle.com. Click Here to download
We provide this code related to title for you to solve your developing problem easily. Libraries which is import in this program you can download from http://www.oracle.com. Click Here or search from google with Libraries Name you get jar file related it

Implementation of the 4 dimensional vector.

      
/* $Id: Vector4f.java,v 1.1 2005/08/20 10:15:55 joda Exp $
 * Created on 22.07.2004
 */
//package net.sourceforge.ftgl.util;

/**
 * Implementation of the 4 dimensional vector.
 * 
 * @author Ralf Petring
 * @author funsheep
 */
public class Vector4f implements Cloneable {
  /** x component */
  public float x;
  /** y component */
  public float y;
  /** z component */
  public float z;
  /** w component */
  public float w;

  /**
   * Constructs a new vector whith (0,0,0,1) as coordinates.
   */
  public Vector4f() {
    this(0, 0, 0, 1);
  }

  /**
   * Creates a new vector.
   * 
   * @param x
   *            the x coordinate
   * @param y
   *            the y coordinate
   * @param z
   *            the z coordinate
   * @param w
   *            the w coordinate
   */
  public Vector4f(final float x, final float y, final float z, final float w) {
    this.x = x;
    this.y = y;
    this.z = z;
    this.w = w;
  }

  /**
   * Copyconstructor.
   * 
   * @param v
   *            the vector to copy
   */
  public Vector4f(final Vector4f v) {
    this(v.x, v.y, v.z, v.w);
  }

  /**
   * Adds the given values to this vector.
   * 
   * @param dx
   *            the x value to add
   * @param dy
   *            the y value to add
   * @param dz
   *            the z value to add
   * @return this vector
   */
  public Vector4f add(final float dx, final float dy, final float dz) {
    this.x += dx;
    this.y += dy;
    this.z += dz;
    return this;
  }

  /**
   * Adds a vector to this vector.
   * 
   * @param v
   *            the vector to add
   * @return this vector
   */
  public Vector4f add(final Vector4f v) {
    return this.add(v.x, v.y, v.z);
  }

  /**
   * Substracts the given values from this vector.
   * 
   * @param dx
   *            the x value to substract
   * @param dy
   *            the y value to substract
   * @param dz
   *            the z value to substract
   * @return this vector
   */
  public Vector4f sub(final float dx, final float dy, final float dz) {
    return this.add(-dx, -dy, -dz);
  }

  /**
   * Substracts a given vector from this one.
   * 
   * @param v
   *            the vector to substract
   * @return this vector
   */
  public Vector4f sub(final Vector4f v) {
    return this.add(-v.x, -v.y, -v.z);
  }

  /**
   * Multiplies the coordinates of this vector with the given float values.
   * 
   * @param dx
   *            the value to be multiplied the x coordinate
   * @param dy
   *            the value to be multiplied the y coordinate
   * @param dz
   *            the value to be multiplied the z coordinate
   * @return this vector
   */
  public Vector4f scale(final float dx, final float dy, final float dz) {
    this.x *= dx;
    this.y *= dy;
    this.z *= dz;
    return this;
  }

  /**
   * Multiplies the coordinates of this vector with the given float value.
   * 
   * @param d
   *            the value to be multiplied with all coordinates
   * @return this vector
   */
  public Vector4f scale(final float d) {
    return this.scale(d, d, d);
  }

  /**
   * Returns the squared length of this vector.
   * 
   * @return the squared length of this vector
   */
  public final float lengthSquared() {
    return (this.x * this.x + this.y * this.y + this.z * this.z); // TODO
                                    // needs
                                    // w?
  }

  /**
   * Returns the length of this vector.
   * 
   * @return the length of this vector
   */
  public final float length() {
    // TODO needs w?
    return (float) Math.sqrt(this.lengthSquared());
  }

  /**
   * Normalizes this vector.
   * 
   * @return this vector
   */
  public final Vector4f normalize() {
    // TODO needs w?
    float norm = 1f / this.length();

    this.x *= norm;
    this.y *= norm;
    this.z *= norm;

    return this;
  }

  /**
   * Calculates the dotprodukt of this vector and the given vector.
   * 
   * @param v
   *            the second vector
   * @return the scalarproduct between this and the second vector
   */
  public final float dot(final Vector4f v) {
    return this.x * v.x + this.y * v.y + this.z * v.z + this.w * v.w; // TODO
                                      // w
                                      // component
                                      // also?
  }

  /**
   * {@inheritDoc}
   */
  public Object clone() {
    try {
      return super.clone();
    } catch (CloneNotSupportedException e) {
      throw new RuntimeException("the roof is on fire", e);
    }
  }

  /**
   * {@inheritDoc}
   */
  public String toString() {
    return "[" + this.x + "," + this.y + "," + this.z + "," + this.w + "]";
  }

}

   
    
    
    
    
    
  

Thank with us