@vived/app 4.1.0 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (358) hide show
  1. package/lib/AppObjectComponents/ChannelModel/Entities/ChannelModel.d.ts +42 -0
  2. package/lib/AppObjectComponents/ChannelModel/Entities/ChannelModel.js +99 -0
  3. package/lib/AppObjectComponents/ChannelModel/Entities/ChannelModelRepo.d.ts +12 -0
  4. package/lib/AppObjectComponents/ChannelModel/Entities/ChannelModelRepo.js +45 -0
  5. package/lib/AppObjectComponents/ChannelModel/index.d.ts +2 -0
  6. package/lib/AppObjectComponents/ChannelModel/index.js +14 -0
  7. package/lib/AppObjectComponents/Dispatcher/Entities/AppDispatcher.d.ts +16 -0
  8. package/lib/AppObjectComponents/Dispatcher/Entities/AppDispatcher.js +40 -0
  9. package/lib/AppObjectComponents/Dispatcher/Factories/makeBasicDispatcher.d.ts +5 -0
  10. package/lib/AppObjectComponents/Dispatcher/Factories/makeBasicDispatcher.js +25 -0
  11. package/lib/AppObjectComponents/Dispatcher/UC/DispatchStartZSpaceUC.d.ts +10 -0
  12. package/lib/AppObjectComponents/Dispatcher/UC/DispatchStartZSpaceUC.js +44 -0
  13. package/lib/AppObjectComponents/Dispatcher/UC/DispatchStopZSpaceUC.d.ts +10 -0
  14. package/lib/AppObjectComponents/Dispatcher/UC/DispatchStopZSpaceUC.js +44 -0
  15. package/lib/AppObjectComponents/Dispatcher/UC/GoToNextStateUC.d.ts +10 -0
  16. package/lib/AppObjectComponents/Dispatcher/UC/GoToNextStateUC.js +44 -0
  17. package/lib/AppObjectComponents/Dispatcher/UC/GoToPreviousStateUC.d.ts +10 -0
  18. package/lib/AppObjectComponents/Dispatcher/UC/GoToPreviousStateUC.js +44 -0
  19. package/lib/AppObjectComponents/Dispatcher/UC/HasNextStateUC.d.ts +10 -0
  20. package/lib/AppObjectComponents/Dispatcher/UC/HasNextStateUC.js +54 -0
  21. package/lib/AppObjectComponents/Dispatcher/UC/HasPreviousStateUC.d.ts +10 -0
  22. package/lib/AppObjectComponents/Dispatcher/UC/HasPreviousStateUC.js +54 -0
  23. package/lib/AppObjectComponents/Dispatcher/UC/IsZSpaceAvailableUC.d.ts +10 -0
  24. package/lib/AppObjectComponents/Dispatcher/UC/IsZSpaceAvailableUC.js +54 -0
  25. package/lib/AppObjectComponents/Dispatcher/index.d.ts +9 -0
  26. package/lib/AppObjectComponents/Dispatcher/index.js +21 -0
  27. package/lib/AppObjectComponents/Enablement/Entities/EnablablementEntity.d.ts +16 -0
  28. package/lib/AppObjectComponents/Enablement/Entities/EnablablementEntity.js +28 -0
  29. package/lib/AppObjectComponents/Enablement/PM/EnablableStatePM.d.ts +14 -0
  30. package/lib/AppObjectComponents/Enablement/PM/EnablableStatePM.js +41 -0
  31. package/lib/AppObjectComponents/Enablement/index.d.ts +2 -0
  32. package/lib/AppObjectComponents/Enablement/index.js +14 -0
  33. package/lib/AppObjectComponents/Hideable/Entities/Hideable.d.ts +10 -0
  34. package/lib/AppObjectComponents/Hideable/Entities/Hideable.js +31 -0
  35. package/lib/AppObjectComponents/Hideable/PresentationManagers/IsHiddenPM.d.ts +12 -0
  36. package/lib/AppObjectComponents/Hideable/PresentationManagers/IsHiddenPM.js +43 -0
  37. package/lib/AppObjectComponents/Hideable/index.d.ts +2 -0
  38. package/lib/AppObjectComponents/Hideable/index.js +14 -0
  39. package/lib/AppObjectComponents/Label/Entities/Label.d.ts +17 -0
  40. package/lib/AppObjectComponents/Label/Entities/Label.js +58 -0
  41. package/lib/AppObjectComponents/Label/PresentationManagers/LabelPM.d.ts +19 -0
  42. package/lib/AppObjectComponents/Label/PresentationManagers/LabelPM.js +62 -0
  43. package/lib/AppObjectComponents/Label/index.d.ts +2 -0
  44. package/lib/AppObjectComponents/Label/index.js +14 -0
  45. package/lib/AppObjectComponents/Mesh/Entities/Mesh.d.ts +21 -0
  46. package/lib/AppObjectComponents/Mesh/Entities/Mesh.js +45 -0
  47. package/lib/AppObjectComponents/Mesh/index.d.ts +1 -0
  48. package/lib/{Components/Tools/Factory → AppObjectComponents/Mesh}/index.js +1 -2
  49. package/lib/AppObjectComponents/OverlayColor/Entities/OverlayColor.d.ts +25 -0
  50. package/lib/AppObjectComponents/OverlayColor/Entities/OverlayColor.js +59 -0
  51. package/lib/AppObjectComponents/OverlayColor/PresentationManagers/OverlayColorPM.d.ts +13 -0
  52. package/lib/AppObjectComponents/OverlayColor/PresentationManagers/OverlayColorPM.js +43 -0
  53. package/lib/AppObjectComponents/OverlayColor/index.d.ts +2 -0
  54. package/lib/AppObjectComponents/OverlayColor/index.js +14 -0
  55. package/lib/AppObjectComponents/SceneRoot/Entities/SceneRoot.d.ts +31 -0
  56. package/lib/AppObjectComponents/SceneRoot/Entities/SceneRoot.js +106 -0
  57. package/lib/AppObjectComponents/SceneRoot/UC/SerializeSceneRoot.d.ts +31 -0
  58. package/lib/AppObjectComponents/SceneRoot/UC/SerializeSceneRoot.js +109 -0
  59. package/lib/AppObjectComponents/SceneRoot/index.d.ts +2 -0
  60. package/lib/AppObjectComponents/SceneRoot/index.js +14 -0
  61. package/lib/AppObjectComponents/StoredView/Entities/StoredView.d.ts +13 -0
  62. package/lib/AppObjectComponents/StoredView/Entities/StoredView.js +64 -0
  63. package/lib/AppObjectComponents/StoredView/UC/SerializeStoredView.d.ts +27 -0
  64. package/lib/AppObjectComponents/StoredView/UC/SerializeStoredView.js +82 -0
  65. package/lib/AppObjectComponents/StoredView/index.d.ts +2 -0
  66. package/lib/AppObjectComponents/StoredView/index.js +14 -0
  67. package/lib/AppObjectComponents/Transform3D/Entities/Transform3D.d.ts +45 -0
  68. package/lib/AppObjectComponents/Transform3D/Entities/Transform3D.js +226 -0
  69. package/lib/AppObjectComponents/Transform3D/PresentationManagers/CanBeStuckPM.d.ts +12 -0
  70. package/lib/AppObjectComponents/Transform3D/PresentationManagers/CanBeStuckPM.js +46 -0
  71. package/lib/AppObjectComponents/Transform3D/PresentationManagers/Transform3DPM.d.ts +19 -0
  72. package/lib/AppObjectComponents/Transform3D/PresentationManagers/Transform3DPM.js +60 -0
  73. package/lib/AppObjectComponents/Transform3D/UseCases/PeelTransform3D.d.ts +20 -0
  74. package/lib/AppObjectComponents/Transform3D/UseCases/PeelTransform3D.js +67 -0
  75. package/lib/AppObjectComponents/Transform3D/UseCases/StickTransform3D.d.ts +14 -0
  76. package/lib/AppObjectComponents/Transform3D/UseCases/StickTransform3D.js +53 -0
  77. package/lib/AppObjectComponents/Transform3D/index.d.ts +5 -0
  78. package/lib/AppObjectComponents/Transform3D/index.js +17 -0
  79. package/lib/AppObjectComponents/index.d.ts +10 -0
  80. package/lib/AppObjectComponents/index.js +22 -0
  81. package/lib/Components/Babylon/Mocks/MockPixelToSceneRayUC.d.ts +5 -0
  82. package/lib/Components/Babylon/Mocks/MockPixelToSceneRayUC.js +11 -0
  83. package/lib/Components/Babylon/Mocks/MockSceneRayPickUC.d.ts +5 -0
  84. package/lib/Components/Babylon/Mocks/MockSceneRayPickUC.js +11 -0
  85. package/lib/Components/Dispatcher/UC/RestoreCurrentStateUC.d.ts +10 -0
  86. package/lib/Components/Dispatcher/UC/RestoreCurrentStateUC.js +35 -0
  87. package/lib/Components/Dispatcher/UC/index.d.ts +1 -0
  88. package/lib/Components/Dispatcher/UC/index.js +1 -0
  89. package/lib/Components/Selection/Controller/MouseHoverOnAppObject.d.ts +11 -0
  90. package/lib/Components/Selection/Controller/MouseHoverOnAppObject.js +42 -0
  91. package/lib/Components/Selection/Controller/MousePressOnAppObject.d.ts +18 -0
  92. package/lib/Components/Selection/Controller/MousePressOnAppObject.js +81 -0
  93. package/lib/Components/Selection/Controller/MouseSelectAppObject.d.ts +11 -0
  94. package/lib/Components/Selection/Controller/MouseSelectAppObject.js +46 -0
  95. package/lib/Components/Selection/Controller/StylusHoverOnAppObject.d.ts +11 -0
  96. package/lib/Components/Selection/Controller/StylusHoverOnAppObject.js +42 -0
  97. package/lib/Components/Selection/Controller/StylusPressOnAppObject.d.ts +18 -0
  98. package/lib/Components/Selection/Controller/StylusPressOnAppObject.js +77 -0
  99. package/lib/Components/Selection/Controller/StylusSelectAppObject.d.ts +11 -0
  100. package/lib/Components/Selection/Controller/StylusSelectAppObject.js +44 -0
  101. package/lib/Components/Selection/Controller/TapToSelectAppObject.d.ts +16 -0
  102. package/lib/Components/Selection/Controller/TapToSelectAppObject.js +69 -0
  103. package/lib/Components/Selection/Controller/TouchPressOnAppObject.d.ts +18 -0
  104. package/lib/Components/Selection/Controller/TouchPressOnAppObject.js +78 -0
  105. package/lib/Components/Selection/Controller/index.d.ts +8 -0
  106. package/lib/Components/Selection/Controller/index.js +20 -0
  107. package/lib/Components/Selection/Entities/Selectable.d.ts +15 -0
  108. package/lib/Components/Selection/Entities/Selectable.js +48 -0
  109. package/lib/Components/Selection/Entities/Selection.d.ts +18 -0
  110. package/lib/Components/Selection/Entities/Selection.js +122 -0
  111. package/lib/Components/Selection/Entities/index.d.ts +2 -0
  112. package/lib/Components/Selection/Entities/index.js +14 -0
  113. package/lib/Components/Selection/PM/SelectableStatePM.d.ts +16 -0
  114. package/lib/Components/Selection/PM/SelectableStatePM.js +51 -0
  115. package/lib/Components/Selection/PM/SelectedObjectPM.d.ts +6 -0
  116. package/lib/Components/Selection/PM/SelectedObjectPM.js +41 -0
  117. package/lib/Components/Selection/PM/index.d.ts +2 -0
  118. package/lib/Components/Selection/PM/index.js +14 -0
  119. package/lib/Components/Selection/UC/HoverAppObjectUC.d.ts +11 -0
  120. package/lib/Components/Selection/UC/HoverAppObjectUC.js +59 -0
  121. package/lib/Components/Selection/UC/PressAppObjectUC.d.ts +11 -0
  122. package/lib/Components/Selection/UC/PressAppObjectUC.js +60 -0
  123. package/lib/Components/Selection/UC/SelectAppObjectUC.d.ts +11 -0
  124. package/lib/Components/Selection/UC/SelectAppObjectUC.js +59 -0
  125. package/lib/Components/Selection/UC/index.d.ts +3 -0
  126. package/lib/Components/Selection/UC/index.js +15 -0
  127. package/lib/Components/Selection/index.d.ts +4 -0
  128. package/lib/Components/Selection/index.js +16 -0
  129. package/lib/Components/index.d.ts +1 -0
  130. package/lib/Components/index.js +1 -0
  131. package/lib/Controllers/HoverLabelMouse.d.ts +10 -0
  132. package/lib/Controllers/HoverLabelMouse.js +23 -0
  133. package/lib/Controllers/HoverLabelTouch.d.ts +14 -0
  134. package/lib/Controllers/HoverLabelTouch.js +41 -0
  135. package/lib/Controllers/ToolHotkeys.d.ts +6 -0
  136. package/lib/Controllers/ToolHotkeys.js +25 -0
  137. package/lib/Controllers/index.d.ts +3 -0
  138. package/lib/Controllers/index.js +15 -0
  139. package/lib/Entities/AppBoundary.d.ts +6 -0
  140. package/lib/Entities/AppBoundary.js +2 -0
  141. package/lib/Entities/AppDispatcher.d.ts +63 -0
  142. package/lib/Entities/AppDispatcher.js +336 -0
  143. package/lib/Entities/AppHandler.d.ts +20 -0
  144. package/lib/Entities/AppHandler.js +94 -0
  145. package/lib/Entities/Babylon.d.ts +48 -0
  146. package/lib/Entities/Babylon.js +146 -0
  147. package/lib/Entities/BaseApp.d.ts +9 -0
  148. package/lib/Entities/BaseApp.js +30 -0
  149. package/lib/Entities/DevicePreview.d.ts +11 -0
  150. package/lib/Entities/DevicePreview.js +49 -0
  151. package/lib/Entities/FocusCamera.d.ts +70 -0
  152. package/lib/Entities/FocusCamera.js +272 -0
  153. package/lib/Entities/FramedScreen.d.ts +15 -0
  154. package/lib/Entities/FramedScreen.js +58 -0
  155. package/lib/Entities/FramedScreenContainer.d.ts +12 -0
  156. package/lib/Entities/FramedScreenContainer.js +41 -0
  157. package/lib/Entities/HoverLabels.d.ts +42 -0
  158. package/lib/Entities/HoverLabels.js +82 -0
  159. package/lib/Entities/KeyboardInput.d.ts +13 -0
  160. package/lib/Entities/KeyboardInput.js +68 -0
  161. package/lib/Entities/Memoized/MemoizedAngle.d.ts +9 -0
  162. package/lib/Entities/Memoized/MemoizedAngle.js +22 -0
  163. package/lib/Entities/Memoized/MemoizedBoolean.d.ts +8 -0
  164. package/lib/Entities/Memoized/MemoizedBoolean.js +22 -0
  165. package/lib/Entities/Memoized/MemoizedColor.d.ts +9 -0
  166. package/lib/Entities/Memoized/MemoizedColor.js +23 -0
  167. package/lib/Entities/Memoized/MemoizedNumber.d.ts +8 -0
  168. package/lib/Entities/Memoized/MemoizedNumber.js +22 -0
  169. package/lib/Entities/Memoized/MemoizedQuaternion.d.ts +9 -0
  170. package/lib/Entities/Memoized/MemoizedQuaternion.js +23 -0
  171. package/lib/Entities/Memoized/MemoizedString.d.ts +8 -0
  172. package/lib/Entities/Memoized/MemoizedString.js +22 -0
  173. package/lib/Entities/Memoized/MemoizedVector2.d.ts +9 -0
  174. package/lib/Entities/Memoized/MemoizedVector2.js +23 -0
  175. package/lib/Entities/Memoized/MemoizedVector3.d.ts +9 -0
  176. package/lib/Entities/Memoized/MemoizedVector3.js +23 -0
  177. package/lib/Entities/MeshModel.d.ts +68 -0
  178. package/lib/Entities/MeshModel.js +174 -0
  179. package/lib/Entities/ModelObject.d.ts +10 -0
  180. package/lib/Entities/ModelObject.js +42 -0
  181. package/lib/Entities/MouseInput.d.ts +21 -0
  182. package/lib/Entities/MouseInput.js +127 -0
  183. package/lib/Entities/ObservableEntityRepo.d.ts +20 -0
  184. package/lib/Entities/ObservableEntityRepo.js +80 -0
  185. package/lib/Entities/QuestionChallenge.d.ts +21 -0
  186. package/lib/Entities/QuestionChallenge.js +103 -0
  187. package/lib/Entities/QuestionChallengeAnswer.d.ts +32 -0
  188. package/lib/Entities/QuestionChallengeAnswer.js +51 -0
  189. package/lib/Entities/SceneModel.d.ts +85 -0
  190. package/lib/Entities/SceneModel.js +202 -0
  191. package/lib/Entities/SceneModelMesh.d.ts +40 -0
  192. package/lib/Entities/SceneModelMesh.js +75 -0
  193. package/lib/Entities/SceneModelRepo.d.ts +11 -0
  194. package/lib/Entities/SceneModelRepo.js +48 -0
  195. package/lib/Entities/SceneObject.d.ts +23 -0
  196. package/lib/Entities/SceneObject.js +79 -0
  197. package/lib/Entities/SceneObjectsRepo.d.ts +12 -0
  198. package/lib/Entities/SceneObjectsRepo.js +58 -0
  199. package/lib/Entities/SceneRoot.d.ts +29 -0
  200. package/lib/Entities/SceneRoot.js +145 -0
  201. package/lib/Entities/StateMachine.d.ts +29 -0
  202. package/lib/Entities/StateMachine.js +98 -0
  203. package/lib/Entities/Tool.d.ts +81 -0
  204. package/lib/Entities/Tool.js +94 -0
  205. package/lib/Entities/ToolRepository.d.ts +46 -0
  206. package/lib/Entities/ToolRepository.js +118 -0
  207. package/lib/Entities/TouchInput.d.ts +28 -0
  208. package/lib/Entities/TouchInput.js +144 -0
  209. package/lib/Entities/UndoRedo.d.ts +22 -0
  210. package/lib/Entities/UndoRedo.js +61 -0
  211. package/lib/PresentationManagers/DevicePreviewPM.d.ts +14 -0
  212. package/lib/PresentationManagers/DevicePreviewPM.js +30 -0
  213. package/lib/PresentationManagers/FocusCameraPM.d.ts +15 -0
  214. package/lib/PresentationManagers/FocusCameraPM.js +31 -0
  215. package/lib/PresentationManagers/FocusCameraPosRotPM.d.ts +13 -0
  216. package/lib/PresentationManagers/FocusCameraPosRotPM.js +28 -0
  217. package/lib/PresentationManagers/FramedScreenContainerPM.d.ts +18 -0
  218. package/lib/PresentationManagers/FramedScreenContainerPM.js +55 -0
  219. package/lib/PresentationManagers/HasRedoPM.d.ts +9 -0
  220. package/lib/PresentationManagers/HasRedoPM.js +22 -0
  221. package/lib/PresentationManagers/HasUndoPM.d.ts +9 -0
  222. package/lib/PresentationManagers/HasUndoPM.js +22 -0
  223. package/lib/PresentationManagers/HoverLabels/AllowHoverLabelPM.d.ts +9 -0
  224. package/lib/PresentationManagers/HoverLabels/AllowHoverLabelPM.js +19 -0
  225. package/lib/PresentationManagers/HoverLabels/HoverLabelPM.d.ts +17 -0
  226. package/lib/PresentationManagers/HoverLabels/HoverLabelPM.js +32 -0
  227. package/lib/PresentationManagers/HoverLabels/index.d.ts +2 -0
  228. package/lib/PresentationManagers/HoverLabels/index.js +14 -0
  229. package/lib/PresentationManagers/IsAuthoringPM.d.ts +9 -0
  230. package/lib/PresentationManagers/IsAuthoringPM.js +20 -0
  231. package/lib/PresentationManagers/PresentationManager.d.ts +8 -0
  232. package/lib/PresentationManagers/PresentationManager.js +16 -0
  233. package/lib/PresentationManagers/QuestionChallenge/AuthorQuestionChallengeAnswerPM.d.ts +24 -0
  234. package/lib/PresentationManagers/QuestionChallenge/AuthorQuestionChallengeAnswerPM.js +65 -0
  235. package/lib/PresentationManagers/QuestionChallenge/AuthorQuestionChallengePM.d.ts +17 -0
  236. package/lib/PresentationManagers/QuestionChallenge/AuthorQuestionChallengePM.js +46 -0
  237. package/lib/PresentationManagers/QuestionChallenge/QuestionChallengeAnswerPM.d.ts +17 -0
  238. package/lib/PresentationManagers/QuestionChallenge/QuestionChallengeAnswerPM.js +51 -0
  239. package/lib/PresentationManagers/QuestionChallenge/QuestionChallengePM.d.ts +15 -0
  240. package/lib/PresentationManagers/QuestionChallenge/QuestionChallengePM.js +34 -0
  241. package/lib/PresentationManagers/QuestionChallenge/index.d.ts +4 -0
  242. package/lib/PresentationManagers/QuestionChallenge/index.js +16 -0
  243. package/lib/PresentationManagers/SceneModel/SceneMeshOverlayPM.d.ts +15 -0
  244. package/lib/PresentationManagers/SceneModel/SceneMeshOverlayPM.js +34 -0
  245. package/lib/PresentationManagers/SceneModel/SceneModelPM.d.ts +15 -0
  246. package/lib/PresentationManagers/SceneModel/SceneModelPM.js +36 -0
  247. package/lib/PresentationManagers/SceneModel/index.d.ts +1 -0
  248. package/lib/PresentationManagers/SceneModel/index.js +13 -0
  249. package/lib/PresentationManagers/SceneObject/SceneObjectPM.d.ts +22 -0
  250. package/lib/PresentationManagers/SceneObject/SceneObjectPM.js +57 -0
  251. package/lib/PresentationManagers/SceneObject/index.d.ts +1 -0
  252. package/lib/PresentationManagers/SceneObject/index.js +13 -0
  253. package/lib/PresentationManagers/ShowBabylonInspectorPM.d.ts +9 -0
  254. package/lib/PresentationManagers/ShowBabylonInspectorPM.js +24 -0
  255. package/lib/PresentationManagers/ToolPM.d.ts +17 -0
  256. package/lib/PresentationManagers/ToolPM.js +35 -0
  257. package/lib/PresentationManagers/TransformNodePM.d.ts +14 -0
  258. package/lib/PresentationManagers/TransformNodePM.js +23 -0
  259. package/lib/PresentationManagers/index.d.ts +13 -0
  260. package/lib/PresentationManagers/index.js +25 -0
  261. package/lib/UseCases/FocusCamera/BumpDollyFocusCamera.d.ts +17 -0
  262. package/lib/UseCases/FocusCamera/BumpDollyFocusCamera.js +64 -0
  263. package/lib/UseCases/FocusCamera/LerpFocusCamera.d.ts +36 -0
  264. package/lib/UseCases/FocusCamera/LerpFocusCamera.js +71 -0
  265. package/lib/UseCases/FocusCamera/PinchDollyFocusCamera.d.ts +11 -0
  266. package/lib/UseCases/FocusCamera/PinchDollyFocusCamera.js +36 -0
  267. package/lib/UseCases/FocusCamera/PixelDollyFocusCamera.d.ts +11 -0
  268. package/lib/UseCases/FocusCamera/PixelDollyFocusCamera.js +36 -0
  269. package/lib/UseCases/FocusCamera/PixelOrbitFocusCamera.d.ts +11 -0
  270. package/lib/UseCases/FocusCamera/PixelOrbitFocusCamera.js +26 -0
  271. package/lib/UseCases/FocusCamera/PixelPlanePanFocusCamera.d.ts +11 -0
  272. package/lib/UseCases/FocusCamera/PixelPlanePanFocusCamera.js +33 -0
  273. package/lib/UseCases/FocusCamera/SerializeFocusCamera.d.ts +22 -0
  274. package/lib/UseCases/FocusCamera/SerializeFocusCamera.js +81 -0
  275. package/lib/UseCases/FocusCamera/index.d.ts +7 -0
  276. package/lib/UseCases/FocusCamera/index.js +19 -0
  277. package/lib/UseCases/Handlers/DisposeAppBase.d.ts +8 -0
  278. package/lib/UseCases/Handlers/DisposeAppBase.js +24 -0
  279. package/lib/UseCases/Handlers/SetAppStateBase.d.ts +10 -0
  280. package/lib/UseCases/Handlers/SetAppStateBase.js +32 -0
  281. package/lib/UseCases/Handlers/SetDevicePreviewBase.d.ts +10 -0
  282. package/lib/UseCases/Handlers/SetDevicePreviewBase.js +32 -0
  283. package/lib/UseCases/Handlers/SetIsAuthoringBase.d.ts +10 -0
  284. package/lib/UseCases/Handlers/SetIsAuthoringBase.js +32 -0
  285. package/lib/UseCases/Handlers/ShowBabylonInspectorBase.d.ts +10 -0
  286. package/lib/UseCases/Handlers/ShowBabylonInspectorBase.js +32 -0
  287. package/lib/UseCases/Handlers/StartAppBase.d.ts +10 -0
  288. package/lib/UseCases/Handlers/StartAppBase.js +32 -0
  289. package/lib/UseCases/Handlers/StartZSpaceBase.d.ts +10 -0
  290. package/lib/UseCases/Handlers/StartZSpaceBase.js +35 -0
  291. package/lib/UseCases/Handlers/StopAppBase.d.ts +8 -0
  292. package/lib/UseCases/Handlers/StopAppBase.js +24 -0
  293. package/lib/UseCases/Handlers/StopZSpaceBase.d.ts +8 -0
  294. package/lib/UseCases/Handlers/StopZSpaceBase.js +24 -0
  295. package/lib/UseCases/Handlers/index.d.ts +9 -0
  296. package/lib/UseCases/Handlers/index.js +21 -0
  297. package/lib/UseCases/HoverLabels/SerializeAllowHoverLabel.d.ts +14 -0
  298. package/lib/UseCases/HoverLabels/SerializeAllowHoverLabel.js +35 -0
  299. package/lib/UseCases/HoverLabels/trySetHoverLabel.d.ts +3 -0
  300. package/lib/UseCases/HoverLabels/trySetHoverLabel.js +12 -0
  301. package/lib/UseCases/LerpVector3.d.ts +26 -0
  302. package/lib/UseCases/LerpVector3.js +66 -0
  303. package/lib/UseCases/QuestionChallenge/SerializeQuestionChallenge.d.ts +25 -0
  304. package/lib/UseCases/QuestionChallenge/SerializeQuestionChallenge.js +70 -0
  305. package/lib/UseCases/QuestionChallenge/index.d.ts +4 -0
  306. package/lib/UseCases/QuestionChallenge/index.js +16 -0
  307. package/lib/UseCases/QuestionChallenge/setQuesionChallengeAnswerFeedback.d.ts +2 -0
  308. package/lib/UseCases/QuestionChallenge/setQuesionChallengeAnswerFeedback.js +16 -0
  309. package/lib/UseCases/QuestionChallenge/setQuesionChallengeAnswerText.d.ts +2 -0
  310. package/lib/UseCases/QuestionChallenge/setQuesionChallengeAnswerText.js +16 -0
  311. package/lib/UseCases/QuestionChallenge/toggleQuesionChallengeAnswerIsCorrect.d.ts +2 -0
  312. package/lib/UseCases/QuestionChallenge/toggleQuesionChallengeAnswerIsCorrect.js +16 -0
  313. package/lib/UseCases/SceneModel/SerializeActiveModel.d.ts +18 -0
  314. package/lib/UseCases/SceneModel/SerializeActiveModel.js +74 -0
  315. package/lib/UseCases/SceneModel/SetMeshesEnabledHook.d.ts +7 -0
  316. package/lib/UseCases/SceneModel/SetMeshesEnabledHook.js +22 -0
  317. package/lib/UseCases/SceneModel/SetSceneModelMeshOverlayColor.d.ts +2 -0
  318. package/lib/UseCases/SceneModel/SetSceneModelMeshOverlayColor.js +13 -0
  319. package/lib/UseCases/SceneModel/index.d.ts +5 -0
  320. package/lib/UseCases/SceneModel/index.js +17 -0
  321. package/lib/UseCases/SceneModel/loadNewModel.d.ts +2 -0
  322. package/lib/UseCases/SceneModel/loadNewModel.js +84 -0
  323. package/lib/UseCases/SceneModel/modelDataLoader.d.ts +3 -0
  324. package/lib/UseCases/SceneModel/modelDataLoader.js +33 -0
  325. package/lib/UseCases/SceneObjects/PeelSceneObject.d.ts +18 -0
  326. package/lib/UseCases/SceneObjects/PeelSceneObject.js +61 -0
  327. package/lib/UseCases/SceneObjects/index.d.ts +1 -0
  328. package/lib/UseCases/SceneObjects/index.js +13 -0
  329. package/lib/UseCases/SceneRoot/SerializeSceneRoot.d.ts +33 -0
  330. package/lib/UseCases/SceneRoot/SerializeSceneRoot.js +67 -0
  331. package/lib/UseCases/SceneRoot/index.d.ts +2 -0
  332. package/lib/UseCases/SceneRoot/index.js +14 -0
  333. package/lib/UseCases/SceneRoot/setupSceneRoot.d.ts +2 -0
  334. package/lib/UseCases/SceneRoot/setupSceneRoot.js +11 -0
  335. package/lib/UseCases/index.d.ts +7 -0
  336. package/lib/UseCases/index.js +19 -0
  337. package/lib/UseCases/setDevicePreview.d.ts +2 -0
  338. package/lib/UseCases/setDevicePreview.js +14 -0
  339. package/lib/UseCases/setupStandardAppObjects.d.ts +2 -0
  340. package/lib/UseCases/setupStandardAppObjects.js +10 -0
  341. package/package.json +1 -1
  342. package/lib/Components/App/UC/submitError.d.ts +0 -2
  343. package/lib/Components/App/UC/submitError.js +0 -28
  344. package/lib/Components/App/UC/submitFatal.d.ts +0 -2
  345. package/lib/Components/App/UC/submitFatal.js +0 -28
  346. package/lib/Components/App/UC/submitLog.d.ts +0 -2
  347. package/lib/Components/App/UC/submitLog.js +0 -28
  348. package/lib/Components/App/UC/submitWarning.d.ts +0 -2
  349. package/lib/Components/App/UC/submitWarning.js +0 -28
  350. package/lib/Components/Camera/Factory/CameraFactoryImp.d.ts +0 -4
  351. package/lib/Components/Camera/Factory/CameraFactoryImp.js +0 -25
  352. package/lib/Components/Dispatcher/Mocks/MockLogUC.d.ts +0 -10
  353. package/lib/Components/Dispatcher/Mocks/MockLogUC.js +0 -14
  354. package/lib/Components/Tools/Factory/index.d.ts +0 -2
  355. package/lib/Components/Tools/Factory/setupTool.d.ts +0 -3
  356. package/lib/Components/Tools/Factory/setupTool.js +0 -12
  357. package/lib/Components/Tools/Factory/setupToolRepo.d.ts +0 -4
  358. package/lib/Components/Tools/Factory/setupToolRepo.js +0 -13
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeTool = exports.Tool = exports.ToolState = void 0;
4
+ const MemoizedString_1 = require("./Memoized/MemoizedString");
5
+ const ObservableEntity_1 = require("./ObservableEntity");
6
+ var ToolState;
7
+ (function (ToolState) {
8
+ ToolState["HIDDEN"] = "HIDDEN";
9
+ ToolState["DISABLED"] = "DISABLED";
10
+ ToolState["ENABLED"] = "ENABLED";
11
+ ToolState["ACTIVE"] = "ACTIVE";
12
+ })(ToolState = exports.ToolState || (exports.ToolState = {}));
13
+ class Tool extends ObservableEntity_1.ObservableEntity {
14
+ }
15
+ exports.Tool = Tool;
16
+ function makeTool(data) {
17
+ return new ToolImp(data);
18
+ }
19
+ exports.makeTool = makeTool;
20
+ class ToolImp extends Tool {
21
+ constructor(data) {
22
+ super();
23
+ this.memoizedState = new MemoizedString_1.MemoizedString(ToolState.ENABLED, this.notify);
24
+ this.actions = [];
25
+ this._isAction = false;
26
+ this.registerAction = (action) => {
27
+ this.actions.push(action);
28
+ this._isAction = true;
29
+ };
30
+ this.triggerActions = () => {
31
+ this.actions.forEach((action) => {
32
+ action();
33
+ });
34
+ };
35
+ this.isMyHotkey = (hotkey) => {
36
+ let isMine = false;
37
+ this.hotkeys.forEach((myHotkey) => {
38
+ if (this.hotkeysMatch(myHotkey, hotkey)) {
39
+ isMine = true;
40
+ }
41
+ });
42
+ return isMine;
43
+ };
44
+ this.type = data.type;
45
+ this.memoizedLabel = new MemoizedString_1.MemoizedString(data.label, this.notify);
46
+ this.isDefault = data.isDefault;
47
+ this.memoizedShortcut = new MemoizedString_1.MemoizedString(data.shortcutLabel, this.notify);
48
+ this.hotkeys = data.hotkeys;
49
+ }
50
+ get label() {
51
+ return this.memoizedLabel.val;
52
+ }
53
+ set label(toolLabel) {
54
+ this.memoizedLabel.val = toolLabel;
55
+ }
56
+ get shortcutLabel() {
57
+ return this.memoizedShortcut.val;
58
+ }
59
+ set shortcutLabel(shorcut) {
60
+ this.memoizedShortcut.val = shorcut;
61
+ }
62
+ get state() {
63
+ return this.memoizedState.val;
64
+ }
65
+ set state(val) {
66
+ this.memoizedState.val = val;
67
+ }
68
+ get isAction() {
69
+ return this._isAction;
70
+ }
71
+ hotkeysMatch(a, b) {
72
+ if (a.keyCode !== b.keyCode)
73
+ return false;
74
+ const aComplete = this.fillInMissingModifiers(a);
75
+ const bComplete = this.fillInMissingModifiers(b);
76
+ if (aComplete.alt !== bComplete.alt)
77
+ return false;
78
+ if (aComplete.control !== bComplete.control)
79
+ return false;
80
+ if (aComplete.meta !== bComplete.meta)
81
+ return false;
82
+ if (aComplete.shift !== bComplete.shift)
83
+ return false;
84
+ return true;
85
+ }
86
+ fillInMissingModifiers(hotkey) {
87
+ const rVal = Object.assign({}, hotkey);
88
+ rVal.alt = hotkey.alt === undefined ? false : hotkey.alt;
89
+ rVal.control = hotkey.control === undefined ? false : hotkey.control;
90
+ rVal.meta = hotkey.meta === undefined ? false : hotkey.meta;
91
+ rVal.shift = hotkey.shift === undefined ? false : hotkey.shift;
92
+ return rVal;
93
+ }
94
+ }
@@ -0,0 +1,46 @@
1
+ import { ObservableEntity } from "./ObservableEntity";
2
+ import { HotKey, Tool, ToolData } from "./Tool";
3
+ export declare abstract class ToolRepository<ToolTypes> extends ObservableEntity {
4
+ /**
5
+ * Retuns the active tool. If no tool is active it will return undefined.
6
+ */
7
+ abstract get activeTool(): Tool<ToolTypes> | undefined;
8
+ /**
9
+ * Returns all the tools.
10
+ */
11
+ abstract get allTools(): Tool<ToolTypes>[];
12
+ /**
13
+ * Set up the tools from a JSON data file. This should be called during construction.
14
+ * It is assumed this is only called once.
15
+ * @param toolData
16
+ */
17
+ abstract setupToolsFromData(toolData: ToolData<ToolTypes>[]): void;
18
+ /**
19
+ * Get's a tool by it's type. Retruns undefined if no tool could be found
20
+ * @param toolType The tool type
21
+ */
22
+ abstract getTool(toolType: ToolTypes): Tool<ToolTypes> | undefined;
23
+ /**
24
+ * Returns the tool that has been assinged to a particular key code.
25
+ * Will return undefined of no tool is found
26
+ * @param hotkey Key Code
27
+ */
28
+ abstract getToolForHotkey(hotkey: HotKey): Tool<ToolTypes> | undefined;
29
+ /**
30
+ * Call this to set the default tool as active
31
+ */
32
+ abstract setDefaultToolActive(): void;
33
+ /**
34
+ * Triggers a tool of type
35
+ * @param toolType Tool's type
36
+ */
37
+ abstract triggerTool(toolType: ToolTypes): void;
38
+ /**
39
+ * Toggls a tool between Hidden and shown.
40
+ * If the tool is tool is currently Active, the default tool will be set active
41
+ * The Default Tool cannot be toggled
42
+ * @param toolType Tool's type
43
+ */
44
+ abstract toggleToolVisibility(toolType: ToolTypes): void;
45
+ }
46
+ export declare function makeToolRepo<ToolTypes>(): ToolRepository<ToolTypes>;
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeToolRepo = exports.ToolRepository = void 0;
4
+ const ObservableEntity_1 = require("./ObservableEntity");
5
+ const Tool_1 = require("./Tool");
6
+ class ToolRepository extends ObservableEntity_1.ObservableEntity {
7
+ }
8
+ exports.ToolRepository = ToolRepository;
9
+ function makeToolRepo() {
10
+ return new ToolRepositoryImp();
11
+ }
12
+ exports.makeToolRepo = makeToolRepo;
13
+ class ToolRepositoryImp extends ToolRepository {
14
+ constructor() {
15
+ super(...arguments);
16
+ this.toolLookup = new Map();
17
+ }
18
+ get allTools() {
19
+ return Array.from(this.toolLookup.values());
20
+ }
21
+ setDefaultToolActive() {
22
+ if (this._defaultToolType !== undefined) {
23
+ this.triggerTool(this._defaultToolType);
24
+ }
25
+ else {
26
+ console.warn(`[ToolRepository] No default tools has been specified`);
27
+ }
28
+ }
29
+ setupToolsFromData(toolDatas) {
30
+ toolDatas.forEach((toolData) => {
31
+ const type = toolData.type;
32
+ if (this.toolLookup.has(type)) {
33
+ console.warn(`[ToolRepository] A tool with the ID ${toolData.type} already exists. Replacing`);
34
+ }
35
+ const tool = Tool_1.makeTool(toolData);
36
+ this.toolLookup.set(type, tool);
37
+ if (toolData.isDefault) {
38
+ if (this._defaultToolType) {
39
+ console.warn(`[ToolRepository] More than one tools is marked as default. Replacing`);
40
+ }
41
+ this._defaultToolType = type;
42
+ }
43
+ });
44
+ if (!this._defaultToolType) {
45
+ console.warn(`[ToolRepository] No default tools was specified. Defaulting to the first tool in the list`);
46
+ this._defaultToolType = Array.from(this.toolLookup.keys())[0];
47
+ }
48
+ if (this._defaultToolType) {
49
+ this.triggerTool(this._defaultToolType);
50
+ }
51
+ }
52
+ getTool(type) {
53
+ return this.toolLookup.get(type);
54
+ }
55
+ getToolForHotkey(hotkey) {
56
+ let tool;
57
+ this.allTools.forEach((t) => {
58
+ if (t.isMyHotkey(hotkey)) {
59
+ tool = t;
60
+ }
61
+ });
62
+ return tool;
63
+ }
64
+ get activeTool() {
65
+ if (!this._activeToolType)
66
+ return undefined;
67
+ return this.getTool(this._activeToolType);
68
+ }
69
+ triggerTool(type) {
70
+ if (this._activeToolType === type)
71
+ return;
72
+ const newActiveTool = this.toolLookup.get(type);
73
+ if (!newActiveTool) {
74
+ console.warn(`[ToolRepository] Unable to find tool ${type}`);
75
+ return;
76
+ }
77
+ if (newActiveTool.isAction) {
78
+ newActiveTool.triggerActions();
79
+ return;
80
+ }
81
+ if (newActiveTool.state === Tool_1.ToolState.DISABLED) {
82
+ return;
83
+ }
84
+ if (newActiveTool.state === Tool_1.ToolState.HIDDEN) {
85
+ return;
86
+ }
87
+ this.toolLookup.forEach((tool) => {
88
+ if (tool.type === type) {
89
+ this._activeToolType = type;
90
+ tool.state = Tool_1.ToolState.ACTIVE;
91
+ }
92
+ else if (tool.state === Tool_1.ToolState.ACTIVE) {
93
+ tool.state = Tool_1.ToolState.ENABLED;
94
+ }
95
+ });
96
+ this.notify();
97
+ }
98
+ toggleToolVisibility(type) {
99
+ const tool = this.getTool(type);
100
+ if (!tool) {
101
+ console.warn(`[ToolRepository] Unable to find tool to toggle: ${type}`);
102
+ return;
103
+ }
104
+ if (tool.type === this._defaultToolType) {
105
+ console.warn(`[ToolRepository] The default tool's visibility cannot be toggled`);
106
+ return;
107
+ }
108
+ if (tool.state === Tool_1.ToolState.HIDDEN) {
109
+ tool.state = Tool_1.ToolState.ENABLED;
110
+ }
111
+ else {
112
+ if (tool.state === Tool_1.ToolState.ACTIVE) {
113
+ this.setDefaultToolActive();
114
+ }
115
+ tool.state = Tool_1.ToolState.HIDDEN;
116
+ }
117
+ }
118
+ }
@@ -0,0 +1,28 @@
1
+ import { Vector2 } from "../ValueObjects";
2
+ export interface TouchInputEvent {
3
+ touchCount: number;
4
+ touchCenter: Vector2;
5
+ touches: TouchData[];
6
+ event: TouchEvent;
7
+ }
8
+ export interface TouchData {
9
+ id: number;
10
+ position: Vector2;
11
+ touch?: Touch;
12
+ }
13
+ export interface TouchController {
14
+ onTouchStart?: (e: TouchInputEvent) => void;
15
+ onTouchMove?: (e: TouchInputEvent) => void;
16
+ onTouchEnd?: (e: TouchInputEvent) => void;
17
+ onTouchCancel?: (e: TouchInputEvent) => void;
18
+ }
19
+ export interface TouchInput {
20
+ eventElement: HTMLElement | undefined;
21
+ eventElementBounds?: DOMRect;
22
+ setEventElement: (eventElement: HTMLElement) => void;
23
+ clearInputElement: () => void;
24
+ updateInputElementBounds: () => void;
25
+ registerController: (controller: TouchController) => void;
26
+ removeController: (controller: TouchController) => void;
27
+ }
28
+ export declare function makeTouchInput(): TouchInput;
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeTouchInput = void 0;
4
+ const ValueObjects_1 = require("../ValueObjects");
5
+ function makeTouchInput() {
6
+ return new TouchInputImp();
7
+ }
8
+ exports.makeTouchInput = makeTouchInput;
9
+ class TouchInputImp {
10
+ constructor() {
11
+ this.controllers = [];
12
+ this._eventElement = undefined;
13
+ this.updateInputElementBounds = () => {
14
+ if (!this._eventElement)
15
+ return;
16
+ this.eventElementBounds = this._eventElement.getBoundingClientRect(); // Expensive so we cache
17
+ };
18
+ this.getTouchOffsetPosition = (touch) => {
19
+ if (!this.eventElementBounds) {
20
+ console.warn("No target bounds");
21
+ return ValueObjects_1.Vector2.Zero();
22
+ }
23
+ const x = touch.clientX - this.eventElementBounds.x;
24
+ const y = touch.clientY - this.eventElementBounds.y;
25
+ return new ValueObjects_1.Vector2(x, y);
26
+ };
27
+ this.setEventElement = (eventElement) => {
28
+ if (this._eventElement)
29
+ this.clearInputElement();
30
+ eventElement.addEventListener("touchstart", this.onTouchStart, false);
31
+ eventElement.addEventListener("touchmove", this.onTouchMove, false);
32
+ eventElement.addEventListener("touchend", this.onTouchEnd, false);
33
+ eventElement.addEventListener("touchcancel", this.onTouchCancel, false);
34
+ this.eventElementBounds = eventElement.getBoundingClientRect();
35
+ this._eventElement = eventElement;
36
+ };
37
+ this.onTouchStart = (e) => {
38
+ if (e.cancelable)
39
+ e.preventDefault();
40
+ const touchInput = this.createTouchInputEvent(e);
41
+ this.controllers.forEach((c) => {
42
+ if (c.onTouchStart) {
43
+ c.onTouchStart(touchInput);
44
+ }
45
+ });
46
+ };
47
+ this.onTouchMove = (e) => {
48
+ if (e.cancelable)
49
+ e.preventDefault();
50
+ const touchInput = this.createTouchInputEvent(e);
51
+ this.controllers.forEach((c) => {
52
+ if (c.onTouchMove) {
53
+ c.onTouchMove(touchInput);
54
+ }
55
+ });
56
+ };
57
+ this.onTouchEnd = (e) => {
58
+ if (e.cancelable)
59
+ e.preventDefault();
60
+ const touchInput = this.createTouchInputEvent(e);
61
+ this.controllers.forEach((c) => {
62
+ if (c.onTouchEnd) {
63
+ c.onTouchEnd(touchInput);
64
+ }
65
+ });
66
+ };
67
+ this.onTouchCancel = (e) => {
68
+ if (e.cancelable)
69
+ e.preventDefault();
70
+ const touchInput = this.createTouchInputEvent(e);
71
+ this.controllers.forEach((c) => {
72
+ if (c.onTouchCancel) {
73
+ c.onTouchCancel(touchInput);
74
+ }
75
+ });
76
+ };
77
+ this.clearInputElement = () => {
78
+ if (!this._eventElement)
79
+ return;
80
+ this._eventElement.removeEventListener("touchstart", this.onTouchStart);
81
+ this._eventElement.removeEventListener("touchmove", this.onTouchMove);
82
+ this._eventElement.removeEventListener("touchend", this.onTouchEnd);
83
+ this._eventElement.removeEventListener("touchcancel", this.onTouchCancel);
84
+ this._eventElement = undefined;
85
+ };
86
+ this.registerController = (controller) => {
87
+ this.controllers.push(controller);
88
+ };
89
+ this.removeController = (controller) => {
90
+ const index = this.controllers.indexOf(controller);
91
+ if (index >= 0) {
92
+ this.controllers.splice(index, 1);
93
+ }
94
+ };
95
+ }
96
+ get eventElement() {
97
+ return this._eventElement;
98
+ }
99
+ createTouchInputEvent(event) {
100
+ const touches = [];
101
+ const touchCount = event.touches.length;
102
+ let minX = 0;
103
+ let maxX = 0;
104
+ let minY = 0;
105
+ let maxY = 0;
106
+ for (let i = 0; i < touchCount; i++) {
107
+ const touch = event.touches[i];
108
+ const position = this.getTouchOffsetPosition(touch);
109
+ touches.push({
110
+ id: touch.identifier,
111
+ touch,
112
+ position,
113
+ });
114
+ if (i === 0) {
115
+ minX = position.x;
116
+ maxX = position.x;
117
+ minY = position.y;
118
+ maxY = position.y;
119
+ }
120
+ else {
121
+ minX = Math.min(minX, position.x);
122
+ maxX = Math.max(maxX, position.x);
123
+ minY = Math.min(minY, position.y);
124
+ maxY = Math.max(maxY, position.y);
125
+ }
126
+ }
127
+ let cntX = 0;
128
+ let cntY = 0;
129
+ if (touchCount === 1) {
130
+ cntX = maxX;
131
+ cntY = maxY;
132
+ }
133
+ else {
134
+ cntX = minX + (maxX - minX) / 2;
135
+ cntY = minY + (maxY - minY) / 2;
136
+ }
137
+ return {
138
+ touchCenter: new ValueObjects_1.Vector2(cntX, cntY),
139
+ touchCount,
140
+ touches,
141
+ event,
142
+ };
143
+ }
144
+ }
@@ -0,0 +1,22 @@
1
+ export declare type OnUndoRedoChange = () => void;
2
+ export interface UndoRedoer {
3
+ undoAction: (action: UndoRedoAction) => void;
4
+ redoAction: (action: UndoRedoAction) => void;
5
+ }
6
+ export declare type DoUndoRedoAction = (action: UndoRedoAction) => void;
7
+ export interface UndoRedo {
8
+ hasUndo: boolean;
9
+ hasRedo: boolean;
10
+ submitAction: (action: UndoRedoAction) => void;
11
+ doUndo: () => void;
12
+ doRedo: () => void;
13
+ clearStack: () => void;
14
+ registerUndoRedoer: (undoRedoer: UndoRedoer) => void;
15
+ addObserver: (observer: OnUndoRedoChange) => void;
16
+ removeObserver: (observer: OnUndoRedoChange) => void;
17
+ }
18
+ export declare function makeUndoRedo(): UndoRedo;
19
+ export declare type UndoRedoAction = {
20
+ type: string;
21
+ payload: object;
22
+ };
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeUndoRedo = void 0;
4
+ const _1 = require(".");
5
+ function makeUndoRedo() {
6
+ return new UndoRedoImp();
7
+ }
8
+ exports.makeUndoRedo = makeUndoRedo;
9
+ class UndoRedoImp {
10
+ constructor() {
11
+ this.observers = new _1.ObserverList();
12
+ this.undoRedoers = [];
13
+ this.undoStack = [];
14
+ this.redoStack = [];
15
+ this.doUndo = () => {
16
+ const action = this.undoStack.pop();
17
+ if (!action) {
18
+ console.warn("[UndoRedo] nothing to undo");
19
+ return;
20
+ }
21
+ this.redoStack.push(action);
22
+ this.undoRedoers.forEach(undoers => undoers.undoAction(action));
23
+ this.observers.notify();
24
+ };
25
+ this.doRedo = () => {
26
+ const action = this.redoStack.pop();
27
+ if (!action) {
28
+ console.warn("[UndoRedo] nothing to redo");
29
+ return;
30
+ }
31
+ this.undoStack.push(action);
32
+ this.undoRedoers.forEach(redoers => redoers.redoAction(action));
33
+ this.observers.notify();
34
+ };
35
+ this.submitAction = (action) => {
36
+ this.undoStack.push(action);
37
+ this.redoStack = [];
38
+ this.observers.notify();
39
+ };
40
+ this.clearStack = () => {
41
+ this.redoStack = [];
42
+ this.undoStack = [];
43
+ this.observers.notify();
44
+ };
45
+ this.registerUndoRedoer = (undoredoer) => {
46
+ this.undoRedoers.push(undoredoer);
47
+ };
48
+ this.addObserver = (observer) => {
49
+ this.observers.add(observer);
50
+ };
51
+ this.removeObserver = (observer) => {
52
+ this.observers.remove(observer);
53
+ };
54
+ }
55
+ get hasUndo() {
56
+ return this.undoStack.length > 0;
57
+ }
58
+ get hasRedo() {
59
+ return this.redoStack.length > 0;
60
+ }
61
+ }
@@ -0,0 +1,14 @@
1
+ import { DevicePreview } from "../Entities";
2
+ export interface DevicePreviewVM {
3
+ x: number;
4
+ y: number;
5
+ useDevicePreview: boolean;
6
+ }
7
+ export declare class DevicePreviewPM {
8
+ devicePreview: DevicePreview;
9
+ updateView: (vm: DevicePreviewVM) => void;
10
+ doUpdateView: () => void;
11
+ dispose(): void;
12
+ constructor(devicePreview: DevicePreview, updateView: (vm: DevicePreviewVM) => void);
13
+ }
14
+ export declare const defaultDevicePreviewVM: DevicePreviewVM;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.defaultDevicePreviewVM = exports.DevicePreviewPM = void 0;
4
+ class DevicePreviewPM {
5
+ constructor(devicePreview, updateView) {
6
+ this.doUpdateView = () => {
7
+ const useDevicePreview = this.devicePreview.useDevicePreview;
8
+ const x = this.devicePreview.previewSize.x;
9
+ const y = this.devicePreview.previewSize.y;
10
+ this.updateView({
11
+ x,
12
+ y,
13
+ useDevicePreview,
14
+ });
15
+ };
16
+ this.devicePreview = devicePreview;
17
+ this.updateView = updateView;
18
+ this.doUpdateView();
19
+ this.devicePreview.addObserver(this.doUpdateView);
20
+ }
21
+ dispose() {
22
+ this.devicePreview.removeObserver(this.doUpdateView);
23
+ }
24
+ }
25
+ exports.DevicePreviewPM = DevicePreviewPM;
26
+ exports.defaultDevicePreviewVM = {
27
+ x: 0,
28
+ y: 0,
29
+ useDevicePreview: false,
30
+ };
@@ -0,0 +1,15 @@
1
+ import { FocusCamera } from "../Entities";
2
+ import { Vector3 } from "../ValueObjects";
3
+ export interface FocusCameraVM {
4
+ alphaEuler: Vector3;
5
+ betaEuler: Vector3;
6
+ cameraLocalPosition: Vector3;
7
+ target: Vector3;
8
+ }
9
+ export declare class FocusCameraPM {
10
+ private orbitCam;
11
+ private view;
12
+ dispose(): void;
13
+ private doUpdateView;
14
+ constructor(orbitCamera: FocusCamera, view: (vm: FocusCameraVM) => void);
15
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FocusCameraPM = void 0;
4
+ const Utilities_1 = require("../Utilities");
5
+ const ValueObjects_1 = require("../ValueObjects");
6
+ class FocusCameraPM {
7
+ constructor(orbitCamera, view) {
8
+ this.doUpdateView = () => {
9
+ const { alpha, beta, radius, target } = this.orbitCam;
10
+ const alphaRadians = Utilities_1.degreesToRadians(alpha);
11
+ const alphaEuler = new ValueObjects_1.Vector3(0, alphaRadians, 0);
12
+ const betaRadians = Utilities_1.degreesToRadians(beta);
13
+ const betaEuler = new ValueObjects_1.Vector3(betaRadians, 0, 0);
14
+ const cameraLocalPosition = new ValueObjects_1.Vector3(0, 0, -radius);
15
+ this.view({
16
+ alphaEuler,
17
+ betaEuler,
18
+ cameraLocalPosition,
19
+ target,
20
+ });
21
+ };
22
+ this.orbitCam = orbitCamera;
23
+ this.view = view;
24
+ this.doUpdateView();
25
+ this.orbitCam.addObserver(this.doUpdateView);
26
+ }
27
+ dispose() {
28
+ this.orbitCam.removeObserver(this.doUpdateView);
29
+ }
30
+ }
31
+ exports.FocusCameraPM = FocusCameraPM;
@@ -0,0 +1,13 @@
1
+ import { FocusCamera } from "../Entities";
2
+ import { Vector3 } from "../ValueObjects";
3
+ export interface FocusCameraPosRotVM {
4
+ position: Vector3;
5
+ rotation: Vector3;
6
+ }
7
+ export declare class FocusCameraPosRotPM {
8
+ private focusCam;
9
+ private view;
10
+ dispose(): void;
11
+ private doUpdateView;
12
+ constructor(orbitCamera: FocusCamera, view: (vm: FocusCameraPosRotVM) => void);
13
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FocusCameraPosRotPM = void 0;
4
+ const Utilities_1 = require("../Utilities");
5
+ const ValueObjects_1 = require("../ValueObjects");
6
+ class FocusCameraPosRotPM {
7
+ constructor(orbitCamera, view) {
8
+ this.doUpdateView = () => {
9
+ const { alpha, beta } = this.focusCam;
10
+ const alphaRadians = Utilities_1.degreesToRadians(alpha);
11
+ const betaRadians = Utilities_1.degreesToRadians(beta);
12
+ const position = this.focusCam.cameraPosition;
13
+ const rotation = new ValueObjects_1.Vector3(betaRadians, alphaRadians, 0);
14
+ this.view({
15
+ position,
16
+ rotation,
17
+ });
18
+ };
19
+ this.focusCam = orbitCamera;
20
+ this.view = view;
21
+ this.doUpdateView();
22
+ this.focusCam.addObserver(this.doUpdateView);
23
+ }
24
+ dispose() {
25
+ this.focusCam.removeObserver(this.doUpdateView);
26
+ }
27
+ }
28
+ exports.FocusCameraPosRotPM = FocusCameraPosRotPM;
@@ -0,0 +1,18 @@
1
+ import { FramedScreen } from "../Entities";
2
+ export interface FramedContainerVM {
3
+ top: number;
4
+ left: number;
5
+ width: number;
6
+ height: number;
7
+ show: boolean;
8
+ }
9
+ export declare class FramedContainerPM {
10
+ private updateView;
11
+ private container?;
12
+ private lastVM?;
13
+ doUpdateView: () => void;
14
+ private vmHadChanged;
15
+ dispose: () => void;
16
+ constructor(containerID: string, framedScreen: FramedScreen, updateView: (vm: FramedContainerVM) => void);
17
+ }
18
+ export declare const defaultFramedContainerVM: FramedContainerVM;