Public Member Functions
ShaderArrayParameter Class Reference

## Detailed Description

Represents an array parameter for a Shader.

An array parameter is a specialization of the ShaderParameter class which contains a set of ShaderParameter objects. These types of parameters are useful for supporting a dynamic number of instances of parameters. For example, the Softimage_March_Fractal_vol_1_0 Volume Effects shader defines an array parameter of light references labeled `scatter_lights_input` that allows you to add any number of lights.

It can contain any number of sub-parameters, all of the same type. Its contents can be moved around, new parameters added and old ones removed.

These type of parameters can be defined using the ShaderArrayParamDef interface.

See also:
  ArrayParameter, ShaderParameter

Since:
  9.0 (2011)

`#include <xsi_shaderarrayparameter.h>`

Inheritance diagram for ShaderArrayParameter:
[legend]

List of all members.

## Public Member Functions
| ShaderArrayParameter ()
| ~ShaderArrayParameter ()
| ShaderArrayParameter (const CRef &in_ref)
| ShaderArrayParameter (const ShaderArrayParameter &in_obj)
bool | IsA (siClassID in_ClassID) const
siClassID | GetClassID () const
ShaderArrayParameter & | operator= (const ShaderArrayParameter &in_obj)
ShaderArrayParameter & | operator= (const CRef &in_ref)
ShaderParameter | operator[] (LONG in_index)
LONG | GetCount () const
ShaderParameter | Add ()
CStatus | Remove (LONG in_lIndex)
CStatus | Remove (const ShaderParameter &in_parameter)
CStatus | Clear ()
CStatus | Move (LONG in_lIndex, LONG in_lUpDown)
CStatus | Move (const ShaderParameter &in_parameter, LONG in_lUpDown)

## Constructor & Destructor Documentation

ShaderArrayParameter | ( |  | ) |

Constructs an ShaderArrayParameter object.

~ShaderArrayParameter | ( |  | ) |

Destroys an ShaderArrayParameter object.

ShaderArrayParameter | ( | const CRef & | in_ref | ) |

Constructs an ShaderArrayParameter object from a reference to another ShaderArrayParameter object.

Parameters:

  in_ref | A reference to a group.

ShaderArrayParameter | ( | const ShaderArrayParameter & | in_obj | ) |

Constructs a new ShaderArrayParameter object from an existing ShaderArrayParameter object.

Parameters:

  in_obj | An existing Group object to copy into this Group object.

## Member Function Documentation

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

Returns true if this object supports the functionality of a specified class. For example, an ShaderArrayParameter is a type of ShaderParameter, so an ShaderArrayParameter object supports ShaderParameter functionality.

Parameters:

  in_ClassID | Test if this object supports this class.

Returns:
  True if this object supports the specified class, and false otherwise.

Reimplemented from ShaderParameter.

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

Returns the class ID for this object.

Returns:
  The class ID.

Reimplemented from ShaderParameter.

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

Assigns an ShaderArrayParameter object to an existing ShaderArrayParameter object.

Parameters:

  in_obj | An ShaderArrayParameter object to be copied into this object.

Returns:
  The reinitialized ShaderArrayParameter object.

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

Assigns a CRef to this ShaderArrayParameter object. The ShaderArrayParameter object is cleared if the CRef is not a reference to an object that supports the ShaderArrayParameter class.

Parameters:

  in_ref | A reference to an object that supports the ShaderArrayParameter class.

Returns:
  The reinitialized ShaderArrayParameter object.

Reimplemented from ShaderParameter.

ShaderParameter operator[] | ( | LONG | in_index | ) |

Returns the parameter at a given index. If the index is out of bounds, this operator returns an empty, invalid ShaderParameter object.

Parameters:

  in_index | Integer index of the parameter to get.

Returns:
  The parameter at the given index
  Empty parameter if the index is out of bounds

LONG GetCount | ( |  | ) | const

Returns the size of the array. If the array is empty or invalid, `0` is returned.

Returns:
  The number of parameters in the array.

Since:
  9.0 (2011)

ShaderParameter Add | ( |  | ) |

Appends a new parameter to this array. The type of the new parameter is determined by the definition of the array parameter. This corresponds to clicking the Add button for the shader array parameter section on the shader's property page.

Returns:
  The new parameter. If the array is static, an invalid ShaderParameter object is returned.

See also:
  ShaderArrayParamDef, ShaderArrayParameter::Remove

Since:
  9.0 (2011)

CStatus Remove | ( | LONG | in_lIndex | ) |

Removes the item from this array that matches the specified index. This corresponds to choosing Remove from an item's context menu in the UI.

Parameters:

  in_lIndex | The index of the parameter to remove.

Returns:
  CStatus::OK if succeeded.
  CStatus::Fail if the index is out of bounds.

See also:
  ShaderArrayParameter::Add

Since:
  9.0 (2011)

CStatus Remove | ( | const ShaderParameter & | in_parameter | ) |

Removes the specified item from this array. This corresponds to choosing Remove from an item's context menu in the UI.

Parameters:

  in_parameter | ShaderParameter to remove.

Returns:
  CStatus::OK if successful.
  CStatus::Fail if the parameter is not a member of the array.

See also:
  ShaderArrayParameter::Add

Since:
  9.0 (2011)

CStatus Clear | ( |  | ) |

Removes all items from this array. This corresponds to clicking the Clear button for the shader array parameter section on the shader's property page.

Returns:
  CStatus::OK if successful.

Since:
  9.0 (2011)

Reimplemented from CBase.

CStatus Move | ( | LONG | in_lIndex,
|  | LONG | in_lUpDown
| ) |  |

Moves a parameter up or down in the array relative to its current position. The new position of the parameter is calculated by adding `in_lUpDown` to the current index and clamping the result to the array boundaries (0 to ShaderArrayParameter::GetCount - 1).

Parameters:

  in_lIndex | The index of the parameter to move.
  in_lUpDown | Positive or negative amount to move the parameter.

Returns:
  CStatus::OK if successful.
  CStatus::Fail if the index is out of bounds.

Since:
  9.0 (2011)

CStatus Move | ( | const ShaderParameter & | in_parameter,
|  | LONG | in_lUpDown
| ) |  |

Moves a given parameter up or down in the array relative to its current position. The new position of the parameter is calculated by adding `in_lUpDown` to the current index and clamping the result to the array boundaries (0 to ShaderArrayParameter::GetCount - 1).

Parameters:

  in_parameter | The parameter to move.
  in_lUpDown | Positive or negative amount to move the parameter.

Returns:
  CStatus::OK if successful.
  CStatus::Fail if the given parameter is not a member of the array.

Since:
  9.0 (2011)

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

- xsi_shaderarrayparameter.h