MyScript Interactive Ink SDK  3.2.0
Engine.h
1 // Copyright @ MyScript. All rights reserved.
2 
3 #pragma once
4 
5 
6 #ifndef IINK_API
7 #if defined(_WIN32)
8 #ifdef IINK_IMPL
9 #define IINK_API __declspec(dllexport)
10 #else
11 #define IINK_API __declspec(dllimport)
12 #endif
13 #else
14 #define IINK_API
15 #endif
16 #endif
17 
18 #include <iink/String.h>
19 #include <memory>
20 #include <vector>
21 #include <stdexcept>
22 
23 namespace myscript {
24 namespace iink {
25 
26 class Configuration;
27 class ContentPackage;
28 class Editor;
29 class OffscreenEditor;
30 class ItemIdHelper;
31 class ParameterSet;
32 class Renderer;
33 class Recognizer;
34 class ToolController;
35 class RecognitionAssetsBuilder;
36 class IRenderTarget;
37 
38 #if !defined(CREATE_NEW) && !defined(TRUNCATE_EXISTING)
44 {
49 };
50 #else
57 {
58  OPEN,
59  OPEN_OR_CREATE,
60  CREATE,
61  CREATE_OR_TRUNCATE,
62 };
63 #endif
64 
68 class Engine
69 {
70 public:
71 
83  IINK_API static std::shared_ptr<Engine> create(const char* certificateBytes, size_t certificateLength);
84 
85  virtual ~Engine() = default;
86 
94  virtual String getVersion() = 0;
95 
101  virtual std::shared_ptr<Configuration> getConfiguration() noexcept = 0;
102 
115  virtual std::shared_ptr<Renderer> createRenderer(float dpiX, float dpiY, std::shared_ptr<IRenderTarget> target) = 0;
116 
124  virtual std::shared_ptr<ToolController> createToolController() noexcept = 0;
125 
135  virtual std::shared_ptr<Editor> createEditor(std::shared_ptr<Renderer> renderer, std::shared_ptr<ToolController> toolController = nullptr) = 0;
136 
148  virtual std::shared_ptr<OffscreenEditor> createOffscreenEditor(float scaleX, float scaleY) = 0;
149 
159  virtual std::shared_ptr<ItemIdHelper> createItemIdHelper(std::shared_ptr<OffscreenEditor> offscreenEditor) = 0;
160 
180  virtual std::shared_ptr<Recognizer> createRecognizer(float scaleX, float scaleY, const String& type) = 0;
181 
192  std::shared_ptr<ContentPackage> createPackage(const String& fileName)
193  {
194  return openPackage(fileName, (PackageOpenOption)2);
195  }
196 
211  virtual std::shared_ptr<ContentPackage> openPackage(const String& fileName, PackageOpenOption openOption = (PackageOpenOption)0) = 0;
212 
223  virtual void deletePackage(const String& fileName) = 0;
224 
230  virtual std::vector<String> getSupportedPartTypes() noexcept = 0;
231 
239  virtual std::shared_ptr<ParameterSet> createParameterSet() = 0;
240 
249 
257  virtual std::vector<String> getSupportedRecognizerTypes() = 0;
258 };
259 
260 }
261 }
Definition: ContentPackage.h:21
Definition: Editor.h:115
Definition: Engine.h:69
virtual std::shared_ptr< OffscreenEditor > createOffscreenEditor(float scaleX, float scaleY)=0
virtual std::shared_ptr< ParameterSet > createParameterSet()=0
virtual std::shared_ptr< ContentPackage > openPackage(const String &fileName, PackageOpenOption openOption=(PackageOpenOption) 0)=0
std::shared_ptr< ContentPackage > createPackage(const String &fileName)
Definition: Engine.h:192
virtual std::shared_ptr< Renderer > createRenderer(float dpiX, float dpiY, std::shared_ptr< IRenderTarget > target)=0
virtual std::shared_ptr< ItemIdHelper > createItemIdHelper(std::shared_ptr< OffscreenEditor > offscreenEditor)=0
virtual std::vector< String > getSupportedRecognizerTypes()=0
virtual std::vector< String > getSupportedPartTypes() noexcept=0
virtual String getVersion()=0
static std::shared_ptr< Engine > create(const char *certificateBytes, size_t certificateLength)
virtual void deletePackage(const String &fileName)=0
virtual ~Engine()=default
virtual std::shared_ptr< ToolController > createToolController() noexcept=0
virtual std::shared_ptr< Configuration > getConfiguration() noexcept=0
virtual std::shared_ptr< Recognizer > createRecognizer(float scaleX, float scaleY, const String &type)=0
virtual std::shared_ptr< RecognitionAssetsBuilder > createRecognitionAssetsBuilder()=0
virtual std::shared_ptr< Editor > createEditor(std::shared_ptr< Renderer > renderer, std::shared_ptr< ToolController > toolController=nullptr)=0
Definition: IRenderTarget.h:30
Definition: ItemIdHelper.h:34
Definition: OffscreenEditor.h:34
Definition: ParameterSet.h:16
Definition: RecognitionAssetsBuilder.h:18
Definition: Recognizer.h:29
Definition: Renderer.h:21
Definition: String.h:27
Definition: ToolController.h:31
PackageOpenOption
Definition: Engine.h:44
@ EXISTING
Definition: Engine.h:45
@ CREATE_NEW
Definition: Engine.h:47
@ CREATE
Definition: Engine.h:46
@ TRUNCATE_EXISTING
Definition: Engine.h:48
Definition: Configuration.h:11