NAVIÉ
Documentation : Effex : Developer API : Classes : Plugins

### FXOperatorData

FXOperatorData

#### virtual bool Precompute (FXServer* server)

Overloaded to precompute or allocate any data required when the operator is evaluated.
Returns
false if there was an error. If so, the node is set as not-operational (for example if a port is not filled although it is necessary for your plugin to correctly operate).
Parameters
FXServer* server:
The server this node is called from. Use it to retrieve any information you may need..

#### virtual bool PrecomputeMP (FXServer* server)

Overloaded to precompute or allocate any data required when the operator is evaluated in a multiprocessor context.
Returns
false if there was an error. If so, the node is set as not-operational (for example if a port is not filled although it is necessary for your plugin to correctly operate).
Parameters
FXServer* server:
The server this node is called from. Use it to retrieve any information you may need..

#### virtual void Process (void* t_data)

Overloaded to process the main code of your operator. Make sure your operator supports multiprocessor execution if UseOwnThread is not overloaded or returns true!
Parameters
void* t_data:
You can cast this pointer to ProcessData:
FXAPI::ProcessData* base_data = static_cast< FXAPI::ProcessData* >(t_data);

#### virtual void FreePrecompute (void)

Overloaded to free any precomputed data (in Precompute or PrecomputeMP).

#### virtual bool UseOwnThread (void)

Overloaded to define if you want this operator to be evaluated by Effex own multiprocessor handler.
Usually you only overload it if you want your node to be evaluated by a single processor or if you want to use your own threading.
Returns
true if you want to use your own thread.

#### virtual bool IsMultiStep (void)

Overloaded to define if your operator shall be evaluated several times (for multistep algorithms for example).
By default an operator is called only once.
Returns
true if your operator needs to be called multiple times.

#### virtual bool IsMultiPrecompute (void)

Overloaded to define if your operator requires multiple calls to Precompute, PrecomputeMP and FreePrecompute.
By default they are only called once, even in a multistep operator.
Returns
true if your operator's Precompute, PrecomputeMP and FreePrecomputed needs to be called multiple times.

#### virtual bool IsUpdateable (void)

Overloaded to define if your operator can be updated. This happens when the timeline is not running but when the pipeline updates during a single frame.
If you don't overload it, the operator defaults to not being updateable.
Returns
true if your operator requires an update. Usually not necessary.