package com.asha.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);
}
}
}