diff --git a/port/jAssimp/src/assimp/Camera.java b/port/jAssimp/src/assimp/Camera.java
index bd9f8a3df..f6cd5717e 100644
--- a/port/jAssimp/src/assimp/Camera.java
+++ b/port/jAssimp/src/assimp/Camera.java
@@ -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;
-/**
- * Created by IntelliJ IDEA.
- * User: Alex
- * Date: 09.10.2008
- * Time: 13:54:10
- * To change this template use File | Settings | File Templates.
+
+/** Describes a virtual camera in the scene
+ *
+ * Cameras have a representation in the node graph and can be animated
+ *
+ * @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;
+ }
+};
\ No newline at end of file
diff --git a/port/jAssimp/src/assimp/Component.java b/port/jAssimp/src/assimp/Component.java
new file mode 100644
index 000000000..2bd17b9e4
--- /dev/null
+++ b/port/jAssimp/src/assimp/Component.java
@@ -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 Scene
and Mesh
+ * 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 COLORn(N)
to specifiy the N'th set
+ */
+ public static final int COLORS = 0x8;
+
+ /** All texture UV sets are removed
+ *
+ * Use TEXCOORDn(N)
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 TEXTURES
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));
+ }
+};
diff --git a/port/jAssimp/src/assimp/ConfigProperty.java b/port/jAssimp/src/assimp/ConfigProperty.java
index aba29e631..7c7f005dd 100644
--- a/port/jAssimp/src/assimp/ConfigProperty.java
+++ b/port/jAssimp/src/assimp/ConfigProperty.java
@@ -39,9 +39,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
---------------------------------------------------------------------------
*/
-
package assimp;
+
/**
* Defines configuration properties.
*
Component
class. The default
+ * value is 0. Important: if no valid mesh is remaining after the
+ * 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
+ * no data to work on anymore ...
+ */
+ public static final String AI_CONFIG_PP_RVC_FLAGS
+ = "pp.rvc.flags";
- /** \brief Specifies whether animations are removed from the asset.
- * This is an input parameter to the OptimizeGraph-Step.
- *
- * If an application does not need the animation data, erasing it at the
- * beginning of the post-process pipeline allows some steps - including
- * OptimizeGraph itself - to apply further optimizations.
- * note: This is a boolean property stored as an integer, 0 is false
- */
- public static final String AI_CONFIG_PP_OG_REMOVE_ANIMATIONS
- = "pp.og.remove_anims";
-
-}
+ /** Causes assimp to favour speed against import quality.
+ *
+ * Enabling this option may result in faster loading, but it needn't.
+ * It represents just a hint to loaders and post-processing steps to use
+ * faster code paths, if possible.
+ * This property is expected to be an integer, != 0 stands for true.
+ * The default value is 0.
+ */
+ public static final String AI_CONFIG_FAVOUR_SPEED
+ = "imp.speed_flag";
+};
diff --git a/port/jAssimp/src/assimp/Light.java b/port/jAssimp/src/assimp/Light.java
index 9a49cc84a..d53e688b7 100644
--- a/port/jAssimp/src/assimp/Light.java
+++ b/port/jAssimp/src/assimp/Light.java
@@ -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;
-/**
- * Created by IntelliJ IDEA.
- * User: Alex
- * Date: 09.10.2008
- * Time: 13:54:04
- * To change this template use File | Settings | File Templates.
+
+/** Describes a virtual camera in the scene
+ *
+ * Cameras have a representation in the node graph and can be animated
+ *
+ * @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;
+ }
+};
\ No newline at end of file