List of usage examples for org.apache.commons.math3.geometry.euclidean.threed Vector3D getX
public double getX()
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)); }