MyScript Interactive Ink SDK  4.1.2
MathSolverController.h
1 // Copyright @ MyScript. All rights reserved.
2 
3 #pragma once
4 
5 #include <iink/MimeType.h>
6 #include <iink/ParameterSet.h>
7 #include <iink/graphics/PointD.h>
8 #include <iink/String.h>
9 
10 #include <memory>
11 #include <vector>
12 
13 namespace myscript {
14 namespace iink {
15 
16 class ParameterSet;
17 class String;
18 
24 enum class MathDiagnostic
25 {
26  ALLOWED = 0,
28  UNSUPPORTED = 2,
29  NON_EVALUABLE = 3,
31  NO_VARIABLE = 5,
32  TOO_MANY_VARIABLES = 6,
33  NOT_APPLICABLE = 7,
34  DIVISION_BY_ZERO = 8,
35  NUMBER_OVERFLOW = 9,
36  NUMBER_UNDERFLOW = 10,
37  INVALID_OPERATION = 11
38 };
39 
46 {
47  UNDEFINED = 0,
49  API = 1,
50  BLOCK = 2,
51  PREDEFINED = 3
52 };
53 
60 {
65 };
66 
73 {
75  double value;
80  bool valid() const noexcept { return !name.isEmpty(); }
81 };
82 
90 {
93 };
94 
107 {
108 public:
109 
110  virtual ~MathSolverController() = default;
111 
125  virtual std::vector<String> getAvailableActions(const String& blockId, std::shared_ptr<ParameterSet> overrideConfiguration = nullptr) = 0;
126 
144  virtual String getActionOutput(const String& blockId, const String& action, MimeType mimeType, std::shared_ptr<ParameterSet> overrideConfiguration = nullptr) = 0;
145 
162  virtual void applyAction(const String& blockId, const String& action, std::shared_ptr<ParameterSet> overrideConfiguration = nullptr) = 0;
163 
181  virtual MathDiagnostic getDiagnostic(const String& blockId, const String& task, std::shared_ptr<ParameterSet> overrideConfiguration = nullptr) = 0;
182 
210  virtual std::vector<MathEvaluationVariables> getEvaluables(const String& blockId) = 0;
211 
240  virtual std::vector<std::vector<graphics::PointD>> evaluate(const String& blockId, const MathEvaluationVariables& variables,
241  double from, double to, int pointCount, std::shared_ptr<ParameterSet> overrideConfiguration = nullptr) = 0;
242 
262 
276  virtual std::vector<MathVariableInfo> getVariables(const String& blockId) = 0;
277 
293  virtual double getVariableValue(const String& blockId, const String& name) = 0;
294 
310  virtual void setVariableValue(const String& blockId, const String& name, double value) = 0;
311 
326  virtual bool removeVariableValue(const String& blockId, const String& name) = 0;
327 };
328 
329 }
330 }
Definition: MathSolverController.h:107
virtual std::vector< MathEvaluationVariables > getEvaluables(const String &blockId)=0
virtual double getVariableValue(const String &blockId, const String &name)=0
virtual std::vector< std::vector< graphics::PointD > > evaluate(const String &blockId, const MathEvaluationVariables &variables, double from, double to, int pointCount, std::shared_ptr< ParameterSet > overrideConfiguration=nullptr)=0
virtual void applyAction(const String &blockId, const String &action, std::shared_ptr< ParameterSet > overrideConfiguration=nullptr)=0
virtual void setVariableValue(const String &blockId, const String &name, double value)=0
virtual MathVariableDefinition asVariableDefinition(const String &blockId)=0
virtual MathDiagnostic getDiagnostic(const String &blockId, const String &task, std::shared_ptr< ParameterSet > overrideConfiguration=nullptr)=0
virtual std::vector< MathVariableInfo > getVariables(const String &blockId)=0
virtual bool removeVariableValue(const String &blockId, const String &name)=0
virtual std::vector< String > getAvailableActions(const String &blockId, std::shared_ptr< ParameterSet > overrideConfiguration=nullptr)=0
virtual String getActionOutput(const String &blockId, const String &action, MimeType mimeType, std::shared_ptr< ParameterSet > overrideConfiguration=nullptr)=0
Definition: String.h:27
MathVariableSourceType
Definition: MathSolverController.h:46
MathDiagnostic
Definition: MathSolverController.h:25
MimeType
Definition: MimeType.h:15
Definition: Configuration.h:10
Definition: MathSolverController.h:90
String inputName
Definition: MathSolverController.h:91
String outputName
Definition: MathSolverController.h:92
Definition: MathSolverController.h:73
bool valid() const noexcept
Definition: MathSolverController.h:80
String name
Definition: MathSolverController.h:74
double value
Definition: MathSolverController.h:75
Definition: MathSolverController.h:60
String sourceId
Definition: MathSolverController.h:63
int occurrenceCount
Definition: MathSolverController.h:64
String name
Definition: MathSolverController.h:61
MathVariableSourceType sourceType
Definition: MathSolverController.h:62