git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@7846 75d07b2b-3a1a-0410-a2c5-0572b91ccdca3.0
parent
a24becee32
commit
80ac165e67
@ -1,141 +1,140 @@ |
|||||||
/* |
/* |
||||||
* Copyright (c) 2009-2010 jMonkeyEngine |
* Copyright (c) 2009-2010 jMonkeyEngine |
||||||
* All rights reserved. |
* All rights reserved. |
||||||
* |
* |
||||||
* Redistribution and use in source and binary forms, with or without |
* Redistribution and use in source and binary forms, with or without |
||||||
* modification, are permitted provided that the following conditions are |
* modification, are permitted provided that the following conditions are |
||||||
* met: |
* met: |
||||||
* |
* |
||||||
* * Redistributions of source code must retain the above copyright |
* * Redistributions of source code must retain the above copyright |
||||||
* notice, this list of conditions and the following disclaimer. |
* notice, this list of conditions and the following disclaimer. |
||||||
* |
* |
||||||
* * Redistributions in binary form must reproduce the above copyright |
* * Redistributions in binary form must reproduce the above copyright |
||||||
* notice, this list of conditions and the following disclaimer in the |
* notice, this list of conditions and the following disclaimer in the |
||||||
* documentation and/or other materials provided with the distribution. |
* documentation and/or other materials provided with the distribution. |
||||||
* |
* |
||||||
* * Neither the name of 'jMonkeyEngine' nor the names of its contributors |
* * Neither the name of 'jMonkeyEngine' nor the names of its contributors |
||||||
* may be used to endorse or promote products derived from this software |
* may be used to endorse or promote products derived from this software |
||||||
* without specific prior written permission. |
* without specific prior written permission. |
||||||
* |
* |
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED |
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED |
||||||
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
||||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR |
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR |
||||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
||||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
||||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
||||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF |
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF |
||||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
||||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
||||||
*/ |
*/ |
||||||
|
|
||||||
package com.jme3.light; |
package com.jme3.light; |
||||||
|
|
||||||
import com.jme3.bounding.BoundingVolume; |
import com.jme3.bounding.BoundingVolume; |
||||||
import com.jme3.export.JmeExporter; |
import com.jme3.export.JmeExporter; |
||||||
import com.jme3.export.JmeImporter; |
import com.jme3.export.JmeImporter; |
||||||
import com.jme3.export.InputCapsule; |
import com.jme3.export.InputCapsule; |
||||||
import com.jme3.export.OutputCapsule; |
import com.jme3.export.OutputCapsule; |
||||||
import com.jme3.math.Vector3f; |
import com.jme3.math.Vector3f; |
||||||
import com.jme3.scene.Spatial; |
import com.jme3.scene.Spatial; |
||||||
import java.io.IOException; |
import java.io.IOException; |
||||||
|
|
||||||
/** |
/** |
||||||
* Represents a point light. |
* Represents a point light. |
||||||
* A point light emits light from a given position into all directions in space. |
* 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. |
* E.g a lamp or a bright effect. Point light positions are in world space. |
||||||
* <p> |
* <p> |
||||||
* In addition to a position, point lights also have a radius which |
* 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 |
* can be used to attenuate the influence of the light depending on the |
||||||
* distance between the light and the effected object. |
* distance between the light and the effected object. |
||||||
* |
* |
||||||
*/ |
*/ |
||||||
public class PointLight extends Light { |
public class PointLight extends Light { |
||||||
|
|
||||||
protected Vector3f position = new Vector3f(); |
protected Vector3f position = new Vector3f(); |
||||||
protected float radius = 0; |
protected float radius = 0; |
||||||
|
|
||||||
@Override |
@Override |
||||||
public void computeLastDistance(Spatial owner) { |
public void computeLastDistance(Spatial owner) { |
||||||
if (owner.getWorldBound() != null){ |
if (owner.getWorldBound() != null){ |
||||||
BoundingVolume bv = owner.getWorldBound(); |
BoundingVolume bv = owner.getWorldBound(); |
||||||
lastDistance = bv.distanceSquaredTo(position); |
lastDistance = bv.distanceSquaredTo(position); |
||||||
System.out.println(lastDistance + ", " + owner); |
}else{ |
||||||
}else{ |
lastDistance = owner.getWorldTranslation().distanceSquared(position); |
||||||
lastDistance = owner.getWorldTranslation().distanceSquared(position); |
} |
||||||
} |
} |
||||||
} |
|
||||||
|
/** |
||||||
/** |
* Returns the world space position of the light. |
||||||
* Returns the world space position of the light. |
* |
||||||
* |
* @return the world space position of the light. |
||||||
* @return the world space position of the light. |
* |
||||||
* |
* @see PointLight#setPosition(com.jme3.math.Vector3f) |
||||||
* @see PointLight#setPosition(com.jme3.math.Vector3f) |
*/ |
||||||
*/ |
public Vector3f getPosition() { |
||||||
public Vector3f getPosition() { |
return position; |
||||||
return position; |
} |
||||||
} |
|
||||||
|
/** |
||||||
/** |
* Set the world space position of the light. |
||||||
* Set the world space position of the light. |
* |
||||||
* |
* @param position the world space position of the light. |
||||||
* @param position the world space position of the light. |
*/ |
||||||
*/ |
public void setPosition(Vector3f position){ |
||||||
public void setPosition(Vector3f position){ |
this.position.set(position); |
||||||
this.position.set(position); |
} |
||||||
} |
|
||||||
|
/** |
||||||
/** |
* Returns the radius of the light influence. A radius of 0 means |
||||||
* Returns the radius of the light influence. A radius of 0 means |
* the light has no attenuation. |
||||||
* the light has no attenuation. |
* |
||||||
* |
* @return the radius of the light |
||||||
* @return the radius of the light |
*/ |
||||||
*/ |
public float getRadius(){ |
||||||
public float getRadius(){ |
return radius; |
||||||
return radius; |
} |
||||||
} |
|
||||||
|
/** |
||||||
/** |
* Set the radius of the light influence. |
||||||
* Set the radius of the light influence. |
* <p> |
||||||
* <p> |
* Setting a non-zero radius indicates the light should use attenuation. |
||||||
* Setting a non-zero radius indicates the light should use attenuation. |
* If a pixel's distance to this light's position |
||||||
* If a pixel's distance to this light's position |
* is greater than the light's radius, then the pixel will not be |
||||||
* 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 |
||||||
* effected by this light, if the distance is less than the radius, then |
* the magnitude of the influence is equal to distance / radius. |
||||||
* the magnitude of the influence is equal to distance / radius. |
* |
||||||
* |
* @param radius the radius of the light influence. |
||||||
* @param radius the radius of the light influence. |
* |
||||||
* |
* @throws IllegalArgumentException If radius is negative |
||||||
* @throws IllegalArgumentException If radius is negative |
*/ |
||||||
*/ |
public void setRadius(float radius){ |
||||||
public void setRadius(float radius){ |
if (radius < 0) { |
||||||
if (radius < 0) { |
throw new IllegalArgumentException("Light radius cannot be negative"); |
||||||
throw new IllegalArgumentException("Light radius cannot be negative"); |
} |
||||||
} |
this.radius = radius; |
||||||
this.radius = radius; |
} |
||||||
} |
|
||||||
|
@Override |
||||||
@Override |
public Light.Type getType() { |
||||||
public Light.Type getType() { |
return Light.Type.Point; |
||||||
return Light.Type.Point; |
} |
||||||
} |
|
||||||
|
@Override |
||||||
@Override |
public void write(JmeExporter ex) throws IOException { |
||||||
public void write(JmeExporter ex) throws IOException { |
super.write(ex); |
||||||
super.write(ex); |
OutputCapsule oc = ex.getCapsule(this); |
||||||
OutputCapsule oc = ex.getCapsule(this); |
oc.write(position, "position", null); |
||||||
oc.write(position, "position", null); |
oc.write(radius, "radius", 0f); |
||||||
oc.write(radius, "radius", 0f); |
} |
||||||
} |
|
||||||
|
@Override |
||||||
@Override |
public void read(JmeImporter im) throws IOException { |
||||||
public void read(JmeImporter im) throws IOException { |
super.read(im); |
||||||
super.read(im); |
InputCapsule ic = im.getCapsule(this); |
||||||
InputCapsule ic = im.getCapsule(this); |
position = (Vector3f) ic.readSavable("position", null); |
||||||
position = (Vector3f) ic.readSavable("position", null); |
radius = ic.readFloat("radius", 0f); |
||||||
radius = ic.readFloat("radius", 0f); |
} |
||||||
} |
|
||||||
|
} |
||||||
} |
|
||||||
|
@ -1,238 +1,221 @@ |
|||||||
/* |
/* |
||||||
* Copyright (c) 2009-2010 jMonkeyEngine |
* Copyright (c) 2009-2010 jMonkeyEngine |
||||||
* All rights reserved. |
* All rights reserved. |
||||||
* |
* |
||||||
* Redistribution and use in source and binary forms, with or without |
* Redistribution and use in source and binary forms, with or without |
||||||
* modification, are permitted provided that the following conditions are |
* modification, are permitted provided that the following conditions are |
||||||
* met: |
* met: |
||||||
* |
* |
||||||
* * Redistributions of source code must retain the above copyright |
* * Redistributions of source code must retain the above copyright |
||||||
* notice, this list of conditions and the following disclaimer. |
* notice, this list of conditions and the following disclaimer. |
||||||
* |
* |
||||||
* * Redistributions in binary form must reproduce the above copyright |
* * Redistributions in binary form must reproduce the above copyright |
||||||
* notice, this list of conditions and the following disclaimer in the |
* notice, this list of conditions and the following disclaimer in the |
||||||
* documentation and/or other materials provided with the distribution. |
* documentation and/or other materials provided with the distribution. |
||||||
* |
* |
||||||
* * Neither the name of 'jMonkeyEngine' nor the names of its contributors |
* * Neither the name of 'jMonkeyEngine' nor the names of its contributors |
||||||
* may be used to endorse or promote products derived from this software |
* may be used to endorse or promote products derived from this software |
||||||
* without specific prior written permission. |
* without specific prior written permission. |
||||||
* |
* |
||||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED |
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED |
||||||
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
||||||
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR |
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR |
||||||
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
||||||
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
||||||
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
||||||
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF |
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF |
||||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
||||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
||||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
||||||
*/ |
*/ |
||||||
package com.jme3.util; |
package com.jme3.util; |
||||||
|
|
||||||
import com.jme3.collision.bih.BIHNode.BIHStackData; |
import com.jme3.collision.bih.BIHNode.BIHStackData; |
||||||
import com.jme3.math.Eigen3f; |
import com.jme3.math.Eigen3f; |
||||||
import com.jme3.math.Matrix4f; |
import com.jme3.math.Matrix4f; |
||||||
import com.jme3.math.Matrix3f; |
import com.jme3.math.Matrix3f; |
||||||
import com.jme3.math.Plane; |
import com.jme3.math.Plane; |
||||||
import com.jme3.math.Quaternion; |
import com.jme3.math.Quaternion; |
||||||
import com.jme3.math.Triangle; |
import com.jme3.math.Triangle; |
||||||
import com.jme3.math.Vector2f; |
import com.jme3.math.Vector2f; |
||||||
import com.jme3.math.Vector3f; |
import com.jme3.math.Vector3f; |
||||||
import com.jme3.scene.Spatial; |
import com.jme3.scene.Spatial; |
||||||
import java.nio.FloatBuffer; |
import java.nio.FloatBuffer; |
||||||
import java.nio.IntBuffer; |
import java.nio.IntBuffer; |
||||||
import java.util.ArrayList; |
import java.util.ArrayList; |
||||||
|
|
||||||
/** |
/** |
||||||
* Temporary variables assigned to each thread. Engine classes may access |
* Temporary variables assigned to each thread. Engine classes may access |
||||||
* these temp variables with TempVars.get(), all retrieved TempVars |
* these temp variables with TempVars.get(), all retrieved TempVars |
||||||
* instances must be returned via TempVars.release(). |
* instances must be returned via TempVars.release(). |
||||||
* This returns an available instance of the TempVar class ensuring this |
* This returns an available instance of the TempVar class ensuring this |
||||||
* particular instance is never used elsewhere in the mean time. |
* particular instance is never used elsewhere in the mean time. |
||||||
*/ |
*/ |
||||||
public class TempVars { |
public class TempVars { |
||||||
|
|
||||||
/** |
/** |
||||||
* Allow X instances of TempVars in a single thread. |
* Allow X instances of TempVars in a single thread. |
||||||
*/ |
*/ |
||||||
private static final int STACK_SIZE = 5; |
private static final int STACK_SIZE = 5; |
||||||
|
|
||||||
/** |
/** |
||||||
* <code>TempVarsStack</code> contains a stack of TempVars. |
* <code>TempVarsStack</code> contains a stack of TempVars. |
||||||
* Every time TempVars.get() is called, a new entry is added to the stack, |
* Every time TempVars.get() is called, a new entry is added to the stack, |
||||||
* and the index incremented. |
* and the index incremented. |
||||||
* When TempVars.release() is called, the entry is checked against |
* When TempVars.release() is called, the entry is checked against |
||||||
* the current instance and then the index is decremented. |
* the current instance and then the index is decremented. |
||||||
*/ |
*/ |
||||||
private static class TempVarsStack { |
private static class TempVarsStack { |
||||||
int index = 0; |
int index = 0; |
||||||
TempVars[] tempVars = new TempVars[STACK_SIZE]; |
TempVars[] tempVars = new TempVars[STACK_SIZE]; |
||||||
} |
} |
||||||
|
|
||||||
/** |
/** |
||||||
* ThreadLocal to store a TempVarsStack for each thread. |
* ThreadLocal to store a TempVarsStack for each thread. |
||||||
* This ensures each thread has a single TempVarsStack that is |
* This ensures each thread has a single TempVarsStack that is |
||||||
* used only in method calls in that thread. |
* used only in method calls in that thread. |
||||||
*/ |
*/ |
||||||
private static final ThreadLocal<TempVarsStack> varsLocal = new ThreadLocal<TempVarsStack>() { |
private static final ThreadLocal<TempVarsStack> varsLocal = new ThreadLocal<TempVarsStack>() { |
||||||
@Override |
@Override |
||||||
public TempVarsStack initialValue() { |
public TempVarsStack initialValue() { |
||||||
return new TempVarsStack(); |
return new TempVarsStack(); |
||||||
} |
} |
||||||
}; |
}; |
||||||
|
|
||||||
private static final ThreadLocal<TempVars> tempVars = new ThreadLocal<TempVars>(){ |
/** |
||||||
@Override |
* This instance of TempVars has been retrieved but not released yet. |
||||||
public TempVars initialValue() { |
*/ |
||||||
return new TempVars(); |
private boolean isUsed = false; |
||||||
} |
|
||||||
}; |
private TempVars() { |
||||||
|
} |
||||||
/** |
|
||||||
* This instance of TempVars has been retrieved but not released yet. |
/** |
||||||
*/ |
* Acquire an instance of the TempVar class. |
||||||
private boolean isUsed = false; |
* You have to release the instance after use by calling the |
||||||
|
* release() method. |
||||||
private TempVars() { |
* If more than STACK_SIZE (currently 5) instances are requested |
||||||
} |
* in a single thread then an ArrayIndexOutOfBoundsException will be thrown. |
||||||
|
* |
||||||
public static TempVars get(){ |
* @return A TempVar instance |
||||||
return tempVars.get(); |
*/ |
||||||
} |
public static TempVars get() { |
||||||
|
TempVarsStack stack = varsLocal.get(); |
||||||
public void release(){ |
|
||||||
} |
TempVars instance = stack.tempVars[stack.index]; |
||||||
|
|
||||||
/** |
if (instance == null){ |
||||||
* Acquire an instance of the TempVar class. |
// Create new
|
||||||
* You have to release the instance after use by calling the |
instance = new TempVars(); |
||||||
* release() method. |
|
||||||
* If more than STACK_SIZE (currently 5) instances are requested |
// Put it in there
|
||||||
* in a single thread then an ArrayIndexOutOfBoundsException will be thrown. |
stack.tempVars[stack.index] = instance; |
||||||
* |
} |
||||||
* @return A TempVar instance |
|
||||||
*/ |
stack.index++; |
||||||
/* |
|
||||||
public static TempVars get() { |
instance.isUsed = true; |
||||||
TempVarsStack stack = varsLocal.get(); |
|
||||||
|
return instance; |
||||||
TempVars instance = stack.tempVars[stack.index]; |
} |
||||||
|
|
||||||
if (instance == null){ |
/** |
||||||
// Create new
|
* Releases this instance of TempVars. |
||||||
instance = new TempVars(); |
* Once released, the contents of the TempVars are undefined. |
||||||
|
* The TempVars must be released in the opposite order that they are retrieved, |
||||||
// Put it in there
|
* e.g. Acquiring vars1, then acquiring vars2, vars2 MUST be released |
||||||
stack.tempVars[stack.index] = instance; |
* first otherwise an exception will be thrown. |
||||||
} |
*/ |
||||||
|
public void release() { |
||||||
stack.index++; |
if (!isUsed){ |
||||||
|
throw new IllegalStateException("This instance of TempVars was already released!"); |
||||||
instance.isUsed = true; |
} |
||||||
|
|
||||||
return instance; |
isUsed = false; |
||||||
} |
|
||||||
*/ |
TempVarsStack stack = varsLocal.get(); |
||||||
|
|
||||||
/** |
// Return it to the stack
|
||||||
* Releases this instance of TempVars. |
stack.index--; |
||||||
* Once released, the contents of the TempVars are undefined. |
|
||||||
* The TempVars must be released in the opposite order that they are retrieved, |
// Check if it is actually there
|
||||||
* e.g. Acquiring vars1, then acquiring vars2, vars2 MUST be released |
if (stack.tempVars[stack.index] != this){ |
||||||
* first otherwise an exception will be thrown. |
throw new IllegalStateException("An instance of TempVars has not been released in a called method!"); |
||||||
*/ |
} |
||||||
/* |
} |
||||||
public void release() { |
|
||||||
if (!isUsed){ |
/** |
||||||
throw new IllegalStateException("This instance of TempVars was already released!"); |
* For interfacing with OpenGL in Renderer. |
||||||
} |
*/ |
||||||
|
public final IntBuffer intBuffer1 = BufferUtils.createIntBuffer(1); |
||||||
isUsed = false; |
public final IntBuffer intBuffer16 = BufferUtils.createIntBuffer(16); |
||||||
|
public final FloatBuffer floatBuffer16 = BufferUtils.createFloatBuffer(16); |
||||||
TempVarsStack stack = varsLocal.get(); |
/** |
||||||
|
* Skinning buffers |
||||||
// Return it to the stack
|
*/ |
||||||
stack.index--; |
public final float[] skinPositions = new float[512 * 3]; |
||||||
|
public final float[] skinNormals = new float[512 * 3]; |
||||||
// Check if it is actually there
|
/** |
||||||
if (stack.tempVars[stack.index] != this){ |
* Fetching triangle from mesh |
||||||
throw new IllegalStateException("An instance of TempVars has not been released in a called method!"); |
*/ |
||||||
} |
public final Triangle triangle = new Triangle(); |
||||||
}*/ |
/** |
||||||
|
* General vectors. |
||||||
/** |
*/ |
||||||
* For interfacing with OpenGL in Renderer. |
public final Vector3f vect1 = new Vector3f(); |
||||||
*/ |
public final Vector3f vect2 = new Vector3f(); |
||||||
public final IntBuffer intBuffer1 = BufferUtils.createIntBuffer(1); |
public final Vector3f vect3 = new Vector3f(); |
||||||
public final IntBuffer intBuffer16 = BufferUtils.createIntBuffer(16); |
public final Vector3f vect4 = new Vector3f(); |
||||||
public final FloatBuffer floatBuffer16 = BufferUtils.createFloatBuffer(16); |
public final Vector3f vect5 = new Vector3f(); |
||||||
/** |
public final Vector3f vect6 = new Vector3f(); |
||||||
* Skinning buffers |
public final Vector3f vect7 = new Vector3f(); |
||||||
*/ |
//seems the maximum number of vector used is 7 in com.jme3.bounding.java
|
||||||
public final float[] skinPositions = new float[512 * 3]; |
public final Vector3f vect8 = new Vector3f(); |
||||||
public final float[] skinNormals = new float[512 * 3]; |
public final Vector3f vect9 = new Vector3f(); |
||||||
/** |
public final Vector3f vect10 = new Vector3f(); |
||||||
* Fetching triangle from mesh |
public final Vector3f[] tri = {new Vector3f(), |
||||||
*/ |
new Vector3f(), |
||||||
public final Triangle triangle = new Triangle(); |
new Vector3f()}; |
||||||
/** |
/** |
||||||
* General vectors. |
* 2D vector |
||||||
*/ |
*/ |
||||||
public final Vector3f vect1 = new Vector3f(); |
public final Vector2f vect2d = new Vector2f(); |
||||||
public final Vector3f vect2 = new Vector3f(); |
public final Vector2f vect2d2 = new Vector2f(); |
||||||
public final Vector3f vect3 = new Vector3f(); |
/** |
||||||
public final Vector3f vect4 = new Vector3f(); |
* General matrices. |
||||||
public final Vector3f vect5 = new Vector3f(); |
*/ |
||||||
public final Vector3f vect6 = new Vector3f(); |
public final Matrix3f tempMat3 = new Matrix3f(); |
||||||
public final Vector3f vect7 = new Vector3f(); |
public final Matrix4f tempMat4 = new Matrix4f(); |
||||||
//seems the maximum number of vector used is 7 in com.jme3.bounding.java
|
/** |
||||||
public final Vector3f vect8 = new Vector3f(); |
* General quaternions. |
||||||
public final Vector3f vect9 = new Vector3f(); |
*/ |
||||||
public final Vector3f vect10 = new Vector3f(); |
public final Quaternion quat1 = new Quaternion(); |
||||||
public final Vector3f[] tri = {new Vector3f(), |
public final Quaternion quat2 = new Quaternion(); |
||||||
new Vector3f(), |
/** |
||||||
new Vector3f()}; |
* Eigen |
||||||
/** |
*/ |
||||||
* 2D vector |
public final Eigen3f eigen = new Eigen3f(); |
||||||
*/ |
/** |
||||||
public final Vector2f vect2d = new Vector2f(); |
* Plane |
||||||
public final Vector2f vect2d2 = new Vector2f(); |
*/ |
||||||
/** |
public final Plane plane = new Plane(); |
||||||
* General matrices. |
/** |
||||||
*/ |
* BoundingBox ray collision |
||||||
public final Matrix3f tempMat3 = new Matrix3f(); |
*/ |
||||||
public final Matrix4f tempMat4 = new Matrix4f(); |
public final float[] fWdU = new float[3]; |
||||||
/** |
public final float[] fAWdU = new float[3]; |
||||||
* General quaternions. |
public final float[] fDdU = new float[3]; |
||||||
*/ |
public final float[] fADdU = new float[3]; |
||||||
public final Quaternion quat1 = new Quaternion(); |
public final float[] fAWxDdU = new float[3]; |
||||||
public final Quaternion quat2 = new Quaternion(); |
/** |
||||||
/** |
* Maximum tree depth .. 32 levels?? |
||||||
* Eigen |
*/ |
||||||
*/ |
public final Spatial[] spatialStack = new Spatial[32]; |
||||||
public final Eigen3f eigen = new Eigen3f(); |
public final float[] matrixWrite = new float[16]; |
||||||
/** |
/** |
||||||
* Plane |
* BIHTree |
||||||
*/ |
*/ |
||||||
public final Plane plane = new Plane(); |
public final float[] bihSwapTmp = new float[9]; |
||||||
/** |
public final ArrayList<BIHStackData> bihStack = new ArrayList<BIHStackData>(); |
||||||
* BoundingBox ray collision |
} |
||||||
*/ |
|
||||||
public final float[] fWdU = new float[3]; |
|
||||||
public final float[] fAWdU = new float[3]; |
|
||||||
public final float[] fDdU = new float[3]; |
|
||||||
public final float[] fADdU = new float[3]; |
|
||||||
public final float[] fAWxDdU = new float[3]; |
|
||||||
/** |
|
||||||
* Maximum tree depth .. 32 levels?? |
|
||||||
*/ |
|
||||||
public final Spatial[] spatialStack = new Spatial[32]; |
|
||||||
public final float[] matrixWrite = new float[16]; |
|
||||||
/** |
|
||||||
* BIHTree |
|
||||||
*/ |
|
||||||
public final float[] bihSwapTmp = new float[9]; |
|
||||||
public final ArrayList<BIHStackData> bihStack = new ArrayList<BIHStackData>(); |
|
||||||
} |
|
||||||
|
Loading…
Reference in new issue