FileDocCategorySizeDatePackage
Layer.javaAPI DocAndroid 1.5 API2436Wed May 06 22:41:08 BST 2009com.example.android.apis.graphics.kube

Layer

public class Layer extends Object

Fields Summary
GLShape[]
mShapes
M4
mTransform
int
mAxis
public static final int
kAxisX
public static final int
kAxisY
public static final int
kAxisZ
Constructors Summary
public Layer(int axis)

		// start with identity matrix for transformation
		mAxis = axis;
		mTransform.setIdentity();
	
Methods Summary
public voidendAnimation()

		for (int i = 0; i < mShapes.length; i++) {
			GLShape shape = mShapes[i];
			if (shape != null) {
				shape.endAnimation();
			}	
		}
	
public voidsetAngle(float angle)

		// normalize the angle
		float twopi = (float)Math.PI *2f;
		while (angle >= twopi) angle -= twopi;
		while (angle < 0f) angle += twopi;
//		mAngle = angle;
		
		float sin = (float)Math.sin(angle);
		float cos = (float)Math.cos(angle);
		
		float[][] m = mTransform.m;
		switch (mAxis) {
			case kAxisX:
				m[1][1] = cos;
				m[1][2] = sin;
				m[2][1] = -sin;
				m[2][2] = cos;
				m[0][0] = 1f;
				m[0][1] = m[0][2] = m[1][0] = m[2][0] = 0f;
				break;
			case kAxisY:
				m[0][0] = cos;
				m[0][2] = sin;
				m[2][0] = -sin;
				m[2][2] = cos;
				m[1][1] = 1f;
				m[0][1] = m[1][0] = m[1][2] = m[2][1] = 0f;
				break;
			case kAxisZ:
				m[0][0] = cos;
				m[0][1] = sin;
				m[1][0] = -sin;
				m[1][1] = cos;
				m[2][2] = 1f;
				m[2][0] = m[2][1] = m[0][2] = m[1][2] = 0f;
				break;
		}
		
		for (int i = 0; i < mShapes.length; i++) {
			GLShape shape = mShapes[i];
			if (shape != null) {
				shape.animateTransform(mTransform);
			}
		}
	
public voidstartAnimation()

		for (int i = 0; i < mShapes.length; i++) {
			GLShape shape = mShapes[i];
			if (shape != null) {
				shape.startAnimation();
			}	
		}