| ## Public API Reference

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# iParameterESM Struct Reference

This interface is a parameter resolver. More...

`#include <ivaria/engseq.h>`

Inheritance diagram for iParameterESM:

[legend]
List of all members.

## Public Member Functions
virtual iBase * | GetValue (iBase *params=0) const =0
| Get the value based on userdata which is given to the operations.
virtual bool | IsConstant () const =0
| Returns true if the value is constant and immediatelly available upon request.

## Detailed Description

This interface is a parameter resolver.

The operations in the engine sequence manager use instances of this class to get the required object (mesh, light, material, ...). The engine sequence manager itself currently provides two ready-made implementations of this resolver:

- iEngineSequenceParameters->CreateParameterESM() which will create a resolver that gets the requested parameter from the given iEngineSequenceParameters instance. This is useful for sequences where you don't know in advance on what objects you will use it.
- iEngineSequenceManager->CreateParameterESM() which will give a resolver that returns a constant value. This is useful for operations where the object to operate on is known in advance.

Main creators of instances implementing this interface:

- Own implementions
- iEngineSequenceParameters::CreateParameterESM()
- iEngineSequenceManager::CreateParameterESM()

Main users of this interface:

- iSequenceWrapper

Definition at line 83 of file engseq.h.

## Member Function Documentation

virtual iBase* iParameterESM::GetValue | ( | iBase * | params = `0` | ) | const`[pure virtual]`

Get the value based on userdata which is given to the operations.

If IsConstant() returns true then the params parameter will not be used!

Parameters:

  | params | Is given to the operations as userdata.

virtual bool iParameterESM::IsConstant | ( |  | ) | const`[pure virtual]`

Returns true if the value is constant and immediatelly available upon request.

In that case operations can store that value so then don't have to ask for it every time. If this function returns false then the operation MUST call GetValue() every time it wants to do something with the object.

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

- ivaria/engseq.h