Java Code Examples for com.jme3.scene.Spatial#getLocalRotation()
The following examples show how to use
com.jme3.scene.Spatial#getLocalRotation() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: AbstractPhysicsDebugControl.java From jmonkeyengine with BSD 3-Clause "New" or "Revised" License | 6 votes |
/** * Apply the specified location and orientation to the specified spatial. * * @param worldLocation location vector (in physics-space coordinates, not * null, unaffected) * @param worldRotation orientation (in physics-space coordinates, not null, * unaffected) * @param spatial where to apply (may be null) */ protected void applyPhysicsTransform(Vector3f worldLocation, Quaternion worldRotation, Spatial spatial) { if (spatial != null) { Vector3f localLocation = spatial.getLocalTranslation(); Quaternion localRotationQuat = spatial.getLocalRotation(); if (spatial.getParent() != null) { localLocation.set(worldLocation).subtractLocal(spatial.getParent().getWorldTranslation()); localLocation.divideLocal(spatial.getParent().getWorldScale()); tmp_inverseWorldRotation.set(spatial.getParent().getWorldRotation()).inverseLocal().multLocal(localLocation); localRotationQuat.set(worldRotation); tmp_inverseWorldRotation.set(spatial.getParent().getWorldRotation()).inverseLocal().mult(localRotationQuat, localRotationQuat); spatial.setLocalTranslation(localLocation); spatial.setLocalRotation(localRotationQuat); } else { spatial.setLocalTranslation(worldLocation); spatial.setLocalRotation(worldRotation); } } }
Example 2
Source File: RigidBodyMotionState.java From jmonkeyengine with BSD 3-Clause "New" or "Revised" License | 5 votes |
/** * If the motion state has been updated, apply the new transform to the * specified spatial. * * @param spatial where to apply the physics transform (not null, modified) * @return true if changed */ public boolean applyTransform(Spatial spatial) { Vector3f localLocation = spatial.getLocalTranslation(); Quaternion localRotationQuat = spatial.getLocalRotation(); boolean physicsLocationDirty = applyTransform(motionStateId, localLocation, localRotationQuat); if (!physicsLocationDirty) { return false; } if (!applyPhysicsLocal && spatial.getParent() != null) { localLocation.subtractLocal(spatial.getParent().getWorldTranslation()); localLocation.divideLocal(spatial.getParent().getWorldScale()); tmp_inverseWorldRotation.set(spatial.getParent().getWorldRotation()).inverseLocal().multLocal(localLocation); // localRotationQuat.set(worldRotationQuat); tmp_inverseWorldRotation.mult(localRotationQuat, localRotationQuat); spatial.setLocalTranslation(localLocation); spatial.setLocalRotation(localRotationQuat); } else { spatial.setLocalTranslation(localLocation); spatial.setLocalRotation(localRotationQuat); // spatial.setLocalTranslation(worldLocation); // spatial.setLocalRotation(worldRotationQuat); } if (vehicle != null) { vehicle.updateWheels(); } return true; }
Example 3
Source File: RigidBodyMotionState.java From MikuMikuStudio with BSD 2-Clause "Simplified" License | 5 votes |
/** * applies the current transform to the given jme Node if the location has been updated on the physics side * @param spatial */ public synchronized boolean applyTransform(Spatial spatial) { Vector3f localLocation = spatial.getLocalTranslation(); Quaternion localRotationQuat = spatial.getLocalRotation(); boolean physicsLocationDirty = applyTransform(motionStateId, localLocation, localRotationQuat); if (!physicsLocationDirty) { return false; } if (!applyPhysicsLocal && spatial.getParent() != null) { localLocation.subtractLocal(spatial.getParent().getWorldTranslation()); localLocation.divideLocal(spatial.getParent().getWorldScale()); tmp_inverseWorldRotation.set(spatial.getParent().getWorldRotation()).inverseLocal().multLocal(localLocation); // localRotationQuat.set(worldRotationQuat); tmp_inverseWorldRotation.mult(localRotationQuat, localRotationQuat); spatial.setLocalTranslation(localLocation); spatial.setLocalRotation(localRotationQuat); } else { spatial.setLocalTranslation(localLocation); spatial.setLocalRotation(localRotationQuat); // spatial.setLocalTranslation(worldLocation); // spatial.setLocalRotation(worldRotationQuat); } if (vehicle != null) { vehicle.updateWheels(); } return true; }
Example 4
Source File: SpatialTweens.java From Lemur with BSD 3-Clause "New" or "Revised" License | 4 votes |
/** * Creates a tween that will interpolate the rotation of the specified target * from one rotation to another. If either rotation is null then they will * be substituted with the Spatial's current local rotation AT THE TIME OF THIS CALL. */ public static Tween rotate( Spatial target, Quaternion from, Quaternion to, double length ) { from = from != null ? from : target.getLocalRotation(); to = to != null ? to : target.getLocalRotation(); return new RotateSpatial(target, from, to, length); }
Example 5
Source File: SceneEditorController.java From MikuMikuStudio with BSD 2-Clause "Simplified" License | 4 votes |
public void doRotateSpatial(Spatial selected, Quaternion rotation) { Quaternion before = new Quaternion(selected.getLocalRotation()); selected.rotate(rotation); Quaternion after = new Quaternion(selected.getLocalRotation()); rotateUndo(selected, before, after, selectedSpat); }