diff --git a/engine/nbproject/project.properties b/engine/nbproject/project.properties index 2923f7567..811e47f6b 100644 --- a/engine/nbproject/project.properties +++ b/engine/nbproject/project.properties @@ -52,7 +52,7 @@ javac.test.classpath=\ ${javac.classpath}:\ ${build.classes.dir}:\ ${libs.junit_4.classpath} -javadoc.additionalparam=-public +javadoc.additionalparam=-public javadoc.author=false javadoc.encoding=${source.encoding} javadoc.noindex=false @@ -86,7 +86,7 @@ platform.active=default_platform run.classpath=\ ${javac.classpath}:\ ${build.classes.dir} -run.jvmargs=-Xbatch -XX:CICompilerCount=1 +run.jvmargs=-Xms30m -Xmx30m -XX:MaxDirectMemorySize=256M run.test.classpath=\ ${javac.test.classpath}:\ ${build.test.classes.dir} diff --git a/engine/src/core-data/Common/MatDefs/Misc/Sky.frag b/engine/src/core-data/Common/MatDefs/Misc/Sky.frag index 7c334f91a..3e36e0af5 100644 --- a/engine/src/core-data/Common/MatDefs/Misc/Sky.frag +++ b/engine/src/core-data/Common/MatDefs/Misc/Sky.frag @@ -1,6 +1,6 @@ #import "Common/ShaderLib/Optics.glsllib" -uniform ENVMAP m_Texture2; +uniform ENVMAP m_Texture; varying vec3 direction; diff --git a/engine/src/core/com/jme3/light/PointLight.java b/engine/src/core/com/jme3/light/PointLight.java index abd33f63e..8858060bb 100644 --- a/engine/src/core/com/jme3/light/PointLight.java +++ b/engine/src/core/com/jme3/light/PointLight.java @@ -1,141 +1,140 @@ -/* - * Copyright (c) 2009-2010 jMonkeyEngine - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * * Neither the name of 'jMonkeyEngine' nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED - * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -package com.jme3.light; - -import com.jme3.bounding.BoundingVolume; -import com.jme3.export.JmeExporter; -import com.jme3.export.JmeImporter; -import com.jme3.export.InputCapsule; -import com.jme3.export.OutputCapsule; -import com.jme3.math.Vector3f; -import com.jme3.scene.Spatial; -import java.io.IOException; - -/** - * Represents a point light. - * A point light emits light from a given position into all directions in space. - * E.g a lamp or a bright effect. Point light positions are in world space. - *
- * In addition to a position, point lights also have a radius which - * can be used to attenuate the influence of the light depending on the - * distance between the light and the effected object. - * - */ -public class PointLight extends Light { - - protected Vector3f position = new Vector3f(); - protected float radius = 0; - - @Override - public void computeLastDistance(Spatial owner) { - if (owner.getWorldBound() != null){ - BoundingVolume bv = owner.getWorldBound(); - lastDistance = bv.distanceSquaredTo(position); - System.out.println(lastDistance + ", " + owner); - }else{ - lastDistance = owner.getWorldTranslation().distanceSquared(position); - } - } - - /** - * Returns the world space position of the light. - * - * @return the world space position of the light. - * - * @see PointLight#setPosition(com.jme3.math.Vector3f) - */ - public Vector3f getPosition() { - return position; - } - - /** - * Set the world space position of the light. - * - * @param position the world space position of the light. - */ - public void setPosition(Vector3f position){ - this.position.set(position); - } - - /** - * Returns the radius of the light influence. A radius of 0 means - * the light has no attenuation. - * - * @return the radius of the light - */ - public float getRadius(){ - return radius; - } - - /** - * Set the radius of the light influence. - *
- * Setting a non-zero radius indicates the light should use attenuation. - * If a pixel's distance to this light's position - * is greater than the light's radius, then the pixel will not be - * effected by this light, if the distance is less than the radius, then - * the magnitude of the influence is equal to distance / radius. - * - * @param radius the radius of the light influence. - * - * @throws IllegalArgumentException If radius is negative - */ - public void setRadius(float radius){ - if (radius < 0) { - throw new IllegalArgumentException("Light radius cannot be negative"); - } - this.radius = radius; - } - - @Override - public Light.Type getType() { - return Light.Type.Point; - } - - @Override - public void write(JmeExporter ex) throws IOException { - super.write(ex); - OutputCapsule oc = ex.getCapsule(this); - oc.write(position, "position", null); - oc.write(radius, "radius", 0f); - } - - @Override - public void read(JmeImporter im) throws IOException { - super.read(im); - InputCapsule ic = im.getCapsule(this); - position = (Vector3f) ic.readSavable("position", null); - radius = ic.readFloat("radius", 0f); - } - -} +/* + * Copyright (c) 2009-2010 jMonkeyEngine + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * * Neither the name of 'jMonkeyEngine' nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +package com.jme3.light; + +import com.jme3.bounding.BoundingVolume; +import com.jme3.export.JmeExporter; +import com.jme3.export.JmeImporter; +import com.jme3.export.InputCapsule; +import com.jme3.export.OutputCapsule; +import com.jme3.math.Vector3f; +import com.jme3.scene.Spatial; +import java.io.IOException; + +/** + * Represents a point light. + * A point light emits light from a given position into all directions in space. + * E.g a lamp or a bright effect. Point light positions are in world space. + *
+ * In addition to a position, point lights also have a radius which + * can be used to attenuate the influence of the light depending on the + * distance between the light and the effected object. + * + */ +public class PointLight extends Light { + + protected Vector3f position = new Vector3f(); + protected float radius = 0; + + @Override + public void computeLastDistance(Spatial owner) { + if (owner.getWorldBound() != null){ + BoundingVolume bv = owner.getWorldBound(); + lastDistance = bv.distanceSquaredTo(position); + }else{ + lastDistance = owner.getWorldTranslation().distanceSquared(position); + } + } + + /** + * Returns the world space position of the light. + * + * @return the world space position of the light. + * + * @see PointLight#setPosition(com.jme3.math.Vector3f) + */ + public Vector3f getPosition() { + return position; + } + + /** + * Set the world space position of the light. + * + * @param position the world space position of the light. + */ + public void setPosition(Vector3f position){ + this.position.set(position); + } + + /** + * Returns the radius of the light influence. A radius of 0 means + * the light has no attenuation. + * + * @return the radius of the light + */ + public float getRadius(){ + return radius; + } + + /** + * Set the radius of the light influence. + *
+ * Setting a non-zero radius indicates the light should use attenuation.
+ * If a pixel's distance to this light's position
+ * is greater than the light's radius, then the pixel will not be
+ * effected by this light, if the distance is less than the radius, then
+ * the magnitude of the influence is equal to distance / radius.
+ *
+ * @param radius the radius of the light influence.
+ *
+ * @throws IllegalArgumentException If radius is negative
+ */
+ public void setRadius(float radius){
+ if (radius < 0) {
+ throw new IllegalArgumentException("Light radius cannot be negative");
+ }
+ this.radius = radius;
+ }
+
+ @Override
+ public Light.Type getType() {
+ return Light.Type.Point;
+ }
+
+ @Override
+ public void write(JmeExporter ex) throws IOException {
+ super.write(ex);
+ OutputCapsule oc = ex.getCapsule(this);
+ oc.write(position, "position", null);
+ oc.write(radius, "radius", 0f);
+ }
+
+ @Override
+ public void read(JmeImporter im) throws IOException {
+ super.read(im);
+ InputCapsule ic = im.getCapsule(this);
+ position = (Vector3f) ic.readSavable("position", null);
+ radius = ic.readFloat("radius", 0f);
+ }
+
+}
diff --git a/engine/src/core/com/jme3/util/TempVars.java b/engine/src/core/com/jme3/util/TempVars.java
index e0a16b6cb..4f81f02a4 100644
--- a/engine/src/core/com/jme3/util/TempVars.java
+++ b/engine/src/core/com/jme3/util/TempVars.java
@@ -1,238 +1,221 @@
-/*
- * Copyright (c) 2009-2010 jMonkeyEngine
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * * Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * * Neither the name of 'jMonkeyEngine' nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-package com.jme3.util;
-
-import com.jme3.collision.bih.BIHNode.BIHStackData;
-import com.jme3.math.Eigen3f;
-import com.jme3.math.Matrix4f;
-import com.jme3.math.Matrix3f;
-import com.jme3.math.Plane;
-import com.jme3.math.Quaternion;
-import com.jme3.math.Triangle;
-import com.jme3.math.Vector2f;
-import com.jme3.math.Vector3f;
-import com.jme3.scene.Spatial;
-import java.nio.FloatBuffer;
-import java.nio.IntBuffer;
-import java.util.ArrayList;
-
-/**
- * Temporary variables assigned to each thread. Engine classes may access
- * these temp variables with TempVars.get(), all retrieved TempVars
- * instances must be returned via TempVars.release().
- * This returns an available instance of the TempVar class ensuring this
- * particular instance is never used elsewhere in the mean time.
- */
-public class TempVars {
-
- /**
- * Allow X instances of TempVars in a single thread.
- */
- private static final int STACK_SIZE = 5;
-
- /**
- * TempVarsStack
contains a stack of TempVars.
- * Every time TempVars.get() is called, a new entry is added to the stack,
- * and the index incremented.
- * When TempVars.release() is called, the entry is checked against
- * the current instance and then the index is decremented.
- */
- private static class TempVarsStack {
- int index = 0;
- TempVars[] tempVars = new TempVars[STACK_SIZE];
- }
-
- /**
- * ThreadLocal to store a TempVarsStack for each thread.
- * This ensures each thread has a single TempVarsStack that is
- * used only in method calls in that thread.
- */
- private static final ThreadLocalTempVarsStack
contains a stack of TempVars.
+ * Every time TempVars.get() is called, a new entry is added to the stack,
+ * and the index incremented.
+ * When TempVars.release() is called, the entry is checked against
+ * the current instance and then the index is decremented.
+ */
+ private static class TempVarsStack {
+ int index = 0;
+ TempVars[] tempVars = new TempVars[STACK_SIZE];
+ }
+
+ /**
+ * ThreadLocal to store a TempVarsStack for each thread.
+ * This ensures each thread has a single TempVarsStack that is
+ * used only in method calls in that thread.
+ */
+ private static final ThreadLocal