Package org.mt4j.input.inputData

Source Code of org.mt4j.input.inputData.AbstractCursorInputEvt

/***********************************************************************
* mt4j Copyright (c) 2008 - 2009 C.Ruff, Fraunhofer-Gesellschaft All rights reserved.
*   This program is free software: you can redistribute it and/or modify
*   it under the terms of the GNU General Public License as published by
*   the Free Software Foundation, either version 3 of the License, or
*   (at your option) any later version.
*
*   This program is distributed in the hope that it will be useful,
*   but WITHOUT ANY WARRANTY; without even the implied warranty of
*   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
*   GNU General Public License for more details.
*
*   You should have received a copy of the GNU General Public License
*   along with this program.  If not, see <http://www.gnu.org/licenses/>.
*
***********************************************************************/
package org.mt4j.input.inputData;

import org.mt4j.components.interfaces.IMTComponent3D;
import org.mt4j.input.inputSources.AbstractInputSource;
import org.mt4j.util.math.Vector3D;


/**
* This event class is used for
* input events that have position data associated with them. This applies
* for mouse input, finger or fiducial input for example. Also associated
* with this event is a InputMotion object, which contains information about the
* input over time and is a container for all input events during this time.
*
* @author Christopher Ruff
*/
public abstract class AbstractCursorInputEvt extends MTInputEvent {
 
//  public enum InputState{
//    INPUT_DETECTED,
//    INPUT_UPDATED,
//    INPUT_ENDED
//  }
 
  public static final int INPUT_DETECTED = 0;
 
  public static final int INPUT_UPDATED = 1;
 
  public static final int INPUT_ENDED = 2;

  /** The position x. */
  private float positionX;
 
  /** The position y. */
  private float positionY;
 
  /** The id. */
  private int id;
 
  /** The associated cursor. */
  private InputCursor associatedCursor;
 
  /**
   * Instantiates a new touch event.
   *
   * @param source the source
   * @param positionX the position x
   * @param positionY the position y
   * @param id the id
   * @param m the m
   */
  public AbstractCursorInputEvt(AbstractInputSource source, float positionX, float positionY, int id, InputCursor m) {
    super(source);
    this.id = id;
   
    this.positionX = positionX;
    this.positionY = positionY;
   
    this.associatedCursor = m;
  }
 
  /**
   * Instantiates a new touch event.
   *
   * @param source the source
   * @param positionX the position x
   * @param positionY the position y
   * @param id the id
   * @param m the m
   * @param target the target
   */
  public AbstractCursorInputEvt(AbstractInputSource source, IMTComponent3D target, float positionX, float positionY, int id, InputCursor m) {
    super(source, target);
    this.id = id;
   
    this.positionX = positionX;
    this.positionY = positionY;
   
    this.associatedCursor = m;
  }
 
 
  public void setId(int id){
    this.id = id;
  }
 

 
  /**
   * Gets the cursor.
   *
   * @return the cursor
   */
  public InputCursor getCursor() {
    return this.associatedCursor;
  }


  public void setCursor(InputCursor associatedcursor) {
    this.associatedCursor = associatedcursor;
  }
   

  /**
   * This method should be called before firing this event to the global input processors.
   * Here, the event is added to its cursor.
   */
  @Override
  public void preFire() {
    super.preFire();
    if (this.getCursor() != null){
      this.getCursor().addEvent(this);
    }else{
//      System.out.println("couldnt add event to cursor - cursor null");
    }
  }

 
  /**
   * Gets the position x.
   *
   * @return the position x
   */
  public float getPosX() {
    return positionX;
  }

 
  /**
   * Gets the position y.
   *
   * @return the position y
   */
  public float getPosY() {
    return positionY;
  }
 
 
  /**
   * Gets the position.
   *
   * @return the position
   */
  public Vector3D getPosition(){
    return new Vector3D(positionX, positionY, 0);
  }
 
 
  public void setPositionX(float positionX) {
    this.positionX = positionX;
  }

  public void setPositionY(float positionY) {
    this.positionY = positionY;
  }

  /**
   * Gets the id.
   *
   * @return the id
   */
  public int getId() {
    return id;
  }


  /* (non-Javadoc)
   * @see java.lang.Object#toString()
   */
  public String toString(){
    return new String(super.toString() + "; " + " PosX: " + positionX + " PosY: " + positionY + " InputSource: " + this.getSource());
  }
 
 

  @Override
  abstract public Object clone() throws CloneNotSupportedException;
 
 
 
  /*
  abstract public Inputcursor<? extends MTConcretePositionEvt> getcursor();

 
  abstract public float getPositionX();

  abstract public float getPositionY();
 
  abstract public boolean isAddedTocursor();
 
  abstract public void setAddedTocursor(boolean addedTocursor);
  */
 
}
 
TOP

Related Classes of org.mt4j.input.inputData.AbstractCursorInputEvt

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.