MyScript Interactive Ink SDK  4.1.2
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 HandwritingGenerator;
30 class IRenderTarget;
31 class ItemIdHelper;
32 class OffscreenEditor;
33 class ParameterSet;
34 class RecognitionAssetsBuilder;
35 class Recognizer;
36 class Renderer;
37 class ToolController;
38 
39 #if !defined(CREATE_NEW) && !defined(TRUNCATE_EXISTING)
45 {
50 };
51 #else
58 {
59  OPEN,
60  OPEN_OR_CREATE,
61  CREATE,
62  CREATE_OR_TRUNCATE,
63 };
64 #endif
65 
69 class Engine
70 {
71 public:
72 
84  IINK_API static std::shared_ptr<Engine> create(const char* certificateBytes, size_t certificateLength);
85 
86  virtual ~Engine() = default;
87 
95  virtual String getVersion() = 0;
96 
102  virtual std::shared_ptr<Configuration> getConfiguration() noexcept = 0;
103 
116  virtual std::shared_ptr<Renderer> createRenderer(float dpiX, float dpiY, std::shared_ptr<IRenderTarget> target) = 0;
117 
125  virtual std::shared_ptr<ToolController> createToolController() noexcept = 0;
126 
136  virtual std::shared_ptr<Editor> createEditor(std::shared_ptr<Renderer> renderer, std::shared_ptr<ToolController> toolController = nullptr) = 0;
137 
149  virtual std::shared_ptr<OffscreenEditor> createOffscreenEditor(float scaleX, float scaleY) = 0;
150 
160  virtual std::shared_ptr<ItemIdHelper> createItemIdHelper(std::shared_ptr<OffscreenEditor> offscreenEditor) = 0;
161 
181  virtual std::shared_ptr<Recognizer> createRecognizer(float scaleX, float scaleY, const String& type) = 0;
182 
193  std::shared_ptr<ContentPackage> createPackage(const String& fileName)
194  {
195  return openPackage(fileName, (PackageOpenOption)2);
196  }
197 
212  virtual std::shared_ptr<ContentPackage> openPackage(const String& fileName, PackageOpenOption openOption = (PackageOpenOption)0) = 0;
213 
224  virtual void deletePackage(const String& fileName) = 0;
225 
231  virtual std::vector<String> getSupportedPartTypes() noexcept = 0;
232 
240  virtual std::shared_ptr<ParameterSet> createParameterSet() = 0;
241 
250 
258  virtual std::vector<String> getSupportedRecognizerTypes() = 0;
259 
269  virtual std::shared_ptr<HandwritingGenerator> createHandwritingGenerator() = 0;
270 };
271 
272 }
273 }
Definition: ContentPackage.h:22
Definition: Editor.h:116
Definition: Engine.h:70
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:193
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 std::shared_ptr< HandwritingGenerator > createHandwritingGenerator()=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: HandwritingGenerator.h:29
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:45
@ EXISTING
Definition: Engine.h:46
@ CREATE_NEW
Definition: Engine.h:48
@ CREATE
Definition: Engine.h:47
@ TRUNCATE_EXISTING
Definition: Engine.h:49
Definition: Configuration.h:10