package com.asha.vrlib.strategy.projection;
import android.app.Activity;
import com.asha.vrlib.MD360Director;
import com.asha.vrlib.MD360DirectorFactory;
import com.asha.vrlib.common.MDDirection;
import com.asha.vrlib.model.MDMainPluginBuilder;
import com.asha.vrlib.model.MDPosition;
import com.asha.vrlib.objects.MDAbsObject3D;
import com.asha.vrlib.objects.MDObject3DHelper;
import com.asha.vrlib.objects.MDStereoSphere3D;
import com.asha.vrlib.plugins.MDAbsPlugin;
import com.asha.vrlib.plugins.MDPanoramaPlugin;
/**
* Created by hzqiujiadi on 16/6/26.
* hzqiujiadi ashqalcn@gmail.com
*/
public class StereoSphereProjection extends AbsProjectionStrategy {
private static class FixedDirectorFactory extends MD360DirectorFactory{
@Override
public MD360Director createDirector(int index) {
return MD360Director.builder().build();
}
}
private MDDirection direction;
private MDAbsObject3D object3D;
public StereoSphereProjection(MDDirection direction) {
this.direction = direction;
}
@Override
public void turnOnInGL(Activity activity) {
object3D = new MDStereoSphere3D(direction);
MDObject3DHelper.loadObj(activity, object3D);
}
@Override
public void turnOffInGL(Activity activity) {
}
@Override
public boolean isSupport(Activity activity) {
return true;
}
@Override
public MDAbsObject3D getObject3D() {
return object3D;
}
@Override
public MDPosition getModelPosition() {
return MDPosition.getOriginalPosition();
}
@Override
protected MD360DirectorFactory hijackDirectorFactory() {
return new FixedDirectorFactory();
}
@Override
public MDAbsPlugin buildMainPlugin(MDMainPluginBuilder builder) {
return new MDPanoramaPlugin(builder);
}
}