package com.android.droidgraph.fx;
import javax.microedition.khronos.opengles.GL10;
import com.android.droidgraph.scene.SGGroup;
import com.android.droidgraph.scene.SGTransform;
import com.android.droidgraph.vecmath.Vector3f;
public class FXGroup extends SGGroup{
private SGTransform.Translate translate;
private float translateX = 0;
private float translateY = 0;
private float translateZ = 0;
private SGTransform.Rotate rotate;
private float rotateX = 0;
private float rotateY = 0;
private float rotateZ = 0;
private SGTransform.Scale scale;
private float scaleX = 1;
private float scaleY = 1;
private float scaleZ = 1;
public FXGroup() {
translate = SGTransform.createTranslation(0, 0, 0, this);
rotate = SGTransform.createRotation(0, 0, 0, this);
scale = SGTransform.createScale(1, 1, 1, this);
}
/*
* getters and setters
*
* translation
*/
public float getTranslateX() {
return translate.getTranslateX();
}
public float getTranslateY() {
return translate.getTranslateY();
}
public float getTranslateZ() {
return translate.getTranslateZ();
}
public void setTranslateX(float tx) {
translateX = tx;
translate.setTranslateX(tx);
}
public void setTranslateY(float ty) {
translateY = ty;
translate.setTranslateY(ty);
}
public void setTranslateZ(float tz) {
translateZ = tz;
translate.setTranslateZ(tz);
}
public void setTranslation(float tx, float ty, float tz) {
translateX = tx;
translateY = ty;
translateZ = tz;
translate.setTranslation(tx, ty, tz);
}
public void translateBy(float tx, float ty, float tz) {
setTranslation(translateX += tx, translateY += ty, translateZ += tz);
}
/*
* rotation
*/
public Vector3f getRotation() {
return rotate.getRotation();
}
public float getRotationX() {
return rotate.getRotationX();
}
public float getRotationY() {
return rotate.getRotationY();
}
public float getRotationZ() {
return rotate.getRotationZ();
}
public void setRotation(float thetax, float thetay, float thetaz) {
rotate.setRotation(thetax, thetay, thetaz);
rotateX = thetax;
rotateY = thetay;
rotateZ = thetaz;
}
public void setRotateX(float rx) {
rotateX = rx;
rotate.setRotation(rotateX, rotateY, rotateZ);
}
public void setRotateY(float ry) {
rotateY = ry;
rotate.setRotation(rotateX, rotateY, rotateZ);
}
public void setRotateZ(float rz) {
rotateZ = rz;
rotate.setRotation(rotateX, rotateY, rotateZ);
}
public void rotateBy(Vector3f v) {
setRotation(rotateX += v.x, rotateY += v.y, rotateZ += v.z);
}
public void rotateXBy(float thetax) {
setRotateX(rotateX += thetax);
}
public void rotateYBy(float thetay) {
setRotateY(rotateY += thetay);
}
public void rotateZBy(float thetaz) {
setRotateZ(rotateZ += thetaz);
}
/*
* scale
*/
public float getScaleX() {
return scale.getScaleX();
}
public float getScaleY() {
return scale.getScaleY();
}
public float getScaleZ() {
return scale.getScaleZ();
}
public void setScaleX(float sx) {
scale.setScaleX(sx);
}
public void setScaleY(float sy) {
scale.setScaleY(sy);
}
public void setScaleZ(float sz) {
scale.setScaleZ(sz);
}
public void setScale(float sx, float sy, float sz) {
scale.setScale(sx, sy, sz);
}
public void scaleBy(float sx, float sy, float sz) {
setScale(scaleX += sx, scaleY += sy, scaleZ += sz);
}
}