Android Open Source - min3d Number3d






From Project

Back to project page min3d.

License

The source code is released under:

MIT License

If you think the Android project min3d 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

package com.min3d.lib.vos;
/*w w w .ja  v a 2  s  . c o  m*/
/**
 * Simple VO holding x,y, and z values. Plus helper math functions.
 * Care should be taken to avoid creating Number3d instances unnecessarily. 
 * Its use is not required for the construction of vertices.
 */
public class Number3d 
{
  public float x;
  public float y;
  public float z;
  
  private static Number3d _temp = new Number3d();
  
  
  public Number3d()
  {
    x = 0;
    y = 0;
    z = 0;
  }
  
  public Number3d(float $x, float $y, float $z)
  {
    x = $x;
    y = $y;
    z = $z;
  }
  
  //
  
  public void setAll(float $x, float $y, float $z)
  {
    x = $x;
    y = $y;
    z = $z;
  }
  
  public void setAllFrom(Number3d $n)
  {
    x = $n.x;
    y = $n.y;
    z = $n.z;
  }
  
  public void normalize()
  {
    float mod = (float) Math.sqrt( this.x*this.x + this.y*this.y + this.z*this.z );

    if( mod != 0 && mod != 1)
    {
      mod = 1 / mod; 
      this.x *= mod;
      this.y *= mod;
      this.z *= mod;
    }
  }

  public void add(Number3d n)
  {
    this.x += n.x;
    this.y += n.y;
    this.z += n.z;
  }
  
  public void subtract(Number3d n)
  {
    this.x -= n.x;
    this.y -= n.y;
    this.z -= n.z;
  }
  
  public void multiply(Float f)
  {
    this.x *= f;
    this.y *= f;
    this.z *= f;
  }
  
  public float length()
  {
    return (float) Math.sqrt( this.x*this.x + this.y*this.y + this.z*this.z );
  }
  
  public Number3d clone()
  {
    return new Number3d(x,y,z);
  }
  
  public void rotateX(float angle)
  {
    float cosRY = (float) Math.cos(angle);
    float sinRY = (float) Math.sin(angle);

    _temp.setAll(this.x, this.y, this.z); 

    this.y = (_temp.y*cosRY)-(_temp.z*sinRY);
    this.z = (_temp.y*sinRY)+(_temp.z*cosRY);
  }
  
  public void rotateY(float angle)
  {
    float cosRY = (float) Math.cos(angle);
    float sinRY = (float) Math.sin(angle);

    _temp.setAll(this.x, this.y, this.z); 
    
    this.x = (_temp.x*cosRY)+(_temp.z*sinRY);
    this.z = (_temp.x*-sinRY)+(_temp.z*cosRY);
  }
  
  public void rotateZ(float angle)
  {
    float cosRY = (float) Math.cos(angle);
    float sinRY = (float) Math.sin(angle);

    _temp.setAll(this.x, this.y, this.z);     

    this.x = (_temp.x*cosRY)-(_temp.y*sinRY);
    this.y = (_temp.x*sinRY)+(_temp.y*cosRY);
  }
  
  
  @Override
  public String toString()
  {
    return x + "," + y + "," + z; 
  }
  
  //

  public static Number3d add(Number3d a, Number3d b)
  {
    return new Number3d(a.x + b.x, a.y + b.y, a.z + b.z);
  }

  public static Number3d subtract(Number3d a, Number3d b)
  {
    return new Number3d(a.x - b.x, a.y - b.y, a.z - b.z);
  }
  
  public static Number3d multiply(Number3d a, Number3d b)
  {
    return new Number3d(a.x * b.x, a.y * b.y, a.z * b.z);
  }
  
  public static Number3d cross(Number3d v, Number3d w)
  {
    return new Number3d((w.y * v.z) - (w.z * v.y), (w.z * v.x) - (w.x * v.z), (w.x * v.y) - (w.y * v.x));
  }
  
  public static float dot(Number3d v, Number3d w)
  {
    return ( v.x * w.x + v.y * w.y + w.z * v.z );
  }
  
  // *   Math functions thanks to Papervision3D AS3 library
  //     http://code.google.com/p/papervision3d/
}




Java Source Code List

com.min3d.ApplicationTest.java
com.min3d.ExampleAccelerometer.java
com.min3d.ExampleAnimatedTexture.java
com.min3d.ExampleAnimatingVertices.java
com.min3d.ExampleAssigningTexturesDynamically.java
com.min3d.ExampleCamera.java
com.min3d.ExampleFog.java
com.min3d.ExampleFromScratch.java
com.min3d.ExampleInsideLayout.java
com.min3d.ExampleKeyframeAnimation.java
com.min3d.ExampleLightProperties.java
com.min3d.ExampleLoad3DSFile.java
com.min3d.ExampleLoadMD2File.java
com.min3d.ExampleLoadObjFileMultiple.java
com.min3d.ExampleLoadObjFile.java
com.min3d.ExampleMipMap.java
com.min3d.ExampleMostMinimal.java
com.min3d.ExampleMultiTexture.java
com.min3d.ExampleMultipleLights.java
com.min3d.ExampleRenderType.java
com.min3d.ExampleRotatingPlanets.java
com.min3d.ExampleSubsetOfFaces.java
com.min3d.ExampleTextureOffset.java
com.min3d.ExampleTextureWrap.java
com.min3d.ExampleTextures.java
com.min3d.ExampleTransparentGlSurface.java
com.min3d.ExampleVertexColors.java
com.min3d.ExampleVerticesVariations.java
com.min3d.ScratchActivity.java
com.min3d.SplashActivity.java
com.min3d.lib.AParser.java
com.min3d.lib.ApplicationTest.java
com.min3d.lib.IParser.java
com.min3d.lib.LittleEndianDataInputStream.java
com.min3d.lib.MD2Parser.java
com.min3d.lib.Max3DSParser.java
com.min3d.lib.Min3d.java
com.min3d.lib.ObjParser.java
com.min3d.lib.ParseObjectData.java
com.min3d.lib.ParseObjectFace.java
com.min3d.lib.Parser.java
com.min3d.lib.Shared.java
com.min3d.lib.Utils.java
com.min3d.lib.animation.AnimationObject3d.java
com.min3d.lib.animation.KeyFrame.java
com.min3d.lib.core.Color4BufferList.java
com.min3d.lib.core.FacesBufferedList.java
com.min3d.lib.core.ManagedLightList.java
com.min3d.lib.core.Number3dBufferList.java
com.min3d.lib.core.Object3dContainer.java
com.min3d.lib.core.Object3d.java
com.min3d.lib.core.RenderCaps.java
com.min3d.lib.core.RendererActivity.java
com.min3d.lib.core.Renderer.java
com.min3d.lib.core.Scene.java
com.min3d.lib.core.TextureList.java
com.min3d.lib.core.TextureManager.java
com.min3d.lib.core.UvBufferList.java
com.min3d.lib.core.Vertices.java
com.min3d.lib.interfaces.IDirtyManaged.java
com.min3d.lib.interfaces.IDirtyParent.java
com.min3d.lib.interfaces.IObject3dContainer.java
com.min3d.lib.interfaces.ISceneController.java
com.min3d.lib.objectPrimitives.Box.java
com.min3d.lib.objectPrimitives.HollowCylinder.java
com.min3d.lib.objectPrimitives.Rectangle.java
com.min3d.lib.objectPrimitives.SkyBox.java
com.min3d.lib.objectPrimitives.Sphere.java
com.min3d.lib.objectPrimitives.Torus.java
com.min3d.lib.vos.AbstractDirtyManaged.java
com.min3d.lib.vos.BooleanManaged.java
com.min3d.lib.vos.CameraVo.java
com.min3d.lib.vos.Color4Managed.java
com.min3d.lib.vos.Color4.java
com.min3d.lib.vos.Face.java
com.min3d.lib.vos.FloatManaged.java
com.min3d.lib.vos.FogType.java
com.min3d.lib.vos.FrustumManaged.java
com.min3d.lib.vos.LightType.java
com.min3d.lib.vos.Light.java
com.min3d.lib.vos.Number3dManaged.java
com.min3d.lib.vos.Number3d.java
com.min3d.lib.vos.RenderType.java
com.min3d.lib.vos.ShadeModelManaged.java
com.min3d.lib.vos.ShadeModel.java
com.min3d.lib.vos.TexEnvxVo.java
com.min3d.lib.vos.TextureVo.java
com.min3d.lib.vos.Uv.java
com.min3d.lib.vos.Vertex3d.java