/******************************************************************************* * 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; /** * Parameters for {@link IStereoViewDelegate}s. * * @author Michael de Hoog (michael.dehoog@ga.gov.au) */ public interface StereoViewParameters { /** * @return Is stereo enabled? */ boolean isStereoEnabled(); /** * Toggle stereo on/off. * * @param stereoEnabled */ void setStereoEnabled(boolean stereoEnabled); /** * @return Asymmetric frustum focal length for this view. */ double getFocalLength(); /** * Set the asymmetric frustum focal length for this view; ignored if dynamic * stereo is enabled. * * @param focalLength */ void setFocalLength(double focalLength); /** * @return Eye separation for this view. */ double getEyeSeparation(); /** * Set the eye separation for this view; ignored if dynamic stereo is * enabled. * * @param eyeSeparation */ void setEyeSeparation(double eyeSeparation); /** * @return Eye separation multiplier applied to the eye separation in the * dynamic stereo mode. */ double getEyeSeparationMultiplier(); /** * Set the eye separation multiplier applied to the eye separation in the * dynamic stereo mode. * * @param eyeSeparationMultiplier */ void setEyeSeparationMultiplier(double eyeSeparationMultiplier); /** * @return Is this view calculating stereo parameters (focal length and eye * separation) dynamically according to zoom and pitch? */ boolean isDynamicStereo(); /** * Enable/disable dynamic calculation of stereo parameters (focal length and * eye separation) according to zoom and pitch. * * @param dynamicStereo */ void setDynamicStereo(boolean dynamicStereo); /** * @return Mode to use for stereo rendering. */ StereoMode getStereoMode(); /** * Set the mode to use for stereo rendering. * * @param stereoMode */ void setStereoMode(StereoMode stereoMode); /** * @return Should the eyes be swapped? */ boolean isSwapEyes(); /** * Turn stereo eye swapping on/off. */ void setSwapEyes(boolean swapEyes); }