From edba4b98449eb15467e25d7e4564f31a8e65468e Mon Sep 17 00:00:00 2001 From: Stephen Gold Date: Fri, 22 Dec 2017 16:45:25 -0800 Subject: [PATCH] test override of ColorRGBA mat param with a Vector4f or Quaternion value --- .../material/TestMatParamOverride.java | 37 +++++++++++++++---- 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/jme3-examples/src/main/java/jme3test/material/TestMatParamOverride.java b/jme3-examples/src/main/java/jme3test/material/TestMatParamOverride.java index 224290f25..6124d9edd 100644 --- a/jme3-examples/src/main/java/jme3test/material/TestMatParamOverride.java +++ b/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"); } }