@openglobus/og 0.17.2 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/README.md +75 -46
  2. package/dist/@openglobus/og.esm.js +1 -20
  3. package/dist/@openglobus/og.esm.js.map +1 -1
  4. package/dist/@openglobus/og.umd.js +1 -20
  5. package/dist/@openglobus/og.umd.js.map +1 -1
  6. package/dist/@openglobus/res/fonts/Karla-Bold.json +5252 -0
  7. package/dist/@openglobus/res/fonts/Karla-Bold.ttf.cfg +920 -0
  8. package/dist/@openglobus/res/fonts/Karla-Bold.ttf.png +0 -0
  9. package/dist/@openglobus/res/fonts/Karla-Light.json +5252 -0
  10. package/dist/@openglobus/res/fonts/Karla-Light.ttf.cfg +830 -0
  11. package/dist/@openglobus/res/fonts/Karla-Light.ttf.png +0 -0
  12. package/dist/@openglobus/res/fonts/Karla-Medium.json +5252 -0
  13. package/dist/@openglobus/res/fonts/Karla-Medium.ttf.cfg +1196 -0
  14. package/dist/@openglobus/res/fonts/Karla-Medium.ttf.png +0 -0
  15. package/dist/@openglobus/res/fonts/NotoSansArabic-Regular.json +3332 -0
  16. package/dist/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.cfg +1370 -0
  17. package/dist/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.png +0 -0
  18. package/dist/@openglobus/res/fonts/Roboto-Regular.json +37147 -0
  19. package/dist/@openglobus/res/fonts/Roboto-Regular.ttf.cfg +1340 -0
  20. package/dist/@openglobus/res/fonts/Roboto-Regular.ttf.png +0 -0
  21. package/dist/@openglobus/res/fonts/arial.json +4321 -0
  22. package/dist/@openglobus/res/fonts/arial.ttf.cfg +1570 -0
  23. package/dist/@openglobus/res/fonts/arial.ttf.png +0 -0
  24. package/dist/@openglobus/res/night-4326.png +0 -0
  25. package/dist/@openglobus/res/night.png +0 -0
  26. package/dist/@openglobus/res/spec.png +0 -0
  27. package/package.json +25 -23
  28. package/src/{og/Clock.js → Clock.ts} +100 -78
  29. package/src/Deferred.ts +17 -0
  30. package/src/Events.ts +200 -0
  31. package/src/{og/Extent.js → Extent.ts} +324 -352
  32. package/src/Globe.ts +363 -0
  33. package/src/{og/ImageCanvas.js → ImageCanvas.ts} +244 -236
  34. package/src/Lock.ts +41 -0
  35. package/src/{og/LonLat.js → LonLat.ts} +50 -47
  36. package/src/{og/Object3d.js → Object3d.ts} +89 -55
  37. package/src/Popup.ts +228 -0
  38. package/src/{og/QueueArray.js → QueueArray.ts} +76 -75
  39. package/src/{og/Rectangle.js → Rectangle.ts} +115 -111
  40. package/src/Stack.ts +58 -0
  41. package/src/{og/astro/astro.js → astro/astro.ts} +49 -51
  42. package/src/{og/astro/earth.js → astro/earth.ts} +8 -9
  43. package/src/{og/astro/jd.js → astro/jd.ts} +92 -111
  44. package/src/{og/astro/orbit.js → astro/orbit.ts} +35 -37
  45. package/src/{og/astro/rotation.js → astro/rotation.ts} +4 -6
  46. package/src/{og/bv/Box.js → bv/Box.ts} +21 -17
  47. package/src/{og/bv/Sphere.js → bv/Sphere.ts} +21 -19
  48. package/src/bv/index.ts +4 -0
  49. package/src/{og/camera/Camera.js → camera/Camera.ts} +254 -197
  50. package/src/{og/camera/Frustum.js → camera/Frustum.ts} +137 -111
  51. package/src/{og/camera/PlanetCamera.js → camera/PlanetCamera.ts} +246 -182
  52. package/src/camera/index.ts +4 -0
  53. package/src/{og/cons.js → cons.ts} +14 -18
  54. package/src/{og/control/Atmosphere.js → control/Atmosphere.ts} +50 -50
  55. package/src/{og/control/CompassButton.js → control/CompassButton.ts} +27 -30
  56. package/src/{og/control/Control.js → control/Control.ts} +76 -70
  57. package/src/{og/control/DebugInfo.js → control/DebugInfo.ts} +130 -62
  58. package/src/{og/control/DrawingSwitcher.js → control/DrawingSwitcher.ts} +16 -22
  59. package/src/control/EarthCoordinates.ts +222 -0
  60. package/src/control/EarthNavigation.ts +293 -0
  61. package/src/{og/control/GeoImageDragControl.js → control/GeoImageDragControl.ts} +37 -29
  62. package/src/control/KeyboardNavigation.ts +168 -0
  63. package/src/{og/control/LayerAnimation.js → control/LayerAnimation.ts} +74 -90
  64. package/src/control/LayerSwitcher.ts +76 -0
  65. package/src/{og/control/Lighting.js → control/Lighting.ts} +158 -120
  66. package/src/control/MouseNavigation.ts +468 -0
  67. package/src/control/MouseWheelZoomControl.ts +269 -0
  68. package/src/{og/control/RulerSwitcher.js → control/RulerSwitcher.ts} +18 -20
  69. package/src/control/ScaleControl.ts +131 -0
  70. package/src/control/SegmentBoundVisualization.ts +50 -0
  71. package/src/control/ShowFps.ts +28 -0
  72. package/src/control/SimpleNavigation.ts +118 -0
  73. package/src/{og/control/SimpleSkyBackground.js → control/SimpleSkyBackground.ts} +36 -38
  74. package/src/{og/control/Sun.js → control/Sun.ts} +56 -64
  75. package/src/control/ToggleWireframe.ts +35 -0
  76. package/src/control/TouchNavigation.ts +368 -0
  77. package/src/control/ZoomControl.ts +111 -0
  78. package/src/control/drawing/DrawingControl.ts +45 -0
  79. package/src/{og/control/drawing/LineStringDrawingScene.js → control/drawing/LineStringDrawingScene.ts} +28 -35
  80. package/src/{og/control/drawing/PolygonDrawingScene.js → control/drawing/PolygonDrawingScene.ts} +148 -201
  81. package/src/{og/control/elevationProfile/ElevationProfile.js → control/elevationProfile/ElevationProfile.ts} +70 -36
  82. package/src/control/heightRuler/HeightRuler.ts +16 -0
  83. package/src/{og/control/heightRuler/HeightRulerScene.js → control/heightRuler/HeightRulerScene.ts} +92 -87
  84. package/src/{og/control/heightRuler/HeightRulerSwitcher.js → control/heightRuler/HeightRulerSwitcher.ts} +3 -3
  85. package/src/control/index.ts +45 -0
  86. package/src/control/ruler/Ruler.ts +35 -0
  87. package/src/{og/control/ruler/RulerScene.js → control/ruler/RulerScene.ts} +163 -121
  88. package/src/{og/control/selection/Selection.js → control/selection/Selection.ts} +23 -21
  89. package/src/{og/control/selection/SelectionScene.js → control/selection/SelectionScene.ts} +64 -50
  90. package/src/{og/control/timeline/TimelineControl.js → control/timeline/TimelineControl.ts} +37 -28
  91. package/src/{og/control/timeline/TimelineModel.js → control/timeline/TimelineModel.ts} +50 -35
  92. package/src/{og/control/timeline/TimelineView.js → control/timeline/TimelineView.ts} +162 -113
  93. package/src/{og/control/timeline/timelineUtils.js → control/timeline/timelineUtils.ts} +11 -10
  94. package/src/{og/control → control}/visibleExtent/Segment.js +5 -5
  95. package/src/{og/control → control}/visibleExtent/VisibleExtent.js +8 -15
  96. package/src/{og/control/visibleExtent/drawnode.js → control/visibleExtent/drawnode.ts} +1 -3
  97. package/src/{og/ellipsoid/Ellipsoid.js → ellipsoid/Ellipsoid.ts} +113 -59
  98. package/src/ellipsoid/index.ts +4 -0
  99. package/src/{og/ellipsoid/wgs84.js → ellipsoid/wgs84.ts} +1 -3
  100. package/src/{og/entity/BaseBillboard.js → entity/BaseBillboard.ts} +128 -102
  101. package/src/entity/BaseBillboardHandler.ts +772 -0
  102. package/src/{og/entity/Billboard.js → entity/Billboard.ts} +77 -47
  103. package/src/entity/BillboardHandler.ts +135 -0
  104. package/src/{og/entity/Entity.js → entity/Entity.ts} +285 -226
  105. package/src/{og/entity/EntityCollection.js → entity/EntityCollection.ts} +340 -247
  106. package/src/{og/entity/GeoObject.js → entity/GeoObject.ts} +122 -67
  107. package/src/{og/entity/GeoObjectHandler.js → entity/GeoObjectHandler.ts} +273 -198
  108. package/src/entity/Geometry.ts +486 -0
  109. package/src/{og/entity/GeometryHandler.js → entity/GeometryHandler.ts} +383 -541
  110. package/src/{og/entity/Label.js → entity/Label.ts} +131 -83
  111. package/src/{og/entity/LabelHandler.js → entity/LabelHandler.ts} +289 -255
  112. package/src/{og/entity/LabelWorker.js → entity/LabelWorker.ts} +26 -36
  113. package/src/{og/entity/PointCloud.js → entity/PointCloud.ts} +200 -164
  114. package/src/entity/PointCloudHandler.ts +125 -0
  115. package/src/{og/entity/Polyline.js → entity/Polyline.ts} +517 -539
  116. package/src/{og/entity/PolylineHandler.js → entity/PolylineHandler.ts} +29 -31
  117. package/src/{og/entity/Ray.js → entity/Ray.ts} +89 -60
  118. package/src/{og/entity/RayHandler.js → entity/RayHandler.ts} +201 -306
  119. package/src/{og/entity/Strip.js → entity/Strip.ts} +143 -100
  120. package/src/{og/entity/StripHandler.js → entity/StripHandler.ts} +76 -72
  121. package/src/entity/index.ts +12 -0
  122. package/src/index.ts +173 -0
  123. package/src/input/KeyboardHandler.ts +196 -0
  124. package/src/{og/input/MouseHandler.js → input/MouseHandler.ts} +46 -35
  125. package/src/input/TouchHandler.ts +54 -0
  126. package/src/{og/input/input.js → input/input.ts} +1 -3
  127. package/src/{og/layer/BaseGeoImage.js → layer/BaseGeoImage.ts} +174 -107
  128. package/src/{og/layer/CanvasTiles.js → layer/CanvasTiles.ts} +139 -105
  129. package/src/{og/layer/GeoImage.js → layer/GeoImage.ts} +62 -52
  130. package/src/layer/GeoTexture2d.ts +56 -0
  131. package/src/{og/layer/GeoVideo.js → layer/GeoVideo.ts} +53 -53
  132. package/src/{og/layer/KML.js → layer/KML.ts} +63 -74
  133. package/src/{og/layer/Layer.js → layer/Layer.ts} +399 -223
  134. package/src/{og/layer/Material.js → layer/Material.ts} +40 -35
  135. package/src/{og/layer/Vector.js → layer/Vector.ts} +319 -267
  136. package/src/{og/layer/WMS.js → layer/WMS.ts} +76 -64
  137. package/src/{og/layer/XYZ.js → layer/XYZ.ts} +123 -98
  138. package/src/layer/index.ts +12 -0
  139. package/src/{og/light/LightSource.js → light/LightSource.ts} +132 -93
  140. package/src/{og/math/Line2.js → math/Line2.ts} +11 -8
  141. package/src/{og/math/Line3.js → math/Line3.ts} +49 -27
  142. package/src/{og/math/Mat3.js → math/Mat3.ts} +43 -27
  143. package/src/{og/math/Mat4.js → math/Mat4.ts} +110 -77
  144. package/src/{og/math/Plane.js → math/Plane.ts} +28 -23
  145. package/src/{og/math/Quat.js → math/Quat.ts} +238 -222
  146. package/src/{og/math/Ray.js → math/Ray.ts} +59 -63
  147. package/src/{og/math/Vec2.js → math/Vec2.ts} +85 -76
  148. package/src/{og/math/Vec3.js → math/Vec3.ts} +141 -140
  149. package/src/{og/math/Vec4.js → math/Vec4.ts} +64 -53
  150. package/src/{og/math/coder.js → math/coder.ts} +30 -27
  151. package/src/math/index.ts +26 -0
  152. package/src/{og/math.js → math.ts} +46 -49
  153. package/src/{og/mercator.js → mercator.ts} +143 -149
  154. package/src/{og/proj/EPSG3857.js → proj/EPSG3857.ts} +1 -3
  155. package/src/{og/proj/EPSG4326.js → proj/EPSG4326.ts} +11 -13
  156. package/src/{og/proj/Proj.js → proj/Proj.ts} +27 -23
  157. package/src/{og/quadTree/EPSG4326QuadTreeStrategy.js → quadTree/EPSG4326QuadTreeStrategy.ts} +10 -13
  158. package/src/{og/quadTree/EarthQuadTreeStrategy.js → quadTree/EarthQuadTreeStrategy.ts} +11 -13
  159. package/src/quadTree/EntityCollectionNode.ts +395 -0
  160. package/src/{og/quadTree/MarsQuadTreeStrategy.js → quadTree/MarsQuadTreeStrategy.ts} +10 -13
  161. package/src/{og/quadTree/Node.js → quadTree/Node.ts} +283 -191
  162. package/src/{og/quadTree/QuadTreeStrategy.js → quadTree/QuadTreeStrategy.ts} +35 -29
  163. package/src/quadTree/Wgs84QuadTreeStrategy.ts +22 -0
  164. package/src/quadTree/index.ts +14 -0
  165. package/src/{og/quadTree/quadTree.js → quadTree/quadTree.ts} +75 -77
  166. package/src/{og/renderer/Renderer.js → renderer/Renderer.ts} +454 -298
  167. package/src/{og/renderer/RendererEvents.js → renderer/RendererEvents.ts} +347 -256
  168. package/src/{og/scene/Axes.js → scene/Axes.ts} +26 -22
  169. package/src/{og/scene/BaseNode.js → scene/BaseNode.ts} +53 -47
  170. package/src/{og/scene/Planet.js → scene/Planet.ts} +776 -592
  171. package/src/{og/scene/RenderNode.js → scene/RenderNode.ts} +105 -91
  172. package/src/{og/scene/SkyBox.js → scene/SkyBox.ts} +29 -25
  173. package/src/scene/index.ts +6 -0
  174. package/src/{og/segment/Segment.js → segment/Segment.ts} +497 -371
  175. package/src/{og/segment/SegmentLonLat.js → segment/SegmentLonLat.ts} +81 -87
  176. package/src/{og/segment/SegmentLonLatWgs84.js → segment/SegmentLonLatWgs84.ts} +9 -16
  177. package/src/{og/segment/Slice.js → segment/Slice.ts} +15 -9
  178. package/src/{og/segment/segmentHelper.js → segment/segmentHelper.ts} +57 -49
  179. package/src/{og/shaders/atmos.js → shaders/atmos.ts} +4 -6
  180. package/src/{og/shaders/billboard.js → shaders/billboard.ts} +3 -5
  181. package/src/{og/shaders/bloom.js → shaders/bloom.ts} +2 -4
  182. package/src/{og/shaders/blur.js → shaders/blur.ts} +4 -7
  183. package/src/{og/shaders/depth.js → shaders/depth.ts} +1 -3
  184. package/src/{og/shaders/drawnode.js → shaders/drawnode.ts} +19 -21
  185. package/src/{og/shaders/geoObject.js → shaders/geoObject.ts} +17 -19
  186. package/src/{og/shaders/label.js → shaders/label.ts} +4 -6
  187. package/src/{og/shaders/lumFilter.js → shaders/lumFilter.ts} +2 -4
  188. package/src/{og/shaders/pickingMask.js → shaders/pickingMask.ts} +2 -4
  189. package/src/{og/shaders/pointCloud.js → shaders/pointCloud.ts} +7 -10
  190. package/src/{og/shaders/polyline.js → shaders/polyline.ts} +3 -200
  191. package/src/{og/shaders/ray.js → shaders/ray.ts} +2 -4
  192. package/src/{og/shaders/screenFrame.js → shaders/screenFrame.ts} +2 -4
  193. package/src/{og/shaders/skybox.js → shaders/skybox.ts} +7 -9
  194. package/src/{og/shaders/toneMapping.js → shaders/toneMapping.ts} +2 -4
  195. package/src/{og/shaders/utils.js → shaders/utils.ts} +0 -2
  196. package/src/{og/terrain/BilTerrain.js → terrain/BilTerrain.ts} +38 -32
  197. package/src/terrain/EmptyTerrain.ts +230 -0
  198. package/src/{og/terrain/Geoid.js → terrain/Geoid.ts} +67 -41
  199. package/src/{og/terrain/GlobusTerrain.js → terrain/GlobusTerrain.ts} +159 -153
  200. package/src/{og/terrain/MapboxTerrain.js → terrain/MapboxTerrain.ts} +58 -61
  201. package/src/terrain/index.ts +6 -0
  202. package/src/ui/Button.ts +121 -0
  203. package/src/ui/ButtonGroup.ts +63 -0
  204. package/src/ui/Dialog.ts +244 -0
  205. package/src/ui/Slider.ts +188 -0
  206. package/src/ui/ToggleButton.ts +68 -0
  207. package/src/{og/ui/View.js → ui/View.ts} +66 -59
  208. package/src/utils/BaseWorker.ts +60 -0
  209. package/src/utils/FontAtlas.ts +356 -0
  210. package/src/{og/utils/GeoImageCreator.js → utils/GeoImageCreator.ts} +45 -29
  211. package/src/{og/utils/ImagesCacheManager.js → utils/ImagesCacheManager.ts} +85 -70
  212. package/src/utils/Loader.ts +247 -0
  213. package/src/{og/utils/NormalMapCreator.js → utils/NormalMapCreator.ts} +114 -77
  214. package/src/{og/utils/PlainSegmentWorker.js → utils/PlainSegmentWorker.ts} +41 -24
  215. package/src/{og/utils/TerrainWorker.js → utils/TerrainWorker.ts} +51 -36
  216. package/src/utils/TextureAtlas.ts +322 -0
  217. package/src/{og/utils/VectorTileCreator.js → utils/VectorTileCreator.ts} +67 -52
  218. package/src/{og/utils/colorTable.js → utils/colorTable.ts} +142 -144
  219. package/src/{og/utils/earcut.js → utils/earcut.ts} +664 -661
  220. package/src/{og/utils/objParser.js → utils/objParser.ts} +66 -37
  221. package/src/{og/utils/shared.js → utils/shared.ts} +267 -206
  222. package/src/utils/units.ts +78 -0
  223. package/src/webgl/BaseFramebuffer.ts +125 -0
  224. package/src/webgl/Framebuffer.ts +206 -0
  225. package/src/webgl/Handler.ts +1414 -0
  226. package/src/webgl/Multisample.ts +153 -0
  227. package/src/webgl/Program.ts +451 -0
  228. package/src/{og/webgl/ProgramController.js → webgl/ProgramController.ts} +44 -43
  229. package/src/webgl/index.ts +13 -0
  230. package/src/{og/webgl/types.js → webgl/types.ts} +29 -31
  231. package/src/webgl/variableHandlers.ts +114 -0
  232. package/src/og/Deferred.js +0 -11
  233. package/src/og/Events.js +0 -185
  234. package/src/og/Globe.js +0 -342
  235. package/src/og/Lock.js +0 -44
  236. package/src/og/Popup.js +0 -187
  237. package/src/og/Stack.js +0 -49
  238. package/src/og/bv/index.js +0 -4
  239. package/src/og/camera/index.js +0 -4
  240. package/src/og/control/EarthCoordinates.js +0 -214
  241. package/src/og/control/EarthNavigation.js +0 -258
  242. package/src/og/control/KeyboardNavigation.js +0 -172
  243. package/src/og/control/LayerSwitcher.js +0 -424
  244. package/src/og/control/MouseNavigation.js +0 -436
  245. package/src/og/control/MouseWheelZoomControl.js +0 -253
  246. package/src/og/control/ScaleControl.js +0 -119
  247. package/src/og/control/SegmentBoundVisualization.js +0 -54
  248. package/src/og/control/ShowFps.js +0 -40
  249. package/src/og/control/SimpleNavigation.js +0 -123
  250. package/src/og/control/ToggleWireframe.js +0 -35
  251. package/src/og/control/TouchNavigation.js +0 -350
  252. package/src/og/control/ZoomControl.js +0 -115
  253. package/src/og/control/drawing/DrawingControl.js +0 -51
  254. package/src/og/control/heightRuler/HeightRuler.js +0 -12
  255. package/src/og/control/index.js +0 -56
  256. package/src/og/control/ruler/Ruler.js +0 -39
  257. package/src/og/ellipsoid/index.js +0 -4
  258. package/src/og/entity/BillboardHandler.js +0 -883
  259. package/src/og/entity/Geometry.js +0 -320
  260. package/src/og/entity/PointCloudHandler.js +0 -122
  261. package/src/og/entity/index.js +0 -9
  262. package/src/og/index.js +0 -112
  263. package/src/og/input/KeyboardHandler.js +0 -195
  264. package/src/og/input/TouchHandler.js +0 -59
  265. package/src/og/layer/GeoTexture2d.js +0 -50
  266. package/src/og/layer/index.js +0 -11
  267. package/src/og/math/index.js +0 -23
  268. package/src/og/quadTree/EntityCollectionNode.js +0 -391
  269. package/src/og/quadTree/Wgs84QuadTreeStrategy.js +0 -27
  270. package/src/og/quadTree/index.js +0 -14
  271. package/src/og/res/images.js +0 -8
  272. package/src/og/scene/index.js +0 -5
  273. package/src/og/terrain/EmptyTerrain.js +0 -174
  274. package/src/og/terrain/index.js +0 -6
  275. package/src/og/ui/Button.js +0 -107
  276. package/src/og/ui/ButtonGroup.js +0 -57
  277. package/src/og/ui/Dialog.js +0 -239
  278. package/src/og/ui/Slider.js +0 -170
  279. package/src/og/ui/ToggleButton.js +0 -51
  280. package/src/og/ui/UIhelpers.js +0 -155
  281. package/src/og/utils/BaseWorker.js +0 -46
  282. package/src/og/utils/FontAtlas.js +0 -218
  283. package/src/og/utils/Loader.js +0 -188
  284. package/src/og/utils/TextureAtlas.js +0 -291
  285. package/src/og/utils/functionComposition.js +0 -13
  286. package/src/og/utils/units.js +0 -78
  287. package/src/og/webgl/Framebuffer.js +0 -311
  288. package/src/og/webgl/Handler.js +0 -1170
  289. package/src/og/webgl/Multisample.js +0 -275
  290. package/src/og/webgl/Program.js +0 -407
  291. package/src/og/webgl/callbacks.js +0 -98
  292. package/src/og/webgl/index.js +0 -13
  293. package/src/og.jsdoc +0 -3
  294. package/types/Clock.d.ts +0 -99
  295. package/types/Deferred.d.ts +0 -6
  296. package/types/Events.d.ts +0 -78
  297. package/types/Extent.d.ts +0 -166
  298. package/types/Globe.d.ts +0 -108
  299. package/types/ImageCanvas.d.ts +0 -128
  300. package/types/Lock.d.ts +0 -12
  301. package/types/LonLat.d.ts +0 -127
  302. package/types/Object3d.d.ts +0 -35
  303. package/types/Popup.d.ts +0 -29
  304. package/types/QueueArray.d.ts +0 -19
  305. package/types/Rectangle.d.ts +0 -80
  306. package/types/Stack.d.ts +0 -19
  307. package/types/arial.d.ts +0 -49
  308. package/types/astro/astro.d.ts +0 -38
  309. package/types/astro/earth.d.ts +0 -7
  310. package/types/astro/jd.d.ts +0 -254
  311. package/types/bv/Box.d.ts +0 -30
  312. package/types/bv/Sphere.d.ts +0 -38
  313. package/types/bv/index.d.ts +0 -3
  314. package/types/camera/Camera.d.ts +0 -314
  315. package/types/camera/Frustum.d.ts +0 -133
  316. package/types/camera/PlanetCamera.d.ts +0 -219
  317. package/types/camera/index.d.ts +0 -3
  318. package/types/cons.d.ts +0 -40
  319. package/types/control/Atmosphere.d.ts +0 -15
  320. package/types/control/CompassButton.d.ts +0 -16
  321. package/types/control/Control.d.ts +0 -104
  322. package/types/control/DebugInfo.d.ts +0 -19
  323. package/types/control/DrawingSwitcher.d.ts +0 -13
  324. package/types/control/EarthCoordinates.d.ts +0 -44
  325. package/types/control/EarthNavigation.d.ts +0 -43
  326. package/types/control/GeoImageDragControl.d.ts +0 -14
  327. package/types/control/KeyboardNavigation.d.ts +0 -24
  328. package/types/control/LayerAnimation.d.ts +0 -73
  329. package/types/control/LayerSwitcher.d.ts +0 -64
  330. package/types/control/Lighting.d.ts +0 -41
  331. package/types/control/MouseNavigation.d.ts +0 -49
  332. package/types/control/MouseWheelZoomControl.d.ts +0 -46
  333. package/types/control/ScaleControl.d.ts +0 -23
  334. package/types/control/ShowFps.d.ts +0 -11
  335. package/types/control/SimpleNavigation.d.ts +0 -26
  336. package/types/control/SimpleSkyBackground.d.ts +0 -15
  337. package/types/control/Sun.d.ts +0 -53
  338. package/types/control/ToggleWireframe.d.ts +0 -12
  339. package/types/control/TouchNavigation.d.ts +0 -54
  340. package/types/control/ZoomControl.d.ts +0 -26
  341. package/types/control/drawing/DrawingControl.d.ts +0 -14
  342. package/types/control/drawing/LineStringDrawingScene.d.ts +0 -5
  343. package/types/control/drawing/PolygonDrawingScene.d.ts +0 -99
  344. package/types/control/heightRuler/HeightRuler.d.ts +0 -6
  345. package/types/control/heightRuler/HeightRulerScene.d.ts +0 -23
  346. package/types/control/index.d.ts +0 -27
  347. package/types/control/ruler/Ruler.d.ts +0 -13
  348. package/types/control/ruler/RulerScene.d.ts +0 -51
  349. package/types/control/selection/Selection.d.ts +0 -49
  350. package/types/control/selection/SelectionScene.d.ts +0 -32
  351. package/types/control/timeline/TimelineControl.d.ts +0 -10
  352. package/types/control/timeline/TimelineModel.d.ts +0 -33
  353. package/types/control/timeline/TimelineView.d.ts +0 -57
  354. package/types/control/timeline/timelineUtils.d.ts +0 -9
  355. package/types/ellipsoid/Ellipsoid.d.ts +0 -170
  356. package/types/ellipsoid/index.d.ts +0 -3
  357. package/types/ellipsoid/wgs84.d.ts +0 -6
  358. package/types/entity/BaseBillboard.d.ts +0 -215
  359. package/types/entity/Billboard.d.ts +0 -94
  360. package/types/entity/BillboardHandler.d.ts +0 -75
  361. package/types/entity/Entity.d.ts +0 -340
  362. package/types/entity/EntityCollection.d.ts +0 -303
  363. package/types/entity/GeoObject.d.ts +0 -117
  364. package/types/entity/GeoObjectHandler.d.ts +0 -41
  365. package/types/entity/Geometry.d.ts +0 -79
  366. package/types/entity/GeometryHandler.d.ts +0 -76
  367. package/types/entity/Label.d.ts +0 -190
  368. package/types/entity/LabelHandler.d.ts +0 -31
  369. package/types/entity/LabelWorker.d.ts +0 -9
  370. package/types/entity/PointCloud.d.ts +0 -174
  371. package/types/entity/PointCloudHandler.d.ts +0 -38
  372. package/types/entity/Polyline.d.ts +0 -307
  373. package/types/entity/PolylineHandler.d.ts +0 -18
  374. package/types/entity/Ray.d.ts +0 -122
  375. package/types/entity/RayHandler.d.ts +0 -63
  376. package/types/entity/Strip.d.ts +0 -119
  377. package/types/entity/StripHandler.d.ts +0 -38
  378. package/types/entity/index.d.ts +0 -8
  379. package/types/index.d.ts +0 -53
  380. package/types/input/KeyboardHandler.d.ts +0 -17
  381. package/types/input/MouseHandler.d.ts +0 -5
  382. package/types/input/TouchHandler.d.ts +0 -5
  383. package/types/input/input.d.ts +0 -42
  384. package/types/layer/BaseGeoImage.d.ts +0 -116
  385. package/types/layer/CanvasTiles.d.ts +0 -73
  386. package/types/layer/GeoImage.d.ts +0 -51
  387. package/types/layer/GeoTexture2d.d.ts +0 -7
  388. package/types/layer/GeoVideo.d.ts +0 -47
  389. package/types/layer/KML.d.ts +0 -93
  390. package/types/layer/Layer.d.ts +0 -320
  391. package/types/layer/Material.d.ts +0 -45
  392. package/types/layer/Vector.d.ts +0 -211
  393. package/types/layer/WMS.d.ts +0 -66
  394. package/types/layer/XYZ.d.ts +0 -122
  395. package/types/layer/index.d.ts +0 -10
  396. package/types/light/LightSource.d.ts +0 -178
  397. package/types/math/Line2.d.ts +0 -11
  398. package/types/math/Line3.d.ts +0 -10
  399. package/types/math/Mat3.d.ts +0 -65
  400. package/types/math/Mat4.d.ts +0 -176
  401. package/types/math/Plane.d.ts +0 -18
  402. package/types/math/Quat.d.ts +0 -379
  403. package/types/math/Ray.d.ts +0 -82
  404. package/types/math/Vec2.d.ts +0 -309
  405. package/types/math/Vec3.d.ts +0 -472
  406. package/types/math/Vec4.d.ts +0 -161
  407. package/types/math/coder.d.ts +0 -43
  408. package/types/math/index.d.ts +0 -11
  409. package/types/math.d.ts +0 -268
  410. package/types/mercator.d.ts +0 -92
  411. package/types/proj/EPSG3857.d.ts +0 -6
  412. package/types/proj/EPSG4326.d.ts +0 -6
  413. package/types/proj/Proj.d.ts +0 -42
  414. package/types/quadTree/EPSG4326QuadTreeStrategy.d.ts +0 -3
  415. package/types/quadTree/EarthQuadTreeStrategy.d.ts +0 -3
  416. package/types/quadTree/EntityCollectionNode.d.ts +0 -41
  417. package/types/quadTree/MarsQuadTreeStrategy.d.ts +0 -3
  418. package/types/quadTree/Node.d.ts +0 -58
  419. package/types/quadTree/QuadTreeStrategy.d.ts +0 -21
  420. package/types/quadTree/Wgs84QuadTreeStrategy.d.ts +0 -3
  421. package/types/quadTree/index.d.ts +0 -12
  422. package/types/quadTree/quadTree.d.ts +0 -40
  423. package/types/renderer/Renderer.d.ts +0 -291
  424. package/types/renderer/RendererEvents.d.ts +0 -241
  425. package/types/res/images.d.ts +0 -2
  426. package/types/scene/Axes.d.ts +0 -10
  427. package/types/scene/BaseNode.d.ts +0 -60
  428. package/types/scene/Planet.d.ts +0 -594
  429. package/types/scene/RenderNode.d.ts +0 -152
  430. package/types/scene/SkyBox.d.ts +0 -9
  431. package/types/scene/index.d.ts +0 -4
  432. package/types/segment/Segment.d.ts +0 -273
  433. package/types/segment/SegmentLonLat.d.ts +0 -22
  434. package/types/segment/SegmentLonLatWgs84.d.ts +0 -4
  435. package/types/segment/Slice.d.ts +0 -10
  436. package/types/segment/segmentHelper.d.ts +0 -13
  437. package/types/shaders/atmos.d.ts +0 -4
  438. package/types/shaders/billboard.d.ts +0 -3
  439. package/types/shaders/depth.d.ts +0 -2
  440. package/types/shaders/drawnode.d.ts +0 -8
  441. package/types/shaders/geoObject.d.ts +0 -3
  442. package/types/shaders/label.d.ts +0 -4
  443. package/types/shaders/pickingMask.d.ts +0 -2
  444. package/types/shaders/pointCloud.d.ts +0 -2
  445. package/types/shaders/polyline.d.ts +0 -3
  446. package/types/shaders/ray.d.ts +0 -2
  447. package/types/shaders/screenFrame.d.ts +0 -2
  448. package/types/shaders/skybox.d.ts +0 -2
  449. package/types/shaders/toneMapping.d.ts +0 -2
  450. package/types/shaders/utils.d.ts +0 -1
  451. package/types/terrain/BilTerrain.d.ts +0 -14
  452. package/types/terrain/EmptyTerrain.d.ts +0 -87
  453. package/types/terrain/Geoid.d.ts +0 -17
  454. package/types/terrain/GlobusTerrain.d.ts +0 -122
  455. package/types/terrain/MapboxTerrain.d.ts +0 -14
  456. package/types/terrain/index.d.ts +0 -5
  457. package/types/ui/Button.d.ts +0 -21
  458. package/types/ui/ButtonGroup.d.ts +0 -12
  459. package/types/ui/Dialog.d.ts +0 -41
  460. package/types/ui/Slider.d.ts +0 -33
  461. package/types/ui/ToggleButton.d.ts +0 -10
  462. package/types/ui/UIhelpers.d.ts +0 -13
  463. package/types/ui/View.d.ts +0 -33
  464. package/types/ui/icons.d.ts +0 -1
  465. package/types/utils/BaseWorker.d.ts +0 -14
  466. package/types/utils/FontAtlas.d.ts +0 -16
  467. package/types/utils/GeoImageCreator.d.ts +0 -30
  468. package/types/utils/ImagesCacheManager.d.ts +0 -10
  469. package/types/utils/Loader.d.ts +0 -31
  470. package/types/utils/NormalMapCreator.d.ts +0 -39
  471. package/types/utils/PlainSegmentWorker.d.ts +0 -8
  472. package/types/utils/TerrainWorker.d.ts +0 -7
  473. package/types/utils/TextureAtlas.d.ts +0 -113
  474. package/types/utils/VectorTileCreator.d.ts +0 -14
  475. package/types/utils/colorTable.d.ts +0 -143
  476. package/types/utils/earcut.d.ts +0 -6
  477. package/types/utils/functionComposition.d.ts +0 -5
  478. package/types/utils/objParser.d.ts +0 -8
  479. package/types/utils/shared.d.ts +0 -241
  480. package/types/utils/units.d.ts +0 -20
  481. package/types/webgl/Framebuffer.d.ts +0 -134
  482. package/types/webgl/Handler.d.ts +0 -403
  483. package/types/webgl/Multisample.d.ts +0 -91
  484. package/types/webgl/Program.d.ts +0 -163
  485. package/types/webgl/ProgramController.d.ts +0 -89
  486. package/types/webgl/callbacks.d.ts +0 -1
  487. package/types/webgl/index.d.ts +0 -6
  488. package/types/webgl/types.d.ts +0 -2
  489. /package/{src/og → dist/@openglobus/res/fonts}/arial.js +0 -0
  490. /package/src/{og/ui/icons.js → ui/icons.ts} +0 -0
@@ -1,9 +1,7 @@
1
- "use strict";
2
-
3
- import * as math from "../math.js";
4
- import { Mat3 } from "./Mat3.js";
5
- import { Mat4 } from "./Mat4.js";
6
- import { Vec3 } from "./Vec3.js";
1
+ import * as math from "../math";
2
+ import {Vec3} from "./Vec3";
3
+ import {Mat4} from "./Mat4";
4
+ import {Mat3} from "./Mat3";
7
5
 
8
6
  /**
9
7
  * A set of 4-dimensional coordinates used to represent rotation in 3-dimensional space.
@@ -15,43 +13,42 @@ import { Vec3 } from "./Vec3.js";
15
13
  */
16
14
  export class Quat {
17
15
  /**
18
- * @param {Number} [x=0.0] The X component.
19
- * @param {Number} [y=0.0] The Y component.
20
- * @param {Number} [z=0.0] The Z component.
21
- * @param {Number} [w=0.0] The W component.
16
+ * The X component.
17
+ * @public
18
+ * @type {Number}
19
+ * @default 0.0
20
+ */
21
+ public x: number;
22
+
23
+ /**
24
+ * The Y component.
25
+ * @public
26
+ * @type {Number}
27
+ * @default 0.0
28
+ */
29
+ public y: number;
30
+
31
+ /**
32
+ * The Z component.
33
+ * @public
34
+ * @type {Number}
35
+ * @default 0.0
22
36
  */
23
- constructor(x = 0.0, y = 0.0, z = 0.0, w = 0.0) {
24
- /**
25
- * The X component.
26
- * @public
27
- * @type {Number}
28
- * @default 0.0
29
- */
30
- this.x = x || 0.0;
31
-
32
- /**
33
- * The Y component.
34
- * @public
35
- * @type {Number}
36
- * @default 0.0
37
- */
38
- this.y = y || 0.0;
39
-
40
- /**
41
- * The Z component.
42
- * @public
43
- * @type {Number}
44
- * @default 0.0
45
- */
46
- this.z = z || 0.0;
47
-
48
- /**
49
- * The W component.
50
- * @public
51
- * @type {Number}
52
- * @default 0.0
53
- */
54
- this.w = w || 0.0;
37
+ public z: number;
38
+
39
+ /**
40
+ * The W component.
41
+ * @public
42
+ * @type {Number}
43
+ * @default 0.0
44
+ */
45
+ public w: number;
46
+
47
+ constructor(x: number = 0.0, y: number = 0.0, z: number = 0.0, w: number = 0.0) {
48
+ this.x = x;
49
+ this.y = y;
50
+ this.z = z;
51
+ this.w = w;
55
52
  }
56
53
 
57
54
  /**
@@ -59,7 +56,7 @@ export class Quat {
59
56
  * @const
60
57
  * @type {Quat}
61
58
  */
62
- static get IDENTITY() {
59
+ static get IDENTITY(): Quat {
63
60
  return new Quat(0.0, 0.0, 0.0, 1.0);
64
61
  }
65
62
 
@@ -69,7 +66,7 @@ export class Quat {
69
66
  * @param {number} a - The angle in radians to rotate around the axis.
70
67
  * @returns {Quat} -
71
68
  */
72
- static xRotation(a) {
69
+ static xRotation(a: number): Quat {
73
70
  a *= 0.5;
74
71
  return new Quat(Math.sin(a), 0.0, 0.0, Math.cos(a));
75
72
  }
@@ -80,7 +77,7 @@ export class Quat {
80
77
  * @param {number} a - The angle in radians to rotate around the axis.
81
78
  * @returns {Quat} -
82
79
  */
83
- static yRotation(a) {
80
+ static yRotation(a: number): Quat {
84
81
  a *= 0.5;
85
82
  return new Quat(0.0, Math.sin(a), 0.0, Math.cos(a));
86
83
  }
@@ -91,7 +88,7 @@ export class Quat {
91
88
  * @param {number} a - The angle in radians to rotate around the axis.
92
89
  * @returns {Quat} -
93
90
  */
94
- static zRotation(a) {
91
+ static zRotation(a: number): Quat {
95
92
  a *= 0.5;
96
93
  return new Quat(0.0, 0.0, Math.sin(a), Math.cos(a));
97
94
  }
@@ -103,11 +100,10 @@ export class Quat {
103
100
  * @param {number} [angle=0.0] The angle in radians to rotate around the axis.
104
101
  * @returns {Quat} -
105
102
  */
106
- static axisAngleToQuat(axis, angle) {
107
- angle = angle || 0.0;
108
- var v = axis.normal();
109
- var half_angle = angle * 0.5;
110
- var sin_a = Math.sin(half_angle);
103
+ static axisAngleToQuat(axis: Vec3, angle: number = 0): Quat {
104
+ let v = axis.getNormal();
105
+ let half_angle = angle * 0.5;
106
+ let sin_a = Math.sin(half_angle);
111
107
  return new Quat(v.x * sin_a, v.y * sin_a, v.z * sin_a, Math.cos(half_angle));
112
108
  }
113
109
 
@@ -118,12 +114,11 @@ export class Quat {
118
114
  * @param {Vec3} up - Up vector.
119
115
  * @returns {Quat} -
120
116
  */
121
- static getLookRotation(forward, up) {
122
- var f = forward.normal().negate();
123
- var s = up.cross(f).normalize();
124
- var u = f.cross(s);
125
-
126
- var z = 1.0 + s.x + u.y + f.z;
117
+ static getLookRotation(forward: Vec3, up: Vec3): Quat {
118
+ let f = forward.getNormal().negate();
119
+ let s = up.cross(f).normalize();
120
+ let u = f.cross(s);
121
+ let z = 1.0 + s.x + u.y + f.z;
127
122
 
128
123
  if (z > 0.000001) {
129
124
  let fd = 1.0 / (2.0 * Math.sqrt(z));
@@ -145,23 +140,23 @@ export class Quat {
145
140
  }
146
141
 
147
142
  /**
148
- * Computes a Quat from from source point heading to the destination point.
143
+ * Computes a Quat from source point heading to the destination point.
149
144
  * @static
150
145
  * @param {Vec3} sourcePoint - Source coordinate.
151
146
  * @param {Vec3} destPoint - Destination coordinate.
152
147
  * @returns {Quat} -
153
148
  */
154
- static getLookAtSourceDest(sourcePoint, destPoint) {
155
- var forwardVector = destPoint.subA(sourcePoint).normalize();
156
- var dot = Vec3.FORWARD.dot(forwardVector);
149
+ static getLookAtSourceDest(sourcePoint: Vec3, destPoint: Vec3): Quat {
150
+ let forwardVector = destPoint.subA(sourcePoint).normalize();
151
+ let dot = Vec3.FORWARD.dot(forwardVector);
157
152
  if (Math.abs(dot - -1.0) < 0.000001) {
158
153
  return Quat.axisAngleToQuat(Vec3.UP, Math.PI);
159
154
  }
160
155
  if (Math.abs(dot - 1.0) < 0.000001) {
161
156
  return new Quat(0.0, 0.0, 0.0, 1.0);
162
157
  }
163
- var rotAngle = Math.acos(dot);
164
- var rotAxis = Vec3.FORWARD.cross(forwardVector).normalize();
158
+ let rotAngle = Math.acos(dot);
159
+ let rotAxis = Vec3.FORWARD.cross(forwardVector).normalize();
165
160
  return Quat.axisAngleToQuat(rotAxis, rotAngle);
166
161
  }
167
162
 
@@ -172,9 +167,9 @@ export class Quat {
172
167
  * @param {Vec3} v - Second vector.
173
168
  * @returns {Quat} -
174
169
  */
175
- static getRotationBetweenVectors(u, v) {
176
- var w = u.cross(v);
177
- var q = new Quat(w.x, w.y, w.z, 1.0 + u.dot(v));
170
+ static getRotationBetweenVectors(u: Vec3, v: Vec3): Quat {
171
+ let w = u.cross(v);
172
+ let q = new Quat(w.x, w.y, w.z, 1.0 + u.dot(v));
178
173
  return q.normalize();
179
174
  }
180
175
 
@@ -186,46 +181,45 @@ export class Quat {
186
181
  * @param {Quat} res
187
182
  * @returns {Quat} -
188
183
  */
189
- static getRotationBetweenVectorsRes(u, v, res) {
190
- var w = u.cross(v);
184
+ static getRotationBetweenVectorsRes(u: Vec3, v: Vec3, res: Quat): Quat {
185
+ let w = u.cross(v);
191
186
  res.set(w.x, w.y, w.z, 1.0 + u.dot(v));
192
187
  return res.normalize();
193
188
  }
194
189
 
195
190
  /**
196
191
  * Compute rotation between two vectors with around vector up
197
- * for exactly opposite vectors. If vectors exaclty in the same
198
- * direction than returns identity Quat.
192
+ * for exactly opposite vectors. If vectors exactly in the same
193
+ * direction as returns identity Quat.
199
194
  * @static
200
195
  * @param {Vec3} source - First vector.
201
196
  * @param {Vec3} dest - Second vector.
202
197
  * @param {Vec3} up - Up vector.
203
198
  * @returns {Quat} -
204
199
  */
205
- static getRotationBetweenVectorsUp(source, dest, up) {
206
- var dot = source.dot(dest);
200
+ static getRotationBetweenVectorsUp(source: Vec3, dest: Vec3, up: Vec3): Quat {
201
+ let dot = source.dot(dest);
207
202
  if (Math.abs(dot + 1.0) < 0.000001) {
208
203
  // vector source and dest point exactly in the opposite direction,
209
204
  // so it is a 180 degrees turn around the up-axis
210
205
  return Quat.axisAngleToQuat(up, Math.PI);
211
206
  }
212
207
  if (Math.abs(dot - 1.0) < 0.000001) {
213
- // vector source and dest point exactly in the same direction
208
+ // vector source and dest point exactly in the same direction,
214
209
  // so we return the identity Quat
215
210
  return new Quat(0, 0, 0, 1);
216
211
  }
217
- var rotAngle = Math.acos(dot);
218
- var rotAxis = source.cross(dest).normalize();
212
+ let rotAngle = Math.acos(dot);
213
+ let rotAxis = source.cross(dest).normalize();
219
214
  return Quat.axisAngleToQuat(rotAxis, rotAngle);
220
215
  }
221
216
 
222
217
  /**
223
218
  * Returns true if the components are zero.
224
219
  * @public
225
- * @param {Quat} q - Quat to subtract.
226
- * @returns {Quat} -
220
+ * @returns {boolean} -
227
221
  */
228
- isZero() {
222
+ public isZero(): boolean {
229
223
  return this.x === 0.0 && this.y === 0.0 && this.z === 0.0 && this.w === 0.0;
230
224
  }
231
225
 
@@ -234,7 +228,7 @@ export class Quat {
234
228
  * @public
235
229
  * @returns {Quat} -
236
230
  */
237
- clear() {
231
+ public clear(): Quat {
238
232
  this.x = this.y = this.z = this.w = 0;
239
233
  return this;
240
234
  }
@@ -248,7 +242,7 @@ export class Quat {
248
242
  * @param {Number} [w=0.0] The W component.
249
243
  * @returns {Quat} -
250
244
  */
251
- set(x, y, z, w) {
245
+ public set(x: number, y: number, z: number, w: number): Quat {
252
246
  this.x = x;
253
247
  this.y = y;
254
248
  this.z = z;
@@ -262,7 +256,7 @@ export class Quat {
262
256
  * @param {Quat} q - Copy Quat.
263
257
  * @returns {Quat} -
264
258
  */
265
- copy(q) {
259
+ public copy(q: Quat): Quat {
266
260
  this.x = q.x;
267
261
  this.y = q.y;
268
262
  this.z = q.z;
@@ -275,7 +269,7 @@ export class Quat {
275
269
  * @public
276
270
  * @returns {Quat} -
277
271
  */
278
- setIdentity() {
272
+ public setIdentity(): Quat {
279
273
  this.x = 0.0;
280
274
  this.y = 0.0;
281
275
  this.z = 0.0;
@@ -288,7 +282,7 @@ export class Quat {
288
282
  * @public
289
283
  * @returns {Quat} -
290
284
  */
291
- clone() {
285
+ public clone(): Quat {
292
286
  return new Quat(this.x, this.y, this.z, this.w);
293
287
  }
294
288
 
@@ -298,7 +292,7 @@ export class Quat {
298
292
  * @param {Quat} q - Quat to add.
299
293
  * @returns {Quat} -
300
294
  */
301
- add(q) {
295
+ public add(q: Quat): Quat {
302
296
  return new Quat(this.x + q.x, this.y + q.y, this.z + q.z, this.w + q.w);
303
297
  }
304
298
 
@@ -308,7 +302,7 @@ export class Quat {
308
302
  * @param {Quat} q - Quat to subtract.
309
303
  * @returns {Quat} -
310
304
  */
311
- sub(q) {
305
+ public sub(q: Quat): Quat {
312
306
  return new Quat(this.x - q.x, this.y - q.y, this.z - q.z, this.w - q.w);
313
307
  }
314
308
 
@@ -318,7 +312,7 @@ export class Quat {
318
312
  * @param {Number} scale - The scalar to multiply with.
319
313
  * @returns {Quat} -
320
314
  */
321
- scaleTo(scale) {
315
+ public scaleTo(scale: number): Quat {
322
316
  return new Quat(this.x * scale, this.y * scale, this.z * scale, this.w * scale);
323
317
  }
324
318
 
@@ -328,7 +322,7 @@ export class Quat {
328
322
  * @param {Number} scale - The scalar to multiply with.
329
323
  * @returns {Quat} -
330
324
  */
331
- scale(scale) {
325
+ public scale(scale: number): Quat {
332
326
  this.x *= scale;
333
327
  this.y *= scale;
334
328
  this.z *= scale;
@@ -341,7 +335,7 @@ export class Quat {
341
335
  * @public
342
336
  * @returns {Array.<number>} - (exactly 4 entries)
343
337
  */
344
- toVec() {
338
+ public toVec(): [number, number, number, number] {
345
339
  return [this.x, this.y, this.z, this.w];
346
340
  }
347
341
 
@@ -353,17 +347,19 @@ export class Quat {
353
347
  * @param {number} angle - Angle in radians.
354
348
  * @returns {Quat} -
355
349
  */
356
- setFromSphericalCoords(lat, lon, angle) {
357
- var sin_a = Math.sin(angle / 2);
358
- var cos_a = Math.cos(angle / 2);
359
- var sin_lat = Math.sin(lat);
360
- var cos_lat = Math.cos(lat);
361
- var sin_long = Math.sin(lon);
362
- var cos_long = Math.cos(lon);
350
+ public setFromSphericalCoords(lat: number, lon: number, angle: number): Quat {
351
+ let sin_a = Math.sin(angle / 2);
352
+ let cos_a = Math.cos(angle / 2);
353
+ let sin_lat = Math.sin(lat);
354
+ let cos_lat = Math.cos(lat);
355
+ let sin_long = Math.sin(lon);
356
+ let cos_long = Math.cos(lon);
357
+
363
358
  this.x = sin_a * cos_lat * sin_long;
364
359
  this.y = sin_a * sin_lat;
365
360
  this.z = sin_a * sin_lat * cos_long;
366
361
  this.w = cos_a;
362
+
367
363
  return this;
368
364
  }
369
365
 
@@ -374,12 +370,11 @@ export class Quat {
374
370
  * @param {Vec3} up - Up vector.
375
371
  * @returns {Quat} -
376
372
  */
377
- setLookRotation(forward, up) {
378
- var f = forward.normal().negate();
379
- var s = up.cross(f).normalize();
380
- var u = f.cross(s);
381
-
382
- var z = 1.0 + s.x + u.y + f.z;
373
+ public setLookRotation(forward: Vec3, up: Vec3): Quat {
374
+ let f = forward.getNormal().negate();
375
+ let s = up.cross(f).normalize();
376
+ let u = f.cross(s);
377
+ let z = 1.0 + s.x + u.y + f.z;
383
378
 
384
379
  if (z > 0.000001) {
385
380
  let fd = 1.0 / (2.0 * Math.sqrt(z));
@@ -415,29 +410,37 @@ export class Quat {
415
410
  * @public
416
411
  * @returns {Object} Returns object with latitude, longitude and alpha.
417
412
  */
418
- toSphericalCoords() {
419
- var cos_a = this.w;
420
- var sin_a = Math.sqrt(1.0 - cos_a * cos_a);
413
+ public toSphericalCoords(): any {
414
+
415
+ let cos_a = this.w;
416
+ let sin_a = Math.sqrt(1.0 - cos_a * cos_a);
417
+
421
418
  // var angle = Math.acos(cos_a) * 2;
422
419
  if (Math.abs(sin_a) < 0.0005) {
423
420
  sin_a = 1;
424
421
  }
425
- var tx = this.x / sin_a;
426
- var ty = this.y / sin_a;
427
- var tz = this.z / sin_a;
428
422
 
429
- var lon,
430
- lat = -Math.asin(ty);
423
+ let tx = this.x / sin_a;
424
+ let ty = this.y / sin_a;
425
+ let tz = this.z / sin_a;
426
+
427
+ let lon, lat = -Math.asin(ty);
428
+
431
429
  if (tx * tx + tz * tz < 0.0005) {
432
430
  lon = 0;
433
431
  } else {
434
432
  lon = Math.atan2(tx, tz);
435
433
  }
434
+
436
435
  if (lon < 0) {
437
436
  lon += 360.0;
438
437
  }
439
438
 
440
- return { lat: lat, lon: lon, alpha: Math.acos(cos_a) };
439
+ return {
440
+ lat: lat,
441
+ lon: lon,
442
+ alpha: Math.acos(cos_a)
443
+ };
441
444
  }
442
445
 
443
446
  /**
@@ -447,10 +450,10 @@ export class Quat {
447
450
  * @param {number} angle The angle in radians to rotate around the axis.
448
451
  * @returns {Quat} -
449
452
  */
450
- setFromAxisAngle(axis, angle) {
451
- var v = axis.normal();
452
- var half_angle = angle * 0.5;
453
- var sin_a = Math.sin(half_angle);
453
+ public setFromAxisAngle(axis: Vec3, angle: number): Quat {
454
+ let v = axis.getNormal();
455
+ let half_angle = angle * 0.5;
456
+ let sin_a = Math.sin(half_angle);
454
457
  this.set(v.x * sin_a, v.y * sin_a, v.z * sin_a, Math.cos(half_angle));
455
458
  return this;
456
459
  }
@@ -460,15 +463,15 @@ export class Quat {
460
463
  * @public
461
464
  * @returns {Object} -
462
465
  */
463
- getAxisAngle() {
466
+ public getAxisAngle(): any {
464
467
  let x = this.x,
465
468
  y = this.y,
466
469
  z = this.z,
467
470
  w = this.w;
468
- var vl = Math.sqrt(x * x + y * y + z * z);
469
- var axis, angle;
471
+ let vl = Math.sqrt(x * x + y * y + z * z);
472
+ let axis, angle;
470
473
  if (vl > 0.0000001) {
471
- var ivl = 1.0 / vl;
474
+ let ivl = 1.0 / vl;
472
475
  axis = new Vec3(x * ivl, y * ivl, z * ivl);
473
476
  if (w < 0) {
474
477
  angle = 2.0 * Math.atan2(-vl, -w); // -PI,0
@@ -479,7 +482,11 @@ export class Quat {
479
482
  axis = new Vec3(0, 0, 0);
480
483
  angle = 0;
481
484
  }
482
- return { axis: axis, angle: angle };
485
+
486
+ return {
487
+ axis: axis,
488
+ angle: angle
489
+ };
483
490
  }
484
491
 
485
492
  /**
@@ -490,20 +497,20 @@ export class Quat {
490
497
  * @param {number} roll - Roll angle in degrees.
491
498
  * @returns {Quat} -
492
499
  */
493
- setFromEulerAngles(pitch, yaw, roll) {
494
- var ex = pitch * math.RADIANS_HALF,
500
+ public setFromEulerAngles(pitch: number, yaw: number, roll: number): Quat {
501
+ let ex = pitch * math.RADIANS_HALF,
495
502
  ey = yaw * math.RADIANS_HALF,
496
503
  ez = roll * math.RADIANS_HALF;
497
504
 
498
- var cr = Math.cos(ex),
505
+ let cr = Math.cos(ex),
499
506
  cp = Math.cos(ey),
500
507
  cy = Math.cos(ez);
501
508
 
502
- var sr = Math.sin(ex),
509
+ let sr = Math.sin(ex),
503
510
  sp = Math.sin(ey),
504
511
  sy = Math.sin(ez);
505
512
 
506
- var cpcy = cp * cy,
513
+ let cpcy = cp * cy,
507
514
  spsy = sp * sy;
508
515
 
509
516
  this.w = cr * cpcy + sr * spsy;
@@ -519,7 +526,7 @@ export class Quat {
519
526
  * @public
520
527
  * @returns {Object} -
521
528
  */
522
- getEulerAngles() {
529
+ public getEulerAngles(): any {
523
530
  let x = this.x,
524
531
  y = this.y,
525
532
  z = this.z,
@@ -540,23 +547,27 @@ export class Quat {
540
547
 
541
548
  let yaw = Math.atan2(2.0 * (w * z + x * y), 1.0 - 2.0 * (sqy + z * z));
542
549
 
543
- return { roll, pitch, yaw };
550
+ return {
551
+ roll,
552
+ pitch,
553
+ yaw
554
+ };
544
555
  }
545
556
 
546
557
  /**
547
558
  * Computes a Quat from the provided 4x4 matrix instance.
548
559
  * @public
549
- * @param {Mat4} m - The rotation matrix.
560
+ * @param {Mat4} mx - The rotation matrix.
550
561
  * @returns {Quat} -
551
562
  */
552
- setFromMatrix4(m) {
553
- var tr,
563
+ public setFromMatrix4(mx: Mat4): Quat {
564
+ let tr,
554
565
  s,
555
566
  q = [];
556
- var i, j, k;
557
- m = m._m;
567
+ let i, j, k;
568
+ let m = mx._m;
558
569
 
559
- var nxt = [1, 2, 0];
570
+ let nxt = [1, 2, 0];
560
571
 
561
572
  tr = m[0] + m[5] + m[10];
562
573
 
@@ -595,39 +606,28 @@ export class Quat {
595
606
  /**
596
607
  * Converts current Quat to the rotation 4x4 matrix.
597
608
  * @public
609
+ * @params {Mat4} [out] - Output matrix
598
610
  * @returns {Mat4} -
599
611
  */
600
- getMat4(out) {
601
- var xs = this.x + this.x;
602
- var ys = this.y + this.y;
603
- var zs = this.z + this.z;
604
- var wx = this.w * xs;
605
- var wy = this.w * ys;
606
- var wz = this.w * zs;
607
- var xx = this.x * xs;
608
- var xy = this.x * ys;
609
- var xz = this.x * zs;
610
- var yy = this.y * ys;
611
- var yz = this.y * zs;
612
- var zz = this.z * zs;
613
- var m = out || new Mat4();
614
- return m.set([
615
- 1 - (yy + zz),
616
- xy - wz,
617
- xz + wy,
618
- 0,
619
- xy + wz,
620
- 1 - (xx + zz),
621
- yz - wx,
622
- 0,
623
- xz - wy,
624
- yz + wx,
625
- 1 - (xx + yy),
626
- 0,
627
- 0,
628
- 0,
629
- 0,
630
- 1
612
+ public getMat4(out: Mat4 = new Mat4()): Mat4 {
613
+ let xs = this.x + this.x;
614
+ let ys = this.y + this.y;
615
+ let zs = this.z + this.z;
616
+ let wx = this.w * xs;
617
+ let wy = this.w * ys;
618
+ let wz = this.w * zs;
619
+ let xx = this.x * xs;
620
+ let xy = this.x * ys;
621
+ let xz = this.x * zs;
622
+ let yy = this.y * ys;
623
+ let yz = this.y * zs;
624
+ let zz = this.z * zs;
625
+
626
+ return out.set([
627
+ 1 - (yy + zz), xy - wz, xz + wy, 0,
628
+ xy + wz, 1 - (xx + zz), yz - wx, 0,
629
+ xz - wy, yz + wx, 1 - (xx + yy), 0,
630
+ 0, 0, 0, 1
631
631
  ]);
632
632
  }
633
633
 
@@ -637,10 +637,10 @@ export class Quat {
637
637
  * @returns {Mat3} -
638
638
  * @todo NOT TESTED
639
639
  */
640
- getMat3() {
641
- var m = new Mat3();
642
- var mx = m._m;
643
- var c = this.x,
640
+ public getMat3(): Mat3 {
641
+ let m = new Mat3();
642
+ let mx = m._m;
643
+ let c = this.x,
644
644
  d = this.y,
645
645
  e = this.z,
646
646
  g = this.w,
@@ -652,7 +652,7 @@ export class Quat {
652
652
 
653
653
  c = c * i;
654
654
 
655
- var l = d * h;
655
+ let l = d * h;
656
656
 
657
657
  d = d * i;
658
658
  e = e * i;
@@ -674,25 +674,25 @@ export class Quat {
674
674
  }
675
675
 
676
676
  /**
677
- * Returns quatrenion and vector production.
677
+ * Returns quaternion and vector production.
678
678
  * @public
679
679
  * @param {Vec3} v - 3d Vector.
680
680
  * @returns {Vec3} -
681
681
  */
682
- mulVec3(v) {
682
+ public mulVec3(v: Vec3): Vec3 {
683
683
  // t = 2 * cross(q.xyz, v)
684
684
  // v' = v + q.w * t + cross(q.xyz, t)
685
685
 
686
- var d = v.x,
686
+ let d = v.x,
687
687
  e = v.y,
688
688
  g = v.z;
689
689
 
690
- var b = this.x,
690
+ let b = this.x,
691
691
  f = this.y,
692
692
  h = this.z,
693
693
  a = this.w;
694
694
 
695
- var i = a * d + f * g - h * e,
695
+ let i = a * d + f * g - h * e,
696
696
  j = a * e + h * d - b * g,
697
697
  k = a * g + b * e - f * d;
698
698
 
@@ -711,15 +711,17 @@ export class Quat {
711
711
  * @param {Quat} q - Quat to multiply.
712
712
  * @returns {Quat} -
713
713
  */
714
- mul(q) {
715
- var d = this.x,
714
+ public mul(q: Quat): Quat {
715
+ let d = this.x,
716
716
  e = this.y,
717
717
  g = this.z,
718
718
  a = this.w;
719
- var f = q.x,
719
+
720
+ let f = q.x,
720
721
  h = q.y,
721
722
  i = q.z,
722
723
  b = q.w;
724
+
723
725
  return new Quat(
724
726
  d * b + a * f + e * i - g * h,
725
727
  e * b + a * h + g * f - d * i,
@@ -734,19 +736,22 @@ export class Quat {
734
736
  * @param {Quat} q - Quat to multiply.
735
737
  * @returns {Quat} -
736
738
  */
737
- mulA(q) {
738
- var d = this.x,
739
+ public mulA(q: Quat): Quat {
740
+ let d = this.x,
739
741
  e = this.y,
740
742
  g = this.z,
741
743
  a = this.w;
742
- var f = q.x,
744
+
745
+ let f = q.x,
743
746
  h = q.y,
744
747
  i = q.z,
745
748
  b = q.w;
749
+
746
750
  this.x = d * b + a * f + e * i - g * h;
747
751
  this.y = e * b + a * h + g * f - d * i;
748
752
  this.z = g * b + a * i + d * h - e * f;
749
753
  this.w = a * b - d * f - e * h - g * i;
754
+
750
755
  return this;
751
756
  }
752
757
 
@@ -755,7 +760,7 @@ export class Quat {
755
760
  * @public
756
761
  * @returns {Quat} -
757
762
  */
758
- conjugate() {
763
+ public conjugate(): Quat {
759
764
  return new Quat(-this.x, -this.y, -this.z, this.w);
760
765
  }
761
766
 
@@ -764,8 +769,8 @@ export class Quat {
764
769
  * @public
765
770
  * @returns {Quat} -
766
771
  */
767
- inverse() {
768
- var n = 1 / this.magnitude2();
772
+ public inverse(): Quat {
773
+ let n = 1.0 / this.magnitude2();
769
774
  return new Quat(-this.x * n, -this.y * n, -this.z * n, this.w * n);
770
775
  }
771
776
 
@@ -774,8 +779,8 @@ export class Quat {
774
779
  * @public
775
780
  * @returns {number} -
776
781
  */
777
- magnitude() {
778
- var b = this.x,
782
+ public magnitude(): number {
783
+ let b = this.x,
779
784
  c = this.y,
780
785
  d = this.z,
781
786
  a = this.w;
@@ -787,8 +792,8 @@ export class Quat {
787
792
  * @public
788
793
  * @returns {number} -
789
794
  */
790
- magnitude2() {
791
- var b = this.x,
795
+ public magnitude2(): number {
796
+ let b = this.x,
792
797
  c = this.y,
793
798
  d = this.z,
794
799
  a = this.w;
@@ -798,10 +803,10 @@ export class Quat {
798
803
  /**
799
804
  * Computes the dot (scalar) product of two Quats.
800
805
  * @public
801
- * @param {Quat} q - Second quatrnion.
806
+ * @param {Quat} q - Second quaternion.
802
807
  * @returns {number} -
803
808
  */
804
- dot(q) {
809
+ public dot(q: Quat): number {
805
810
  return this.x * q.x + this.y * q.y + this.z * q.z;
806
811
  }
807
812
 
@@ -810,12 +815,14 @@ export class Quat {
810
815
  * @public
811
816
  * @returns {Quat} -
812
817
  */
813
- normalize() {
814
- var c = this.x,
818
+ public normalize(): Quat {
819
+
820
+ let c = this.x,
815
821
  d = this.y,
816
822
  e = this.z,
817
823
  g = this.w,
818
824
  f = Math.sqrt(c * c + d * d + e * e + g * g);
825
+
819
826
  if (f === 0.0) {
820
827
  this.x = 0;
821
828
  this.y = 0;
@@ -823,22 +830,24 @@ export class Quat {
823
830
  this.w = 0;
824
831
  return this;
825
832
  }
833
+
826
834
  f = 1 / f;
827
835
  this.x = c * f;
828
836
  this.y = d * f;
829
837
  this.z = e * f;
830
838
  this.w = g * f;
839
+
831
840
  return this;
832
841
  }
833
842
 
834
843
  /**
835
844
  * Compares two Quats.
836
845
  * @public
837
- * @param {Quat} q - Second quatrnion.
846
+ * @param {Quat} q - Second quaternion.
838
847
  * @returns {Boolean} -
839
848
  */
840
- isEqual(q) {
841
- var matching = this.dot(q);
849
+ public isEqual(q: Quat): boolean {
850
+ let matching = this.dot(q);
842
851
  if (Math.abs(matching - 1.0) < 0.001) {
843
852
  return true;
844
853
  }
@@ -852,8 +861,9 @@ export class Quat {
852
861
  * @param {number} t - interpolation amount between the two Quats.
853
862
  * @returns {Quat} -
854
863
  */
855
- slerp(b, t) {
856
- var ax = this.x,
864
+ public slerp(b: Quat, t: number): Quat {
865
+
866
+ let ax = this.x,
857
867
  ay = this.y,
858
868
  az = this.z,
859
869
  aw = this.w,
@@ -862,7 +872,7 @@ export class Quat {
862
872
  bz = b.z,
863
873
  bw = b.w;
864
874
 
865
- var omega, cosom, sinom, scale0, scale1;
875
+ let omega, cosom, sinom, scale0, scale1;
866
876
 
867
877
  cosom = ax * bx + ay * by + az * bz + aw * bw;
868
878
 
@@ -898,18 +908,20 @@ export class Quat {
898
908
  * @param {Boolean} [reprojectAxis] -
899
909
  * @returns {Number} -
900
910
  */
901
- getRoll(reprojectAxis) {
902
- var x = this.x,
911
+ public getRoll(reprojectAxis: boolean = false): number {
912
+
913
+ let x = this.x,
903
914
  y = this.y,
904
915
  z = this.z,
905
916
  w = this.w;
917
+
906
918
  if (reprojectAxis) {
907
- var fTy = 2.0 * y;
908
- var fTz = 2.0 * z;
909
- var fTwz = fTz * w;
910
- var fTxy = fTy * x;
911
- var fTyy = fTy * y;
912
- var fTzz = fTz * z;
919
+ let fTy = 2.0 * y;
920
+ let fTz = 2.0 * z;
921
+ let fTwz = fTz * w;
922
+ let fTxy = fTy * x;
923
+ let fTyy = fTy * y;
924
+ let fTzz = fTz * z;
913
925
  return Math.atan2(fTxy + fTwz, 1.0 - (fTyy + fTzz));
914
926
  } else {
915
927
  return Math.atan2(2 * (x * y + w * z), w * w + x * x - y * y - z * z);
@@ -922,18 +934,20 @@ export class Quat {
922
934
  * @param {Boolean} [reprojectAxis] -
923
935
  * @returns {number} -
924
936
  */
925
- getPitch(reprojectAxis) {
926
- var x = this.x,
937
+ public getPitch(reprojectAxis: boolean = false): number {
938
+
939
+ let x = this.x,
927
940
  y = this.y,
928
941
  z = this.z,
929
942
  w = this.w;
943
+
930
944
  if (reprojectAxis) {
931
- var fTx = 2.0 * x;
932
- var fTz = 2.0 * z;
933
- var fTwx = fTx * w;
934
- var fTxx = fTx * x;
935
- var fTyz = fTz * y;
936
- var fTzz = fTz * z;
945
+ let fTx = 2.0 * x;
946
+ let fTz = 2.0 * z;
947
+ let fTwx = fTx * w;
948
+ let fTxx = fTx * x;
949
+ let fTyz = fTz * y;
950
+ let fTzz = fTz * z;
937
951
  return Math.atan2(fTyz + fTwx, 1.0 - (fTxx + fTzz));
938
952
  } else {
939
953
  return Math.atan2(2 * (y * z + w * x), w * w - x * x - y * y + z * z);
@@ -946,19 +960,21 @@ export class Quat {
946
960
  * @param {Boolean} [reprojectAxis] -
947
961
  * @returns {number} -
948
962
  */
949
- getYaw(reprojectAxis = false) {
950
- var x = this.x,
963
+ public getYaw(reprojectAxis: boolean = false): number {
964
+
965
+ let x = this.x,
951
966
  y = this.y,
952
967
  z = this.z,
953
968
  w = this.w;
969
+
954
970
  if (reprojectAxis) {
955
- var fTx = 2.0 * x;
956
- var fTy = 2.0 * y;
957
- var fTz = 2.0 * z;
958
- var fTwy = fTy * w;
959
- var fTxx = fTx * x;
960
- var fTxz = fTz * x;
961
- var fTyy = fTy * y;
971
+ let fTx = 2.0 * x;
972
+ let fTy = 2.0 * y;
973
+ let fTz = 2.0 * z;
974
+ let fTwy = fTy * w;
975
+ let fTxx = fTx * x;
976
+ let fTxz = fTz * x;
977
+ let fTyy = fTy * y;
962
978
  return Math.atan2(fTxz + fTwy, 1.0 - (fTxx + fTyy));
963
979
  } else {
964
980
  return Math.asin(-2 * (x * z - w * y));
@@ -975,6 +991,6 @@ export class Quat {
975
991
  * @param {Number} [w=0.0] The W component.
976
992
  * @returns {Quat} -
977
993
  */
978
- export function quat(x, y, z, w) {
994
+ export function quat(x: number = 0, y: number = 0, z: number = 0, w: number = 0): Quat {
979
995
  return new Quat(x, y, z, w);
980
996
  }