Class LightingEffect

    • Field Detail

      • m_kSaveEmissive

        protected ColorRGB m_kSaveEmissive
        The Emissive Material color for Emissive Lighting Effects.
      • m_kLight0Save

        protected Light m_kLight0Save
      • m_kLights

        protected java.util.Vector<Light> m_kLights
        The list of Lights in this Effect:
      • GetDirectionalLightFactors

        private static java.lang.String GetDirectionalLightFactors
      • GetPointLightFactors

        private static java.lang.String GetPointLightFactors
      • GetSpotLightFactors

        private static java.lang.String GetSpotLightFactors
      • GetAttenuation

        private static java.lang.String GetAttenuation
    • Constructor Detail

      • LightingEffect

        public LightingEffect()
        Creates a LightingEffect
    • Method Detail

      • AttachLight

        public void AttachLight​(Light pkLight)
        Attaches a new Light to this Effect
        Parameters:
        pkLight - a new Light to add to this Effect
      • Configure

        public void Configure()
        After attaching and/or detaching lights, call Configure() to activate the correct shader program for the current set of lights.
      • DetachAllLights

        public void DetachAllLights()
        Removes all Lights from this Effect
      • DetachLight

        public void DetachLight​(Light pkLight)
        Removes the Light from this Effect
        Parameters:
        pkLight - the Light to remove from this Effect
      • GetDiskUsed

        public int GetDiskUsed​(StreamVersion rkVersion)
        Returns the size of this object and it's children on disk for the current StreamVersion parameter.
        Specified by:
        GetDiskUsed in interface StreamInterface
        Overrides:
        GetDiskUsed in class ShaderEffect
        Parameters:
        rkVersion - the current version of the Stream file being created.
        Returns:
        the size of this object on disk.
      • GetLight

        public Light GetLight​(int i)
        Returns the ith Light in this Effect
        Returns:
        the ith Light in this Effect
      • GetLightQuantity

        public int GetLightQuantity()
        Returns the number of lights in this Effect
        Returns:
        the number of lights
      • Link

        public void Link​(Stream rkStream,
                         Stream.Link pkLink)
        Copies this objects children objects from the input Stream's HashTable, based on the LinkID of the child stored in the pkLink parameter.
        Specified by:
        Link in interface StreamInterface
        Overrides:
        Link in class ShaderEffect
        Parameters:
        rkStream - the Stream where the child objects are stored.
        pkLink - the Link class from which the child object IDs are read.
      • Load

        public void Load​(Stream rkStream,
                         Stream.Link pkLink)
        Loads this object from the input parameter rkStream, using the input Stream.Link to store the IDs of children objects of this object for linking after all objects are loaded from the Stream.
        Specified by:
        Load in interface StreamInterface
        Overrides:
        Load in class ShaderEffect
        Parameters:
        rkStream - the Stream from which this object is being read.
        pkLink - the Link class for storing the IDs of this object's children objects.
      • Register

        public boolean Register​(Stream rkStream)
        Registers this object with the input Stream parameter. All objects streamed to disk are registered with the Stream so that a unique list of objects is maintained.
        Specified by:
        Register in interface StreamInterface
        Overrides:
        Register in class ShaderEffect
        Parameters:
        rkStream - the Stream where the child objects are stored.
        Returns:
        true if this object is registered, false if the object has already been registered.
      • RestoreGlobalState

        public void RestoreGlobalState​(int iPass,
                                       Renderer pkRenderer,
                                       boolean bPrimaryEffect)
        Enable and disable lights for multipass drawing. The first pass is responsible for handling the emissive lighting.
        Overrides:
        RestoreGlobalState in class ShaderEffect
        Parameters:
        iPass - the current rendering pass
        pkRenderer - the Renderer object
        bPrimaryEffect - when true this Effect is the primary Effect
      • Save

        public void Save​(Stream rkStream)
        Write this object and all it's children to the Stream.
        Specified by:
        Save in interface StreamInterface
        Overrides:
        Save in class ShaderEffect
        Parameters:
        rkStream - the Stream where the child objects are stored.
      • SaveStrings

        public StringTree SaveStrings​(java.lang.String acTitle)
        Write this object into a StringTree for the scene-graph visualization.
        Specified by:
        SaveStrings in interface StreamInterface
        Overrides:
        SaveStrings in class ShaderEffect
        Parameters:
        acTitle - the header for this object in the StringTree.
        Returns:
        StringTree containing a String-based representation of this object and it's children.
      • SetGlobalState

        public void SetGlobalState​(int iPass,
                                   Renderer pkRenderer,
                                   boolean bPrimaryEffect)
        Enable and disable lights for multipass drawing. The first pass is responsible for handling the emissive lighting.
        Overrides:
        SetGlobalState in class ShaderEffect
        Parameters:
        iPass - the current rendering pass
        pkRenderer - the Renderer object
        bPrimaryEffect - when true this Effect is the primary Effect
      • createLightShaderText

        private java.lang.String createLightShaderText​(char key)