2
0
Эх сурвалжийг харах

test override of ColorRGBA mat param with a Vector4f or Quaternion value

Stephen Gold 7 жил өмнө
parent
commit
edba4b9844

+ 29 - 8
jme3-examples/src/main/java/jme3test/material/TestMatParamOverride.java

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009-2016 jMonkeyEngine
+ * Copyright (c) 2009-2017 jMonkeyEngine
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -38,6 +38,8 @@ import com.jme3.input.controls.KeyTrigger;
 import com.jme3.material.MatParamOverride;
 import com.jme3.material.Material;
 import com.jme3.math.ColorRGBA;
+import com.jme3.math.Quaternion;
+import com.jme3.math.Vector4f;
 import com.jme3.scene.Geometry;
 import com.jme3.scene.shape.Box;
 import com.jme3.shader.VarType;
@@ -50,7 +52,15 @@ import com.jme3.shader.VarType;
 public class TestMatParamOverride extends SimpleApplication {
 
     private Box box = new Box(1, 1, 1);
-    private MatParamOverride override = new MatParamOverride(VarType.Vector4, "Color", ColorRGBA.Yellow);
+    final MatParamOverride overrideYellow
+            = new MatParamOverride(VarType.Vector4, "Color",
+                    ColorRGBA.Yellow);
+    final MatParamOverride overrideWhite
+            = new MatParamOverride(VarType.Vector4, "Color",
+                    Vector4f.UNIT_XYZW);
+    final MatParamOverride overrideGray
+            = new MatParamOverride(VarType.Vector4, "Color",
+                    new Quaternion(0.5f, 0.5f, 0.5f, 1f));
 
     public static void main(String[] args) {
         TestMatParamOverride app = new TestMatParamOverride();
@@ -74,19 +84,30 @@ public class TestMatParamOverride extends SimpleApplication {
         createBox(0, ColorRGBA.Green);
         createBox(3, ColorRGBA.Blue);
 
-        inputManager.addMapping("override", new KeyTrigger(KeyInput.KEY_SPACE));
+        System.out.println("Press G, W, Y, or space bar ...");
+        inputManager.addMapping("overrideClear", new KeyTrigger(KeyInput.KEY_SPACE));
+        inputManager.addMapping("overrideGray", new KeyTrigger(KeyInput.KEY_G));
+        inputManager.addMapping("overrideWhite", new KeyTrigger(KeyInput.KEY_W));
+        inputManager.addMapping("overrideYellow", new KeyTrigger(KeyInput.KEY_Y));
         inputManager.addListener(new ActionListener() {
             @Override
             public void onAction(String name, boolean isPressed, float tpf) {
-                if (name.equals("override") && isPressed) {
-                    if (!rootNode.getLocalMatParamOverrides().isEmpty()) {
+                if (isPressed) {
+                    if (name.equals("overrideClear")) {
                         rootNode.clearMatParamOverrides();
-                    } else {
-                        rootNode.addMatParamOverride(override);
+                    } else if (name.equals("overrideGray")) {
+                        rootNode.clearMatParamOverrides();
+                        rootNode.addMatParamOverride(overrideGray);
+                    } else if (name.equals("overrideWhite")) {
+                        rootNode.clearMatParamOverrides();
+                        rootNode.addMatParamOverride(overrideWhite);
+                    } else if (name.equals("overrideYellow")) {
+                        rootNode.clearMatParamOverrides();
+                        rootNode.addMatParamOverride(overrideYellow);
                     }
                     System.out.println(rootNode.getLocalMatParamOverrides());
                 }
             }
-        }, "override");
+        }, "overrideClear", "overrideGray", "overrideWhite", "overrideYellow");
     }
 }