content: package com.gamatechno.vrlib.model;
  
  import android.opengl.Matrix;
  
  /**
   * Created by hzqiujiadi on 16/8/5.
   * hzqiujiadi ashqalcn@gmail.com
   */
  public class MDVector3D {
  
      private float[] values;
  
      public MDVector3D() {
          values = new float[4];
          values[3] = 1.0f;
      }
  
      public MDVector3D setX(float x) {
          values[0] = x;
          return this;
      }
  
      public MDVector3D setY(float y) {
          values[1] = y;
          return this;
      }
  
      public MDVector3D setZ(float z) {
          values[2] = z;
          return this;
      }
  
      public float getX(){
          return values[0];
      }
  
      public float getY(){
          return values[1];
      }
  
      public float getZ(){
          return values[2];
      }
  
      public float x(){
          return values[0];
      }
  
      public float y(){
          return values[1];
      }
  
      public float z(){
          return values[2];
      }
  
      public void multiplyMV(float[] mat){
          Matrix.multiplyMV(values, 0, mat, 0, values, 0);
      }
  
      @Override
      public String toString() {
          return "MDVector3D{" +
                  "x=" + getX() +
                  ", y=" + getY() +
                  ", z=" + getZ() +
                  '}';
      }
  
      /** @return The euclidean length */
      public static float len (final float x, final float y, final float z) {
          return (float) Math.sqrt(x * x + y * y + z * z);
      }
  }
  