/* * #%L * ===================================================== * _____ _ ____ _ _ _ _ * |_ _|_ __ _ _ ___| |_ / __ \| | | | ___ | | | | * | | | '__| | | / __| __|/ / _` | |_| |/ __|| |_| | * | | | | | |_| \__ \ |_| | (_| | _ |\__ \| _ | * |_| |_| \__,_|___/\__|\ \__,_|_| |_||___/|_| |_| * \____/ * * ===================================================== * * Hochschule Hannover * (University of Applied Sciences and Arts, Hannover) * Faculty IV, Dept. of Computer Science * Ricklinger Stadtweg 118, 30459 Hannover, Germany * * Email: trust@f4-i.fh-hannover.de * Website: http://trust.f4.hs-hannover.de/ * * This file is part of visitmeta-visualization, version 0.6.0, * implemented by the Trust@HsH research group at the Hochschule Hannover. * %% * Copyright (C) 2012 - 2016 Trust@HsH * %% * 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. * #L% */ package de.hshannover.f4.trust.visitmeta.input.gui; /** * Interface that defines methods to transfer incoming input information to * the rendering components (controls virtual cameras etc.). * * @author Bastian Hellmann * @author Oleg Wetzler */ public interface MotionController { /** * Tell the rendering component to hide its content. */ public void makeInvisible(); /** * Tell the rendering component to repaint its content. */ public void repaint(); /** * Move the virtual camera of the rendering component (in 2D coordinates). * * @param x units in x direction to move the camery by * @param y units in y direction to move the camery by */ public void moveCamera(double x, double y); /** * Move the virtual camera of the rendering component (in 3D coordinates). * * @param x units in x direction to move the camery by * @param y units in y direction to move the camery by * @param z units in z direction to move the camery by */ public void moveCamera(double x, double y, double z); /** * Directly set the camera to a position (in 2D coordinates). * * @param x the new x position for the camera * @param y the new y position for the camera */ public void setCameraPosition(double x, double y); /** * Directly set the camera to a position (in 3D coordinates). * * @param x the new x position for the camera * @param y the new y position for the camera * @param z the new z position for the camera */ public void setCameraPositon(double x, double y, double z); /** * Directly set the camera rotation (in 3D coordinates). * * @param x the degree of rotation in x axis * @param y the degree of rotation in y axis * @param z the degree of rotation in z axis */ public void setCameraRotation(double x, double y, double z); /** * Set the position of the virtual mouse cursor (in 2D coordinates). * * @param x the new x position of the mouse cursor * @param y the new y position of the mouse cursor * @param z the new z position of the mouse cursor */ public void setCursorPosition(double x, double y, double z); /** * Zooms the virtual camera. * * @param z zoom factor; values between -1.0 and 1.0 (both included) are * allowed; * <ul> * <li> -1.0 means zooming out with maximum speed * <li> 0.0 means no zooming at all (should be handled by calling class directly) * <li> 1.0 means zooming in with maximum speed * </ul> */ public void zoom(double z); }