content: package com.gamatechno.vrlib;
  
  import android.opengl.Matrix;
  
  /**
   * Created by hzqiujiadi on 16/3/13.
   * hzqiujiadi ashqalcn@gmail.com
   */
  public abstract class MD360DirectorFactory {
      abstract public MD360Director createDirector(int index);
  
      public static class DefaultImpl extends MD360DirectorFactory {
          @Override
          public MD360Director createDirector(int index) {
              switch (index){
                  // case 1:   return MD360Director.builder().setEyeX(-2.0f).setLookX(-2.0f).build();
                  default:  return MD360Director.builder().build();
              }
          }
      }
  
      public static class OrthogonalImpl extends MD360DirectorFactory {
  
          @Override
          public MD360Director createDirector(int index) {
              switch (index){
                  default:  return new OrthogonalDirector(new MD360Director.Builder());
              }
          }
      }
  
  
      private static class OrthogonalDirector extends MD360Director {
  
          private OrthogonalDirector(Builder builder) {
              super(builder);
          }
  
          @Override
          public void setDeltaX(float mDeltaX) {
              // nop
          }
  
          @Override
          public void setDeltaY(float mDeltaY) {
              // nop
          }
  
          @Override
          public void updateSensorMatrix(float[] sensorMatrix) {
              // nop
          }
  
          @Override
          protected void updateProjection(){
              final float left = - 1f;
              final float right = 1f;
              final float bottom = - 1f;
              final float top = 1f;
              final float far = 500;
              Matrix.orthoM(getProjectionMatrix(), 0, left, right, bottom, top, getNear(), far);
          }
      }
  
  }
  