MyScript Interactive Ink SDK 4.3.0
MathSolverController.h
1// Copyright @ MyScript. All rights reserved.
2
3#pragma once
4
5#include <iink/MimeType.h>
6#include <iink/graphics/PointD.h>
7#include <iink/String.h>
8
9#include <memory>
10#include <vector>
11
12namespace myscript {
13namespace iink {
14
15class MathExternalExpression;
16class ParameterSet;
17
24{
25 ALLOWED = 0,
27 UNSUPPORTED = 2,
28 NON_EVALUABLE = 3,
30 NO_VARIABLE = 5,
32 NOT_APPLICABLE = 7,
34 NUMBER_OVERFLOW = 9,
35 NUMBER_UNDERFLOW = 10,
37};
38
48{
49 UNDEFINED = 0,
51 API = 1,
52 API_GLOBAL = 2,
53 BLOCK = 3,
54 PREDEFINED = 4
55};
56
63{
68};
69
76{
78 double value;
83 bool valid() const noexcept { return !name.isEmpty(); }
84};
85
92{
93 double value;
96};
97
104{
106 std::vector<MathVariableDefinitionInfo> definitions;
107};
108
116{
119};
120
133{
134public:
135
136 virtual ~MathSolverController() = default;
137
151 virtual std::vector<String> getAvailableActions(const String& blockId, std::shared_ptr<ParameterSet> overrideConfiguration = nullptr) = 0;
152
170 virtual String getActionOutput(const String& blockId, const String& action, MimeType mimeType, std::shared_ptr<ParameterSet> overrideConfiguration = nullptr) = 0;
171
188 virtual void applyAction(const String& blockId, const String& action, std::shared_ptr<ParameterSet> overrideConfiguration = nullptr) = 0;
189
207 virtual MathDiagnostic getDiagnostic(const String& blockId, const String& task, std::shared_ptr<ParameterSet> overrideConfiguration = nullptr) = 0;
208
236 virtual std::vector<MathEvaluationVariables> getEvaluables(const String& blockId) = 0;
237
266 virtual std::vector<std::vector<graphics::PointD>> evaluate(const String& blockId, const MathEvaluationVariables& variables,
267 double from, double to, int pointCount, std::shared_ptr<ParameterSet> overrideConfiguration = nullptr) = 0;
268
287
297 virtual std::vector<MathVariableDefinitions> getVariableDefinitions() = 0;
298
312 virtual std::vector<MathVariableInfo> getVariables(const String& blockId) = 0;
313
329 virtual double getVariableValue(const String& blockId, const String& name) = 0;
330
349 virtual void setVariableValue(const String& blockId, const String& name, double value) = 0;
350
365 virtual bool removeVariableValue(const String& blockId, const String& name) = 0;
366
380 virtual std::shared_ptr<MathExternalExpression> parseExternalExpression(const String& expression, MimeType mimeType) = 0;
381};
382
383}
384}
Definition: MathSolverController.h:133
virtual double getVariableValue(const String &blockId, const String &name)=0
virtual std::vector< String > getAvailableActions(const String &blockId, std::shared_ptr< ParameterSet > overrideConfiguration=nullptr)=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 std::vector< MathVariableDefinitions > getVariableDefinitions()=0
virtual MathVariableDefinition asVariableDefinition(const String &blockId)=0
virtual std::vector< MathVariableInfo > getVariables(const String &blockId)=0
virtual std::vector< MathEvaluationVariables > getEvaluables(const String &blockId)=0
virtual MathDiagnostic getDiagnostic(const String &blockId, const String &task, std::shared_ptr< ParameterSet > overrideConfiguration=nullptr)=0
virtual bool removeVariableValue(const String &blockId, const String &name)=0
virtual std::shared_ptr< MathExternalExpression > parseExternalExpression(const String &expression, MimeType mimeType)=0
virtual String getActionOutput(const String &blockId, const String &action, MimeType mimeType, std::shared_ptr< ParameterSet > overrideConfiguration=nullptr)=0
Definition: String.h:17
@ ALLOWED
Definition: Editor.h:46
@ UNSUPPORTED
Definition: Editor.h:48
MathVariableSourceType
Definition: MathSolverController.h:48
MathDiagnostic
Definition: MathSolverController.h:24
MimeType
Definition: MimeType.h:15
Definition: Configuration.h:10
Definition: MathSolverController.h:116
String inputName
Definition: MathSolverController.h:117
String outputName
Definition: MathSolverController.h:118
Definition: MathSolverController.h:76
bool valid() const noexcept
Definition: MathSolverController.h:83
String name
Definition: MathSolverController.h:77
double value
Definition: MathSolverController.h:78
Definition: MathSolverController.h:92
double value
Definition: MathSolverController.h:93
MathVariableSourceType sourceType
Definition: MathSolverController.h:94
String blockId
Definition: MathSolverController.h:95
Definition: MathSolverController.h:104
std::vector< MathVariableDefinitionInfo > definitions
Definition: MathSolverController.h:106
String name
Definition: MathSolverController.h:105
Definition: MathSolverController.h:63
String sourceId
Definition: MathSolverController.h:66
int occurrenceCount
Definition: MathSolverController.h:67
String name
Definition: MathSolverController.h:64
MathVariableSourceType sourceType
Definition: MathSolverController.h:65