csyjk 1.2.2 → 2.2.2

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 (322) hide show
  1. package/{dist/app.js → app.js} +0 -0
  2. package/{dist/index.html → index.html} +0 -0
  3. package/package.json +5 -40
  4. package/{dist/style.css → style.css} +0 -0
  5. package/.babelrc +0 -7
  6. package/.idea/modules.xml +0 -8
  7. package/.idea/xx.iml +0 -12
  8. package/public/gltf.js +0 -2241
  9. package/public/index.html +0 -10
  10. package/src/index.js +0 -3
  11. package/src/lib/gltf/assets/check.jpg +0 -0
  12. package/src/lib/gltf/assets/iconfont/iconfont.css +0 -358
  13. package/src/lib/gltf/assets/iconfont/iconfont.eot +0 -0
  14. package/src/lib/gltf/assets/iconfont/iconfont.js +0 -1
  15. package/src/lib/gltf/assets/iconfont/iconfont.json +0 -604
  16. package/src/lib/gltf/assets/iconfont/iconfont.svg +0 -189
  17. package/src/lib/gltf/assets/iconfont/iconfont.ttf +0 -0
  18. package/src/lib/gltf/assets/iconfont/iconfont.woff +0 -0
  19. package/src/lib/gltf/assets/iconfont/iconfont.woff2 +0 -0
  20. package/src/lib/gltf/assets/yjkkit-sdk/index.js +0 -0
  21. package/src/lib/gltf/assets/yjkkit-sdk/package.json +0 -15
  22. package/src/lib/gltf/assets/yjkkit-sdk/src/extras/ContextMenu/ContextMenu.js +0 -863
  23. package/src/lib/gltf/assets/yjkkit-sdk/src/extras/ContextMenu/index.js +0 -1
  24. package/src/lib/gltf/assets/yjkkit-sdk/src/extras/index.js +0 -1
  25. package/src/lib/gltf/assets/yjkkit-sdk/src/index.js +0 -3
  26. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AngleMeasurementsPlugin/AngleMeasurement.js +0 -462
  27. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsControl.js +0 -279
  28. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AngleMeasurementsPlugin/AngleMeasurementsPlugin.js +0 -262
  29. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AngleMeasurementsPlugin/index.js +0 -1
  30. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AnnotationsPlugin/Annotation.js +0 -362
  31. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AnnotationsPlugin/AnnotationsPlugin.js +0 -575
  32. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AnnotationsPlugin/index.js +0 -1
  33. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AxisGizmoPlugin/AxisGizmoPlugin.js +0 -333
  34. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/AxisGizmoPlugin/index.js +0 -1
  35. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/BCFViewpointsPlugin/BCFViewpointsPlugin.js +0 -777
  36. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/BCFViewpointsPlugin/index.js +0 -1
  37. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurement.js +0 -525
  38. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsControl.js +0 -242
  39. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/DistanceMeasurementsPlugin/DistanceMeasurementsPlugin.js +0 -297
  40. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/DistanceMeasurementsPlugin/index.js +0 -1
  41. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/FastNavPlugin/FastNavPlugin.js +0 -345
  42. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/FastNavPlugin/index.js +0 -1
  43. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/GLTFDefaultDataSource.js +0 -122
  44. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/GLTFLoaderPlugin.js +0 -462
  45. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/GLTFPerformanceModelLoader.js +0 -508
  46. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/GLTFSceneGraphLoader.js +0 -922
  47. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/GLTFLoaderPlugin/index.js +0 -2
  48. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/NavCubePlugin/CubeTextureCanvas.js +0 -273
  49. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/NavCubePlugin/NavCubePlugin.js +0 -687
  50. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/NavCubePlugin/index.js +0 -1
  51. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/OBJLoaderPlugin/OBJLoaderPlugin.js +0 -145
  52. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/OBJLoaderPlugin/OBJSceneGraphLoader.js +0 -777
  53. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/OBJLoaderPlugin/index.js +0 -1
  54. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/STLLoaderPlugin/STLDefaultDataSource.js +0 -33
  55. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/STLLoaderPlugin/STLLoaderPlugin.js +0 -273
  56. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/STLLoaderPlugin/STLSceneGraphLoader.js +0 -313
  57. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/STLLoaderPlugin/index.js +0 -2
  58. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SectionPlanesPlugin/Control.js +0 -1328
  59. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SectionPlanesPlugin/Overview.js +0 -249
  60. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SectionPlanesPlugin/Plane.js +0 -169
  61. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SectionPlanesPlugin/SectionPlanesPlugin.js +0 -403
  62. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SectionPlanesPlugin/index.js +0 -1
  63. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SkyboxesPlugin/SkyboxesPlugin.js +0 -134
  64. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/SkyboxesPlugin/index.js +0 -1
  65. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin/IFCStoreyPlanObjectStates.js +0 -77
  66. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin/Storey.js +0 -61
  67. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin/StoreyMap.js +0 -57
  68. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin/StoreyViewsPlugin.js +0 -822
  69. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/StoreyViewsPlugin/index.js +0 -1
  70. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/TreeViewPlugin/ModelTreeView.js +0 -888
  71. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/TreeViewPlugin/TreeViewNode.js +0 -88
  72. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/TreeViewPlugin/TreeViewPlugin.js +0 -624
  73. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/TreeViewPlugin/index.js +0 -1
  74. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/TreeViewPlugin/modelValidation.js +0 -87
  75. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/ViewCullPlugin/ViewCullPlugin.js +0 -295
  76. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/ViewCullPlugin/index.js +0 -1
  77. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/XKTDefaultDataSource.js +0 -78
  78. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/XKTLoaderPlugin.js +0 -847
  79. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/index.js +0 -2
  80. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV1.js +0 -167
  81. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV2.js +0 -228
  82. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV3.js +0 -220
  83. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV4.js +0 -279
  84. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV5.js +0 -244
  85. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV6.js +0 -301
  86. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV7.js +0 -426
  87. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/ParserV8.js +0 -479
  88. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XKTLoaderPlugin/parsers/lib/pako.js +0 -6818
  89. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/XML3DLoaderPlugin.js +0 -238
  90. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/XML3DSceneGraphLoader.js +0 -1279
  91. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/index.js +0 -1
  92. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/.jshintrc +0 -11
  93. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/deflate.js +0 -2060
  94. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/inflate.js +0 -2155
  95. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/mime-types.js +0 -1002
  96. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/pako/codecs.js +0 -64
  97. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/z-worker.js +0 -153
  98. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/zip-ext.js +0 -267
  99. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/zip-fs.js +0 -553
  100. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/zip.js +0 -991
  101. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/XML3DLoaderPlugin/zipjs/zlib-asm/codecs.js +0 -49
  102. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/index.js +0 -17
  103. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/lib/culling/ObjectCullStates.js +0 -205
  104. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/lib/html/Dot.js +0 -78
  105. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/lib/html/Label.js +0 -97
  106. package/src/lib/gltf/assets/yjkkit-sdk/src/plugins/lib/html/Wire.js +0 -95
  107. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/Plugin.js +0 -112
  108. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/Viewer.js +0 -372
  109. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/index.js +0 -3
  110. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/metadata/IFCObjectDefaultColors.js +0 -162
  111. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/metadata/IFCObjectDefaults.js +0 -39
  112. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/metadata/MetaModel.js +0 -145
  113. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/metadata/MetaObject.js +0 -215
  114. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/metadata/MetaScene.js +0 -311
  115. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/CameraControl.js +0 -1669
  116. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/cc.js +0 -0
  117. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/CameraUpdater.js +0 -312
  118. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/controllers/PanController.js +0 -112
  119. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/controllers/PickController.js +0 -193
  120. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/controllers/PivotController.js +0 -289
  121. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/cu.js +0 -0
  122. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/KeyboardAxisViewHandler.js +0 -122
  123. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/KeyboardPanRotateDollyHandler.js +0 -186
  124. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/MouseMiscHandler.js +0 -68
  125. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/MousePanRotateDollyHandler.js +0 -439
  126. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/MousePickHandler.js +0 -361
  127. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/TouchPanRotateAndDollyHandler.js +0 -258
  128. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/TouchPickHandler.js +0 -197
  129. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/CameraControl/lib/handlers/mouspan.js +0 -498
  130. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/Component.js +0 -908
  131. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/Entity.js +0 -475
  132. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/ImagePlane/ImagePlane.js +0 -570
  133. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/ImagePlane/index.js +0 -1
  134. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/PerformanceModel.js +0 -2623
  135. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/index.js +0 -1
  136. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/ENTITY_FLAGS.js +0 -21
  137. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/PerformanceMesh.js +0 -262
  138. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/PerformanceNode.js +0 -697
  139. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/RENDER_PASSES.js +0 -34
  140. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/ScratchMemory.js +0 -63
  141. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/compression.js +0 -183
  142. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesBatching/LinesBatchingBuffer.js +0 -33
  143. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesBatching/LinesBatchingLayer.js +0 -736
  144. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesBatching/LinesBatchingRenderers.js +0 -68
  145. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesBatching/renderers/LinesBatchingColorRenderer.js +0 -295
  146. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesBatching/renderers/LinesBatchingSilhouetteRenderer.js +0 -327
  147. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesInstancing/LinesInstancingLayer.js +0 -698
  148. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesInstancing/LinesInstancingRenderers.js +0 -68
  149. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesInstancing/renderers/LinesInstancingColorRenderer.js +0 -364
  150. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/linesInstancing/renderers/LinesInstancingSilhouetteRenderer.js +0 -356
  151. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/PointsBatchingBuffer.js +0 -33
  152. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/PointsBatchingLayer.js +0 -776
  153. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/PointsBatchingRenderers.js +0 -113
  154. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingColorRenderer.js +0 -340
  155. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingOcclusionRenderer.js +0 -312
  156. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingPickDepthRenderer.js +0 -343
  157. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingPickMeshRenderer.js +0 -331
  158. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingShadowRenderer.js +0 -242
  159. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsBatching/renderers/PointsBatchingSilhouetteRenderer.js +0 -348
  160. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/PointsInstancingLayer.js +0 -737
  161. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/PointsInstancingRenderers.js +0 -143
  162. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingColorRenderer.js +0 -373
  163. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingDepthRenderer.js +0 -366
  164. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingOcclusionRenderer.js +0 -370
  165. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingPickDepthRenderer.js +0 -386
  166. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingPickMeshRenderer.js +0 -376
  167. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingShadowRenderer.js +0 -293
  168. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/pointsInstancing/renderers/PointsInstancingSilhouetteRenderer.js +0 -382
  169. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/TrianglesBatchingBuffer.js +0 -37
  170. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/TrianglesBatchingLayer.js +0 -1017
  171. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/TrianglesBatchingRenderers.js +0 -246
  172. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingColorQualityRenderer.js +0 -809
  173. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingColorRenderer.js +0 -504
  174. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingDepthRenderer.js +0 -297
  175. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingEdgesColorRenderer.js +0 -300
  176. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingEdgesRenderer.js +0 -322
  177. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingNormalsRenderer.js +0 -311
  178. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingOcclusionRenderer.js +0 -291
  179. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingPickDepthRenderer.js +0 -319
  180. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingPickMeshRenderer.js +0 -305
  181. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingPickNormalsRenderer.js +0 -300
  182. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingShadowRenderer.js +0 -242
  183. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesBatching/renderers/TrianglesBatchingSilhouetteRenderer.js +0 -323
  184. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/TrianglesInstancingLayer.js +0 -969
  185. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/TrianglesInstancingRenderers.js +0 -246
  186. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingColorQualityRenderer.js +0 -859
  187. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingColorRenderer.js +0 -557
  188. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingDepthRenderer.js +0 -341
  189. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingEdgesColorRenderer.js +0 -338
  190. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingEdgesRenderer.js +0 -356
  191. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingNormalsRenderer.js +0 -354
  192. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingOcclusionRenderer.js +0 -329
  193. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingPickDepthRenderer.js +0 -358
  194. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingPickMeshRenderer.js +0 -349
  195. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingPickNormalsRenderer.js +0 -363
  196. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingShadowRenderer.js +0 -284
  197. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/PerformanceModel/lib/layers/trianglesInstancing/renderers/TrianglesInstancingSilhouetteRenderer.js +0 -354
  198. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/Camera.js +0 -880
  199. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/CameraFlightAnimation.js +0 -669
  200. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/CameraPath.js +0 -194
  201. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/CameraPathAnimation.js +0 -326
  202. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/CustomProjection.js +0 -149
  203. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/Frustum.js +0 -316
  204. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/Ortho.js +0 -286
  205. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/Perspective.js +0 -302
  206. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/camera/index.js +0 -2
  207. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/canvas/Canvas.js +0 -464
  208. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/canvas/Spinner.js +0 -323
  209. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/core.js +0 -234
  210. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/Geometry.js +0 -33
  211. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/ReadableGeometry.js +0 -689
  212. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/VBOGeometry.js +0 -327
  213. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildBoxGeometry.js +0 -238
  214. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildBoxLinesGeometry.js +0 -106
  215. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildCylinderGeometry.js +0 -271
  216. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildGridGeometry.js +0 -102
  217. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildPlaneGeometry.js +0 -168
  218. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildSphereGeometry.js +0 -161
  219. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildTorusGeometry.js +0 -172
  220. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/buildVectorTextGeometry.js +0 -1721
  221. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/builders/index.js +0 -8
  222. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/index.js +0 -4
  223. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/loaders/index.js +0 -2
  224. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/loaders/load3DSGeometry.js +0 -103
  225. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/geometry/loaders/loadOBJGeometry.js +0 -130
  226. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/index.js +0 -18
  227. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/input/Input.js +0 -1475
  228. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/libs/canvas2image.js +0 -218
  229. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/libs/k3d.js +0 -1032
  230. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/AmbientLight.js +0 -175
  231. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/CubeTexture.js +0 -156
  232. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/DirLight.js +0 -314
  233. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/Light.js +0 -29
  234. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/LightMap.js +0 -77
  235. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/PointLight.js +0 -395
  236. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/ReflectionMap.js +0 -79
  237. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/Shadow.js +0 -138
  238. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/lights/index.js +0 -5
  239. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/marker/Marker.js +0 -382
  240. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/marker/index.js +0 -1
  241. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/EdgeMaterial.js +0 -359
  242. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/EmphasisMaterial.js +0 -577
  243. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/Fresnel.js +0 -222
  244. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/LambertMaterial.js +0 -378
  245. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/LinesMaterial.js +0 -169
  246. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/Material.js +0 -39
  247. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/MetallicMaterial.js +0 -820
  248. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/PhongMaterial.js +0 -860
  249. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/PointsMaterial.js +0 -320
  250. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/SpecularMaterial.js +0 -807
  251. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/Texture.js +0 -522
  252. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/materials/index.js +0 -8
  253. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/Frustum.js +0 -118
  254. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/buildEdgeIndices.js +0 -162
  255. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/geometryCompressionUtils.js +0 -353
  256. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/index.js +0 -1
  257. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/math.js +0 -5302
  258. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/math/rtcCoords.js +0 -132
  259. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mementos/CameraMemento.js +0 -200
  260. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mementos/ModelMemento.js +0 -272
  261. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mementos/ObjectsMemento.js +0 -259
  262. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mementos/index.js +0 -3
  263. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/Mesh.js +0 -2165
  264. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/draw/DrawRenderer.js +0 -978
  265. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/draw/DrawShaderSource.js +0 -1566
  266. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/emphasis/EmphasisEdgesRenderer.js +0 -249
  267. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/emphasis/EmphasisEdgesShaderSource.js +0 -163
  268. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/emphasis/EmphasisFillRenderer.js +0 -276
  269. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/emphasis/EmphasisFillShaderSource.js +0 -269
  270. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/index.js +0 -1
  271. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/occlusion/OcclusionRenderer.js +0 -207
  272. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/occlusion/OcclusionShaderSource.js +0 -156
  273. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/pick/PickMeshRenderer.js +0 -210
  274. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/pick/PickMeshShaderSource.js +0 -146
  275. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/pick/PickTriangleRenderer.js +0 -186
  276. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/pick/PickTriangleShaderSource.js +0 -120
  277. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/shadow/ShadowRenderer.js +0 -214
  278. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/mesh/shadow/ShadowShaderSource.js +0 -96
  279. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/metriqs/Metriqs.js +0 -259
  280. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/nodes/Node.js +0 -1356
  281. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/nodes/index.js +0 -1
  282. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/CubicBezierCurve.js +0 -194
  283. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/Curve.js +0 -183
  284. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/Path.js +0 -239
  285. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/QuadraticBezierCurve.js +0 -161
  286. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/SplineCurve.js +0 -133
  287. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/paths/index.js +0 -5
  288. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/postfx/SAO.js +0 -547
  289. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/scene/Scene.js +0 -2481
  290. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/sectionPlane/SectionPlane.js +0 -194
  291. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/sectionPlane/index.js +0 -1
  292. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/skybox/Skybox.js +0 -119
  293. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/skybox/index.js +0 -1
  294. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/stats.js +0 -45
  295. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/utils/Map.js +0 -45
  296. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/utils/Queue.js +0 -56
  297. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/utils/index.js +0 -2
  298. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/utils.js +0 -452
  299. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/viewport/Viewport.js +0 -212
  300. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/ArrayBuf.js +0 -121
  301. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Attribute.js +0 -23
  302. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Drawable.js +0 -270
  303. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/FrameContext.js +0 -259
  304. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/PickResult.js +0 -317
  305. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Pickable.js +0 -69
  306. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Program.js +0 -179
  307. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/RenderBuffer.js +0 -315
  308. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/RenderFlags.js +0 -203
  309. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/RenderState.js +0 -40
  310. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Renderer.js +0 -1300
  311. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Sampler.js +0 -18
  312. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Shader.js +0 -49
  313. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/Texture2D.js +0 -217
  314. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/occlusion/OcclusionLayer.js +0 -214
  315. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/occlusion/OcclusionTester.js +0 -432
  316. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/sao/SAODepthLimitedBlurRenderer.js +0 -326
  317. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/sao/SAOOcclusionRenderer.js +0 -375
  318. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webgl/webglEnums.js +0 -61
  319. package/src/lib/gltf/assets/yjkkit-sdk/src/viewer/scene/webglInfo.js +0 -48
  320. package/src/lib/gltf/gltf.css +0 -392
  321. package/src/lib/gltf/gltf.js +0 -2241
  322. package/webpack.config.js +0 -70
@@ -1,1669 +0,0 @@
1
- import {Component} from '../Component.js';
2
-
3
- import {CameraFlightAnimation} from './../camera/CameraFlightAnimation.js';
4
- import {PanController} from "./lib/controllers/PanController.js";
5
- import {PivotController} from "./lib/controllers/PivotController.js";
6
- import {PickController} from "./lib/controllers/PickController.js";
7
- import {MousePanRotateDollyHandler} from "./lib/handlers/MousePanRotateDollyHandler.js";
8
- import {KeyboardAxisViewHandler} from "./lib/handlers/KeyboardAxisViewHandler.js";
9
- import {MousePickHandler} from "./lib/handlers/MousePickHandler.js";
10
- import {KeyboardPanRotateDollyHandler} from "./lib/handlers/KeyboardPanRotateDollyHandler.js";
11
- import {CameraUpdater} from "./lib/CameraUpdater.js";
12
- import {MouseMiscHandler} from "./lib/handlers/MouseMiscHandler.js";
13
- import {TouchPanRotateAndDollyHandler} from "./lib/handlers/TouchPanRotateAndDollyHandler.js";
14
- import {utils} from "../utils.js";
15
- import {math} from "../math/math.js";
16
- import {TouchPickHandler} from "./lib/handlers/TouchPickHandler.js";
17
-
18
- /**
19
- * @desc Controls the {@link Camera} with user input, and fires events when the user interacts with pickable {@link Entity}s.
20
- *
21
- * # Contents
22
- *
23
- * * [Overview](#overview)
24
- * * [Examples](#examples)
25
- * * [Orbit Mode](#orbit-mode)
26
- * + [Following the Pointer in Orbit Mode](#--following-the-pointer-in-orbit-mode--)
27
- * + [Showing the Pivot Position](#--showing-the-pivot-position--)
28
- * + [Axis-Aligned Views in Orbit Mode](#--axis-aligned-views-in-orbit-mode--)
29
- * + [View-Fitting Entitys in Orbit Mode](#--view-fitting-entitys-in-orbit-mode--)
30
- * * [First-Person Mode](#first-person-mode)
31
- * + [Following the Pointer in First-Person Mode](#--following-the-pointer-in-first-person-mode--)
32
- * + [Constraining Vertical Position in First-Person Mode](#--constraining-vertical-position-in-first-person-mode--)
33
- * + [Axis-Aligned Views in First-Person Mode](#--axis-aligned-views-in-first-person-mode--)
34
- * + [View-Fitting Entitys in First-Person Mode](#--view-fitting-entitys-in-first-person-mode--)
35
- * * [Plan-View Mode](#plan-view-mode)
36
- * + [Following the Pointer in Plan-View Mode](#--following-the-pointer-in-plan-view-mode--)
37
- * + [Axis-Aligned Views in Plan-View Mode](#--axis-aligned-views-in-plan-view-mode--)
38
- * * [CameraControl Events](#cameracontrol-events)
39
- * + ["hover"](#---hover---)
40
- * + ["hoverOff"](#---hoveroff---)
41
- * + ["hoverEnter"](#---hoverenter---)
42
- * + ["hoverOut"](#---hoverout---)
43
- * + ["picked"](#---picked---)
44
- * + ["pickedSurface"](#---pickedsurface---)
45
- * + ["pickedNothing"](#---pickednothing---)
46
- * + ["doublePicked"](#---doublepicked---)
47
- * + ["doublePickedSurface"](#---doublepickedsurface---)
48
- * + ["doublePickedNothing"](#---doublepickednothing---)
49
- * + ["rightClick"](#---rightclick---)
50
- * * [Custom Keyboard Mappings](#custom-keyboard-mappings)
51
- *
52
- * <br><br>
53
- *
54
- * # Overview
55
- *
56
- * * Each {@link Viewer} has a ````CameraControl````, located at {@link Viewer#cameraControl}.
57
- * * {@link CameraControl#navMode} selects the navigation mode:
58
- * * ````"orbit"```` rotates the {@link Camera} position about the target.
59
- * * ````"firstPerson"```` rotates the World about the Camera position.
60
- * * ````"planView"```` never rotates, but still allows to pan and dolly, typically for an axis-aligned view.
61
- * * {@link CameraControl#followPointer} makes the Camera follow the mouse or touch pointer.
62
- * * {@link CameraControl#constrainVertical} locks the Camera to its current height when in first-person mode.
63
- * * ````CameraControl```` fires pick events when we hover, click or tap on an {@link Entity}.
64
- * <br><br>
65
- *
66
- * # Examples
67
- *
68
- * * [Orbit Navigation - Duplex Model](https://yjkkit.github.io/yjkkit-sdk/examples/#CameraControl_orbit_Duplex)
69
- * * [Orbit Navigation - Holter Tower Model](https://yjkkit.github.io/yjkkit-sdk/examples/#CameraControl_orbit_HolterTower)
70
- * * [First-Person Navigation - Duplex Model](https://yjkkit.github.io/yjkkit-sdk/examples/#CameraControl_firstPerson_Duplex)
71
- * * [First-Person Navigation - Holter Tower Model](https://yjkkit.github.io/yjkkit-sdk/examples/#CameraControl_firstPerson_HolterTower)
72
- * * [Plan-view Navigation - Schependomlaan Model](https://yjkkit.github.io/yjkkit-sdk/examples/#CameraControl_planView_Schependomlaan)
73
- * * [Custom Keyboard Mapping](https://yjkkit.github.io/yjkkit-sdk/examples/#CameraControl_keyMap)
74
- * <br><br>
75
- *
76
- * # Orbit Mode
77
- *
78
- * In orbit mode, ````CameraControl```` orbits the {@link Camera} about the target.
79
- *
80
- * To enable orbit mode:
81
- *
82
- * ````javascript
83
- * const cameraControl = myViewer.cameraControl;
84
- * cameraControl.navMode = "orbit";
85
- * ````
86
- *
87
- * Then orbit by:
88
- *
89
- * * left-dragging the mouse,
90
- * * tap-dragging the touch pad, and
91
- * * pressing arrow keys, or ````Q```` and ````E```` on a QWERTY keyboard, or ````A```` and ````E```` on an AZERTY keyboard.
92
- * <br><br>
93
- *
94
- * Dolly forwards and backwards by:
95
- *
96
- * * spinning the mouse wheel,
97
- * * pinching on the touch pad, and
98
- * * pressing the ````+```` and ````-```` keys, or ````W```` and ````S```` on a QWERTY keyboard, or ````Z```` and ````S```` for AZERTY.
99
- * <br><br>
100
- *
101
- * Pan horizontally and vertically by:
102
- *
103
- * * right-dragging the mouse,
104
- * * left-dragging the mouse with the SHIFT key down,
105
- * * tap-dragging the touch pad with SHIFT down,
106
- * * pressing the ````A````, ````D````, ````Z```` and ````X```` keys on a QWERTY keyboard, and
107
- * * pressing the ````Q````, ````D````, ````W```` and ````X```` keys on an AZERTY keyboard,
108
- * <br><br>
109
- *
110
- * ## Following the Pointer in Orbit Mode
111
- *
112
- * When {@link CameraControl#followPointer} is ````true````in orbiting mode, the mouse or touch pointer will dynamically
113
- * indicate the target that the {@link Camera} will orbit, as well as dolly to and from.
114
- *
115
- * Lets ensure that we're in orbit mode, then enable the {@link Camera} to follow the pointer:
116
- *
117
- * ````javascript
118
- * cameraControl.navMode = "orbit";
119
- * cameraControl.followPointer = true;
120
- * ````
121
- *
122
- * ## Smart Pivoting
123
- *
124
- * TODO
125
- *
126
- * ## Showing the Pivot Position
127
- *
128
- * We can configure {@link CameraControl#pivotElement} with an HTML element to indicate the current
129
- * pivot position. The indicator will appear momentarily each time we move the {@link Camera} while in orbit mode with
130
- * {@link CameraControl#followPointer} set ````true````.
131
- *
132
- * First we'll define some CSS to style our pivot indicator as a black dot with a white border:
133
- *
134
- * ````css
135
- * .camera-pivot-marker {
136
- * color: #ffffff;
137
- * position: absolute;
138
- * width: 25px;
139
- * height: 25px;
140
- * border-radius: 15px;
141
- * border: 2px solid #ebebeb;
142
- * background: black;
143
- * visibility: hidden;
144
- * box-shadow: 5px 5px 15px 1px #000000;
145
- * z-index: 10000;
146
- * pointer-events: none;
147
- * }
148
- * ````
149
- *
150
- * Then we'll attach our pivot indicator's HTML element to the ````CameraControl````:
151
- *
152
- * ````javascript
153
- * const pivotElement = document.createRange().createContextualFragment("<div class='camera-pivot-marker'></div>").firstChild;
154
- *
155
- * document.body.appendChild(pivotElement);
156
- *
157
- * cameraControl.pivotElement = pivotElement;
158
- * ````
159
- *
160
- * ## Axis-Aligned Views in Orbit Mode
161
- *
162
- * In orbit mode, we can use keys 1-6 to position the {@link Camera} to look at the center of the {@link Scene} from along each of the
163
- * six World-space axis. Pressing one of these keys will fly the {@link Camera} to the corresponding axis-aligned view.
164
- *
165
- * ## View-Fitting Entitys in Orbit Mode
166
- *
167
- * When {@link CameraControl#doublePickFlyTo} is ````true````, we can left-double-click or
168
- * double-tap (ie. "double-pick") an {@link Entity} to fit it to view. This will cause the {@link Camera}
169
- * to fly to that Entity. Our target then becomes the center of that Entity. If we are currently pivoting,
170
- * then our pivot position is then also set to the Entity center.
171
- *
172
- * Disable that behaviour by setting {@link CameraControl#doublePickFlyTo} ````false````.
173
- *
174
- * # First-Person Mode
175
- *
176
- * In first-person mode, ````CameraControl```` rotates the World about the {@link Camera} position.
177
- *
178
- * To enable first-person mode:
179
- *
180
- * ````javascript
181
- * cameraControl.navMode = "firstPerson";
182
- * ````
183
- *
184
- * Then rotate by:
185
- *
186
- * * left-dragging the mouse,
187
- * * tap-dragging the touch pad,
188
- * * pressing arrow keys, or ````Q```` and ````E```` on a QWERTY keyboard, or ````A```` and ````E```` on an AZERTY keyboard.
189
- * <br><br>
190
- *
191
- * Dolly forwards and backwards by:
192
- *
193
- * * spinning the mouse wheel,
194
- * * pinching on the touch pad, and
195
- * * pressing the ````+```` and ````-```` keys, or ````W```` and ````S```` on a QWERTY keyboard, or ````Z```` and ````S```` for AZERTY.
196
- * <br><br>
197
- *
198
- * Pan left, right, up and down by:
199
- *
200
- * * left-dragging or right-dragging the mouse, and
201
- * * tap-dragging the touch pad with SHIFT down.
202
- *
203
- * Pan forwards, backwards, left, right, up and down by pressing the ````WSADZX```` keys on a QWERTY keyboard,
204
- * or ````WSQDWX```` keys on an AZERTY keyboard.
205
- * <br><br>
206
- *
207
- * ## Following the Pointer in First-Person Mode
208
- *
209
- * When {@link CameraControl#followPointer} is ````true```` in first-person mode, the mouse or touch pointer will dynamically
210
- * indicate the target to which the {@link Camera} will dolly to and from. In first-person mode, however, the World will always rotate
211
- * about the {@link Camera} position.
212
- *
213
- * Lets ensure that we're in first-person mode, then enable the {@link Camera} to follow the pointer:
214
- *
215
- * ````javascript
216
- * cameraControl.navMode = "firstPerson";
217
- * cameraControl.followPointer = true;
218
- * ````
219
- *
220
- * When the pointer is over empty space, the target will remain the last object that the pointer was over.
221
- *
222
- * ## Constraining Vertical Position in First-Person Mode
223
- *
224
- * In first-person mode, we can lock the {@link Camera} to its current position on the vertical World axis, which is useful for walk-through navigation:
225
- *
226
- * ````javascript
227
- * cameraControl.constrainVertical = true;
228
- * ````
229
- *
230
- * ## Axis-Aligned Views in First-Person Mode
231
- *
232
- * In first-person mode we can use keys 1-6 to position the {@link Camera} to look at the center of
233
- * the {@link Scene} from along each of the six World-space axis. Pressing one of these keys will fly the {@link Camera} to the
234
- * corresponding axis-aligned view.
235
- *
236
- * ## View-Fitting Entitys in First-Person Mode
237
- *
238
- * As in orbit mode, when in first-person mode and {@link CameraControl#doublePickFlyTo} is ````true````, we can double-click
239
- * or double-tap an {@link Entity} (ie. "double-picking") to fit it in view. This will cause the {@link Camera} to fly to
240
- * that Entity. Our target then becomes the center of that Entity.
241
- *
242
- * Disable that behaviour by setting {@link CameraControl#doublePickFlyTo} ````false````.
243
- *
244
- * # Plan-View Mode
245
- *
246
- * In plan-view mode, ````CameraControl```` pans and rotates the {@link Camera}, without rotating it.
247
- *
248
- * To enable plan-view mode:
249
- *
250
- * ````javascript
251
- * cameraControl.navMode = "planView";
252
- * ````
253
- *
254
- * Dolly forwards and backwards by:
255
- *
256
- * * spinning the mouse wheel,
257
- * * pinching on the touch pad, and
258
- * * pressing the ````+```` and ````-```` keys.
259
- *
260
- * <br>
261
- * Pan left, right, up and down by:
262
- *
263
- * * left-dragging or right-dragging the mouse, and
264
- * * tap-dragging the touch pad with SHIFT down.
265
- *
266
- * Pan forwards, backwards, left, right, up and down by pressing the ````WSADZX```` keys on a QWERTY keyboard,
267
- * or ````WSQDWX```` keys on an AZERTY keyboard.
268
- * <br><br>
269
- *
270
- * ## Following the Pointer in Plan-View Mode
271
- *
272
- * When {@link CameraControl#followPointer} is ````true```` in plan-view mode, the mouse or touch pointer will dynamically
273
- * indicate the target to which the {@link Camera} will dolly to and from. In plan-view mode, however, the {@link Camera} cannot rotate.
274
- *
275
- * Lets ensure that we're in plan-view mode, then enable the {@link Camera} to follow the pointer:
276
- *
277
- * ````javascript
278
- * cameraControl.navMode = "planView";
279
- * cameraControl.followPointer = true; // Default
280
- * ````
281
- *
282
- * When the pointer is over empty space, the target will remain the last object that the pointer was over.
283
- *
284
- * ## Axis-Aligned Views in Plan-View Mode
285
- *
286
- * As in orbit and first-person modes, in plan-view mode we can use keys 1-6 to position the {@link Camera} to look at the center of
287
- * the {@link Scene} from along each of the six World-space axis. Pressing one of these keys will fly the {@link Camera} to the
288
- * corresponding axis-aligned view.
289
- *
290
- * # CameraControl Events
291
- *
292
- * ````CameraControl```` fires events as we interact with {@link Entity}s using mouse or touch input.
293
- *
294
- * The following examples demonstrate how to subscribe to those events.
295
- *
296
- * The first example shows how to save a handle to a subscription, which we can later use to unsubscribe.
297
- *
298
- * ## "hover"
299
- *
300
- * Event fired when the pointer moves while hovering over an Entity.
301
- *
302
- * ````javascript
303
- * const onHover = cameraControl.on("hover", (e) => {
304
- * const entity = e.entity; // Entity
305
- * const canvasPos = e.canvasPos; // 2D canvas position
306
- * });
307
- * ````
308
- *
309
- * To unsubscribe from the event:
310
- *
311
- * ````javascript
312
- * cameraControl.off(onHover);
313
- * ````
314
- *
315
- * ## "hoverOff"
316
- *
317
- * Event fired when the pointer moves while hovering over empty space.
318
- *
319
- * ````javascript
320
- * cameraControl.on("hoverOff", (e) => {
321
- * const canvasPos = e.canvasPos;
322
- * });
323
- * ````
324
- *
325
- * ## "hoverEnter"
326
- *
327
- * Event fired when the pointer moves onto an Entity.
328
- *
329
- * ````javascript
330
- * cameraControl.on("hoverEnter", (e) => {
331
- * const entity = e.entity;
332
- * const canvasPos = e.canvasPos;
333
- * });
334
- * ````
335
- *
336
- * ## "hoverOut"
337
- *
338
- * Event fired when the pointer moves off an Entity.
339
- *
340
- * ````javascript
341
- * cameraControl.on("hoverOut", (e) => {
342
- * const entity = e.entity;
343
- * const canvasPos = e.canvasPos;
344
- * });
345
- * ````
346
- *
347
- * ## "picked"
348
- *
349
- * Event fired when we left-click or tap on an Entity.
350
- *
351
- * ````javascript
352
- * cameraControl.on("picked", (e) => {
353
- * const entity = e.entity;
354
- * const canvasPos = e.canvasPos;
355
- * });
356
- * ````
357
- *
358
- * ## "pickedSurface"
359
- *
360
- * Event fired when we left-click or tap on the surface of an Entity.
361
- *
362
- * ````javascript
363
- * cameraControl.on("picked", (e) => {
364
- * const entity = e.entity;
365
- * const canvasPos = e.canvasPos;
366
- * const worldPos = e.worldPos; // 3D World-space position
367
- * const viewPos = e.viewPos; // 3D View-space position
368
- * const worldNormal = e.worldNormal; // 3D World-space normal vector
369
- * });
370
- * ````
371
- *
372
- * ## "pickedNothing"
373
- *
374
- * Event fired when we left-click or tap on empty space.
375
- *
376
- * ````javascript
377
- * cameraControl.on("pickedNothing", (e) => {
378
- * const canvasPos = e.canvasPos;
379
- * });
380
- * ````
381
- *
382
- * ## "doublePicked"
383
- *
384
- * Event fired wwhen we left-double-click or double-tap on an Entity.
385
- *
386
- * ````javascript
387
- * cameraControl.on("doublePicked", (e) => {
388
- * const entity = e.entity;
389
- * const canvasPos = e.canvasPos;
390
- * });
391
- * ````
392
- *
393
- * ## "doublePickedSurface"
394
- *
395
- * Event fired when we left-double-click or double-tap on the surface of an Entity.
396
- *
397
- * ````javascript
398
- * cameraControl.on("doublePickedSurface", (e) => {
399
- * const entity = e.entity;
400
- * const canvasPos = e.canvasPos;
401
- * const worldPos = e.worldPos;
402
- * const viewPos = e.viewPos;
403
- * const worldNormal = e.worldNormal;
404
- * });
405
- * ````
406
- *
407
- * ## "doublePickedNothing"
408
- *
409
- * Event fired when we left-double-click or double-tap on empty space.
410
- *
411
- * ````javascript
412
- * cameraControl.on("doublePickedNothing", (e) => {
413
- * const canvasPos = e.canvasPos;
414
- * });
415
- * ````
416
- *
417
- * ## "rightClick"
418
- *
419
- * Event fired when we right-click on the canvas.
420
- *
421
- * ````javascript
422
- * cameraControl.on("rightClick", (e) => {
423
- * const event = e.event; // Mouse event
424
- * const canvasPos = e.canvasPos;
425
- * });
426
- * ````
427
- *
428
- * ## Custom Keyboard Mappings
429
- *
430
- * We can customize````CameraControl```` key bindings as shown below.
431
- *
432
- * In this example, we'll just set the default bindings for a QWERTY keyboard.
433
- *
434
- * ````javascript
435
- * const input = myViewer.scene.input;
436
- *
437
- * cameraControl.navMode = "orbit";
438
- * cameraControl.followPointer = true;
439
- *
440
- * const keyMap = {};
441
- *
442
- * keyMap[cameraControl.PAN_LEFT] = [input.KEY_A];
443
- * keyMap[cameraControl.PAN_RIGHT] = [input.KEY_D];
444
- * keyMap[cameraControl.PAN_UP] = [input.KEY_Z];
445
- * keyMap[cameraControl.PAN_DOWN] = [input.KEY_X];
446
- * keyMap[cameraControl.DOLLY_FORWARDS] = [input.KEY_W, input.KEY_ADD];
447
- * keyMap[cameraControl.DOLLY_BACKWARDS] = [input.KEY_S, input.KEY_SUBTRACT];
448
- * keyMap[cameraControl.ROTATE_X_POS] = [input.KEY_DOWN_ARROW];
449
- * keyMap[cameraControl.ROTATE_X_NEG] = [input.KEY_UP_ARROW];
450
- * keyMap[cameraControl.ROTATE_Y_POS] = [input.KEY_LEFT_ARROW];
451
- * keyMap[cameraControl.ROTATE_Y_NEG] = [input.KEY_RIGHT_ARROW];
452
- * keyMap[cameraControl.AXIS_VIEW_RIGHT] = [input.KEY_NUM_1];
453
- * keyMap[cameraControl.AXIS_VIEW_BACK] = [input.KEY_NUM_2];
454
- * keyMap[cameraControl.AXIS_VIEW_LEFT] = [input.KEY_NUM_3];
455
- * keyMap[cameraControl.AXIS_VIEW_FRONT] = [input.KEY_NUM_4];
456
- * keyMap[cameraControl.AXIS_VIEW_TOP] = [input.KEY_NUM_5];
457
- * keyMap[cameraControl.AXIS_VIEW_BOTTOM] = [input.KEY_NUM_6];
458
- *
459
- * cameraControl.keyMap = keyMap;
460
- * ````
461
- *
462
- * We can also just configure default bindings for a specified keyboard layout, like this:
463
- *
464
- * ````javascript
465
- * cameraControl.keyMap = "qwerty";
466
- * ````
467
- *
468
- * Then, ````CameraControl```` will internally set {@link CameraControl#keyMap} to the default key map for the QWERTY
469
- * layout (which is the same set of mappings we set in the previous example). In other words, if we subsequently
470
- * read {@link CameraControl#keyMap}, it will now be a key map, instead of the "qwerty" string value we set it to.
471
- *
472
- * Supported layouts are, so far:
473
- *
474
- * * ````"qwerty"````
475
- * * ````"azerty"````
476
- */
477
- class CameraControl extends Component {
478
-
479
- /**
480
- * @private
481
- * @constructor
482
- */
483
- constructor(owner, cfg = {}) {
484
-
485
- super(owner, cfg);
486
-
487
- /**
488
- * Identifies the XX action.
489
- * @final
490
- * @type {Number}
491
- */
492
- this.PAN_LEFT = 0;
493
-
494
- /**
495
- * Identifies the XX action.
496
- * @final
497
- * @type {Number}
498
- */
499
- this.PAN_RIGHT = 1;
500
-
501
- /**
502
- * Identifies the XX action.
503
- * @final
504
- * @type {Number}
505
- */
506
- this.PAN_UP = 2;
507
-
508
- /**
509
- * Identifies the XX action.
510
- * @final
511
- * @type {Number}
512
- */
513
- this.PAN_DOWN = 3;
514
-
515
- /**
516
- * Identifies the XX action.
517
- * @final
518
- * @type {Number}
519
- */
520
- this.PAN_FORWARDS = 4;
521
-
522
- /**
523
- * Identifies the XX action.
524
- * @final
525
- * @type {Number}
526
- */
527
- this.PAN_BACKWARDS = 5;
528
-
529
- /**
530
- * Identifies the XX action.
531
- * @final
532
- * @type {Number}
533
- */
534
- this.ROTATE_X_POS = 6;
535
-
536
- /**
537
- * Identifies the XX action.
538
- * @final
539
- * @type {Number}
540
- */
541
- this.ROTATE_X_NEG = 7;
542
-
543
- /**
544
- * Identifies the XX action.
545
- * @final
546
- * @type {Number}
547
- */
548
- this.ROTATE_Y_POS = 8;
549
-
550
- /**
551
- * Identifies the XX action.
552
- * @final
553
- * @type {Number}
554
- */
555
- this.ROTATE_Y_NEG = 9;
556
-
557
- /**
558
- * Identifies the XX action.
559
- * @final
560
- * @type {Number}
561
- */
562
- this.DOLLY_FORWARDS = 10;
563
-
564
- /**
565
- * Identifies the XX action.
566
- * @final
567
- * @type {Number}
568
- */
569
- this.DOLLY_BACKWARDS = 11;
570
-
571
- /**
572
- * Identifies the XX action.
573
- * @final
574
- * @type {Number}
575
- */
576
- this.AXIS_VIEW_RIGHT = 12;
577
-
578
- /**
579
- * Identifies the XX action.
580
- * @final
581
- * @type {Number}
582
- */
583
- this.AXIS_VIEW_BACK = 13;
584
-
585
- /**
586
- * Identifies the XX action.
587
- * @final
588
- * @type {Number}
589
- */
590
- this.AXIS_VIEW_LEFT = 14;
591
-
592
- /**
593
- * Identifies the XX action.
594
- * @final
595
- * @type {Number}
596
- */
597
- this.AXIS_VIEW_FRONT = 15;
598
-
599
- /**
600
- * Identifies the XX action.
601
- * @final
602
- * @type {Number}
603
- */
604
- this.AXIS_VIEW_TOP = 16;
605
-
606
- /**
607
- * Identifies the XX action.
608
- * @final
609
- * @type {Number}
610
- */
611
- this.AXIS_VIEW_BOTTOM = 17;
612
-
613
- this._keyMap = {}; // Maps key codes to the above actions
614
-
615
- this.scene.canvas.canvas.oncontextmenu = (e) => {
616
- e.preventDefault();
617
- };
618
-
619
- // User-settable CameraControl configurations
620
-
621
- this._configs = {
622
-
623
- // Private
624
-
625
- tapInterval: 150, // Millisecs
626
- doubleTapInterval: 325, // Millisecs
627
- tapDistanceThreshold: 4, // Pixels
628
-
629
- // General
630
-
631
- active: true,
632
- keyboardLayout: "qwerty",
633
- navMode: "orbit",
634
- planView: false,
635
- firstPerson: false,
636
- followPointer: true,
637
- doublePickFlyTo: true,
638
- panRightClick: true,
639
- showPivot: false,
640
- pointerEnabled: true,
641
- constrainVertical: false,
642
- smartPivot: false,
643
-
644
- // Rotation
645
-
646
- dragRotationRate: 360.0,
647
- keyboardRotationRate: 90.0,
648
- rotationInertia: 0.0,
649
-
650
- // Panning
651
-
652
- keyboardPanRate: 1.0,
653
- touchPanRate: 1.0,
654
- panInertia: 0.5,
655
-
656
- // Dollying
657
-
658
- keyboardDollyRate: 10,
659
- mouseWheelDollyRate: 100,
660
- touchDollyRate: 0.2,
661
- dollyInertia: 0,
662
- dollyProximityThreshold: 30.0,
663
- dollyMinSpeed: 0.04,
664
- yjkLeft: 1
665
- };
666
-
667
- // Current runtime state of the CameraControl
668
-
669
- this._states = {
670
- pointerCanvasPos: math.vec2(),
671
- mouseover: false,
672
- followPointerDirty: true,
673
- mouseDownClientX: 0,
674
- mouseDownClientY: 0,
675
- mouseDownCursorX: 0,
676
- mouseDownCursorY: 0,
677
- touchStartTime: null,
678
- activeTouches: [],
679
- tapStartPos: math.vec2(),
680
- tapStartTime: -1,
681
- lastTapTime: -1
682
- };
683
-
684
- // Updates for CameraUpdater to process on next Scene "tick" event
685
-
686
- this._updates = {
687
- rotateDeltaX: 0,
688
- rotateDeltaY: 0,
689
- panDeltaX: 0,
690
- panDeltaY: 0,
691
- panDeltaZ: 0,
692
- dollyDelta: 0
693
- };
694
-
695
- // Controllers to assist input event handlers with controlling the Camera
696
-
697
- const scene = this.scene;
698
-
699
- this._controllers = {
700
- cameraControl: this,
701
- pickController: new PickController(this, this._configs),
702
- pivotController: new PivotController(scene, this._configs),
703
- panController: new PanController(scene),
704
- cameraFlight: new CameraFlightAnimation(this, {
705
- duration: 0.5
706
- })
707
- };
708
-
709
- // Input event handlers
710
-
711
- this._handlers = [
712
- new MouseMiscHandler(this.scene, this._controllers, this._configs, this._states, this._updates),
713
- new TouchPanRotateAndDollyHandler(this.scene, this._controllers, this._configs, this._states, this._updates),
714
- new MousePanRotateDollyHandler(this.scene, this._controllers, this._configs, this._states, this._updates),
715
- new KeyboardAxisViewHandler(this.scene, this._controllers, this._configs, this._states, this._updates),
716
- new MousePickHandler(this.scene, this._controllers, this._configs, this._states, this._updates),
717
- new TouchPickHandler(this.scene, this._controllers, this._configs, this._states, this._updates),
718
- new KeyboardPanRotateDollyHandler(this.scene, this._controllers, this._configs, this._states, this._updates)
719
- ];
720
-
721
- // Applies scheduled updates to the Camera on each Scene "tick" event
722
-
723
- this._cameraUpdater = new CameraUpdater(this.scene, this._controllers, this._configs, this._states, this._updates);
724
-
725
- // Set initial user configurations
726
-
727
- this.navMode = cfg.navMode;
728
- if (cfg.planView) {
729
- this.planView = cfg.planView;
730
- }
731
- this.constrainVertical = cfg.constrainVertical;
732
- if (cfg.keyboardLayout) {
733
- this.keyboardLayout = cfg.keyboardLayout; // Deprecated
734
- } else {
735
- this.keyMap = cfg.keyMap;
736
- }
737
- this.doublePickFlyTo = cfg.doublePickFlyTo;
738
- this.panRightClick = cfg.panRightClick;
739
- this.active = cfg.active;
740
- this.followPointer = cfg.followPointer;
741
- this.rotationInertia = cfg.rotationInertia;
742
- this.keyboardPanRate = cfg.keyboardPanRate;
743
- this.touchPanRate = cfg.touchPanRate;
744
- this.keyboardRotationRate = cfg.keyboardRotationRate;
745
- this.dragRotationRate = cfg.dragRotationRate;
746
- this.touchDollyRate = cfg.touchDollyRate;
747
- this.dollyInertia = cfg.dollyInertia;
748
- this.dollyProximityThreshold = cfg.dollyProximityThreshold;
749
- this.dollyMinSpeed = cfg.dollyMinSpeed;
750
- this.panInertia = cfg.panInertia;
751
- this.pointerEnabled = true;
752
- this.keyboardDollyRate = cfg.keyboardDollyRate;
753
- this.mouseWheelDollyRate = cfg.mouseWheelDollyRate;
754
- }
755
-
756
- /**
757
- * Sets custom mappings of keys to ````CameraControl```` actions.
758
- *
759
- * See class docs for usage.
760
- *
761
- * @param {{Number:Number}|String} value Either a set of new key mappings, or a string to select a keyboard layout,
762
- * which causes ````CameraControl```` to use the default key mappings for that layout.
763
- */
764
- set keyMap(value) {
765
- value = value || "qwerty";
766
- if (utils.isString(value)) {
767
- const input = this.scene.input;
768
- const keyMap = {};
769
-
770
- switch (value) {
771
-
772
- default:
773
- this.error("Unsupported value for 'keyMap': " + value + " defaulting to 'qwerty'");
774
- // Intentional fall-through to "qwerty"
775
- case "qwerty":
776
- keyMap[this.PAN_LEFT] = [input.KEY_A];
777
- keyMap[this.PAN_RIGHT] = [input.KEY_D];
778
- keyMap[this.PAN_UP] = [input.KEY_Z];
779
- keyMap[this.PAN_DOWN] = [input.KEY_X];
780
- keyMap[this.PAN_BACKWARDS] = [];
781
- keyMap[this.PAN_FORWARDS] = [];
782
- keyMap[this.DOLLY_FORWARDS] = [input.KEY_W, input.KEY_ADD];
783
- keyMap[this.DOLLY_BACKWARDS] = [input.KEY_S, input.KEY_SUBTRACT];
784
- keyMap[this.ROTATE_X_POS] = [input.KEY_DOWN_ARROW];
785
- keyMap[this.ROTATE_X_NEG] = [input.KEY_UP_ARROW];
786
- keyMap[this.ROTATE_Y_POS] = [input.KEY_Q, input.KEY_LEFT_ARROW];
787
- keyMap[this.ROTATE_Y_NEG] = [input.KEY_E, input.KEY_RIGHT_ARROW];
788
- keyMap[this.AXIS_VIEW_RIGHT] = [input.KEY_NUM_1];
789
- keyMap[this.AXIS_VIEW_BACK] = [input.KEY_NUM_2];
790
- keyMap[this.AXIS_VIEW_LEFT] = [input.KEY_NUM_3];
791
- keyMap[this.AXIS_VIEW_FRONT] = [input.KEY_NUM_4];
792
- keyMap[this.AXIS_VIEW_TOP] = [input.KEY_NUM_5];
793
- keyMap[this.AXIS_VIEW_BOTTOM] = [input.KEY_NUM_6];
794
- // keyMap[this.PAN_LEFT] = [input.KEY_D];
795
- // keyMap[this.PAN_RIGHT] = [input.KEY_A];
796
- // keyMap[this.PAN_UP] = [input.KEY_W];
797
- // keyMap[this.PAN_DOWN] = [input.KEY_S];
798
- // keyMap[this.PAN_BACKWARDS] = [];
799
- // keyMap[this.PAN_FORWARDS] = [];
800
- // keyMap[this.DOLLY_FORWARDS] = [input.KEY_Z, input.KEY_ADD];
801
- // keyMap[this.DOLLY_BACKWARDS] = [input.KEY_X, input.KEY_SUBTRACT];
802
- // keyMap[this.ROTATE_X_POS] = [input.KEY_DOWN_ARROW];
803
- // keyMap[this.ROTATE_X_NEG] = [input.KEY_UP_ARROW];
804
- // keyMap[this.ROTATE_Y_POS] = [input.KEY_E, input.KEY_LEFT_ARROW];
805
- // keyMap[this.ROTATE_Y_NEG] = [input.KEY_Q, input.KEY_RIGHT_ARROW];
806
- // keyMap[this.AXIS_VIEW_RIGHT] = [input.KEY_NUM_1];
807
- // keyMap[this.AXIS_VIEW_BACK] = [input.KEY_NUM_2];
808
- // keyMap[this.AXIS_VIEW_LEFT] = [input.KEY_NUM_3];
809
- // keyMap[this.AXIS_VIEW_FRONT] = [input.KEY_NUM_4];
810
- // keyMap[this.AXIS_VIEW_TOP] = [input.KEY_NUM_5];
811
- // keyMap[this.AXIS_VIEW_BOTTOM] = [input.KEY_NUM_6];
812
- break;
813
-
814
- case "azerty":
815
- keyMap[this.PAN_LEFT] = [input.KEY_Q];
816
- keyMap[this.PAN_RIGHT] = [input.KEY_D];
817
- keyMap[this.PAN_UP] = [input.KEY_W];
818
- keyMap[this.PAN_DOWN] = [input.KEY_X];
819
- keyMap[this.PAN_BACKWARDS] = [];
820
- keyMap[this.PAN_FORWARDS] = [];
821
- keyMap[this.DOLLY_FORWARDS] = [input.KEY_Z, input.KEY_ADD];
822
- keyMap[this.DOLLY_BACKWARDS] = [input.KEY_S, input.KEY_SUBTRACT];
823
- keyMap[this.ROTATE_X_POS] = [input.KEY_DOWN_ARROW];
824
- keyMap[this.ROTATE_X_NEG] = [input.KEY_UP_ARROW];
825
- keyMap[this.ROTATE_Y_POS] = [input.KEY_A, input.KEY_LEFT_ARROW];
826
- keyMap[this.ROTATE_Y_NEG] = [input.KEY_E, input.KEY_RIGHT_ARROW];
827
- keyMap[this.AXIS_VIEW_RIGHT] = [input.KEY_NUM_1];
828
- keyMap[this.AXIS_VIEW_BACK] = [input.KEY_NUM_2];
829
- keyMap[this.AXIS_VIEW_LEFT] = [input.KEY_NUM_3];
830
- keyMap[this.AXIS_VIEW_FRONT] = [input.KEY_NUM_4];
831
- keyMap[this.AXIS_VIEW_TOP] = [input.KEY_NUM_5];
832
- keyMap[this.AXIS_VIEW_BOTTOM] = [input.KEY_NUM_6];
833
- break;
834
- }
835
-
836
- this._keyMap = keyMap;
837
- } else {
838
- const keyMap = value;
839
- this._keyMap = keyMap;
840
- }
841
- }
842
-
843
- /**
844
- * Gets custom mappings of keys to {@link CameraControl} actions.
845
- *
846
- * @returns {{Number:Number}} Current key mappings.
847
- */
848
- get keyMap() {
849
- return this._keyMap;
850
- }
851
-
852
- /**
853
- * Returns true if any keys configured for the given action are down.
854
- * @param action
855
- * @param keyDownMap
856
- * @private
857
- */
858
- _isKeyDownForAction(action, keyDownMap) {
859
- const keys = this._keyMap[action];
860
- if (!keys) {
861
- return false;
862
- }
863
- if (!keyDownMap) {
864
- keyDownMap = this.scene.input.keyDown;
865
- }
866
- for (let i = 0, len = keys.length; i < len; i++) {
867
- const key = keys[i];
868
- if (keyDownMap[key]) {
869
- return true;
870
- }
871
- }
872
- return false;
873
- }
874
-
875
- /**
876
- * Sets the HTMl element to represent the pivot point when {@link CameraControl#followPointer} is true.
877
- *
878
- * See class comments for an example.
879
- *
880
- * @param {HTMLElement} element HTML element representing the pivot point.
881
- */
882
- set pivotElement(element) {
883
- this._controllers.pivotController.setPivotElement(element);
884
- }
885
-
886
- /**
887
- * Sets if this ````CameraControl```` is active or not.
888
- *
889
- * When inactive, the ````CameraControl```` will not react to input.
890
- *
891
- * Default is ````true````.
892
- *
893
- * @param {Boolean} value Set ````true```` to activate this ````CameraControl````.
894
- */
895
- set active(value) {
896
- this._configs.active = value !== false;
897
- }
898
-
899
- /**
900
- * Gets if this ````CameraControl```` is active or not.
901
- *
902
- * When inactive, the ````CameraControl```` will not react to input.
903
- *
904
- * Default is ````true````.
905
- *
906
- * @returns {Boolean} Returns ````true```` if this ````CameraControl```` is active.
907
- */
908
- get active() {
909
- return this._configs.active;
910
- }
911
-
912
- /**
913
- * Sets the current navigation mode.
914
- *
915
- * Accepted values are:
916
- *
917
- * * "orbit" - rotation orbits about the current target or pivot point,
918
- * * "firstPerson" - rotation is about the current eye position,
919
- * * "planView" - rotation is disabled.
920
- *
921
- * See class comments for more info.
922
- *
923
- * @param {String} navMode The navigation mode: "orbit", "firstPerson" or "planView".
924
- */
925
- set navMode(navMode) {
926
- navMode = navMode || "orbit";
927
- if (navMode !== "firstPerson" && navMode !== "orbit" && navMode !== "planView") {
928
- this.error("Unsupported value for navMode: " + navMode + " - supported values are 'orbit', 'firstPerson' and 'planView' - defaulting to 'orbit'");
929
- navMode = "orbit";
930
- }
931
- this._configs.firstPerson = (navMode === "firstPerson");
932
- this._configs.planView = (navMode === "planView");
933
- if (this._configs.firstPerson || this._configs.planView) {
934
- this._controllers.pivotController.hidePivot();
935
- this._controllers.pivotController.endPivot();
936
- }
937
- this._configs.navMode = navMode;
938
- }
939
-
940
- /**
941
- * Gets the current navigation mode.
942
- *
943
- * @returns {String} The navigation mode: "orbit", "firstPerson" or "planView".
944
- */
945
- get navMode() {
946
- return this._configs.navMode;
947
- }
948
- set yjkLeft(yjkLeft) {
949
- this._configs.yjkLeft = (yjkLeft !== null && yjkLeft !== undefined) ? yjkLeft : 1;
950
- }
951
-
952
- /**
953
- * Gets how much the {@link Camera} dollys each second while the mouse wheel is spinning.
954
- *
955
- * Default is ````15.0````.
956
- *
957
- * @returns {Number} The current mouseWheel dolly rate.
958
- */
959
- get yjkLeft() {
960
- return this._configs.yjkLeft;
961
- }
962
- /**
963
- * Sets whether mouse and touch input is enabled.
964
- *
965
- * Default is ````true````.
966
- *
967
- * Disabling mouse and touch input on ````CameraControl```` is useful when we want to temporarily use mouse or
968
- * touch input to interact with some other 3D control, without disturbing the {@link Camera}.
969
- *
970
- * @param {Boolean} value Set ````true```` to enable mouse and touch input.
971
- */
972
- set pointerEnabled(value) {
973
- this._reset();
974
- this._configs.pointerEnabled = !!value;
975
- }
976
-
977
- _reset() {
978
- for (let i = 0, len = this._handlers.length; i < len; i++) {
979
- const handler = this._handlers[i];
980
- if (handler.reset) {
981
- handler.reset();
982
- }
983
- }
984
-
985
- this._updates.panDeltaX = 0;
986
- this._updates.panDeltaY = 0;
987
- this._updates.rotateDeltaX = 0;
988
- this._updates.rotateDeltaY = 0;
989
- this._updates.dolyDelta = 0;
990
- }
991
-
992
- /**
993
- * Gets whether mouse and touch input is enabled.
994
- *
995
- * Default is ````true````.
996
- *
997
- * Disabling mouse and touch input on ````CameraControl```` is desirable when we want to temporarily use mouse or
998
- * touch input to interact with some other 3D control, without interfering with the {@link Camera}.
999
- *
1000
- * @returns {Boolean} Returns ````true```` if mouse and touch input is enabled.
1001
- */
1002
- get pointerEnabled() {
1003
- return this._configs.pointerEnabled;
1004
- }
1005
-
1006
- /**
1007
- * Sets whether the {@link Camera} follows the mouse/touch pointer.
1008
- *
1009
- * In orbiting mode, the Camera will orbit about the pointer, and will dolly to and from the pointer.
1010
- *
1011
- * In fly-to mode, the Camera will dolly to and from the pointer, however the World will always rotate about the Camera position.
1012
- *
1013
- * In plan-view mode, the Camera will dolly to and from the pointer, however the Camera will not rotate.
1014
- *
1015
- * Default is ````true````.
1016
- *
1017
- * See class comments for more info.
1018
- *
1019
- * @param {Boolean} value Set ````true```` to enable the Camera to follow the pointer.
1020
- */
1021
- set followPointer(value) {
1022
- this._configs.followPointer = (value !== false);
1023
- }
1024
-
1025
- /**
1026
- * Sets whether the {@link Camera} follows the mouse/touch pointer.
1027
- *
1028
- * In orbiting mode, the Camera will orbit about the pointer, and will dolly to and from the pointer.
1029
- *
1030
- * In fly-to mode, the Camera will dolly to and from the pointer, however the World will always rotate about the Camera position.
1031
- *
1032
- * In plan-view mode, the Camera will dolly to and from the pointer, however the Camera will not rotate.
1033
- *
1034
- * Default is ````true````.
1035
- *
1036
- * See class comments for more info.
1037
- *
1038
- * @returns {Boolean} Returns ````true```` if the Camera follows the pointer.
1039
- */
1040
- get followPointer() {
1041
- return this._configs.followPointer;
1042
- }
1043
-
1044
- /**
1045
- * Sets the current World-space 3D target position.
1046
- *
1047
- * Only applies when {@link CameraControl#followPointer} is ````true````.
1048
- *
1049
- * @param {Number[]} worldPos The new World-space 3D target position.
1050
- */
1051
- set pivotPos(worldPos) {
1052
- this._controllers.pivotController.setPivotPos(worldPos);
1053
- }
1054
-
1055
- /**
1056
- * Gets the current World-space 3D pivot position.
1057
- *
1058
- * Only applies when {@link CameraControl#followPointer} is ````true````.
1059
- *
1060
- * @return {Number[]} worldPos The current World-space 3D pivot position.
1061
- */
1062
- get pivotPos() {
1063
- return this._controllers.pivotController.getPivotPos();
1064
- }
1065
-
1066
- /**
1067
- * @deprecated
1068
- * @param {Boolean} value Set ````true```` to enable dolly-to-pointer behaviour.
1069
- */
1070
- set dollyToPointer(value) {
1071
- this.warn("dollyToPointer property is deprecated - replaced with followPointer");
1072
- this.followPointer = value;
1073
- }
1074
-
1075
- /**
1076
- * @deprecated
1077
- * @returns {Boolean} Returns ````true```` if dolly-to-pointer behaviour is enabled.
1078
- */
1079
- get dollyToPointer() {
1080
- this.warn("dollyToPointer property is deprecated - replaced with followPointer");
1081
- return this.followPointer;
1082
- }
1083
-
1084
- /**
1085
- * @deprecated
1086
- * @param {Boolean} value Set ````true```` to enable dolly-to-pointer behaviour.
1087
- */
1088
- set panToPointer(value) {
1089
- this.warn("panToPointer property is deprecated - replaced with followPointer");
1090
- }
1091
-
1092
- /**
1093
- * @deprecated
1094
- * @returns {Boolean} Returns ````true```` if dolly-to-pointer behaviour is enabled.
1095
- */
1096
- get panToPointer() {
1097
- this.warn("panToPointer property is deprecated - replaced with followPointer");
1098
- return false;
1099
- }
1100
-
1101
- /**
1102
- * Sets whether this ````CameraControl```` is in plan-view mode.
1103
- *
1104
- * When in plan-view mode, rotation is disabled.
1105
- *
1106
- * Default is ````false````.
1107
- *
1108
- * Deprecated - use {@link CameraControl#navMode} instead.
1109
- *
1110
- * @param {Boolean} value Set ````true```` to enable plan-view mode.
1111
- * @deprecated
1112
- */
1113
- set planView(value) {
1114
- this._configs.planView = !!value;
1115
- this._configs.firstPerson = false;
1116
- if (this._configs.planView) {
1117
- this._controllers.pivotController.hidePivot();
1118
- this._controllers.pivotController.endPivot();
1119
- }
1120
- this.warn("planView property is deprecated - replaced with navMode");
1121
- }
1122
-
1123
- /**
1124
- * Gets whether this ````CameraControl```` is in plan-view mode.
1125
- *
1126
- * When in plan-view mode, rotation is disabled.
1127
- *
1128
- * Default is ````false````.
1129
- *
1130
- * Deprecated - use {@link CameraControl#navMode} instead.
1131
- *
1132
- * @returns {Boolean} Returns ````true```` if plan-view mode is enabled.
1133
- * @deprecated
1134
- */
1135
- get planView() {
1136
- this.warn("planView property is deprecated - replaced with navMode");
1137
- return this._configs.planView;
1138
- }
1139
-
1140
- /**
1141
- * Sets whether this ````CameraControl```` is in first-person mode.
1142
- *
1143
- * In "first person" mode (disabled by default) the look position rotates about the eye position. Otherwise, {@link Camera#eye} rotates about {@link Camera#look}.
1144
- *
1145
- * Default is ````false````.
1146
- *
1147
- * Deprecated - use {@link CameraControl#navMode} instead.
1148
- *
1149
- * @param {Boolean} value Set ````true```` to enable first-person mode.
1150
- * @deprecated
1151
- */
1152
- set firstPerson(value) {
1153
- this.warn("firstPerson property is deprecated - replaced with navMode");
1154
- this._configs.firstPerson = !!value;
1155
- this._configs.planView = false;
1156
- if (this._configs.firstPerson) {
1157
- this._controllers.pivotController.hidePivot();
1158
- this._controllers.pivotController.endPivot();
1159
- }
1160
- }
1161
-
1162
- /**
1163
- * Gets whether this ````CameraControl```` is in first-person mode.
1164
- *
1165
- * In "first person" mode (disabled by default) the look position rotates about the eye position. Otherwise, {@link Camera#eye} rotates about {@link Camera#look}.
1166
- *
1167
- * Default is ````false````.
1168
- *
1169
- * Deprecated - use {@link CameraControl#navMode} instead.
1170
- *
1171
- * @returns {Boolean} Returns ````true```` if first-person mode is enabled.
1172
- * @deprecated
1173
- */
1174
- get firstPerson() {
1175
- this.warn("firstPerson property is deprecated - replaced with navMode");
1176
- return this._configs.firstPerson;
1177
- }
1178
-
1179
- /**
1180
- * Sets whether to vertically constrain the {@link Camera} position for first-person navigation.
1181
- *
1182
- * When set ````true````, this constrains {@link Camera#eye} to its current vertical position.
1183
- *
1184
- * Only applies when {@link CameraControl#navMode} is ````"firstPerson"````.
1185
- *
1186
- * Default is ````false````.
1187
- *
1188
- * @param {Boolean} value Set ````true```` to vertically constrain the Camera.
1189
- */
1190
- set constrainVertical(value) {
1191
- this._configs.constrainVertical = !!value;
1192
- }
1193
-
1194
- /**
1195
- * Gets whether to vertically constrain the {@link Camera} position for first-person navigation.
1196
- *
1197
- * When set ````true````, this constrains {@link Camera#eye} to its current vertical position.
1198
- *
1199
- * Only applies when {@link CameraControl#navMode} is ````"firstPerson"````.
1200
- *
1201
- * Default is ````false````.
1202
- *
1203
- * @returns {Boolean} ````true```` when Camera is vertically constrained.
1204
- */
1205
- get constrainVertical() {
1206
- return this._configs.constrainVertical;
1207
- }
1208
-
1209
- /**
1210
- * Sets whether double-picking an {@link Entity} causes the {@link Camera} to fly to its boundary.
1211
- *
1212
- * Default is ````false````.
1213
- *
1214
- * @param {Boolean} value Set ````true```` to enable double-pick-fly-to mode.
1215
- */
1216
- set doublePickFlyTo(value) {
1217
- this._configs.doublePickFlyTo = value !== false;
1218
- }
1219
-
1220
- /**
1221
- * Gets whether double-picking an {@link Entity} causes the {@link Camera} to fly to its boundary.
1222
- *
1223
- * Default is ````false````.
1224
- *
1225
- * @returns {Boolean} Returns ````true```` when double-pick-fly-to mode is enabled.
1226
- */
1227
- get doublePickFlyTo() {
1228
- return this._configs.doublePickFlyTo;
1229
- }
1230
-
1231
- /**
1232
- * Sets whether either right-clicking (true) or middle-clicking (false) pans the {@link Camera}.
1233
- *
1234
- * Default is ````true````.
1235
- *
1236
- * @param {Boolean} value Set ````false```` to disable pan on right-click.
1237
- */
1238
- set panRightClick(value) {
1239
- this._configs.panRightClick = value !== false;
1240
- }
1241
-
1242
- /**
1243
- * Gets whether right-clicking pans the {@link Camera}.
1244
- *
1245
- * Default is ````true````.
1246
- *
1247
- * @returns {Boolean} Returns ````false```` when pan on right-click is disabled.
1248
- */
1249
- get panRightClick() {
1250
- return this._configs.panRightClick;
1251
- }
1252
-
1253
- /**
1254
- * Sets a factor in range ````[0..1]```` indicating how much the {@link Camera} keeps moving after you finish rotating it.
1255
- *
1256
- * A value of ````0.0```` causes it to immediately stop, ````0.5```` causes its movement to decay 50% on each tick,
1257
- * while ````1.0```` causes no decay, allowing it continue moving, by the current rate of rotation.
1258
- *
1259
- * You may choose an inertia of zero when you want be able to precisely rotate the Camera,
1260
- * without interference from inertia. Zero inertia can also mean that less frames are rendered while
1261
- * you are rotating the Camera.
1262
- *
1263
- * Default is ````0.0````.
1264
- *
1265
- * Does not apply when {@link CameraControl#navMode} is ````"planView"````, which disallows rotation.
1266
- *
1267
- * @param {Number} rotationInertia New inertial factor.
1268
- */
1269
- set rotationInertia(rotationInertia) {
1270
- this._configs.rotationInertia = (rotationInertia !== undefined && rotationInertia !== null) ? rotationInertia : 0.0;
1271
- }
1272
-
1273
- /**
1274
- * Gets the rotation inertia factor.
1275
- *
1276
- * Default is ````0.0````.
1277
- *
1278
- * Does not apply when {@link CameraControl#navMode} is ````"planView"````, which disallows rotation.
1279
- *
1280
- * @returns {Number} The inertia factor.
1281
- */
1282
- get rotationInertia() {
1283
- return this._configs.rotationInertia;
1284
- }
1285
-
1286
- /**
1287
- * Sets how much the {@link Camera} pans each second with keyboard input.
1288
- *
1289
- * Default is ````5.0````, to pan the Camera ````5.0```` World-space units every second that
1290
- * a panning key is depressed. See the ````CameraControl```` class documentation for which keys control
1291
- * panning.
1292
- *
1293
- * Panning direction is aligned to our Camera's orientation. When we pan horizontally, we pan
1294
- * to our left and right, when we pan vertically, we pan upwards and downwards, and when we pan forwards
1295
- * and backwards, we pan along the direction the Camera is pointing.
1296
- *
1297
- * Unlike dollying when {@link followPointer} is ````true````, panning does not follow the pointer.
1298
- *
1299
- * @param {Number} keyboardPanRate The new keyboard pan rate.
1300
- */
1301
- set keyboardPanRate(keyboardPanRate) {
1302
- this._configs.keyboardPanRate = (keyboardPanRate !== null && keyboardPanRate !== undefined) ? keyboardPanRate : 5.0;
1303
- }
1304
-
1305
-
1306
- /**
1307
- * Sets how fast the camera pans on touch panning
1308
- *
1309
- * @param {Number} touchPanRate The new touch pan rate.
1310
- */
1311
- set touchPanRate(touchPanRate) {
1312
- this._configs.touchPanRate = (touchPanRate !== null && touchPanRate !== undefined) ? touchPanRate : 1.0;
1313
- }
1314
-
1315
- /**
1316
- * Gets how fast the {@link Camera} pans on touch panning
1317
- *
1318
- * Default is ````1.0````.
1319
- *
1320
- * @returns {Number} The current touch pan rate.
1321
- */
1322
- get touchPanRate() {
1323
- return this._configs.touchPanRate;
1324
- }
1325
-
1326
- /**
1327
- * Gets how much the {@link Camera} pans each second with keyboard input.
1328
- *
1329
- * Default is ````5.0````.
1330
- *
1331
- * @returns {Number} The current keyboard pan rate.
1332
- */
1333
- get keyboardPanRate() {
1334
- return this._configs.keyboardPanRate;
1335
- }
1336
-
1337
- /**
1338
- * Sets how many degrees per second the {@link Camera} rotates/orbits with keyboard input.
1339
- *
1340
- * Default is ````90.0````, to rotate/orbit the Camera ````90.0```` degrees every second that
1341
- * a rotation key is depressed. See the ````CameraControl```` class documentation for which keys control
1342
- * rotation/orbit.
1343
- *
1344
- * @param {Number} keyboardRotationRate The new keyboard rotation rate.
1345
- */
1346
- set keyboardRotationRate(keyboardRotationRate) {
1347
- this._configs.keyboardRotationRate = (keyboardRotationRate !== null && keyboardRotationRate !== undefined) ? keyboardRotationRate : 90.0;
1348
- }
1349
-
1350
- /**
1351
- * Sets how many degrees per second the {@link Camera} rotates/orbits with keyboard input.
1352
- *
1353
- * Default is ````90.0````.
1354
- *
1355
- * @returns {Number} The current keyboard rotation rate.
1356
- */
1357
- get keyboardRotationRate() {
1358
- return this._configs.keyboardRotationRate;
1359
- }
1360
-
1361
- /**
1362
- * Sets the current drag rotation rate.
1363
- *
1364
- * This configures how many degrees the {@link Camera} rotates/orbits for a full sweep of the canvas by mouse or touch dragging.
1365
- *
1366
- * For example, a value of ````360.0```` indicates that the ````Camera```` rotates/orbits ````360.0```` degrees horizontally
1367
- * when we sweep the entire width of the canvas.
1368
- *
1369
- * ````CameraControl```` makes vertical rotation half as sensitive as horizontal rotation, so that we don't tend to
1370
- * flip upside-down. Therefore, a value of ````360.0```` rotates/orbits the ````Camera```` through ````180.0```` degrees
1371
- * vertically when we sweep the entire height of the canvas.
1372
- *
1373
- * Default is ````360.0````.
1374
- *
1375
- * @param {Number} dragRotationRate The new drag rotation rate.
1376
- */
1377
- set dragRotationRate(dragRotationRate) {
1378
- this._configs.dragRotationRate = (dragRotationRate !== null && dragRotationRate !== undefined) ? dragRotationRate : 360.0;
1379
- }
1380
-
1381
- /**
1382
- * Gets the current drag rotation rate.
1383
- *
1384
- * Default is ````360.0````.
1385
- *
1386
- * @returns {Number} The current drag rotation rate.
1387
- */
1388
- get dragRotationRate() {
1389
- return this._configs.dragRotationRate;
1390
- }
1391
-
1392
- /**
1393
- * Sets how much the {@link Camera} dollys each second with keyboard input.
1394
- *
1395
- * Default is ````15.0````, to dolly the {@link Camera} ````15.0```` World-space units per second while we hold down
1396
- * the ````+```` and ````-```` keys.
1397
- *
1398
- * @param {Number} keyboardDollyRate The new keyboard dolly rate.
1399
- */
1400
- set keyboardDollyRate(keyboardDollyRate) {
1401
- this._configs.keyboardDollyRate = (keyboardDollyRate !== null && keyboardDollyRate !== undefined) ? keyboardDollyRate : 15.0;
1402
- }
1403
-
1404
- /**
1405
- * Gets how much the {@link Camera} dollys each second with keyboard input.
1406
- *
1407
- * Default is ````15.0````.
1408
- *
1409
- * @returns {Number} The current keyboard dolly rate.
1410
- */
1411
- get keyboardDollyRate() {
1412
- return this._configs.keyboardDollyRate;
1413
- }
1414
-
1415
- /**
1416
- * Sets how much the {@link Camera} dollys with touch input.
1417
- *
1418
- * Default is ````0.2````
1419
- *
1420
- * @param {Number} touchDollyRate The new touch dolly rate.
1421
- */
1422
- set touchDollyRate(touchDollyRate) {
1423
- this._configs.touchDollyRate = (touchDollyRate !== null && touchDollyRate !== undefined) ? touchDollyRate : 0.2;
1424
- }
1425
-
1426
- /**
1427
- * Gets how much the {@link Camera} dollys each second with touch input.
1428
- *
1429
- * Default is ````0.2````.
1430
- *
1431
- * @returns {Number} The current touch dolly rate.
1432
- */
1433
- get touchDollyRate() {
1434
- return this._configs.touchDollyRate;
1435
- }
1436
-
1437
- /**
1438
- * Sets how much the {@link Camera} dollys each second while the mouse wheel is spinning.
1439
- *
1440
- * Default is ````100.0````, to dolly the {@link Camera} ````10.0```` World-space units per second as we spin
1441
- * the mouse wheel.
1442
- *
1443
- * @param {Number} mouseWheelDollyRate The new mouse wheel dolly rate.
1444
- */
1445
- set mouseWheelDollyRate(mouseWheelDollyRate) {
1446
- this._configs.mouseWheelDollyRate = (mouseWheelDollyRate !== null && mouseWheelDollyRate !== undefined) ? mouseWheelDollyRate : 100.0;
1447
- }
1448
-
1449
- /**
1450
- * Gets how much the {@link Camera} dollys each second while the mouse wheel is spinning.
1451
- *
1452
- * Default is ````100.0````.
1453
- *
1454
- * @returns {Number} The current mouseWheel dolly rate.
1455
- */
1456
- get mouseWheelDollyRate() {
1457
- return this._configs.mouseWheelDollyRate;
1458
- }
1459
-
1460
- /**
1461
- * Sets the dolly inertia factor.
1462
- *
1463
- * This factor configures how much the {@link Camera} keeps moving after you finish dollying it.
1464
- *
1465
- * This factor is a value in range ````[0..1]````. A value of ````0.0```` causes dollying to immediately stop,
1466
- * ````0.5```` causes dollying to decay 50% on each animation frame, while ````1.0```` causes no decay, which allows dollying
1467
- * to continue until further input stops it.
1468
- *
1469
- * You might set ````dollyInertia```` to zero when you want be able to precisely position or rotate the Camera,
1470
- * without interference from inertia. This also means that yjkkit renders less frames while dollying the Camera,
1471
- * which can improve rendering performance.
1472
- *
1473
- * Default is ````0````.
1474
- *
1475
- * @param {Number} dollyInertia New dolly inertia factor.
1476
- */
1477
- set dollyInertia(dollyInertia) {
1478
- this._configs.dollyInertia = (dollyInertia !== undefined && dollyInertia !== null) ? dollyInertia : 0;
1479
- }
1480
-
1481
- /**
1482
- * Gets the dolly inertia factor.
1483
- *
1484
- * Default is ````0````.
1485
- *
1486
- * @returns {Number} The current dolly inertia factor.
1487
- */
1488
- get dollyInertia() {
1489
- return this._configs.dollyInertia;
1490
- }
1491
-
1492
- /**
1493
- * Sets the proximity to the closest object below which dolly speed decreases, and above which dolly speed increases.
1494
- *
1495
- * Default is ````35.0````.
1496
- *
1497
- * @param {Number} dollyProximityThreshold New dolly proximity threshold.
1498
- */
1499
- set dollyProximityThreshold(dollyProximityThreshold) {
1500
- this._configs.dollyProximityThreshold = (dollyProximityThreshold !== undefined && dollyProximityThreshold !== null) ? dollyProximityThreshold : 35.0;
1501
- }
1502
-
1503
- /**
1504
- * Gets the proximity to the closest object below which dolly speed decreases, and above which dolly speed increases.
1505
- *
1506
- * Default is ````35.0````.
1507
- *
1508
- * @returns {Number} The current dolly proximity threshold.
1509
- */
1510
- get dollyProximityThreshold() {
1511
- return this._configs.dollyProximityThreshold;
1512
- }
1513
-
1514
- /**
1515
- * Sets the minimum dolly speed.
1516
- *
1517
- * Default is ````0.04````.
1518
- *
1519
- * @param {Number} dollyMinSpeed New dolly minimum speed.
1520
- */
1521
- set dollyMinSpeed(dollyMinSpeed) {
1522
- this._configs.dollyMinSpeed = (dollyMinSpeed !== undefined && dollyMinSpeed !== null) ? dollyMinSpeed : 0.04;
1523
- }
1524
-
1525
- /**
1526
- * Gets the minimum dolly speed.
1527
- *
1528
- * Default is ````0.04````.
1529
- *
1530
- * @returns {Number} The current minimum dolly speed.
1531
- */
1532
- get dollyMinSpeed() {
1533
- return this._configs.dollyMinSpeed;
1534
- }
1535
-
1536
- /**
1537
- * Sets the pan inertia factor.
1538
- *
1539
- * This factor configures how much the {@link Camera} keeps moving after you finish panning it.
1540
- *
1541
- * This factor is a value in range ````[0..1]````. A value of ````0.0```` causes panning to immediately stop,
1542
- * ````0.5```` causes panning to decay 50% on each animation frame, while ````1.0```` causes no decay, which allows panning
1543
- * to continue until further input stops it.
1544
- *
1545
- * You might set ````panInertia```` to zero when you want be able to precisely position or rotate the Camera,
1546
- * without interference from inertia. This also means that yjkkit renders less frames while panning the Camera,
1547
- * wich can improve rendering performance.
1548
- *
1549
- * Default is ````0.5````.
1550
- *
1551
- * @param {Number} panInertia New pan inertia factor.
1552
- */
1553
- set panInertia(panInertia) {
1554
- this._configs.panInertia = (panInertia !== undefined && panInertia !== null) ? panInertia : 0.5;
1555
- }
1556
-
1557
- /**
1558
- * Gets the pan inertia factor.
1559
- *
1560
- * Default is ````0.5````.
1561
- *
1562
- * @returns {Number} The current pan inertia factor.
1563
- */
1564
- get panInertia() {
1565
- return this._configs.panInertia;
1566
- }
1567
-
1568
- /**
1569
- * Sets the keyboard layout.
1570
- *
1571
- * Supported layouts are:
1572
- *
1573
- * * ````"qwerty"```` (default)
1574
- * * ````"azerty"````
1575
- *
1576
- * @deprecated
1577
- * @param {String} value Selects the keyboard layout.
1578
- */
1579
- set keyboardLayout(value) {
1580
- // this.warn("keyboardLayout property is deprecated - use keyMap property instead");
1581
- value = value || "qwerty";
1582
- if (value !== "qwerty" && value !== "azerty") {
1583
- this.error("Unsupported value for keyboardLayout - defaulting to 'qwerty'");
1584
- value = "qwerty";
1585
- }
1586
- this._configs.keyboardLayout = value;
1587
- this.keyMap = this._configs.keyboardLayout;
1588
- }
1589
-
1590
- /**
1591
- * Gets the keyboard layout.
1592
- *
1593
- * Supported layouts are:
1594
- *
1595
- * * ````"qwerty"```` (default)
1596
- * * ````"azerty"````
1597
- *
1598
- * @deprecated
1599
- * @returns {String} The current keyboard layout.
1600
- */
1601
- get keyboardLayout() {
1602
- return this._configs.keyboardLayout;
1603
- }
1604
-
1605
- /**
1606
- * Sets whether smart default pivoting is enabled.
1607
- *
1608
- * When ````true````, we'll pivot by default about the 3D position of the mouse/touch pointer on an
1609
- * imaginary sphere that's centered at {@link Camera#eye} and sized to the {@link Scene} boundary.
1610
- *
1611
- * When ````false````, we'll pivot by default about {@link Camera#look}.
1612
- *
1613
- * Default is ````false````.
1614
- *
1615
- * @param {Boolean} enabled Set ````true```` to pivot by default about the selected point on the virtual sphere, or ````false```` to pivot by default about {@link Camera#look}.
1616
- */
1617
- set smartPivot(enabled) {
1618
- this._configs.smartPivot = (enabled !== false);
1619
- }
1620
-
1621
- /**
1622
- * Gets whether smart default pivoting is enabled.
1623
- *
1624
- * When ````true````, we'll pivot by default about the 3D position of the mouse/touch pointer on an
1625
- * imaginary sphere that's centered at {@link Camera#eye} and sized to the {@link Scene} boundary.
1626
- *
1627
- * When ````false````, we'll pivot by default about {@link Camera#look}.
1628
- *
1629
- * Default is ````false````.
1630
- *
1631
- * @returns {Boolean} Returns ````true```` when pivoting by default about the selected point on the virtual sphere, or ````false```` when pivoting by default about {@link Camera#look}.
1632
- */
1633
- get smartPivot() {
1634
- return this._configs.smartPivot;
1635
- }
1636
-
1637
- /**
1638
- * Destroys this ````CameraControl````.
1639
- * @private
1640
- */
1641
- destroy() {
1642
- this._destroyHandlers();
1643
- this._destroyControllers();
1644
- this._cameraUpdater.destroy();
1645
- super.destroy();
1646
- }
1647
-
1648
- _destroyHandlers() {
1649
- for (let i = 0, len = this._handlers.length; i < len; i++) {
1650
- const handler = this._handlers[i];
1651
- if (handler.destroy) {
1652
- handler.destroy();
1653
- }
1654
- }
1655
- }
1656
-
1657
- _destroyControllers() {
1658
- for (let i = 0, len = this._controllers.length; i < len; i++) {
1659
- const controller = this._controllers[i];
1660
- if (controller.destroy) {
1661
- controller.destroy();
1662
- }
1663
- }
1664
- }
1665
- }
1666
-
1667
- export {
1668
- CameraControl
1669
- };