ILight
Functions
float |
|
float |
|
Object * |
|
int |
|
float |
|
void |
|
float |
|
const Color & |
|
const Color & |
|
void |
|
float |
|
void |
|
bool |
|
void |
|
bool |
|
void |
|
int |
|
void |
|
int |
|
void |
|
double |
|
void |
|
Object * |
|
bool |
|
void |
|
bool |
|
double |
|
bool |
|
int |
Detailed Description
-
class ILight : public RED::IREDObject
Light interface for light manipulation.
Public Functions
-
SET_CID(CID_class_ARTILight)
-
virtual ART::LIGHT_TYPE GetType() const = 0
Gets the type of the light.
- Returns
the type of the light.
-
virtual float GetSpotAngle() const = 0
Gets the light spot angle.
- Returns
the spot angle.
-
virtual RED_RC SetSpotAngle(float iAngle) = 0
Sets the light spot angle.
- Parameters
iAngle – : the new spot angle.
- Returns
RED_OK if the operation has succeeded,
Other RED_RCs from the REDsdk API.
-
virtual float GetSpotFalloff() const = 0
Gets the light spot falloff.
- Returns
the spot falloff.
-
virtual RED_RC SetSpotFalloff(float iFalloff) = 0
Sets the light spot falloff.
- Parameters
iFalloff – the new spot falloff.
- Returns
RED_OK if the operation has succeeded,
Other RED_RCs from the REDsdk API.
-
virtual RED::Object *GetSpotTexture() const = 0
Gets the spot texture.
- Returns
The spot texture as RED::IImage2D.
-
virtual int GetSpotTextureSize() const = 0
Returns the spot texture resolution.
- Returns
The spot texture size.
-
virtual float GetEffectDistance() const = 0
Gets the light effect distance.
- Returns
the effect distance.
-
virtual void GetAreaSize(float &oWidth, float &oHeight) const = 0
Gets the light size in the case of an area.
- Parameters
oWidth – width of the area.
oHeight – height of the area.
-
virtual float GetSphereRadius() const = 0
Gets the light radius in case of a spherical.
- Returns
the sphere emitter radius.
-
virtual const RED::Color &GetDiffuse() const = 0
Gets the light diffuse color.
- Returns
the diffuse color.
-
virtual RED_RC SetDiffuse(const RED::Color &iDiffuse) = 0
Sets the light diffuse color.
If the light is a physical light, the methods ART::ILight::SetPhysicalColor and ART::ILight::SetLuminousFlux should be prefered instead of ART::ILight::SetDiffuse. It ensures the physical correctness of the light.
- Parameters
iDiffuse – the light diffuse color.
-
virtual const RED::Color &GetPhysicalColor() const = 0
Gets the light physical color.
- Returns
the physical color.
-
virtual void SetPhysicalColor(const RED::Color &iColor) = 0
Sets the light physical color.
If the light is a physical light, the methods ART::ILight::SetPhysicalColor and ART::ILight::SetLuminousFlux should be prefered instead of ART::ILight::SetDiffuse. It ensures the physical correctness of the light.
- Parameters
iColor – the light physical color.
-
virtual float GetLuminousFlux() const = 0
Gets the light luminous flux.
- Returns
the luminous flux in lumens.
-
virtual RED_RC SetLuminousFlux(float iLuminousFlux) = 0
Sets the light luminous flux in lumens.
If the light is a physical light, the methods ART::ILight::SetPhysicalColor and ART::ILight::SetLuminousFlux should be prefered instead of ART::ILight::SetDiffuse. It ensures the physical correctness of the light.
- Parameters
iLuminousFlux – the light luminous flux.
- Returns
RED_OK if the operation has succeeded,
Other RED_RCs from the REDsdk API.
-
virtual ART::LIGHT_BAKING GetBaking() const = 0
Gets the light baking mode.
- Returns
the light baking mode.
-
virtual void SetBaking(ART::LIGHT_BAKING iBaking) = 0
Sets the light baking mode.
- Parameters
iBaking – the light baking mode.
- Returns
true if the light uses a shared GI cache with all other similar lights for its GI.
Sets whether the light will own a proprietary GI cache for its baking or not.
- Parameters
iShared – true to share the GI cache, false to keep a proprietary cache.
-
virtual bool IsActive() const = 0
Tells if the light is active.
- Returns
true if the light is active, false otherwise.
-
virtual RED_RC SetActive(bool iActive) = 0
Sets the light active.
- Parameters
iActive – true to set the light active, false to inactivate it.
- Returns
RED_OK if the operation has succeeded,
Other RED_RCs from the REDsdk API.
-
virtual ART::LIGHT_SHADOW GetShadowType() const = 0
Gets the shadow map type.
- Returns
The shadow map type.
-
virtual void SetShadowType(ART::LIGHT_SHADOW iShadowType) = 0
Sets the shadow map type.
- Parameters
iShadowType – type of the shadows.
-
virtual int GetShadowMapSize() const = 0
Returns the shadow map resolution.
- Returns
The shadow map size.
-
virtual void SetShadowMapSize(int iShadowMapSize) = 0
Sets the shadow map size.
- Parameters
iShadowMapSize – size of the shadow map in pixels.
-
virtual int GetShadowMapBlur() const = 0
Returns the shadow map blur kernel size in pixels.
- Returns
The shadow map blur.
-
virtual void SetShadowMapBlur(int iShadowMapBlur) = 0
Sets the shadow map blur kernel size in pixels.
- Parameters
iShadowMapBlur – size of the shadow map blur kernel in pixels between 1 and 20.
-
virtual double GetShadowBias() const = 0
Returns the shadow bias.
- Returns
The shadow bias.
-
virtual void SetShadowBias(double iShadowBias) = 0
Sets the shadow bias.
- Parameters
iShadowBias – shadow bias.
-
virtual RED::Object *GetStaticShadowMap(int iInstance = 0) const = 0
Gets the static shadow map of the given light instance.
- Parameters
iInstance – optional light instance to query.
- Returns
The static shadow map as RED::IImage2D or NULL.
-
virtual RED_RC GetStaticShadowMatrix(RED::Matrix &oMatrix, const RED::Matrix &iOrigin, int iInstance = 0, ART::SIDE iSide = ART::S_FRONT) const = 0
Computes the static shadow matrix of the given light instance.
- Parameters
oMatrix – returned shadow matrix.
iOrigin – floating origin.
iInstance – optional light instance.
iSide – optional side for point light shadows.
- Returns
the shadow map matrix.
-
virtual RED_RC SetStaticShadowMap(RED::Object *iShadowMap, int iInstance = 0) = 0
Sets the shadow map static.
- Parameters
iShadowMap – static shadow map as RED::IImage2D.
iInstance – optional light instance to set.
- Returns
RED_OK if the method has succeeded,
RED_BAD_PARAM if iShadowMap is not a valid
RED::IImage2Dor if iInstance does not exist,
RED_FAIL otherwise.
-
virtual bool IsEmitterVisible() const = 0
Tests if the light emitter is visible.
- Returns
True if the emitter is visible.
-
virtual void SetEmitterVisible(bool iVisible) = 0
Sets the light emitter shape visible.
- Parameters
iVisible – true to show the emitter, false to hide it.
-
virtual RED_RC SetMatrix(const RED::Matrix &iMatrix, int iInstance = -1) = 0
Sets the lights transform.
If the light has a parent body, its transform will be relative to it. Otherwise its transform will be relative to the world coordinates system.
If iInstance is -1 (default), the matrix is applied to the first instance and all the other instances are moved keeping their position relative to the first. Otherwise, only the instance number iInstance is moved.
- Parameters
iMatrix – The transform matrix.
iInstance – optional light instance to set.
- Returns
RED_OK if the method has succeeded,
RED_FAIL otherwise.
-
virtual RED_RC GetMatrix(RED::Matrix &oTransform, int iInstance = 0) const = 0
Gets the lights transform.
- Parameters
oTransform – returned reference to the transform matrix.
iInstance – optional light instance to query.
- Returns
RED_OK if the method has succeeded,
RED_BAD_PARAM if the method has received an invalid parameter,
RED_FAIL otherwise.
-
virtual bool HasIES() const = 0
Tests if the light has IES data.
- Returns
true if the light has IES data, false otherwise.
-
virtual double GetIESAngle() const = 0
Gets the IES spot angle.
- Returns
the IES spot angle.
-
virtual RED_RC SetIESStretch(bool iStretch) = 0
Sets the IES stretched or clamped at the spot angle.
- Parameters
iStretch – true to stretch the IES, false to clamp it.
- Returns
RED_OK if the method has succeeded,
RED_BAD_PARAM if the method has received an invalid parameter,
RED_FAIL otherwise.
-
virtual bool GetIESStretch() const = 0
Gets the IES stretch.
- Returns
true if the IES is stretched, false if it is clamped.
-
virtual int GetInstancesCount() const = 0
Gets the number of light instances.
- Returns
the number of light instances.
-
SET_CID(CID_class_ARTILight)