Android Open Source - clash_of_balls Vector3 D






From Project

Back to project page clash_of_balls.

License

The source code is released under:

GNU General Public License

If you think the Android project clash_of_balls listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * Copyright (C) 2012-2013 Hans Hardmeier <hanshardmeier@gmail.com>
 * Copyright (C) 2012-2013 Andrin Jenal//  ww w  .  j  av  a 2 s . c om
 * Copyright (C) 2012-2013 Beat Kng <beat-kueng@gmx.net>
 * 
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; version 3 of the License.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 */

package com.sapos_aplastados.game.clash_of_balls.game;

import android.util.FloatMath;

public class Vector3D {

  public float x,y,z;
  

  public Vector3D() {
    x = 0.0f;
    y = 0.0f;
    z = 0.0f;
  }

  public Vector3D(float fx, float fy, float fz) {
    x = fx;
    y = fy;
    z = fz;
  }

  public Vector3D(Vector3D src) {
    x = src.x;
    y = src.y;
    z = src.z;
  }
  
  public void set(Vector3D src) {
    x = src.x;
    y = src.y;
    z = src.z;
  }
  public void set(float fx, float fy, float fz) {
    x = fx;
    y = fy;
    z = fz;
  }
  

  public float length() { 
    return FloatMath.sqrt((x * x) + (y * y) + (z * z));
  }
  
  public float lengthSquared() { 
    return (x * x) + (y * y) + (z * z);
  }

  public void normalize() {
    float len = length();

    if (len != 0.0f) {
      x /= len;
      y /= len;
      z /= len;
    }
  }

  public void add(Vector3D vector) {
    x += vector.x;
    y += vector.y;
    z += vector.z;
  }
  public void add(float fx, float fy, float fz) {
    x += fx;
    y += fy;
    z += fz;
  }

  public void sub(Vector3D vector) {
    x -= vector.x;
    y -= vector.y;
    z -= vector.z;
  }


  public void mul(Vector3D vector) {
    x *= vector.x;
    y *= vector.y; 
    z *= vector.z; 
  }
  public void div(Vector3D vector) {
    x /= vector.x;
    y /= vector.y; 
    z /= vector.z; 
  }
   
  public void mul(float scalar) {
    x *= scalar;
    y *= scalar;
    z *= scalar;
  }
  
  public void cross(Vector3D v) {
    float cx = y*v.z - z*v.y;
    float cy = z*v.x - x*v.z;
    float cz = x*v.y - y*v.x;
    x=cx;
    y=cy;
    z=cz;
  }
  public void dot(Vector3D v) {
    x*=v.x;
    y*=v.y;
    z*=v.z;
  }
  //angle in radians, range [0,pi]
  public float angle(Vector3D v) {
    float l1 = length();
    float l2 = v.length();
    if(l1 == 0.f || l2 == 0.f) return 0.f;
    return (float)Math.acos((x*v.x + y*v.y + z*v.z) / l1 / l2);
  }
  
  //rotate this vector around vector n, by angle radians
  //n will be normalized
  public void rotate(Vector3D n, float angle) {
    float ca=FloatMath.cos(angle);
    float sa=FloatMath.sin(angle);
    
    float len=n.length();
    if(len==0.0f || angle==0.f) return;
    
    n.mul(1.f/len);
    Vector3D v = n;
    
    //x
    float rx = x*(ca+v.x*v.x*(1.0f-ca))+
        y*(v.x*v.y*(1.0f-ca)-v.z*sa)+
        z*(v.x*v.z*(1.0f-ca)+v.y*sa);
    //y
    float ry = x*(v.x*v.y*(1.0f-ca)+v.z*sa)+
        y*(ca+v.y*v.y*(1.0f-ca))+
        z*(v.y*v.z*(1.0f-ca)-v.x*sa);
    //z
    float rz = x*(v.x*v.z*(1.0f-ca)-v.y*sa)+
        y*(v.y*v.z*(1.0f-ca)+v.x*sa)+
        z*(ca+v.z*v.z*(1.0f-ca));
    
    x = rx;
    y = ry;
    z = rz;
    
  }

}




Java Source Code List

au.com.bytecode.opencsv.CSVParser.java
au.com.bytecode.opencsv.CSVReader.java
au.com.bytecode.opencsv.CSVWriter.java
au.com.bytecode.opencsv.ResultSetHelperService.java
au.com.bytecode.opencsv.ResultSetHelper.java
com.sapos_aplastados.game.clash_of_balls.FPSCounter.java
com.sapos_aplastados.game.clash_of_balls.Font2D.java
com.sapos_aplastados.game.clash_of_balls.FontNumbers.java
com.sapos_aplastados.game.clash_of_balls.GameLevel.java
com.sapos_aplastados.game.clash_of_balls.GameRenderer.java
com.sapos_aplastados.game.clash_of_balls.GameSettings.java
com.sapos_aplastados.game.clash_of_balls.ITouchInput.java
com.sapos_aplastados.game.clash_of_balls.LevelManager.java
com.sapos_aplastados.game.clash_of_balls.MainActivity.java
com.sapos_aplastados.game.clash_of_balls.Maths.java
com.sapos_aplastados.game.clash_of_balls.NetworkService.java
com.sapos_aplastados.game.clash_of_balls.ShaderManager.java
com.sapos_aplastados.game.clash_of_balls.TextureBase.java
com.sapos_aplastados.game.clash_of_balls.TextureManager.java
com.sapos_aplastados.game.clash_of_balls.Texture.java
com.sapos_aplastados.game.clash_of_balls.UIBase.java
com.sapos_aplastados.game.clash_of_balls.UIHandler.java
com.sapos_aplastados.game.clash_of_balls.VertexBufferFloat.java
com.sapos_aplastados.game.clash_of_balls.game.DynamicGameObject.java
com.sapos_aplastados.game.clash_of_balls.game.GameBase.java
com.sapos_aplastados.game.clash_of_balls.game.GameField.java
com.sapos_aplastados.game.clash_of_balls.game.GameHole.java
com.sapos_aplastados.game.clash_of_balls.game.GameItem.java
com.sapos_aplastados.game.clash_of_balls.game.GameMenuInGame.java
com.sapos_aplastados.game.clash_of_balls.game.GameObject.java
com.sapos_aplastados.game.clash_of_balls.game.GamePlayer.java
com.sapos_aplastados.game.clash_of_balls.game.GameServer.java
com.sapos_aplastados.game.clash_of_balls.game.GameStatistics.java
com.sapos_aplastados.game.clash_of_balls.game.GameView.java
com.sapos_aplastados.game.clash_of_balls.game.GameWall.java
com.sapos_aplastados.game.clash_of_balls.game.Game.java
com.sapos_aplastados.game.clash_of_balls.game.IDrawable.java
com.sapos_aplastados.game.clash_of_balls.game.IMoveable.java
com.sapos_aplastados.game.clash_of_balls.game.RenderHelper.java
com.sapos_aplastados.game.clash_of_balls.game.SensorThread.java
com.sapos_aplastados.game.clash_of_balls.game.StaticGameObjectNoInteraction.java
com.sapos_aplastados.game.clash_of_balls.game.StaticGameObject.java
com.sapos_aplastados.game.clash_of_balls.game.Vector3D.java
com.sapos_aplastados.game.clash_of_balls.game.Vector.java
com.sapos_aplastados.game.clash_of_balls.game.event.EventGameEnd.java
com.sapos_aplastados.game.clash_of_balls.game.event.EventGameInfo.java
com.sapos_aplastados.game.clash_of_balls.game.event.EventGameStartNow.java
com.sapos_aplastados.game.clash_of_balls.game.event.EventImpact.java
com.sapos_aplastados.game.clash_of_balls.game.event.EventItemAdded.java
com.sapos_aplastados.game.clash_of_balls.game.event.EventItemRemoved.java
com.sapos_aplastados.game.clash_of_balls.game.event.EventItemUpdate.java
com.sapos_aplastados.game.clash_of_balls.game.event.EventPool.java
com.sapos_aplastados.game.clash_of_balls.game.event.Event.java
com.sapos_aplastados.game.clash_of_balls.helper.RawResourceReader.java
com.sapos_aplastados.game.clash_of_balls.helper.ShaderHelper.java
com.sapos_aplastados.game.clash_of_balls.helper.TextureHelper.java
com.sapos_aplastados.game.clash_of_balls.menu.CreationMenu.java
com.sapos_aplastados.game.clash_of_balls.menu.GameMenuBase.java
com.sapos_aplastados.game.clash_of_balls.menu.HelpMenu.java
com.sapos_aplastados.game.clash_of_balls.menu.JoinMenu.java
com.sapos_aplastados.game.clash_of_balls.menu.MainMenu.java
com.sapos_aplastados.game.clash_of_balls.menu.MenuBackground.java
com.sapos_aplastados.game.clash_of_balls.menu.MenuItemArrow.java
com.sapos_aplastados.game.clash_of_balls.menu.MenuItemButton.java
com.sapos_aplastados.game.clash_of_balls.menu.MenuItemGreyButton.java
com.sapos_aplastados.game.clash_of_balls.menu.MenuItemImg.java
com.sapos_aplastados.game.clash_of_balls.menu.MenuItemKeyboard.java
com.sapos_aplastados.game.clash_of_balls.menu.MenuItemLevel.java
com.sapos_aplastados.game.clash_of_balls.menu.MenuItemList.java
com.sapos_aplastados.game.clash_of_balls.menu.MenuItemResultEntry.java
com.sapos_aplastados.game.clash_of_balls.menu.MenuItemStringMultiline.java
com.sapos_aplastados.game.clash_of_balls.menu.MenuItemString.java
com.sapos_aplastados.game.clash_of_balls.menu.MenuItem.java
com.sapos_aplastados.game.clash_of_balls.menu.PopupBase.java
com.sapos_aplastados.game.clash_of_balls.menu.PopupCredit.java
com.sapos_aplastados.game.clash_of_balls.menu.PopupGameStart.java
com.sapos_aplastados.game.clash_of_balls.menu.PopupMsg.java
com.sapos_aplastados.game.clash_of_balls.menu.ResultsMenu.java
com.sapos_aplastados.game.clash_of_balls.menu.WaitMenu.java
com.sapos_aplastados.game.clash_of_balls.network.AlljoynInterface.java
com.sapos_aplastados.game.clash_of_balls.network.NetworkClient.java
com.sapos_aplastados.game.clash_of_balls.network.NetworkServer.java
com.sapos_aplastados.game.clash_of_balls.network.Networking.java