class ART::IReflectionProbe

Reflection probe interface for probe manipulation.

#include <ARTIReflectionProbe.h>

Inherits: IREDObject.

Public functions:

virtual doubleGetBlendWeight ( ) const = 0
virtual const RED::Vector3 &GetCameraPositionOffset ( ) const = 0
virtual voidGetEffectBox ( RED::Vector3 & oMin, RED::Vector3 & oMax ) const = 0
virtual doubleGetEffectRadius ( ) const = 0
virtual RED::Object *GetEnvironmentMap ( ) const = 0
virtual RED::Object *GetEnvironmentMapIndex ( ) const = 0
virtual voidGetFalloffBox ( RED::Vector3 & oFalloffMin, RED::Vector3 & oFalloffMax ) const = 0
virtual doubleGetFalloffRadius ( ) const = 0
virtual const RED::Matrix &GetMatrix ( ) const = 0
virtual RED::Vector4GetPlanarReflectionPlaneEquation ( ) const = 0
virtual RED::Vector3GetPlanarReflectionPlaneNormal ( ) const = 0
virtual RED::Vector3GetPlanarReflectionPlanePoint ( ) const = 0
virtual RED::Object *GetPlanarReflectionTex ( ) const = 0
virtual boolGetRenderPlanar ( ) const = 0
virtual ART::REFLECTION_PROBE_TYPEGetType ( ) const = 0
virtual boolHasEnvironmentMap ( ) const = 0
virtual RED_RCInitialize ( RED::Object * iOther ) = 0
virtual RED_RCInitializeBox ( const RED::Matrix & iTransform, const RED::Vector3 & iEffectBoxMin, const RED::Vector3 & iEffectBoxMax, const RED::Vector3 & iFalloffBoxMin, const RED::Vector3 & iFalloffBoxMax ) = 0
virtual RED_RCInitializePlanar ( const RED::Matrix & iTransform, const RED::Vector3 & iEffectBoxMin, const RED::Vector3 & iEffectBoxMax, const RED::Vector3 & iFalloffBoxMin, const RED::Vector3 & iFalloffBoxMax ) = 0
virtual RED_RCInitializeSphere ( const RED::Matrix & iTransform, double iEffectRadius, double iFalloffRadius ) = 0
virtual boolIsActive ( ) const = 0
virtual voidSetActive ( bool iActive ) = 0
virtual voidSetBlendWeight ( double iBlendWeight ) = 0
virtual RED_RCSetCameraPositionOffset ( const RED::Vector3 & iCameraPosition ) = 0
virtual RED_RCSetEffectBox ( const RED::Vector3 & iMin, const RED::Vector3 & iMax ) = 0
virtual RED_RCSetEffectRadius ( double iRadius ) = 0
virtual RED_RCSetEnvironmentMap ( RED::Object * iEnvironmentMapAtlas, RED::Object * iEnvironmentMapAtlasIndex ) = 0
virtual RED_RCSetFalloffBox ( const RED::Vector3 & iMin, const RED::Vector3 & iMax ) = 0
virtual RED_RCSetFalloffRadius ( double iRadius ) = 0
virtual RED_RCSetMatrix ( const RED::Matrix & iMatrix ) = 0
virtual RED_RCSetPlanarReflectionPlaneEquation ( const RED::Vector4 & iPlaneEquation ) = 0
virtual RED_RCSetPlanarReflectionPlaneNormal ( const RED::Vector3 & iPlaneNormal ) = 0
virtual RED_RCSetPlanarReflectionPlanePoint ( const RED::Vector3 & iPlanePoint ) = 0
virtual RED_RCSetPlanarReflectionTex ( RED::Object * iPlanarReflectionTex ) = 0
virtual voidSetRenderPlanar ( bool iRender ) = 0

Public static functions:

static RED::CIDGetClassID ( )

Functions documentation

public virtual double ART::IReflectionProbe::GetBlendWeight() const = 0

Gets the probe blend weight.

Returns:

the probe blend weight.

Gets the position offset between the camera position and the probe matrix position.

Returns:

a reference to the camera position offset vector, in probe coordinate system.
public virtual void ART::IReflectionProbe::GetEffectBox(RED::Vector3 &oMin,
RED::Vector3 &oMax
)const = 0

Gets the probe effect box in the case of a box one.

Parameters:

oMin:Returned probe effect box min.
oMax:Returned probe effect box max.
public virtual double ART::IReflectionProbe::GetEffectRadius() const = 0

Gets the probe effect radius in the case of a spherical one.

Returns:

the probe effect radius.

Gets the environment map atlas texture.

Returns:

the environment maps.

Gets the environment maps index texture.

Returns:

the environment maps index.
public virtual void ART::IReflectionProbe::GetFalloffBox(RED::Vector3 &oFalloffMin,
RED::Vector3 &oFalloffMax
)const = 0

Gets the probe falloff box in the case of a box one.

Parameters:

oFalloffMin:Returned probe falloff box min.
oFalloffMax:Returned probe falloff box max.
public virtual double ART::IReflectionProbe::GetFalloffRadius() const = 0

Gets the probe falloff radius in the case of a spherical one.

Returns:

the probe falloff radius.
public virtual const RED::Matrix & ART::IReflectionProbe::GetMatrix() const = 0

Gets the probe transform matrix.

Returns:

a reference to the transform matrix.

Gets the plane equation for planar probes.

Returns:

RED::Vector4(a,b,c,d) for a plane of equation ax + by + cz + d = 0 in world coordinates.

Gets the plane normal vector for planar probes.

Gets a point located on the plane for planar probes.

Gets the reflection texture for planar probes.

Returns:

the reflection texture.
public virtual bool ART::IReflectionProbe::GetRenderPlanar() const = 0

Gets the render planar parameter.

Returns:

the render planar parameter.

Gets the probe type.

Returns:

the reflection probe type: spherical or box.
public virtual bool ART::IReflectionProbe::HasEnvironmentMap() const = 0

Tests if the probe has environment maps.

Returns:

true if the probe has environment maps.

Initializes the probe from another one.

The iOther probe properties are copied to this.

Parameters:

iOther:ART::ReflectionProbe to initialize this with.

Returns:

RED_OK if the method has succeeded,
RED_FAIL otherwise.
public virtual RED_RC ART::IReflectionProbe::InitializeBox(const RED::Matrix &iTransform,
const RED::Vector3 &iEffectBoxMin,
const RED::Vector3 &iEffectBoxMax,
const RED::Vector3 &iFalloffBoxMin,
const RED::Vector3 &iFalloffBoxMax
) = 0

Initializes a box probe.

Parameters:

iTransform:transform matrix containing the probe position and orientation, PCS.
iEffectBoxMin:effect box minimum point, offset relative to iTransform.
iEffectBoxMax:effect box maximum point, offset relative to iTransform.
iFalloffBoxMin:falloff box minimum point, offset relative to iTransform.
iFalloffBoxMax:falloff box maximum point, offset relative to iTransform.

Returns:

RED_OK if the method has succeeded,
RED_FAIL otherwise.
public virtual RED_RC ART::IReflectionProbe::InitializePlanar(const RED::Matrix &iTransform,
const RED::Vector3 &iEffectBoxMin,
const RED::Vector3 &iEffectBoxMax,
const RED::Vector3 &iFalloffBoxMin,
const RED::Vector3 &iFalloffBoxMax
) = 0

Initializes a planar probe.

Parameters:

iTransform:transform matrix containing the probe position and orientation, PCS.
iEffectBoxMin:effect box minimum point, offset relative to iTransform.
iEffectBoxMax:effect box maximum point, offset relative to iTransform.
iFalloffBoxMin:falloff box minimum point, offset relative to iTransform.
iFalloffBoxMax:falloff box maximum point, offset relative to iTransform.

Returns:

RED_OK if the method has succeeded,
RED_FAIL otherwise.
public virtual RED_RC ART::IReflectionProbe::InitializeSphere(const RED::Matrix &iTransform,
doubleiEffectRadius,
doubleiFalloffRadius
) = 0

Initializes a spherical probe.

Parameters:

iTransform:transform matrix containing the probe position and orientation, PCS.
iEffectRadius:effect radius of the sphere, offset relative to iTransform.
iFalloffRadius:falloff radius of the sphere, offset relative to iTransform.

Returns:

RED_OK if the method has succeeded,
RED_FAIL otherwise.
public virtual bool ART::IReflectionProbe::IsActive() const = 0

Tells if the probe is active or not.

Returns:

true if the reflection probe is active, false otherwise.
public virtual void ART::IReflectionProbe::SetActive(booliActive) = 0

Activates or deactivates the probe.

Parameters:

iActive:True to activate the probe.
public virtual void ART::IReflectionProbe::SetBlendWeight(doubleiBlendWeight) = 0

Sets the probe blend weight ]0,+inf] .

The blend weight is used at rendering. It is the importance of the probe against other probes when there volumes intersect each other.

Parameters:

iBlendWeight:Probe blend weight.
public virtual RED_RC ART::IReflectionProbe::SetCameraPositionOffset(const RED::Vector3 &iCameraPosition) = 0

Sets the probe camera position offset.

This position offset vector is in the probe coordinate system

Parameters:

iCameraPositionOffset:The position offset vector.

Returns:

RED_OK if the method has succeeded,
RED_FAIL otherwise.
public virtual RED_RC ART::IReflectionProbe::SetEffectBox(const RED::Vector3 &iMin,
const RED::Vector3 &iMax
) = 0

Sets the probe effect box in the case of a box one.

Parameters:

iMin:Probe effect box min.
iMax:Probe effect box max.

Returns:

RED_OK if the method has succeeded,
RED_BAD_PARAM if the method has received an invalid parameter,
RED_FAIL otherwise.
public virtual RED_RC ART::IReflectionProbe::SetEffectRadius(doubleiRadius) = 0

Sets the probe effect radius in the case of a spherical one.

Parameters:

iRadius:the probe effect radius.

Returns:

RED_OK if the method has succeeded,
RED_BAD_PARAM if the method has received an invalid parameter,
RED_FAIL otherwise.
public virtual RED_RC ART::IReflectionProbe::SetEnvironmentMap(RED::Object *iEnvironmentMapAtlas,
RED::Object *iEnvironmentMapAtlasIndex
) = 0

Sets the environment maps atlas.

Parameters:

iEnvironmentMapAtlas:environment map atlas as RED::IImage2D.
iEnvironmentMapAtlasIndex:environment map atlas index as RED::IImage2D.

Returns:

RED_OK if the method has succeeded,
RED_BAD_PARAM if the method has received an invalid parameter,
RED_FAIL otherwise.
public virtual RED_RC ART::IReflectionProbe::SetFalloffBox(const RED::Vector3 &iMin,
const RED::Vector3 &iMax
) = 0

Sets the probe falloff box in the case of a box one.

Parameters:

iMin:Probe falloff box min.
iMax:Probe falloff box max.

Returns:

RED_OK if the method has succeeded,
RED_BAD_PARAM if the method has received an invalid parameter,
RED_FAIL otherwise.
public virtual RED_RC ART::IReflectionProbe::SetFalloffRadius(doubleiRadius) = 0

Sets the probe falloff radius in the case of a spherical one.

Parameters:

iRadius:the probe falloff radius.

Returns:

RED_OK if the method has succeeded,
RED_BAD_PARAM if the method has received an invalid parameter,
RED_FAIL otherwise.
public virtual RED_RC ART::IReflectionProbe::SetMatrix(const RED::Matrix &iMatrix) = 0

Sets the probe transform matrix.

If the probe has a parent body, its transform will be relative to it. Otherwise its transform will be relative to the world coordinates system.

Parameters:

iMatrix:The transform matrix.

Returns:

RED_OK if the method has succeeded,
RED_FAIL otherwise.

Sets the plane equation for planar probes.

Parameters:

iPlaneEquation: RED::Vector4(a,b,c,d) for a plane of equation ax + by + cz + d = 0 in world coordinates.

Returns:

RED_OK if the method has succeeded,
RED_INIT_FAILED if this method is called on a probe that is not planar,
RED_FAIL otherwise.

Sets the plane normal for planar probes.

Parameters:

iPlaneNormal: normal to the plane, WCS.

Returns:

RED_OK if the method has succeeded,
RED_INIT_FAILED if this method is called on a probe that is not planar,
RED_FAIL otherwise.

Sets a reference point located on the plane.

Parameters:

iPlanePoint: any point located on the plane, WCS.

Returns:

RED_OK if the method has succeeded,
RED_INIT_FAILED if this method is called on a probe that is not planar,
RED_FAIL otherwise.
public virtual RED_RC ART::IReflectionProbe::SetPlanarReflectionTex(RED::Object *iPlanarReflectionTex) = 0

Sets the reflection texture for planar probes.

Parameters:

iPlanarReflectionTex:the reflection texture.

Returns:

RED_OK if the method has succeeded,
RED_INIT_FAILED if this method is called on a probe that is not planar,
RED_FAIL otherwise.
public virtual void ART::IReflectionProbe::SetRenderPlanar(booliRender) = 0

Sets this reflection probe to handle the rendering of the planar reflection texture. For geometry instances, ReflectionProbe objects are duplicated but share the same planar reflection texture, which needs to be rendered only once. If several reflections probes share the same reflection tex and have SetRenderPlanar to true, the rendering will happen several times for nothing. If several reflections probes share the same reflection tex but none has SetRenderPlanar to true, the texture will not be rendered.

Parameters:

iRender:true to render, false to let another probe render.