git-svn-id: http://wiiusej.googlecode.com/svn/trunk@78 ae48ae66-6a45-0410-b38e-211266189506
195 lines
5.1 KiB
Java
195 lines
5.1 KiB
Java
/**
|
|
* This file is part of WiiuseJ.
|
|
*
|
|
* WiiuseJ 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.
|
|
*
|
|
* WiiuseJ 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 WiiuseJ. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
package wiiusej.wiiuseapievents;
|
|
|
|
import wiiusej.values.GForce;
|
|
import wiiusej.values.Orientation;
|
|
import wiiusej.values.RawAcceleration;
|
|
|
|
/**
|
|
* Class which represents a motion sensing event.
|
|
*
|
|
* @author guiguito
|
|
*/
|
|
public class MotionSensingEvent extends WiimoteEvent {
|
|
|
|
/* Motion Sensing */
|
|
private Orientation orientation;
|
|
private GForce gforce;
|
|
private RawAcceleration acceleration;
|
|
|
|
private float orientationThreshold = 0;
|
|
private int accelerationThreshold = 0;
|
|
private float alphaSmoothing = 0;
|
|
private boolean isSmoothingActive = false;
|
|
|
|
/**
|
|
* Constructor for a Motion Sensing Event.
|
|
*
|
|
* @param id
|
|
* id of the wiimote concerned.
|
|
* @param orientationThreshold
|
|
* value of the minimum angle between two events with the
|
|
* accelerometer
|
|
* @param accelerationThreshold
|
|
* value of the value variation between two events with the
|
|
* accelerometer
|
|
* @param smoothingState
|
|
* true if smoothing flag is activated
|
|
* @param alphaSmooth
|
|
* value of the alpha smoothing parameter
|
|
* @param r
|
|
* roll
|
|
* @param p
|
|
* pitch
|
|
* @param ya
|
|
* yaw
|
|
* @param x
|
|
* gravity force on x axis
|
|
* @param y
|
|
* gravity force on y axis
|
|
* @param z
|
|
* gravity force on z axis
|
|
* @param xx
|
|
* raw acceleration on x axis
|
|
* @param yy
|
|
* raw acceleration on y axis
|
|
* @param zz
|
|
* raw acceleration on z axis
|
|
*/
|
|
public MotionSensingEvent(int id, float orientationThreshold,
|
|
int accelerationThreshold, boolean smoothingState,
|
|
float alphaSmooth, float r, float p, float ya, float x, float y,
|
|
float z, short xx, short yy, short zz) {
|
|
super(id);
|
|
this.orientationThreshold = orientationThreshold;
|
|
this.accelerationThreshold = accelerationThreshold;
|
|
this.isSmoothingActive = smoothingState;
|
|
this.alphaSmoothing = alphaSmooth;
|
|
setOrientationAndGforce(r, p, ya, x, y, z, xx, yy, zz);
|
|
}
|
|
|
|
/**
|
|
* Set orientation, gravity force and raw acceleration.
|
|
*
|
|
* @param r
|
|
* roll
|
|
* @param p
|
|
* pitch
|
|
* @param ya
|
|
* yaw
|
|
* @param x
|
|
* gravity force on x axis
|
|
* @param y
|
|
* gravity force on y axis
|
|
* @param z
|
|
* gravity force on z axis
|
|
* @param xx
|
|
* raw acceleration on x axis
|
|
* @param yy
|
|
* raw acceleration on y axis
|
|
* @param zz
|
|
* raw acceleration on z axis
|
|
*/
|
|
private void setOrientationAndGforce(float r, float p, float ya, float x,
|
|
float y, float z, short xx, short yy, short zz) {
|
|
this.orientation = new Orientation(r, p, ya);
|
|
this.gforce = new GForce(x, y, z);
|
|
this.acceleration = new RawAcceleration(xx, yy, zz);
|
|
}
|
|
|
|
/**
|
|
* @return the orientation
|
|
*/
|
|
public Orientation getOrientation() {
|
|
return orientation;
|
|
}
|
|
|
|
/**
|
|
* Get the gravity force.
|
|
*
|
|
* @return the gforce
|
|
*/
|
|
public GForce getGforce() {
|
|
return gforce;
|
|
}
|
|
|
|
/**
|
|
* Get the raw acceleration.
|
|
*
|
|
* @return the raw acceleration
|
|
*/
|
|
public RawAcceleration getRawAcceleration() {
|
|
return acceleration;
|
|
}
|
|
|
|
/**
|
|
* Get orientation threshold.
|
|
*
|
|
* @return the orientationThreshold
|
|
*/
|
|
public float getOrientationThreshold() {
|
|
return orientationThreshold;
|
|
}
|
|
|
|
/**
|
|
* Get acceleration threshold.
|
|
*
|
|
* @return the accelerationThreshold
|
|
*/
|
|
public int getAccelerationThreshold() {
|
|
return accelerationThreshold;
|
|
}
|
|
|
|
/**
|
|
* Get alpha smoothing.
|
|
*
|
|
* @return the alphaSmoothing
|
|
*/
|
|
public float getAlphaSmoothing() {
|
|
return alphaSmoothing;
|
|
}
|
|
|
|
/**
|
|
* Tell if the option SMOOTHING is activated.
|
|
*
|
|
* @return the isSmoothingActive
|
|
*/
|
|
public boolean isSmoothingActive() {
|
|
return isSmoothingActive;
|
|
}
|
|
|
|
@Override
|
|
public String toString() {
|
|
String out = "";
|
|
/* Motion sensing */
|
|
out += "/******** Motion sensing ********/\n";
|
|
out += "--- Motion sensing : true \n";
|
|
out += "--- Orientation threshold value ? : " + orientationThreshold
|
|
+ "\n";
|
|
out += "--- Acceleration threshold value ? : " + accelerationThreshold
|
|
+ "\n";
|
|
out += "--- Alpha smoothing threshold value ? : " + alphaSmoothing
|
|
+ "\n";
|
|
out += "--- Smoothing ? : " + isSmoothingActive + "\n";
|
|
out += "--- " + orientation + "\n";
|
|
out += "--- " + gforce + "\n";
|
|
out += "--- " + acceleration + "\n";
|
|
return out;
|
|
}
|
|
}
|