Added light & camera data structures to jAssimp and updated the list of configuration properties. However, I still had not yet the time to write the C++ binding to the Java API.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@183 67173fc5-114c-0410-ac8e-9d2fd5bffc1fpull/1/head
parent
f2c9745b7d
commit
38004d789c
|
@ -1,11 +1,182 @@
|
||||||
|
/*
|
||||||
|
---------------------------------------------------------------------------
|
||||||
|
Open Asset Import Library (ASSIMP)
|
||||||
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Copyright (c) 2006-2008, ASSIMP Development Team
|
||||||
|
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use of this software 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 the ASSIMP team, nor the names of its
|
||||||
|
contributors may be used to endorse or promote products
|
||||||
|
derived from this software without specific prior
|
||||||
|
written permission of the ASSIMP Development Team.
|
||||||
|
|
||||||
|
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 assimp;
|
package assimp;
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by IntelliJ IDEA.
|
/** Describes a virtual camera in the scene
|
||||||
* User: Alex
|
*
|
||||||
* Date: 09.10.2008
|
* Cameras have a representation in the node graph and can be animated
|
||||||
* Time: 13:54:10
|
*
|
||||||
* To change this template use File | Settings | File Templates.
|
* @author Aramis (Alexander Gessler)
|
||||||
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
public class Camera {
|
public class Camera
|
||||||
}
|
{
|
||||||
|
/** The name of the camera.
|
||||||
|
*/
|
||||||
|
private String mName;
|
||||||
|
|
||||||
|
/** Position of the camera
|
||||||
|
*/
|
||||||
|
private float[] mPosition;
|
||||||
|
|
||||||
|
/** 'Up' - vector of the camera coordinate system
|
||||||
|
*/
|
||||||
|
private float[] mUp;
|
||||||
|
|
||||||
|
/** 'LookAt' - vector of the camera coordinate system relative to
|
||||||
|
*/
|
||||||
|
private float[] mLookAt;
|
||||||
|
|
||||||
|
/** Half horizontal field of view angle, in radians.
|
||||||
|
*/
|
||||||
|
private float mHorizontalFOV;
|
||||||
|
|
||||||
|
/** Distance of the near clipping plane from the camera.
|
||||||
|
*/
|
||||||
|
private float mClipPlaneNear;
|
||||||
|
|
||||||
|
/** Distance of the far clipping plane from the camera.
|
||||||
|
*/
|
||||||
|
private float mClipPlaneFar;
|
||||||
|
|
||||||
|
/** Screen aspect ratio.
|
||||||
|
*/
|
||||||
|
private float mAspect;
|
||||||
|
|
||||||
|
|
||||||
|
/** Get the screen aspect ratio of the camera
|
||||||
|
*
|
||||||
|
* This is the ration between the width and the height of the
|
||||||
|
* screen. Typical values are 4/3, 1/2 or 1/1. This value is
|
||||||
|
* 0 if the aspect ratio is not defined in the source file.
|
||||||
|
* 0 is also the default value.
|
||||||
|
*/
|
||||||
|
public final float GetAspect()
|
||||||
|
{
|
||||||
|
return mAspect;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get the distance of the far clipping plane from the camera.
|
||||||
|
*
|
||||||
|
* The far clipping plane must, of course, be farer away than the
|
||||||
|
* near clipping plane. The default value is 1000.f. The radio
|
||||||
|
* between the near and the far plane should not be too
|
||||||
|
* large (between 1000-10000 should be ok) to avoid floating-point
|
||||||
|
* inaccuracies which could lead to z-fighting.
|
||||||
|
*/
|
||||||
|
public final float GetFarClipPlane()
|
||||||
|
{
|
||||||
|
return mClipPlaneFar;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get the distance of the near clipping plane from the camera.
|
||||||
|
*
|
||||||
|
* The value may not be 0.f (for arithmetic reasons to prevent
|
||||||
|
* a division through zero). The default value is 0.1f.
|
||||||
|
*/
|
||||||
|
public final float GetNearClipPlane()
|
||||||
|
{
|
||||||
|
return mClipPlaneNear;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Half horizontal field of view angle, in radians.
|
||||||
|
*
|
||||||
|
* The field of view angle is the angle between the center
|
||||||
|
* line of the screen and the left or right border.
|
||||||
|
* The default value is 1/4PI.
|
||||||
|
*/
|
||||||
|
public final float GetHorizontalFOV()
|
||||||
|
{
|
||||||
|
return mHorizontalFOV;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns the 'LookAt' - vector of the camera coordinate system
|
||||||
|
* relative to the coordinate space defined by the corresponding node.
|
||||||
|
*
|
||||||
|
* This is the viewing direction of the user.
|
||||||
|
* The default value is 0|0|1. The vector may be normalized, but it
|
||||||
|
* needn't.
|
||||||
|
* @return component order: x,y,z
|
||||||
|
*/
|
||||||
|
public final float[] GetLookAt()
|
||||||
|
{
|
||||||
|
return mLookAt;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get the 'Up' - vector of the camera coordinate system relative
|
||||||
|
* to the coordinate space defined by the corresponding node.
|
||||||
|
*
|
||||||
|
* The 'right' vector of the camera coordinate system is
|
||||||
|
* the cross product of the up and lookAt vectors.
|
||||||
|
* The default value is 0|1|0. The vector
|
||||||
|
* may be normalized, but it needn't.
|
||||||
|
* @return component order: x,y,z
|
||||||
|
*/
|
||||||
|
public final float[] GetUp()
|
||||||
|
{
|
||||||
|
return mUp;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get the position of the camera relative to the coordinate space
|
||||||
|
* defined by the corresponding node.
|
||||||
|
*
|
||||||
|
* The default value is 0|0|0.
|
||||||
|
* @return component order: x,y,z
|
||||||
|
*/
|
||||||
|
public final float[] GetPosition()
|
||||||
|
{
|
||||||
|
return mPosition;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns the name of the camera.
|
||||||
|
*
|
||||||
|
* There must be a node in the scenegraph with the same name.
|
||||||
|
* This node specifies the position of the camera in the scene
|
||||||
|
* hierarchy and can be animated.
|
||||||
|
*/
|
||||||
|
public final String GetName()
|
||||||
|
{
|
||||||
|
return mName;
|
||||||
|
}
|
||||||
|
};
|
|
@ -0,0 +1,125 @@
|
||||||
|
/*
|
||||||
|
---------------------------------------------------------------------------
|
||||||
|
Open Asset Import Library (ASSIMP)
|
||||||
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Copyright (c) 2006-2008, ASSIMP Development Team
|
||||||
|
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use of this software 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 the ASSIMP team, nor the names of its
|
||||||
|
contributors may be used to endorse or promote products
|
||||||
|
derived from this software without specific prior
|
||||||
|
written permission of the ASSIMP Development Team.
|
||||||
|
|
||||||
|
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 assimp;
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------------------
|
||||||
|
/** Enumerates components of the <code>Scene</code> and <code>Mesh</code>
|
||||||
|
* classes that can be excluded from the import with the RemoveComponent step.
|
||||||
|
*
|
||||||
|
* See the documentation for the postprocessing step for more details.
|
||||||
|
* @author Aramis (Alexander Gessler)
|
||||||
|
* @version 1.0
|
||||||
|
*/
|
||||||
|
public class Component
|
||||||
|
{
|
||||||
|
/** Normal vectors are removed from all meshes
|
||||||
|
*/
|
||||||
|
public static final int NORMALS = 0x2;
|
||||||
|
|
||||||
|
/** Tangents an bitangents are removed from all meshes
|
||||||
|
*
|
||||||
|
* Tangents and bitangents below together in every case.
|
||||||
|
*/
|
||||||
|
public static final int TANGENTS_AND_BITANGENTS = 0x4;
|
||||||
|
|
||||||
|
/** All vertex color sets are removed
|
||||||
|
*
|
||||||
|
* Use <code>COLORn(N)</code> to specifiy the N'th set
|
||||||
|
*/
|
||||||
|
public static final int COLORS = 0x8;
|
||||||
|
|
||||||
|
/** All texture UV sets are removed
|
||||||
|
*
|
||||||
|
* Use <code>TEXCOORDn(N)</code> to specifiy the N'th set
|
||||||
|
*/
|
||||||
|
public static final int TEXCOORDS = 0x10;
|
||||||
|
|
||||||
|
/** Removes all bone weights from all meshes.
|
||||||
|
*
|
||||||
|
* The scenegraph nodes corresponding to the
|
||||||
|
* bones are removed
|
||||||
|
*/
|
||||||
|
public static final int BONEWEIGHTS = 0x20;
|
||||||
|
|
||||||
|
/** Removes all bone animations
|
||||||
|
*/
|
||||||
|
public static final int ANIMATIONS = 0x40;
|
||||||
|
|
||||||
|
/** Removes all embedded textures
|
||||||
|
*/
|
||||||
|
public static final int TEXTURES = 0x80;
|
||||||
|
|
||||||
|
/** Removes all light sources
|
||||||
|
*
|
||||||
|
* The scenegraph nodes corresponding to the
|
||||||
|
* light sources are removed.
|
||||||
|
*/
|
||||||
|
public static final int LIGHTS = 0x100;
|
||||||
|
|
||||||
|
/** Removes all light sources
|
||||||
|
*
|
||||||
|
* The scenegraph nodes corresponding to the
|
||||||
|
* cameras are removed.
|
||||||
|
*/
|
||||||
|
public static final int CAMERAS = 0x200;
|
||||||
|
|
||||||
|
/** Removes all meshes (aiScene::mMeshes).
|
||||||
|
*/
|
||||||
|
public static final int MESHES = 0x400;
|
||||||
|
|
||||||
|
/** Removes all materials. One default material will
|
||||||
|
* be generated, so aiScene::mNumMaterials will be 1.
|
||||||
|
* This makes no real sense without the <code>TEXTURES</code> flag.
|
||||||
|
* */
|
||||||
|
public static final int MATERIALS = 0x800;
|
||||||
|
|
||||||
|
|
||||||
|
public static final int COLORSn(int n)
|
||||||
|
{
|
||||||
|
return (1 << (n + 20));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final int TEXCOORDSn(int n)
|
||||||
|
{
|
||||||
|
return (1 << (n + 25));
|
||||||
|
}
|
||||||
|
};
|
|
@ -39,9 +39,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
package assimp;
|
package assimp;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Defines configuration properties.
|
* Defines configuration properties.
|
||||||
* <p/>
|
* <p/>
|
||||||
|
@ -175,29 +175,30 @@ public class ConfigProperty {
|
||||||
public static final String AI_CONFIG_PP_GSN_MAX_SMOOTHING_ANGLE
|
public static final String AI_CONFIG_PP_GSN_MAX_SMOOTHING_ANGLE
|
||||||
= "pp.gsn.max_smoothing";
|
= "pp.gsn.max_smoothing";
|
||||||
|
|
||||||
|
|
||||||
/**
|
/** Input parameter to the #aiProcess_RemoveComponent step:
|
||||||
* Specifies the minimum number of faces a node should have.
|
* Specifies the parts of the data structure to be removed.
|
||||||
* This is an input parameter to the OptimizeGraph-Step.
|
*
|
||||||
* <p/>
|
* See the documentation to this step for further details. The property
|
||||||
* Nodes whose referenced meshes have less faces than this value
|
* is expected to be an integer, a bitwise combination of the
|
||||||
* are propably joined with neighbors with identical world matrices.
|
* flags defined in the <code>Component</code> class. The default
|
||||||
* However, it is just a hint to the step.
|
* value is 0. Important: if no valid mesh is remaining after the
|
||||||
* The type of the property is int.
|
* step has been executed (e.g you thought it was funny to specify ALL
|
||||||
*/
|
* of the flags defined above) the import FAILS. Mainly because there is
|
||||||
public static final String AI_CONFIG_PP_OG_MIN_NUM_FACES
|
* no data to work on anymore ...
|
||||||
= "pp.og.min_faces";
|
*/
|
||||||
|
public static final String AI_CONFIG_PP_RVC_FLAGS
|
||||||
|
= "pp.rvc.flags";
|
||||||
|
|
||||||
|
|
||||||
/** \brief Specifies whether animations are removed from the asset.
|
/** Causes assimp to favour speed against import quality.
|
||||||
* This is an input parameter to the OptimizeGraph-Step.
|
*
|
||||||
*
|
* Enabling this option may result in faster loading, but it needn't.
|
||||||
* If an application does not need the animation data, erasing it at the
|
* It represents just a hint to loaders and post-processing steps to use
|
||||||
* beginning of the post-process pipeline allows some steps - including
|
* faster code paths, if possible.
|
||||||
* OptimizeGraph itself - to apply further optimizations.
|
* This property is expected to be an integer, != 0 stands for true.
|
||||||
* note: This is a boolean property stored as an integer, 0 is false
|
* The default value is 0.
|
||||||
*/
|
*/
|
||||||
public static final String AI_CONFIG_PP_OG_REMOVE_ANIMATIONS
|
public static final String AI_CONFIG_FAVOUR_SPEED
|
||||||
= "pp.og.remove_anims";
|
= "imp.speed_flag";
|
||||||
|
};
|
||||||
}
|
|
||||||
|
|
|
@ -1,11 +1,276 @@
|
||||||
|
/*
|
||||||
|
---------------------------------------------------------------------------
|
||||||
|
Open Asset Import Library (ASSIMP)
|
||||||
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
Copyright (c) 2006-2008, ASSIMP Development Team
|
||||||
|
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use of this software 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 the ASSIMP team, nor the names of its
|
||||||
|
contributors may be used to endorse or promote products
|
||||||
|
derived from this software without specific prior
|
||||||
|
written permission of the ASSIMP Development Team.
|
||||||
|
|
||||||
|
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 assimp;
|
package assimp;
|
||||||
|
|
||||||
/**
|
|
||||||
* Created by IntelliJ IDEA.
|
/** Describes a virtual camera in the scene
|
||||||
* User: Alex
|
*
|
||||||
* Date: 09.10.2008
|
* Cameras have a representation in the node graph and can be animated
|
||||||
* Time: 13:54:04
|
*
|
||||||
* To change this template use File | Settings | File Templates.
|
* @author Aramis (Alexander Gessler)
|
||||||
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
public class Light {
|
public class Light
|
||||||
}
|
{
|
||||||
|
|
||||||
|
/** Enumerates all supported types of light sources
|
||||||
|
*/
|
||||||
|
public class Type
|
||||||
|
{
|
||||||
|
// public static final int UNDEFINED = 0x0;
|
||||||
|
|
||||||
|
/** A directional light source has a well-defined direction
|
||||||
|
* but is infinitely far away. That's quite a good
|
||||||
|
* approximation for sun light.
|
||||||
|
* */
|
||||||
|
public static final int DIRECTIONAL = 0x1;
|
||||||
|
|
||||||
|
/** A point light source has a well-defined position
|
||||||
|
* in space but no direction - it emmits light in all
|
||||||
|
* directions. A normal bulb is a point light.
|
||||||
|
* */
|
||||||
|
public static final int POINT = 0x2;
|
||||||
|
|
||||||
|
/** A spot light source emmits light in a specific
|
||||||
|
* angle. It has a position and a direction it is pointing to.
|
||||||
|
* A good example for a spot light is a light spot in
|
||||||
|
* sport arenas.
|
||||||
|
* */
|
||||||
|
public static final int SPOT = 0x3;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/** The name of the light source.
|
||||||
|
*/
|
||||||
|
private String mName;
|
||||||
|
|
||||||
|
/** The type of the light source.
|
||||||
|
*/
|
||||||
|
private Type mType;
|
||||||
|
|
||||||
|
/** Position of the light source in space.
|
||||||
|
*/
|
||||||
|
private float[] mPosition;
|
||||||
|
|
||||||
|
/** Direction of the light source in space.
|
||||||
|
*/
|
||||||
|
private float[] mDirection;
|
||||||
|
|
||||||
|
/** Constant light attenuation factor.
|
||||||
|
*/
|
||||||
|
private float mAttenuationConstant;
|
||||||
|
|
||||||
|
/** Linear light attenuation factor.
|
||||||
|
*/
|
||||||
|
private float mAttenuationLinear;
|
||||||
|
|
||||||
|
/** Quadratic light attenuation factor.
|
||||||
|
*/
|
||||||
|
private float mAttenuationQuadratic;
|
||||||
|
|
||||||
|
/** Diffuse color of the light source
|
||||||
|
*/
|
||||||
|
private float[] mColorDiffuse;
|
||||||
|
|
||||||
|
/** Specular color of the light source
|
||||||
|
*/
|
||||||
|
private float[] mColorSpecular;
|
||||||
|
|
||||||
|
/** Ambient color of the light source
|
||||||
|
*/
|
||||||
|
private float[] mColorAmbient;
|
||||||
|
|
||||||
|
/** Inner angle of a spot light's light cone.
|
||||||
|
*/
|
||||||
|
private float mAngleInnerCone;
|
||||||
|
|
||||||
|
/** Outer angle of a spot light's light cone.
|
||||||
|
*/
|
||||||
|
private float mAngleOuterCone;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/** Get the name of the light source.
|
||||||
|
*
|
||||||
|
* There must be a node in the scenegraph with the same name.
|
||||||
|
* This node specifies the position of the light in the scene
|
||||||
|
* hierarchy and can be animated.
|
||||||
|
*/
|
||||||
|
public final String GetName()
|
||||||
|
{
|
||||||
|
return mName;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get the type of the light source.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public final Type GetType()
|
||||||
|
{
|
||||||
|
return mType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get the position of the light source in space. Relative to the
|
||||||
|
* transformation of the node corresponding to the light.
|
||||||
|
*
|
||||||
|
* The position is undefined for directional lights.
|
||||||
|
* @return Component order: x,y,z
|
||||||
|
*/
|
||||||
|
public final float[] GetPosition()
|
||||||
|
{
|
||||||
|
return mPosition;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get the direction of the light source in space. Relative to the
|
||||||
|
* transformation of the node corresponding to the light.
|
||||||
|
*
|
||||||
|
* The direction is undefined for point lights. The vector
|
||||||
|
* may be normalized, but it needn't.
|
||||||
|
* @return Component order: x,y,z
|
||||||
|
*/
|
||||||
|
public final float[] GetDirection()
|
||||||
|
{
|
||||||
|
return mDirection;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get the constant light attenuation factor.
|
||||||
|
*
|
||||||
|
* The intensity of the light source at a given distance 'd' from
|
||||||
|
* the light's position is
|
||||||
|
* @code
|
||||||
|
* Atten = 1/( att0 + att1 * d + att2 * d*d)
|
||||||
|
* @endcode
|
||||||
|
* This member corresponds to the att0 variable in the equation.
|
||||||
|
*/
|
||||||
|
public final float GetAttenuationConstant()
|
||||||
|
{
|
||||||
|
return mAttenuationConstant;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get the linear light attenuation factor.
|
||||||
|
*
|
||||||
|
* The intensity of the light source at a given distance 'd' from
|
||||||
|
* the light's position is
|
||||||
|
* @code
|
||||||
|
* Atten = 1/( att0 + att1 * d + att2 * d*d)
|
||||||
|
* @endcode
|
||||||
|
* This member corresponds to the att1 variable in the equation.
|
||||||
|
*/
|
||||||
|
public final float GetAttenuationLinear()
|
||||||
|
{
|
||||||
|
return mAttenuationLinear;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get the quadratic light attenuation factor.
|
||||||
|
*
|
||||||
|
* The intensity of the light source at a given distance 'd' from
|
||||||
|
* the light's position is
|
||||||
|
* @code
|
||||||
|
* Atten = 1/( att0 + att1 * d + att2 * d*d)
|
||||||
|
* @endcode
|
||||||
|
* This member corresponds to the att2 variable in the equation.
|
||||||
|
*/
|
||||||
|
public final float GetAttenuationQuadratic()
|
||||||
|
{
|
||||||
|
return mAttenuationQuadratic;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get the diffuse color of the light source
|
||||||
|
*
|
||||||
|
* The diffuse light color is multiplied with the diffuse
|
||||||
|
* material color to obtain the final color that contributes
|
||||||
|
* to the diffuse shading term.
|
||||||
|
*/
|
||||||
|
public final float[] mColorDiffuse;
|
||||||
|
|
||||||
|
/** Get the specular color of the light source
|
||||||
|
*
|
||||||
|
* The specular light color is multiplied with the specular
|
||||||
|
* material color to obtain the final color that contributes
|
||||||
|
* to the specular shading term.
|
||||||
|
*/
|
||||||
|
public final float[] GetColorSpecular()
|
||||||
|
{
|
||||||
|
return mColorSpecular;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get the ambient color of the light source
|
||||||
|
*
|
||||||
|
* The ambient light color is multiplied with the ambient
|
||||||
|
* material color to obtain the final color that contributes
|
||||||
|
* to the ambient shading term. Most renderers will ignore
|
||||||
|
* this value it, is just a remaining of the fixed-function pipeline
|
||||||
|
* that is still supported by quite many file formats.
|
||||||
|
*/
|
||||||
|
public final float[] GetColorAmbient()
|
||||||
|
{
|
||||||
|
return mColorAmbient;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Get the inner angle of a spot light's light cone.
|
||||||
|
*
|
||||||
|
* The spot light has maximum influence on objects inside this
|
||||||
|
* angle. The angle is given in radians. It is 2PI for point
|
||||||
|
* lights and undefined for directional lights.
|
||||||
|
*/
|
||||||
|
public final float GetAngleInnerCone()
|
||||||
|
{
|
||||||
|
return mAngleInnerCone;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** Get the outer angle of a spot light's light cone.
|
||||||
|
*
|
||||||
|
* The spot light does not affect objects outside this angle.
|
||||||
|
* The angle is given in radians. It is 2PI for point lights and
|
||||||
|
* undefined for directional lights. The outer angle must be
|
||||||
|
* greater than or equal to the inner angle.
|
||||||
|
* It is assumed that the application uses a smooth
|
||||||
|
* interpolation between the inner and the outer cone of the
|
||||||
|
* spot light.
|
||||||
|
*/
|
||||||
|
public final float GetAngleOuterCone()
|
||||||
|
{
|
||||||
|
return mAngleOuterCone;
|
||||||
|
}
|
||||||
|
};
|
Loading…
Reference in New Issue