Methods Summary |
---|
private void | ensureRenderScript()
if (mRS == null) {
RenderScriptGL.SurfaceConfig sc = new RenderScriptGL.SurfaceConfig();
sc.setDepth(16, 24);
mRS = createRenderScriptGL(sc);
mRender = new SimpleModelRS();
mRender.init(mRS, getResources());
}
|
public void | loadA3DFile(java.lang.String path)
mRender.loadA3DFile(path);
|
public void | onAccuracyChanged(android.hardware.Sensor sensor, int accuracy)
|
protected void | onAttachedToWindow()
super.onAttachedToWindow();
ensureRenderScript();
|
protected void | onDetachedFromWindow()
mRender = null;
if (mRS != null) {
mRS = null;
destroyRenderScriptGL();
}
|
public void | onSensorChanged(android.hardware.SensorEvent event)
// we received a sensor event. it is a good practice to check
// that we received the proper event
if (mUseSensor) {
if (event.sensor.getType() == Sensor.TYPE_ROTATION_VECTOR) {
// convert the rotation-vector to a 4x4 matrix. the matrix
// is interpreted by Open GL as the inverse of the
// rotation-vector, which is what we want.
SensorManager.getRotationMatrixFromVector(
mRotationMatrix , event.values);
if (mRender != null) {
mRender.onPostureChanged(new Matrix4f(mRotationMatrix));
}
}
}
|
public boolean | onTouchEvent(android.view.MotionEvent ev)
mScaleDetector.onTouchEvent(ev);
boolean ret = false;
float x = ev.getX();
float y = ev.getY();
final int action = ev.getAction();
switch (action & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN: {
mRender.onActionDown(x, y);
mActivePointerId = ev.getPointerId(0);
ret = true;
break;
}
case MotionEvent.ACTION_MOVE: {
if (!mScaleDetector.isInProgress()) {
mRender.onActionMove(x, y);
}
mRender.onActionDown(x, y);
ret = true;
break;
}
case MotionEvent.ACTION_UP: {
mActivePointerId = INVALID_POINTER_ID;
break;
}
case MotionEvent.ACTION_CANCEL: {
mActivePointerId = INVALID_POINTER_ID;
break;
}
case MotionEvent.ACTION_POINTER_UP: {
final int pointerIndex = (ev.getAction() & MotionEvent.ACTION_POINTER_INDEX_MASK)
>> MotionEvent.ACTION_POINTER_INDEX_SHIFT;
final int pointerId = ev.getPointerId(pointerIndex);
if (pointerId == mActivePointerId) {
// This was our active pointer going up. Choose a new
// active pointer and adjust accordingly.
final int newPointerIndex = pointerIndex == 0 ? 1 : 0;
x = ev.getX(newPointerIndex);
y = ev.getY(newPointerIndex);
mRender.onActionDown(x, y);
mActivePointerId = ev.getPointerId(newPointerIndex);
}
break;
}
}
return ret;
|
public void | pause()
mSensorManager.unregisterListener(this);
|
public void | resume()
mSensorManager.registerListener(this, mRotationVectorSensor, 10000);
|
public void | surfaceChanged(android.view.SurfaceHolder holder, int format, int w, int h)
super.surfaceChanged(holder, format, w, h);
mRender.surfaceChanged();
|
public void | toggleSensor()
mUseSensor = !mUseSensor;
if (mUseSensor == false) {
mRender.onPostureChanged(mIdentityMatrix);
}
|