⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 virtualinputdevice.java

📁 Java 3D Desktop Environment旨在使用Java 3D来创建一个3D桌面环境。功能包括:分布式的应用程序
💻 JAVA
字号:
package org.j3de.input;

import javax.media.j3d.InputDevice;
import javax.media.j3d.Sensor;import javax.media.j3d.SensorRead;import javax.media.j3d.Transform3D;

import javax.vecmath.Point3d;

public class VirtualInputDevice implements InputDevice {  
  private Sensor[] sensors;
  private InputDevice device;
  private boolean isActive;
  
  public VirtualInputDevice(InputDevice device, ActivationManager manager) {  
    this.isActive = true;
    this.device = device;
        this.sensors  = new Sensor[device.getSensorCount()];
    for (int i=0; i<device.getSensorCount(); i++)       sensors[i] = new VirtualSensor(device.getSensor(i));
    
    manager.addActivationListener(new ActivationListener() {
      public void setActivation(boolean isActive) {
        VirtualInputDevice.this.isActive = isActive;
      }
    });
 
  } 
  
  public boolean initialize() {  
    // the device should already have been initialized
    return true;
  }
  
  public void setNominalPositionAndOrientation() {
    // TODO implement 
  }
  
  public void pollAndProcessInput() {   
    if (isActive)       device.pollAndProcessInput();     

  }
  
  public void processStreamInput() {  
    // According to j3d documentation this should remain an empty method ...
  }
  
  public void close() {  
    // an Environment should not be able to close a device.
  }
  
  public int getProcessingMode() {                           
    return device.getProcessingMode();
  }
  
  public void setProcessingMode(int mode) {    
    // an Environment should not be able to set the Processing mode.
  }
  
  public int getSensorCount() {
    return sensors.length;
  }
  
  public Sensor getSensor(int sensorIndex) {  
    return sensors[sensorIndex];
  }
    private class VirtualSensor extends Sensor {    private Sensor originalSensor;    private long lasttime;           public VirtualSensor(Sensor originalSensor) {      super(VirtualInputDevice.this,             originalSensor.getSensorReadCount(),            originalSensor.getSensorButtonCount());      this.originalSensor = originalSensor;      this.lasttime = 0;    }    public int getPredictor() {      return originalSensor.getPredictor();    }    public int getPredictionPolicy() {      return originalSensor.getPredictionPolicy();    }    public void getHotspot(Point3d hotspot) {      originalSensor.getHotspot(hotspot);    }    public InputDevice getDevice() {      return VirtualInputDevice.this;    }        public void getRead(Transform3D read) {      if (isActive)        originalSensor.getRead(read);      else        read.setIdentity();    }        public void getRead(Transform3D read, long deltaT) {      if (isActive)        originalSensor.getRead(read, deltaT);      else        read.setIdentity();    }    public void lastRead(Transform3D read) {      if (isActive)        originalSensor.lastRead(read);      else        read.setIdentity();    }        public void lastRead(Transform3D read, int kth) {      if (isActive)        originalSensor.lastRead(read, kth);      else        read.setIdentity();    }    public long lastTime() {      if (isActive)        lasttime = originalSensor.lastTime();            return lasttime;    }    public long lastTime(int k) {      if (isActive)        lasttime = originalSensor.lastTime(k);            return lasttime;    }    public void lastButtons(int[] values) {      if (isActive)        originalSensor.lastButtons(values);              // TODO : insert values if not active    }        public void lastButtons(int k, int[] values) {      if (isActive)        originalSensor.lastButtons(k, values);      // TODO : insert values if not active        }    public SensorRead getCurrentSensorRead() {      if (isActive)        return originalSensor.getCurrentSensorRead();      else        return new SensorRead(getSensorButtonCount());    }  }} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -