Rumba C++ SDK
EvaluationEngine.h
Go to the documentation of this file.
1 /*
2 
3  *
4  ***
5  *****
6  ********************* Mercenaries Engineering SARL
7  ***************** Copyright (C) 2020
8  *************
9  ********* http://www.mercenaries-engineering.com
10  ***********
11  **** ****
12  ** **
13 
14 */
15 
16 #pragma once
17 
18 #include "Value.h"
19 
20 namespace maquina
21 {
22 
23 class Plug;
24 class Impl;
25 
28 {
29 public:
30  static std::shared_ptr<EvaluationEngine> create();
31 
33 
38  virtual void start(const Plug& plug, int32_t first_frame, int32_t last_frame) = 0;
39 
41 
42  virtual void stop_and_wait() = 0;
43 
45  virtual void wait() = 0;
46 
48 
50  virtual void set_notification(const std::function<void()>& notify) = 0;
51 
53 
61  virtual Value evaluate(const Plug& plug, float time, int32_t first_frame, int32_t last_frame, bool incremental=false, bool exact=true) = 0;
62 
64 
66  virtual std::vector<Value> evaluate(const maquina::Plug& plug, const gsl::span<const float>& frames, int32_t first_frame, int32_t last_frame, bool incremental=false, bool exact=false) = 0;
67 
69  virtual void clear_incremental(uint32_t initial_token) = 0;
70 
72  virtual void start_profiling() = 0;
73 
75  virtual std::vector<std::pair<std::string, float>> end_profiling() = 0;
76 };
77 
78 }
This version of the SDK is unstable, i-e, it may change with no warning.
Definition: AddCurveAction.h:20
An evaluation engine to compute plug values.
Definition: EvaluationEngine.h:27
MAQUINA_EXPORT void start_profiling()
Start an interactive profiling session.
#define MAQUINA_EXPORT
Definition: Export.h:31
A node plug.
Definition: Plug.h:52
MAQUINA_EXPORT std::vector< std::pair< std::string, float > > end_profiling()
Stop the interactive profiling session.
Base class of all Rumba values.
Definition: Value.h:34