Przeglądaj źródła

Merge pull request #3 from Dokthar/master

Master merge into scenecomposer
Dokthar 10 lat temu
rodzic
commit
ed46dc8548

+ 1 - 1
README.md

@@ -1,7 +1,7 @@
 jMonkeyEngine
 =============
 
-jMonkeyEngine is a 3D game engine for adventurous Java developers. It’s open source, cross platform and cutting edge. And it is all beautifully documented. The 3.0 branch is the latest stable version of the jMonkeyEngine 3 SDK, a complete game development suite. We'll be frequently submitting stable 3.0.x updates until the major 3.1 version arrives in Q4 2014.
+jMonkeyEngine is a 3D game engine for adventurous Java developers. It’s open source, cross platform and cutting edge. And it is all beautifully documented. The 3.0 branch is the latest stable version of the jMonkeyEngine 3 SDK, a complete game development suite. We'll be frequently submitting stable 3.0.x updates until the major 3.1 version arrives.
 
 The engine is used by several commercial game studios and computer-science courses. Here's a taste:
 

+ 21 - 16
jme3-blender/src/main/java/com/jme3/scene/plugins/blender/constraints/definitions/ConstraintDefinitionIK.java

@@ -88,14 +88,17 @@ public class ConstraintDefinitionIK extends ConstraintDefinition {
                     if (angle != 0) {
                         Vector3d cross = currentDir.crossLocal(target).normalizeLocal();
                         q.fromAngleAxis(angle, cross);
-                        if (boneContext.isLockX()) {
-                            q.set(0, q.getY(), q.getZ(), q.getW());
-                        }
-                        if (boneContext.isLockY()) {
-                            q.set(q.getX(), 0, q.getZ(), q.getW());
-                        }
-                        if (boneContext.isLockZ()) {
-                            q.set(q.getX(), q.getY(), 0, q.getW());
+                        
+                        if(bone.equals(this.getOwner())) {
+                            if (boneContext.isLockX()) {
+                                q.set(0, q.getY(), q.getZ(), q.getW());
+                            }
+                            if (boneContext.isLockY()) {
+                                q.set(q.getX(), 0, q.getZ(), q.getW());
+                            }
+                            if (boneContext.isLockZ()) {
+                                q.set(q.getX(), q.getY(), 0, q.getW());
+                            }
                         }
 
                         boneTransform.getRotation().set(q.multLocal(boneTransform.getRotation()));
@@ -124,14 +127,16 @@ public class ConstraintDefinitionIK extends ConstraintDefinition {
                     Vector3d cross = currentDir.crossLocal(target).normalizeLocal();
                     q.fromAngleAxis(angle, cross);
 
-                    if (boneContext.isLockX()) {
-                        q.set(0, q.getY(), q.getZ(), q.getW());
-                    }
-                    if (boneContext.isLockY()) {
-                        q.set(q.getX(), 0, q.getZ(), q.getW());
-                    }
-                    if (boneContext.isLockZ()) {
-                        q.set(q.getX(), q.getY(), 0, q.getW());
+                    if(bone.equals(this.getOwner())) {
+                        if (boneContext.isLockX()) {
+                            q.set(0, q.getY(), q.getZ(), q.getW());
+                        }
+                        if (boneContext.isLockY()) {
+                            q.set(q.getX(), 0, q.getZ(), q.getW());
+                        }
+                        if (boneContext.isLockZ()) {
+                            q.set(q.getX(), q.getY(), 0, q.getW());
+                        }
                     }
 
                     boneWorldTransform.getRotation().set(q.multLocal(boneWorldTransform.getRotation()));