Class AILight

  • All Implemented Interfaces:
    Pointer

    public class AILight
    extends Struct
    Helper structure to describe a light source.

    Assimp supports multiple sorts of light sources, including directional, point and spot lights. All of them are defined with just a single structure and distinguished by their parameters. Note - some file formats (such as 3DS, ASE) export a "target point" - the point a spot light is looking at (it can even be animated). Assimp writes the target point as a subnode of a spotlights's main node, called "<spotName>.Target". However, this is just additional information then, the transformation tracks of the main node make the spot light already point in the right direction.

    Member documentation

    • mName – 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.
    • mType – The type of the light source. LightSource_UNDEFINED is not a valid value for this member.
    • mPosition – 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.
    • mDirection – 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.
    • mUp – Up 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.
    • mAttenuationConstant – Constant light attenuation factor. The intensity of the light source at a given distance 'd' from the light's position is Atten = 1/( att0 + att1 * d + att2 * d*d). This member corresponds to the att0 variable in the equation. Naturally undefined for directional lights.
    • mAttenuationLinear – Linear light attenuation factor. The intensity of the light source at a given distance 'd' from the light's position is Atten = 1/( att0 + att1 * d + att2 * d*d). This member corresponds to the att1 variable in the equation. Naturally undefined for directional lights.
    • mAttenuationQuadratic – Quadratic light attenuation factor. The intensity of the light source at a given distance 'd' from the light's position is Atten = 1/( att0 + att1 * d + att2 * d*d). This member corresponds to the att2 variable in the equation. Naturally undefined for directional lights.
    • mColorDiffuse – 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.
    • mColorSpecular – 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.
    • mColorAmbient – 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.
    • mAngleInnerCone – 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.
    • mAngleOuterCone – 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.
    • mSize – Size of area light source.

    Layout

    
     struct aiLight {
         struct aiString mName;
         aiLightSourceType mType;
         struct aiVector3D mPosition;
         struct aiVector3D mDirection;
         struct aiVector3D mUp;
         float mAttenuationConstant;
         float mAttenuationLinear;
         float mAttenuationQuadratic;
         struct aiColor3D mColorDiffuse;
         struct aiColor3D mColorSpecular;
         struct aiColor3D mColorAmbient;
         float mAngleInnerCone;
         float mAngleOuterCone;
         struct aiVector2D mSize;
     }
    • Field Detail

      • SIZEOF

        The struct size in bytes.
      • ALIGNOF

        The struct alignment in bytes.
      • MNAME, MTYPE, MPOSITION, MDIRECTION, MUP, MATTENUATIONCONSTANT, MATTENUATIONLINEAR, MATTENUATIONQUADRATIC, MCOLORDIFFUSE, MCOLORSPECULAR, MCOLORAMBIENT, MANGLEINNERCONE, MANGLEOUTERCONE, MSIZE

        The struct member offsets.
    • Constructor Detail

      • AILight

        public AILight​(java.nio.ByteBuffer container)
        Creates a AILight instance at the current position of the specified ByteBuffer container. Changes to the buffer's content will be visible to the struct instance and vice versa.

        The created instance holds a strong reference to the container object.

    • Method Detail

      • sizeof

        public int sizeof()
        Description copied from class: Struct
        Returns sizeof(struct).
        Specified by:
        sizeof in class Struct
      • mName

        public AILight mName​(java.util.function.Consumer<AIString> consumer)
        Passes the mName field to the specified Consumer.
      • mType

        public int mType()
        Returns the value of the mType field.
      • mPosition

        public AILight mPosition​(java.util.function.Consumer<AIVector3D> consumer)
        Passes the mPosition field to the specified Consumer.
      • mDirection

        public AILight mDirection​(java.util.function.Consumer<AIVector3D> consumer)
        Passes the mDirection field to the specified Consumer.
      • mUp

        public AILight mUp​(java.util.function.Consumer<AIVector3D> consumer)
        Passes the mUp field to the specified Consumer.
      • mAttenuationConstant

        public float mAttenuationConstant()
        Returns the value of the mAttenuationConstant field.
      • mAttenuationLinear

        public float mAttenuationLinear()
        Returns the value of the mAttenuationLinear field.
      • mAttenuationQuadratic

        public float mAttenuationQuadratic()
        Returns the value of the mAttenuationQuadratic field.
      • mColorDiffuse

        public AIColor3D mColorDiffuse()
        Returns a AIColor3D view of the mColorDiffuse field.
      • mColorSpecular

        public AIColor3D mColorSpecular()
        Returns a AIColor3D view of the mColorSpecular field.
      • mColorAmbient

        public AIColor3D mColorAmbient()
        Returns a AIColor3D view of the mColorAmbient field.
      • mAngleInnerCone

        public float mAngleInnerCone()
        Returns the value of the mAngleInnerCone field.
      • mAngleOuterCone

        public float mAngleOuterCone()
        Returns the value of the mAngleOuterCone field.
      • create

        public static AILight create​(long address)
        Returns a new AILight instance for the specified memory address.
      • createSafe

        @Nullable
        public static AILight createSafe​(long address)
        Like create, but returns null if address is NULL.
      • create

        public static AILight.Buffer create​(long address,
                                            int capacity)
        Create a AILight.Buffer instance at the specified memory.
        Parameters:
        address - the memory address
        capacity - the buffer capacity
      • createSafe

        @Nullable
        public static AILight.Buffer createSafe​(long address,
                                                int capacity)
        Like create, but returns null if address is NULL.
      • nmName

        public static AIString nmName​(long struct)
        Unsafe version of mName().
      • nmType

        public static int nmType​(long struct)
        Unsafe version of mType().
      • nmUp

        public static AIVector3D nmUp​(long struct)
        Unsafe version of mUp().
      • nmAttenuationConstant

        public static float nmAttenuationConstant​(long struct)
        Unsafe version of mAttenuationConstant().
      • nmAttenuationLinear

        public static float nmAttenuationLinear​(long struct)
        Unsafe version of mAttenuationLinear().
      • nmAttenuationQuadratic

        public static float nmAttenuationQuadratic​(long struct)
        Unsafe version of mAttenuationQuadratic().
      • nmAngleInnerCone

        public static float nmAngleInnerCone​(long struct)
        Unsafe version of mAngleInnerCone().
      • nmAngleOuterCone

        public static float nmAngleOuterCone​(long struct)
        Unsafe version of mAngleOuterCone().
      • nmSize

        public static AIVector2D nmSize​(long struct)
        Unsafe version of mSize().