Public Member Functions
Override Class Reference

## Detailed Description

This class represents an Override override property. An override contains the parameters that are used for replacing an object's parameter with another value or a shader without removing the original object parameter.

Parameters whose values are overriden by another parameter's value are called 'overridden parameters' and the parameters stored in the override property whose values are used to override an overriden parameter are called 'overriding parameters'.

Override properties are created with SceneItem::AddProperty. You can get pointers to existing Override objects like any other property on an object:

     Override overrideProp = pointLight.GetProperties().GetItem(L"MyOverride");

See also:
  Parameter::GetOverridenObject, Parameter::GetOverridingObject, Parameter::GetOriginalValue

Since:
  7.0

Example:
  This example demonstrates how to create and access override parameters

              Application app;
              Model root = app.GetActiveSceneRoot();

              // Create a light object
              Light pointLight;
              root.AddLight( L"Point", false, L"PointLight", pointLight );

              pointLight.AddProperty( overridepreset, false, L"PointOverride" );
              Override overrideProp = pointLight.GetProperties().GetItem(L"PointOverride");
              Parameter posx = pointLight.GetKinematics().GetLocal().GetParameters().GetItem(L"posx");

              // Set the original (overridden) parameter value
              posx.PutValue( 5.0 );

              // Set the overriding value
              Parameter overridingPosx = overrideProp.AddParameterEntry( posx );
              SetValue( overridingPosx.GetFullName(), CValue(-4.0), CValue(0) );

              // Override the light shader color parameter
              Shader softLight = pointLight.GetShaders().GetItem( L"soft_light" );
              Parameter softLightColor = softLight.GetParameters().GetItem(L"Color");

              // Set the original value
              softLightColor.PutParameterValue( L"Red", 0.5 );
              softLightColor.PutParameterValue( L"Blue", 0.5 );

              // Set the overrding value
              Parameter overridingSoftLightColor = overrideProp.AddParameterEntry( softLightColor );
              SIApplyShaderToCnxPoint( L"Shaders\\Texture\\Color_Channels\\RGBA_combine.Preset",
                  CValue(overridingSoftLightColor.GetFullName()) );

              // Log the overriding posx parameter values
              overridingPosx = overrideProp.GetParameterEntries().GetItem( L"posx" );
              Parameter overridenPosx = overridingPosx.GetOverridenObject();

              app.LogMessage( L"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" );
              app.LogMessage( L"Overriding posx: " + overridingPosx.GetFullName() );
              app.LogMessage( L"Overriding posx value: " + CString( overridingPosx.GetValue() ) );
              app.LogMessage( L"Overriding posx original value: " + CString( overridingPosx.GetOriginalValue() ) );
              app.LogMessage( L"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *");
              app.LogMessage( L"Overriden posx: " + overridenPosx.GetFullName() );
              app.LogMessage( L"Overriden posx value: " + CString( overridenPosx.GetValue() ) );
              app.LogMessage( L"Overriden posx original value: " + CString( overridenPosx.GetOriginalValue() ) );
              // INFO : * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
              // INFO : Overriding posx: PointLight.PointOverride.posx
              // INFO : Overriding posx value: -4
              // INFO : Overriding posx original value: 5
              // INFO : * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
              // INFO : Overriden posx: PointLight.kine.local.posx
              // INFO : Overriden posx value: -4
              // INFO : Overriden posx original value: 5

              // Log the overriding color parameter values
              Parameter overridingColor = overrideProp.GetParameterEntries().GetItem( L"light-soft_light-color" );
              Shader overridingColorSource = overridingColor.GetSource();
              MATH::CColor4f overridingColorOriginalValue = overridingColor.GetOriginalValue();

              app.LogMessage( L"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** ");
              app.LogMessage( L"Overriding color: " + overridingColorSource.GetFullName() );
              app.LogMessage( L"Overriding color value: " + CString( overridingColorSource.GetParameterValue( L"red" ) ) +L":"+ CString( overridingColorSource.GetParameterValue( L"green" ) )+L":"+ CString( overridingColorSource.GetParameterValue( L"blue" ) )+L":"+ CString( overridingColorSource.GetParameterValue( L"alpha" ) ) );
              app.LogMessage( L"Overriding color original value: " + CString( overridingColorOriginalValue.GetR( ) ) +L":"+ CString( overridingColorOriginalValue.GetG( ) )+L":"+ CString( overridingColorOriginalValue.GetB( ) )+L":"+ CString( overridingColorOriginalValue.GetA( ) ) );
              // INFO : * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * **
              // INFO : Overriding color: PointLight.PointOverride.RGBA_combine
              // INFO : Overriding color value: 1:1:1:1
              // INFO : Overriding color original value: 0.5:1:0.5:0

              Parameter overridenColor = overridingColor.GetOverridenObject();
              MATH::CColor4f overridenColorValue = overridenColor.GetValue();
              MATH::CColor4f overridenColorOriginalValue = overridenColor.GetOriginalValue();

              app.LogMessage( L"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *");
              app.LogMessage( L"Overriden color: " + overridenColor.GetFullName() );
              app.LogMessage( L"Overriden color value: " + CString( overridenColorValue.GetR( ) ) +L":"+ CString( overridenColorValue.GetG( ) )+L":"+ CString( overridenColorValue.GetB( ) )+L":"+ CString( overridenColorValue.GetA( ) ) );
              app.LogMessage( L"Overriden color original value: " + CString( overridenColorOriginalValue.GetR( ) ) +L":"+ CString( overridenColorOriginalValue.GetG( ) )+L":"+ CString( overridenColorOriginalValue.GetB( ) )+L":"+ CString( overridenColorOriginalValue.GetA( ) ) );
              // INFO : * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
              // INFO : Overriden color: PointLight.light.soft_light.color
              // INFO : Overriden color value: 0.5:1:0.5:0
              // INFO : Overriden color original value: 0.5:1:0.5:0

              CValue SetValue( const CString& in_target, const CValue& in_value, const CValue&  in_time )
              {
                  CValueArray args(3);
                  CValue retval;

                  args[0]= in_target;
                  args[1]= in_value;
                  args[2]= in_time;

                  Application app;
                  app.ExecuteCommand( L"SetValue", args, retval );

                  return retval;
              }

              CValue SIApplyShaderToCnxPoint( const CValue& in_presetobj, const CValue& in_inputobjs )
              {
                  CValueArray args(4);
                  CValue retval;
                  LONG i(0);

                  args[i++]= in_presetobj;
                  args[i++]= in_inputobjs;
                  args[i++]= L"";
                  args[i++]= true;

                  Application app;
                  app.ExecuteCommand( L"SIApplyShaderToCnxPoint", args, retval );

                  return retval;
              }

`#include <xsi_override.h>`

Inheritance diagram for Override:
[legend]

List of all members.

## Public Member Functions
| Override ()
| ~Override ()
| Override (const CRef &in_ref)
| Override (const Override &in_obj)
bool | IsA (siClassID in_ClassID) const
siClassID | GetClassID () const
Override & | operator= (const Override &in_obj)
Override & | operator= (const CRef &in_ref)
CParameterRefArray | GetParameterEntries () const
CRef | AddParameterEntry (const Parameter &in_param)
CStatus | RemoveParameterEntry (const Parameter &in_param)
CStatus | RemoveAllEntries ()
CRefArray | GetAllShaders () const
CRefArray | GetAllImageClips () const

## Constructor & Destructor Documentation

Override | ( |  | ) |

Default constructor.

~Override | ( |  | ) |

Default destructor.

Override | ( | const CRef & | in_ref | ) |

Constructor.

Parameters:

  in_ref | constant reference object.

Override | ( | const Override & | in_obj | ) |

Copy constructor.

Parameters:

  in_obj | constant class object.

## Member Function Documentation

bool IsA | ( | siClassID | in_ClassID | ) | const`[virtual]`

Returns true if a given class type is compatible with this API class.

Parameters:

  in_ClassID | class type.

Returns:
  true if the class is compatible, false otherwise.

Reimplemented from Property.

siClassID GetClassID | ( |  | ) | const`[virtual]`

Returns the type of the API class.

Returns:
  The class type.

Reimplemented from Property.

Override& operator= | ( | const Override & | in_obj | ) |

Creates an object from another object. The newly created object is set to empty if the input object is not compatible.

Parameters:

  in_obj | constant class object.

Returns:
  The new Override object.

Override& operator= | ( | const CRef & | in_ref | ) |

Creates an object from a reference object. The newly created object is set to empty if the input reference object is not compatible.

Parameters:

  in_ref | constant class object.

Returns:
  The new Override object.

Reimplemented from Property.

CParameterRefArray GetParameterEntries | ( |  | ) | const

Returns the overriding parameters of this override property.

Returns:
  Array of overriding parameters.

Example:
  This example demonstrates how to loop over override parameters

              Application app;
              Model root = app.GetActiveSceneRoot();

              // Create a light object
              Light pointLight;
              root.AddLight( L"Point", false, L"PointLight", pointLight );

              // Add entries to an override
              Override overrideProp = pointLight.AddProperty( L"Override", false, L"PointOverride" );
              Parameter posx = pointLight.GetKinematics().GetLocal().GetParameters().GetItem(L"posx");
              Parameter posy = pointLight.GetKinematics().GetLocal().GetParameters().GetItem(L"posy");
              Parameter posz = pointLight.GetKinematics().GetLocal().GetParameters().GetItem(L"posz");

              overrideProp.AddParameterEntry( posx );
              overrideProp.AddParameterEntry( posy );
              overrideProp.AddParameterEntry( posz );

              CParameterRefArray entries = overrideProp.GetParameterEntries();
              for (ULONG i = 0; i< entries.GetCount(); i++)
              {
                  Parameter paramEntry(entries[i]);

                  app.LogMessage( L"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" );
                  app.LogMessage( L"Overriding: " + paramEntry.GetFullName() );
                  app.LogMessage( L"Overriding value: " + CString( paramEntry.GetValue() ) );
              }

              // INFO : * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
              // INFO : Overriding: PointLight.PointOverride.posx
              // INFO : Overriding value: 0
              // INFO : * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
              // INFO : Overriding: PointLight.PointOverride.posy
              // INFO : Overriding value: 0
              // INFO : * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
              // INFO : Overriding: PointLight.PointOverride.posz
              // INFO : Overriding value: 0

CRef AddParameterEntry | ( | const Parameter & | in_param | ) |

Adds a new entry to override the input parameter and returns the new overriding parameter.

Note:
  Adding an entry to the override doesn't activate the override parameter automatically, you must first set its value with the SetValue command. Parameter::PutValue will not activate the override parameter.

Parameters:

  in_param | The parameter to override.

Returns:
  The new overriding parameter.
  Empty CRef on failure.

See also:
  Override::RemoveParameterEntry, Override::RemoveAllEntries

Example:
  This example demonstrates how to add a parameter entry to an override

              Application app;
              Model root = app.GetActiveSceneRoot();

              // Create a light object
              Light pointLight;
              root.AddLight( L"Point", false, L"PointLight", pointLight );

              // Override the light posx parameter
              Override overrideProp = pointLight.AddProperty( L"Override", false, L"PointOverride" );
              Parameter posx = pointLight.GetKinematics().GetLocal().GetParameters().GetItem(L"posx");

              // Set the original value
              posx.PutValue( 5.0 );

              // Set the overriding value
              Parameter overridingPosx = overrideProp.AddParameterEntry( posx );
              SetValue( overridingPosx.GetFullName(), -4.0, 0 );

              // Log values
              app.LogMessage( L"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *" );
              app.LogMessage( L"Overriding posx: " + overridingPosx.GetFullName() );
              app.LogMessage( L"Overriding posx value: " + CString( overridingPosx.GetValue() ) );
              app.LogMessage( L"Overriding posx original value: " + CString( overridingPosx.GetOriginalValue() ) );

              // INFO : * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
              // INFO : Overriding posx: PointLight.PointOverride.posx
              // INFO : Overriding posx value: -4
              // INFO : Overriding posx original value: 5

              CValue SetValue( const CString& in_target, const CValue& in_value, const CValue&  in_time )
              {
                  CValueArray args(3);
                  CValue retval;

                  args[0]= in_target;
                  args[1]= in_value;
                  args[2]= in_time;

                  Application app;
                  app.ExecuteCommand( L"SetValue", args, retval );

                  return retval;
              }

CStatus RemoveParameterEntry | ( | const Parameter & | in_param | ) |

Removes the entry corresponding to the input parameter object.

Parameters:

  in_param | The parameter to remove. You can pass either the overriding Parameter that represents the entry or the overridden parameter.

Returns:
  CStatus::OK Success
  CStatus::Fail Failure

See also:
  Override::AddParameterEntry, Override::RemoveAllEntries

Example:
  This example demonstrates how to remove an entry from an override.

              Application app;
              Model root = app.GetActiveSceneRoot();

              // Create a light object
              Light pointLight;
              root.AddLight( L"Point", false, L"PointLight", pointLight );

              // Override the light posx parameter
              Override overrideProp = pointLight.AddProperty( L"Override", false, L"PointOverride" );
              Parameter posx = pointLight.GetKinematics().GetLocal().GetParameters().GetItem(L"posx");
              overrideProp.AddParameterEntry( posx );

              // Override the light shader color parameter
              Shader softLight = pointLight.GetShaders().GetItem( L"soft_light" );
              Parameter softLightColor = softLight.GetParameters().GetItem(L"Color");
              Parameter overridingSoftLightColor = overrideProp.AddParameterEntry( softLightColor );
              SIApplyShaderToCnxPoint( L"Shaders\\Texture\\Color_Channels\\RGBA_combine.Preset", CValue(overridingSoftLightColor) );

              app.LogMessage( L"overrideProp.GetParameterEntries.Count: " + CString(overrideProp.GetParameterEntries().GetCount() ) );

              Parameter overridingParam = overrideProp.GetParameterEntries()[ 0 ];
              overrideProp.RemoveParameterEntry( overridingParam );

              app.LogMessage( L"overrideProp.GetParameterEntries.Count: " + CString(overrideProp.GetParameterEntries().GetCount() ) );

              // INFO : overrideProp.GetParameterEntries.Count: 2
              // INFO : overrideProp.GetParameterEntries.Count: 1

              CValue SIApplyShaderToCnxPoint( const CValue& in_presetobj, const CValue& in_inputobjs )
              {
                  CValueArray args(4);
                  CValue retval;
                  LONG i(0);

                  args[i++]= in_presetobj;
                  args[i++]= in_inputobjs;
                  args[i++]= L"";
                  args[i++]= true;

                  Application app;
                  app.ExecuteCommand( L"SIApplyShaderToCnxPoint", args, retval );

                  return retval;
              }

CStatus RemoveAllEntries | ( |  | ) |

Removes all entries from this override.

Returns:
  CStatus::OK Success
  CStatus::Fail Failure

See also:
  Override::RemoveParameterEntry, Override::AddParameterEntry

Example:
  This example demonstrates how to remove all entries from an override.

              Application app;
              Model root = app.GetActiveSceneRoot();

              // Create a light object
              Light pointLight;
              root.AddLight( L"Point", false, L"PointLight", pointLight );

              // Override the light posx parameter
              Override overrideProp = pointLight.AddProperty( L"Override", false, L"PointOverride" );
              Parameter posx = pointLight.GetKinematics().GetLocal().GetParameters().GetItem(L"posx");
              overrideProp.AddParameterEntry( posx );

              // Override the light shader color parameter
              Shader softLight = pointLight.GetShaders().GetItem( L"soft_light" );
              Parameter softLightColor = softLight.GetParameters().GetItem(L"Color");
              Parameter overridingSoftLightColor = overrideProp.AddParameterEntry( softLightColor );
              SIApplyShaderToCnxPoint( L"Shaders\\Texture\\Color_Channels\\RGBA_combine.Preset", CValue(overridingSoftLightColor) );

              app.LogMessage( L"overrideProp.GetParameterEntries.Count: " + CString(overrideProp.GetParameterEntries().GetCount() ) );

              overrideProp.RemoveAllEntries( );

              app.LogMessage( L"overrideProp.GetParameterEntries.Count: " + CString(overrideProp.GetParameterEntries().GetCount() ) );

              // INFO : overrideProp.GetParameterEntries.Count: 2
              // INFO : overrideProp.GetParameterEntries.Count: 0

CRefArray GetAllShaders | ( |  | ) | const

Returns the list of shaders nested under this Override.

Returns:
  CRefArray of references to the nested Shader objects.

Since:
  7.0

CRefArray GetAllImageClips | ( |  | ) | const

Returns the list of image clips nested under this Override.

Returns:
  CRefArray of references to the nested ImageClip2 objects.

See also:
  Light::GetAllImageClips, Material::GetAllImageClips, Pass:GetAllImageClips, Shader::GetAllImageClips, Camera::GetAllImageClips

Since:
  7.0

The documentation for this class was generated from the following file:

- xsi_override.h