Example usage for org.apache.commons.math3.geometry.euclidean.threed Vector3D getX

List of usage examples for org.apache.commons.math3.geometry.euclidean.threed Vector3D getX

Introduction

In this page you can find the example usage for org.apache.commons.math3.geometry.euclidean.threed Vector3D getX.

Prototype

public double getX() 

Source Link

Document

Get the abscissa of the vector.

Usage

From source file:org.gearvrf.controls.model.Apple.java

public void setAppleRandomPosition(GVRContext context) {

    float angle = (float) Math.random() * 360;
    float distance = (float) (Math.random()
            * (Constants.MAX_APPLE_DISTANCE - (Constants.MAX_APPLE_DISTANCE - Constants.MIN_APPLE_DISTANCE))
            + Constants.MIN_APPLE_DISTANCE);
    this.getTransform().setPositionZ(distance);
    this.getTransform().rotateByAxisWithPivot(angle, 0, 1, 0, 0, 0, 0);

    Vector3D instanceApple = new Vector3D(this.getTransform().getPositionX(),
            this.getTransform().getPositionY(), this.getTransform().getPositionZ());
    if (!checkValidPosition(instanceApple)) {
        setAppleRandomPosition(context);

    } else {//from   www .j  a va  2s.  co  m
        if (!appleList.contains(this)) {
            addApple(this);
            shadow.getTransform().setPosition((float) instanceApple.getX(), -0.9999f,
                    (float) instanceApple.getZ());
            getGVRContext().getMainScene().addSceneObject(shadow);
        }
    }
}

From source file:org.gearvrf.controls.model.Apple.java

private Vector3D setNewApplePosition(GVRContext context, float angle, float distance) {
    float[] vecDistance = context.getMainScene().getMainCameraRig().getLookAt();

    if (vecDistance[1] > CAMERA_DIRECTION_THREASHOLD || vecDistance[1] < -CAMERA_DIRECTION_THREASHOLD) {
        setAppleRandomPosition(context);
        return null;
    }//www . jav a  2s .c  om

    vecDistance[0] *= distance;
    vecDistance[2] *= distance;
    Vector3D instanceApple = new Vector3D(vecDistance[0], 0, vecDistance[2]);
    instanceApple.normalize();
    this.getTransform().setPositionX((float) instanceApple.getX());
    this.getTransform().setPositionZ((float) instanceApple.getZ());
    this.getTransform().rotateByAxisWithPivot(angle, 0, 1, 0, 0, 0, 0);
    instanceApple = new Vector3D(this.getTransform().getPositionX(), this.getTransform().getPositionY(),
            this.getTransform().getPositionZ());
    shadow.getTransform().setPosition((float) instanceApple.getX(), -0.9999f, (float) instanceApple.getZ());
    shadow.getTransform().setScale(1, 1, 1);
    return instanceApple;
}

From source file:org.gearvrf.keyboard.model.SphereFlag.java

public void moveToCursor() {
    if (followCursorAnimation != null) {
        getGVRContext().getAnimationEngine().stop(followCursorAnimation);
    }//from   w  ww  .  j  a va 2s . com
    GVRCameraRig cameraObject = getGVRContext().getMainScene().getMainCameraRig();

    float desiredDistance = (float) Math.max(0.7 * Util.distance(getParent(), cameraObject.getTransform()),
            Constants.MINIMUM_DISTANCE_FROM_CAMERA);
    float[] lookAt = getGVRContext().getMainScene().getMainCameraRig().getLookAt();
    Vector3D lookAtVector = new Vector3D(lookAt[0], lookAt[1], lookAt[2]);

    final float desiredX = (float) lookAtVector.getX() * desiredDistance;
    final float desiredY = (float) lookAtVector.getY() * desiredDistance + CURSOR_POSITION_OFFSET_Y;
    final float desiredZ = (float) lookAtVector.getZ() * desiredDistance;

    float x = desiredX - getParent().getTransform().getPositionX();
    float y = desiredY - getParent().getTransform().getPositionY();
    float z = desiredZ - getParent().getTransform().getPositionZ();

    followCursorAnimation = new GVRRelativeMotionAnimation(getParent(), 0.8f, x, y, z)
            .setInterpolator(new InterpolatorExpoEaseOut()).start(getGVRContext().getAnimationEngine());
}

From source file:org.gearvrf.keyboard.model.SphereStaticList.java

private void getSpheres(GVRContext gvrContext, int array) {
    listFlag = new ArrayList<GVRSceneObject>();
    Resources res = gvrContext.getContext().getResources();
    TypedArray spheres = res.obtainTypedArray(array);

    for (int i = 0; i < spheres.length(); i++) {
        int type = spheres.getResourceId(i, -1);
        TypedArray sphere = res.obtainTypedArray(type);
        SphereFlag objectSphere = new SphereFlag(gvrContext, sphere);
        Vector3D parentPosition = objectSphere.getInitialPositionVector();

        GVRSceneObject parent = new GVRSceneObject(gvrContext,
                new GVRAndroidResource(gvrContext, R.drawable.hit_area_half),
                new GVRAndroidResource(gvrContext, R.raw.empty));
        parent.setName(SceneObjectNames.SPHERE_FLAG_PARENT);
        parent.getTransform().setPosition((float) parentPosition.getX(), (float) parentPosition.getY(),
                (float) parentPosition.getZ());
        parent.addChildObject(objectSphere);
        listFlag.add(parent);//from  www. jav a 2 s. c om
    }
}

From source file:org.gearvrf.keyboard.util.Util.java

public static float getYRotationAngle(Vector3D rotatingVector, GVRSceneObject targetObject) {
    return (float) Math.toDegrees(Math.atan2(targetObject.getTransform().getPositionX() - rotatingVector.getX(),
            targetObject.getTransform().getPositionZ() - rotatingVector.getZ()));
}

From source file:org.gearvrf.keyboard.util.Util.java

public static float getYRotationAngle(Vector3D rotatingVector, Vector3D targetObject) {
    return (float) Math.toDegrees(Math.atan2(targetObject.getX() - rotatingVector.getX(),
            targetObject.getZ() - rotatingVector.getZ()));
}

From source file:org.gearvrf.keyboard.util.Util.java

public static float[] calculatePointBetweenTwoObjects(GVRSceneObject object, Vector3D vector,
        float desiredDistance) {
    float[] point = new float[3];
    float ratio = desiredDistance / (float) distance(vector, object);
    point[0] = (1 - ratio) * object.getTransform().getPositionX() + (ratio) * (float) vector.getX();
    point[1] = (1 - ratio) * object.getTransform().getPositionY() + (ratio) * (float) vector.getY();
    point[2] = (1 - ratio) * object.getTransform().getPositionZ() + (ratio) * (float) vector.getZ();

    return point;
}

From source file:org.gearvrf.keyboard.util.Util.java

public static float[] calculatePointBetweenTwoObjects(GVRTransform object, Vector3D vector,
        float desiredDistance) {
    float[] point = new float[3];
    float ratio = desiredDistance / (float) distance(vector, object);
    point[0] = (1 - ratio) * object.getPositionX() + (ratio) * (float) vector.getX();
    point[1] = (1 - ratio) * object.getPositionY() + (ratio) * (float) vector.getY();
    point[2] = (1 - ratio) * object.getPositionZ() + (ratio) * (float) vector.getZ();

    return point;
}

From source file:org.gearvrf.keyboard.util.Util.java

public static double distance(Vector3D vector, GVRSceneObject object) {
    return Math.sqrt(Math.pow(vector.getX() - object.getTransform().getPositionX(), 2)
            + Math.pow(vector.getY() - object.getTransform().getPositionY(), 2)
            + Math.pow(vector.getZ() - object.getTransform().getPositionZ(), 2));

}

From source file:org.gearvrf.keyboard.util.Util.java

public static double distance(Vector3D vector, GVRTransform object) {
    return Math.sqrt(Math.pow(vector.getX() - object.getPositionX(), 2)
            + Math.pow(vector.getY() - object.getPositionY(), 2)
            + Math.pow(vector.getZ() - object.getPositionZ(), 2));

}