/******************************************************************************* * Copyright 2012 Geoscience Australia * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. ******************************************************************************/ package au.gov.ga.earthsci.worldwind.common.view.stereo; import gov.nasa.worldwind.geom.Angle; import gov.nasa.worldwind.geom.Matrix; import gov.nasa.worldwind.render.DrawContext; import au.gov.ga.earthsci.worldwind.common.render.DrawableSceneController; import au.gov.ga.earthsci.worldwind.common.view.delegate.IDelegateView; /** * Orbit view with {@link IStereoViewDelegate} support. * * @author Michael de Hoog (michael.dehoog@ga.gov.au) */ public class StereoViewDelegate implements IStereoViewDelegate { private StereoViewHelper helper = new StereoViewHelper(); @Override public void setup(boolean stereo, Eye eye) { helper.setup(stereo, eye); } @Override public boolean isStereo() { return helper.isStereo(); } @Override public Eye getEye() { return helper.getEye(); } @Override public StereoViewParameters getParameters() { return helper.getParameters(); } @Override public void setParameters(StereoViewParameters parameters) { helper.setParameters(parameters); } @Override public double getCurrentFocalLength() { return helper.getCurrentFocalLength(); } @Override public double getCurrentEyeSeparation() { return helper.getCurrentEyeSeparation(); } @Override public void installed(IDelegateView view) { } @Override public void uninstalled(IDelegateView view) { } @Override public void beforeComputeMatrices(IDelegateView view) { helper.beforeComputeMatrices(view); } @Override public Matrix computeModelView(IDelegateView view) { Matrix matrix = view.computeModelView(); return helper.transformModelView(matrix); } @Override public Matrix getPretransformedModelView(IDelegateView view) { return view.getPretransformedModelView(); } @Override public Matrix computeProjection(IDelegateView view, Angle horizontalFieldOfView, double nearDistance, double farDistance) { return helper.computeProjection(view, horizontalFieldOfView, nearDistance, farDistance); } @Override public void pick(IDelegateView view, DrawContext dc, DrawableSceneController sc) { view.pick(dc, sc); } @Override public void draw(IDelegateView view, DrawContext dc, DrawableSceneController sc) { helper.draw(dc, sc); } @Override public boolean isTranslateAbsAllowed() { return true; } }