|
| virtual void | start (const Plug &plug, int32_t eval_first_frame, int32_t eval_last_frame, int32_t cache_first_frame, int32_t cache_last_frame)=0 |
| | Compute the plug values on the interval [eval_start_frame, eval_end_frame] in background. More...
|
| |
| virtual void | stop_and_wait ()=0 |
| | Stop the engine and wait for it. More...
|
| |
| virtual void | wait ()=0 |
| | Wait until the engine complete its job. More...
|
| |
| virtual bool | done () const =0 |
| | Returns true if the background evaluation is done. More...
|
| |
| virtual float | progression () const =0 |
| | Returns the current background evaluation progression between 0~1. More...
|
| |
| virtual void | set_notification (const std::function< void()> ¬ify)=0 |
| | Set the notification callback. More...
|
| |
| virtual Value | evaluate_rest_value (const Plug &plug, int32_t cache_first_frame, int32_t cache_last_frame)=0 |
| | Evaluate a plug value in rest pose. More...
|
| |
| virtual Value | evaluate (const Plug &plug, float time, int32_t cache_first_frame, int32_t cache_last_frame, bool incremental=false, bool exact=true)=0 |
| | Evaluate a plug value at a specific time. More...
|
| |
| virtual Value | evaluate (const Plug &plug, float time, const gsl::span< const float > &subframes, int32_t cache_first_frame, int32_t cache_last_frame, bool incremental=false, bool exact=true)=0 |
| | Evaluate a plug value at a specific time. More...
|
| |
| virtual std::vector< Value > | evaluate (const maquina::Plug &plug, const gsl::span< const float > &frames, int32_t cache_first_frame, int32_t cache_last_frame, bool incremental=false, bool exact=false)=0 |
| | Evaluate a plug value at multiple times. More...
|
| |
| virtual void | clear_incremental (uint32_t initial_token)=0 |
| | Clear the incremental data. More...
|
| |
| virtual void | start_profiling ()=0 |
| | Start a profiling session. More...
|
| |
| virtual void | clear_profiling ()=0 |
| | Clear the profiling session data. More...
|
| |
| virtual std::vector< std::pair< std::string, Imath::V2f > > | end_profiling ()=0 |
| | Finish a profiling session. More...
|
| |
An evaluation engine to compute plug values.
| virtual Value maquina::EvaluationEngine::evaluate |
( |
const Plug & |
plug, |
|
|
float |
time, |
|
|
int32_t |
cache_first_frame, |
|
|
int32_t |
cache_last_frame, |
|
|
bool |
incremental = false, |
|
|
bool |
exact = true |
|
) |
| |
|
pure virtual |
Evaluate a plug value at a specific time.
incremental:
Set incremental to true when evaluating multiple time the same modifications, like in an interactive rig modification. During this incremental session, the plug structure shall not be modified. The engine will keep informations to speed up the next evaluation.
Call clear_incremental to end the incremental session, free the resources or start a session.
[cache_first_frame, cache_last_frame] is the interval keeped in cache.
| virtual void maquina::EvaluationEngine::start |
( |
const Plug & |
plug, |
|
|
int32_t |
eval_first_frame, |
|
|
int32_t |
eval_last_frame, |
|
|
int32_t |
cache_first_frame, |
|
|
int32_t |
cache_last_frame |
|
) |
| |
|
pure virtual |
Compute the plug values on the interval [eval_start_frame, eval_end_frame] in background.
The function returns before the evaluation is done. Call wait() to wait for the job completion.
The plug and all his dependencies connection and values should not change during the evaluation. The engine must be stopped with stop_and_wait() before such modifications are done.
[cache_first_frame, cache_last_frame] is the interval keeped in cache. It can be larger than [eval_start_frame, eval_end_frame] but not smaller.