Rumba C++ SDK
EvalContext.h
Go to the documentation of this file.
1 /*
2 
3  *
4  ***
5  *****
6  ********************* Mercenaries Engineering SARL
7  ***************** Copyright (C) 2018
8  *************
9  ********* http://www.mercenaries-engineering.com
10  ***********
11  **** ****
12  ** **
13 
14 */
15 #pragma once
16 
17 #include "Version.h"
18 #include "Plug.h"
19 #include "Ptr.h"
20 
21  namespace maquina
22  {
23  class Value;
24  class Registry;
25  class PartialInvalidation;
27 
28 
30 
52  {
53  public:
54  virtual ~EvalContext() {}
55 
57  virtual int value_count() const = 0;
58 
66  virtual float frame(int index) const = 0;
67 
72  virtual float evaluation_time() const = 0;
73 
77  virtual bool evaluate_default() const = 0;
78 
80 
82  virtual Value value( int index ) const = 0;
83 
85 
86  virtual bool as_bool( int index ) const = 0;
87 
89 
90  virtual int as_int( int index ) const = 0;
91 
93 
94  virtual float as_float( int index ) const = 0;
95 
97 
98  virtual double as_double( int index ) const = 0;
99 
101 
102  virtual const std::string& as_string( int index ) const = 0;
103 
105 
106  virtual std::wstring as_wstring( int index ) const = 0;
107 
109 
110  virtual const Imath::V2d& as_V2d( int index ) const = 0;
111 
113 
114  virtual const Imath::V3d& as_V3d( int index ) const = 0;
115 
117 
118  virtual const Imath::V4d& as_V4d( int index ) const = 0;
119 
121 
122  virtual const Imath::V2i& as_V2i( int index ) const = 0;
123 
125 
126  virtual const Imath::V3i& as_V3i( int index ) const = 0;
127 
129 
130  virtual const Imath::V4i& as_V4i( int index ) const = 0;
131 
133 
134  virtual const Imath::M44d& as_M44d( int index ) const = 0;
135 
137 
138  virtual const Imath::Box3f& as_Box3f( int index ) const = 0;
139 
141 
142  virtual const Imath::Quatd& as_Quatd( int index ) const = 0;
143 
145 
146  virtual const Imath::Color4f& as_Color4f(int index ) const = 0;
147 
149 
150  virtual std::shared_ptr<const UserData> as_user_data(int index ) const = 0;
151 
154  virtual maquina::Plug plug() const = 0;
155 
157  virtual maquina::Plug plug(int index) const = 0;
158 
160 
163  virtual bool is_valid(int index) const = 0;
164 
166  virtual bool is_interactive() const = 0;
167 
169  virtual std::pair<maquina::Value, maquina::PartialInvalidationPtr> partial_invalidation() const = 0;
170 
171  };
172  }
virtual Value value(int index) const =0
Returns the n-th dependency value.
virtual double as_double(int index) const =0
Returns the n-th dependency value as a double.
Definition: ImathBox.h:71
virtual bool is_valid(int index) const =0
Tell if the n-th value is valid.
std::shared_ptr< T > Ptr
Definition: Ptr.h:24
virtual const Imath::V3d & as_V3d(int index) const =0
Returns the n-th dependency value as a V3d.
virtual const Imath::V2d & as_V2d(int index) const =0
Returns the n-th dependency value as a V2d.
virtual const Imath::V3i & as_V3i(int index) const =0
Returns the n-th dependency value as a V3i.
Definition: ImathFrame.h:42
Definition: ImathColor.h:120
Definition: ImathFrame.h:43
virtual const Imath::V2i & as_V2i(int index) const =0
Returns the n-th dependency value as a V2i.
virtual std::shared_ptr< const UserData > as_user_data(int index) const =0
Returns the n-th dependency value as a user data.
Definition: ImathVec.h:63
This version of the SDK is unstable, i-e, it may change with no warning.
Definition: AddCurveAction.h:20
virtual const Imath::Color4f & as_Color4f(int index) const =0
Returns the n-th dependency value as a Color4f.
virtual std::pair< maquina::Value, maquina::PartialInvalidationPtr > partial_invalidation() const =0
Returns the previous cached of the currently evaluated plug if available. If not, the second member i...
virtual bool is_interactive() const =0
Tell if the evaluation is done during an interactive session.
virtual const Imath::Quatd & as_Quatd(int index) const =0
Returns the n-th dependency value as a Quatd.
virtual const Imath::V4d & as_V4d(int index) const =0
Returns the n-th dependency value as a V4d.
This class holds the evaluation context passed to the evaluation handler during a plug evaluation...
Definition: EvalContext.h:51
virtual int value_count() const =0
Returns the number of dependencies value available.
Definition: ImathQuat.h:71
A node plug.
Definition: Plug.h:52
virtual float frame(int index) const =0
Ptr< const PartialInvalidation > PartialInvalidationPtr
Definition: EvalContext.h:26
virtual int as_int(int index) const =0
Returns the n-th dependency value as an integer.
Definition: ImathVec.h:61
virtual float evaluation_time() const =0
virtual std::wstring as_wstring(int index) const =0
Returns the n-th dependency value as a wide string.
virtual float as_float(int index) const =0
Returns the n-th dependency value as a float.
virtual const Imath::M44d & as_M44d(int index) const =0
Returns the n-th dependency value as a M44d.
virtual bool as_bool(int index) const =0
Returns the n-th dependency value as a bool.
virtual bool evaluate_default() const =0
virtual const std::string & as_string(int index) const =0
Returns the n-th dependency value as a string.
virtual const Imath::V4i & as_V4i(int index) const =0
Returns the n-th dependency value as a V4i.
virtual const Imath::Box3f & as_Box3f(int index) const =0
Returns the n-th dependency value as a Box3f.
virtual ~EvalContext()
Definition: EvalContext.h:54
virtual maquina::Plug plug() const =0
Base class of all Rumba values.
Definition: Value.h:34