@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,12 +1,20 @@
1
- "use strict";
2
-
3
- import { Vec3 } from "../math/Vec3.js";
1
+ import {Vec3} from "../math/Vec3";
2
+ import {RenderNode} from "../scene/RenderNode";
3
+
4
+ export interface ILightSourceParams {
5
+ position?: Vec3;
6
+ directional?: boolean;
7
+ ambient?: Vec3;
8
+ diffuse?: Vec3;
9
+ specular?: Vec3;
10
+ shininess?: number;
11
+ }
4
12
 
5
13
  /**
6
14
  * Represents basic light source.
7
15
  * @class
8
16
  * @param {string} [name] - Light source name.
9
- * @param {Object} [params] - Light parameters:
17
+ * @param {ILightSourceParams} [params] - Light parameters:
10
18
  * @param {Vec3} [params.position] - Light source position if it is a point light, otherwise it is a light direction vector.
11
19
  * @param {Vec3} [params.ambient] - Ambient RGB color.
12
20
  * @param {Vec3} [params.diffuse] - Diffuse RGB color.
@@ -14,26 +22,85 @@ import { Vec3 } from "../math/Vec3.js";
14
22
  * @param {number} [params.shininess] - Specular shininess.
15
23
  */
16
24
  class LightSource {
17
- static get _staticCounter() {
18
- if (!this._counter && this._counter !== 0) {
19
- this._counter = 0;
20
- }
21
- return this._counter;
22
- }
23
25
 
24
- static set _staticCounter(n) {
25
- this._counter = n;
26
- }
26
+ static __counter__: number = 0;
27
+
28
+ /**
29
+ * Light name.
30
+ * @protected
31
+ * @type {string}
32
+ */
33
+ protected _name: string;
34
+
35
+ /**
36
+ * Render node where light is shines.
37
+ * @protected
38
+ * @type {RenderNode}
39
+ */
40
+ protected _renderNode: RenderNode | null;
41
+
42
+ /**
43
+ * Light position.
44
+ * @public
45
+ * @type {Vec3}
46
+ */
47
+ public _position: Vec3;
48
+
49
+ /**
50
+ * True if the light is directional.
51
+ * @public
52
+ * @type {boolean}
53
+ */
54
+ public directional: boolean;
55
+
56
+ /**
57
+ * Ambient color.
58
+ * @protected
59
+ * @type {Vec3}
60
+ */
61
+ protected _ambient: Vec3;
62
+
63
+ /**
64
+ * Diffuse color.
65
+ * @protected
66
+ * @type {Vec3}
67
+ */
68
+ protected _diffuse: Vec3;
69
+
70
+ /**
71
+ * Specular color.
72
+ * @protected
73
+ * @type {Vec3}
74
+ */
75
+ protected _specular: Vec3;
27
76
 
28
- constructor(name, params) {
29
- params = params || {};
77
+ /**
78
+ * Shininess.
79
+ * @protected
80
+ * @type {number}
81
+ */
82
+ protected _shininess: number;
83
+
84
+ /**
85
+ * Light activity.
86
+ * @protected
87
+ * @type {boolean}
88
+ */
89
+ protected _active: boolean;
90
+
91
+ protected _tempAmbient: Vec3;
92
+ protected _tempDiffuse: Vec3;
93
+ protected _tempSpecular: Vec3;
94
+ protected _tempShininess: number;
95
+
96
+ constructor(name: string, params: ILightSourceParams) {
30
97
 
31
98
  /**
32
99
  * Light name.
33
100
  * @protected
34
101
  * @type {string}
35
102
  */
36
- this._name = name || "light_" + LightSource._staticCounter++;
103
+ this._name = name || "light_" + LightSource.__counter__++;
37
104
 
38
105
  /**
39
106
  * Render node where light is shines.
@@ -44,7 +111,7 @@ class LightSource {
44
111
 
45
112
  /**
46
113
  * Light position.
47
- * @protected
114
+ * @public
48
115
  * @type {Vec3}
49
116
  */
50
117
  this._position = params.position || new Vec3();
@@ -54,7 +121,7 @@ class LightSource {
54
121
  * @public
55
122
  * @type {boolean}
56
123
  */
57
- this.directional = params.derectional != undefined ? params.derectional : true;
124
+ this.directional = params.directional != undefined ? params.directional : true;
58
125
 
59
126
  /**
60
127
  * Ambient color.
@@ -103,7 +170,7 @@ class LightSource {
103
170
  * @public
104
171
  * @returns {LightSource}
105
172
  */
106
- clone() {
173
+ public clone() {
107
174
  // TODO
108
175
  }
109
176
 
@@ -112,11 +179,11 @@ class LightSource {
112
179
  * @public
113
180
  * @param {boolean} active - Light activity.
114
181
  */
115
- setActive(active) {
182
+ public setActive(active: boolean) {
116
183
  if (active && !this._active) {
117
- var rn = this._renderNode;
184
+ const rn = this._renderNode;
118
185
  if (rn) {
119
- var index = rn._lightsNames.indexOf(this._name);
186
+ let index = rn._lightsNames.indexOf(this._name);
120
187
  this._shininess = rn._lightsParamsf[index] = this._tempShininess;
121
188
  if (index != -1) {
122
189
  index *= 9;
@@ -149,7 +216,7 @@ class LightSource {
149
216
  * @public
150
217
  * @returns {boolean}
151
218
  */
152
- isActive() {
219
+ public isActive(): boolean {
153
220
  return this._active;
154
221
  }
155
222
 
@@ -157,26 +224,21 @@ class LightSource {
157
224
  * Set light source position, or if it is a directional type sets light direction vector.
158
225
  * @public
159
226
  * @param {Vec3} position - Light position or direction vector.
160
- * @returns {LightSource}
161
227
  */
162
- setPosition3v(position) {
228
+ public setPosition3v(position: Vec3) {
163
229
  this._position.x = position.x;
164
230
  this._position.y = position.y;
165
231
  this._position.z = position.z;
166
- return this;
167
232
  }
168
233
 
169
234
  /**
170
235
  * Set light source position, or if it is a directional type sets light direction vector.
171
236
  * @public
172
- * @param {Vec3} position - Light position or direction vector.
173
- * @returns {LightSource}
174
237
  */
175
- setPosition(x, y, z) {
238
+ public setPosition(x: number, y: number, z: number) {
176
239
  this._position.x = x;
177
240
  this._position.y = y;
178
241
  this._position.z = z;
179
- return this;
180
242
  }
181
243
 
182
244
  /**
@@ -184,7 +246,7 @@ class LightSource {
184
246
  * @public
185
247
  * @returns {Vec3} - Light source position/direction.
186
248
  */
187
- getPosition() {
249
+ public getPosition(): Vec3 {
188
250
  return this._position.clone();
189
251
  }
190
252
 
@@ -192,171 +254,148 @@ class LightSource {
192
254
  * Set ambient color.
193
255
  * @public
194
256
  * @param {Vec3} rgb - Ambient color.
195
- * @returns {LightSource}
196
257
  */
197
- setAmbient3v(rgb) {
198
- return this.setAmbient(rgb.x, rgb.y, rgb.z);
258
+ public setAmbient3v(rgb: Vec3) {
259
+ this.setAmbient(rgb.x, rgb.y, rgb.z);
199
260
  }
200
261
 
201
262
  /**
202
263
  * Set diffuse color.
203
264
  * @public
204
265
  * @param {Vec3} rgb - Diffuse color.
205
- * @returns {LightSource}
206
266
  */
207
- setDiffuse3v(rgb) {
208
- return this.setDiffuse(rgb.x, rgb.y, rgb.z);
267
+ public setDiffuse3v(rgb: Vec3) {
268
+ this.setDiffuse(rgb.x, rgb.y, rgb.z);
209
269
  }
210
270
 
211
271
  /**
212
272
  * Set specular color.
213
273
  * @public
214
274
  * @param {Vec3} rgb - Specular color.
215
- * @returns {LightSource}
216
275
  */
217
- setSpecular3v(rgb) {
218
- return this.setSpecular(rgb.x, rgb.y, rgb.z);
276
+ public setSpecular3v(rgb: Vec3) {
277
+ this.setSpecular(rgb.x, rgb.y, rgb.z);
219
278
  }
220
279
 
221
280
  /**
222
281
  * Set ambient color.
223
282
  * @public
224
- * @param {Vec3} rgb - Ambient color.
225
- * @returns {LightSource}
226
283
  */
227
- setAmbient(r, g, b) {
284
+ public setAmbient(r: number, g: number, b: number) {
228
285
  this._ambient.set(r, g, b);
229
- var rn = this._renderNode;
286
+ const rn = this._renderNode;
230
287
  if (rn) {
231
- var index = 9 * rn._lightsNames.indexOf(this._name);
288
+ let index = 9 * rn._lightsNames.indexOf(this._name);
232
289
  if (index != -1) {
233
290
  rn._lightsParamsv[index] = r;
234
291
  rn._lightsParamsv[index + 1] = g;
235
292
  rn._lightsParamsv[index + 2] = b;
236
293
  }
237
294
  }
238
- return this;
239
295
  }
240
296
 
241
297
  /**
242
298
  * Set diffuse color.
243
299
  * @public
244
- * @returns {LightSource}
245
300
  */
246
- setDiffuse(r, g, b) {
301
+ public setDiffuse(r: number, g: number, b: number) {
247
302
  this._diffuse.set(r, g, b);
248
- var rn = this._renderNode;
303
+ const rn = this._renderNode;
249
304
  if (rn) {
250
- var index = 9 * rn._lightsNames.indexOf(this._name);
305
+ let index = 9 * rn._lightsNames.indexOf(this._name);
251
306
  if (index != -1) {
252
307
  rn._lightsParamsv[index + 3] = r;
253
308
  rn._lightsParamsv[index + 4] = g;
254
309
  rn._lightsParamsv[index + 5] = b;
255
310
  }
256
311
  }
257
- return this;
258
312
  }
259
313
 
260
314
  /**
261
315
  * Set specular color.
262
316
  * @public
263
- * @returns {LightSource}
264
317
  */
265
- setSpecular(r, g, b) {
318
+ public setSpecular(r: number, g: number, b: number) {
266
319
  this._specular.set(r, g, b);
267
- var rn = this._renderNode;
320
+ const rn = this._renderNode;
268
321
  if (rn) {
269
- var index = 9 * rn._lightsNames.indexOf(this._name);
322
+ let index = 9 * rn._lightsNames.indexOf(this._name);
270
323
  if (index != -1) {
271
324
  rn._lightsParamsv[index + 6] = r;
272
325
  rn._lightsParamsv[index + 7] = g;
273
326
  rn._lightsParamsv[index + 8] = b;
274
327
  }
275
328
  }
276
- return this;
277
329
  }
278
330
 
279
331
  /**
280
332
  * Set material shininess.
281
333
  * @public
282
- * @returns {LightSource}
283
334
  */
284
- setShininess(shininess) {
335
+ public setShininess(shininess: number) {
285
336
  this._shininess = shininess;
286
- var rn = this._renderNode;
337
+ const rn = this._renderNode;
287
338
  if (rn) {
288
- var index = rn._lightsNames.indexOf(this._name);
339
+ let index = rn._lightsNames.indexOf(this._name);
289
340
  if (index != -1) {
290
341
  rn._lightsParamsf[index] = shininess;
291
342
  }
292
343
  }
293
- return this;
294
344
  }
295
345
 
296
346
  /**
297
347
  * Sets light to black.
298
348
  * @public
299
- * @returns {LightSource}
300
349
  */
301
- setBlack() {
350
+ public setBlack() {
302
351
  this._ambient.clear();
303
352
  this._diffuse.clear();
304
353
  this._specular.clear();
305
354
  this._shininess = 0;
306
- var rn = this._renderNode;
355
+ const rn = this._renderNode;
307
356
  if (rn) {
308
- var index = 9 * rn._lightsNames.indexOf(this._name);
309
- if (index != -1) {
310
- rn._lightsParamsv[index] =
311
- rn._lightsParamsv[index + 1] =
312
- rn._lightsParamsv[index + 2] =
313
- rn._lightsParamsv[index + 3] =
314
- rn._lightsParamsv[index + 4] =
315
- rn._lightsParamsv[index + 5] =
316
- rn._lightsParamsv[index + 6] =
317
- rn._lightsParamsv[index + 7] =
318
- rn._lightsParamsv[index + 8] =
319
- 0;
357
+ let index = 9 * rn._lightsNames.indexOf(this._name);
358
+ if (index !== -1) {
359
+ rn._lightsParamsv[index] = rn._lightsParamsv[index + 1] = rn._lightsParamsv[index + 2] =
360
+ rn._lightsParamsv[index + 3] = rn._lightsParamsv[index + 4] = rn._lightsParamsv[index + 5] =
361
+ rn._lightsParamsv[index + 6] = rn._lightsParamsv[index + 7] = rn._lightsParamsv[index + 8] = 0;
320
362
  }
321
363
  }
322
- return this;
323
364
  }
324
365
 
325
366
  /**
326
367
  * Adds current light to the render node scene.
327
368
  * @public
328
369
  * @param {RenderNode} renderNode - Render node scene.
329
- * @returns {LightSource}
330
370
  */
331
- addTo(renderNode) {
371
+ public addTo(renderNode: RenderNode) {
332
372
  this._renderNode = renderNode;
333
373
  renderNode._lights.push(this);
334
374
  renderNode._lightsNames.push(this._name);
335
375
  renderNode._lightsParamsf.push(this._shininess);
336
- renderNode._lightsParamsv.push.apply(renderNode._lightsParamsv, this._ambient.toVec());
337
- renderNode._lightsParamsv.push.apply(renderNode._lightsParamsv, this._diffuse.toVec());
338
- renderNode._lightsParamsv.push.apply(renderNode._lightsParamsv, this._specular.toVec());
376
+ renderNode._lightsParamsv.push.apply(renderNode._lightsParamsv, this._ambient.toArray());
377
+ renderNode._lightsParamsv.push.apply(renderNode._lightsParamsv, this._diffuse.toArray());
378
+ renderNode._lightsParamsv.push.apply(renderNode._lightsParamsv, this._specular.toArray());
339
379
  renderNode.transformLights();
340
- return this;
341
380
  }
342
381
 
343
382
  /**
344
383
  * Removes from render node scene.
345
384
  * @public
346
385
  */
347
- remove() {
348
- var rn = this.renderNode;
386
+ public remove() {
387
+ const rn = this._renderNode;
349
388
  if (rn) {
350
- var li = rn.getLightById(this._name);
351
- if (li != -1) {
352
- rn._lights.splice(li, 1);
353
- rn._lightsNames.splice(li, 1);
354
- rn._lightsParamsf.splice(li, 1);
355
- rn._lightsParamsv.splice(li, 9);
356
- }
389
+ // let li = rn.getLightById(this._name);
390
+ // if (li != -1) {
391
+ // rn._lights.splice(li, 1);
392
+ // rn._lightsNames.splice(li, 1);
393
+ // rn._lightsParamsf.splice(li, 1);
394
+ // rn._lightsParamsv.splice(li, 9);
395
+ // }
357
396
  }
358
397
  this._renderNode = null;
359
398
  }
360
399
  }
361
400
 
362
- export { LightSource };
401
+ export {LightSource};
@@ -1,28 +1,31 @@
1
- 'use strict';
2
-
3
- import { Vec2 } from './Vec2.js';
1
+ import {Vec2} from './Vec2';
4
2
 
5
3
  export class Line2 {
4
+
5
+ public a: number;
6
+ public b: number;
7
+ public c: number;
8
+
6
9
  constructor(a = 0, b = 0, c = 0) {
7
10
  this.a = a;
8
11
  this.b = b;
9
12
  this.c = c;
10
13
  }
11
14
 
12
- static get(p0, p1) {
15
+ static get(p0: Vec2, p1: Vec2): Line2 {
13
16
  return new Line2(p1.y - p0.y, p0.x - p1.x, p1.x * p0.y - p0.x * p1.y);
14
17
  }
15
18
 
16
- static getParallel(l, p) {
19
+ static getParallel(l: Line2, p: Vec2): Line2 {
17
20
  return new Line2(l.a, l.b, -l.a * p.x - l.b * p.y);
18
21
  }
19
22
 
20
- static getIntersection(L0, L1) {
21
- var x = (L1.b * L0.c - L0.b * L1.c) / (L0.b * L1.a - L1.b * L0.a);
23
+ static getIntersection(L0: Line2, L1: Line2): Vec2 {
24
+ let x = (L1.b * L0.c - L0.b * L1.c) / (L0.b * L1.a - L1.b * L0.a);
22
25
  return new Vec2(x, -(L0.c + L0.a * x) / L0.b);
23
26
  }
24
27
 
25
- intersects(l) {
28
+ public intersects(l: Line2): Vec2 {
26
29
  return Line2.getIntersection(this, l);
27
30
  }
28
31
  }
@@ -1,70 +1,93 @@
1
- 'use strict';
2
-
3
- import { EPS10 } from '../math.js';
4
- import { Vec3 } from './Vec3.js';
5
-
1
+ import {EPS10} from '../math';
2
+ import {Sphere} from "../bv/Sphere";
3
+ import {Vec3} from './Vec3';
4
+
5
+ /**
6
+ * @todo: write tests
7
+ * @class Line3
8
+ * Represents a line segment in 3d space.
9
+ * @param {Vec3} [p0] - First point of the line
10
+ * @param {Vec3} [p1] - Second point of the line
11
+ */
6
12
  export class Line3 {
7
- constructor(p0, p1) {
13
+
14
+ /**
15
+ * First point of the line
16
+ * @public
17
+ * @type: Vec3
18
+ */
19
+ public p0: Vec3;
20
+
21
+ /**
22
+ * Second point of the line
23
+ * @public
24
+ * @type: Vec3
25
+ */
26
+ public p1: Vec3;
27
+
28
+ constructor(p0?: Vec3, p1?: Vec3) {
8
29
  this.p0 = p0 || new Vec3();
9
30
  this.p1 = p1 || new Vec3();
10
31
  }
11
32
 
12
- getMagnitude() {
33
+ public getMagnitude(): number {
13
34
  return this.p0.distance(this.p1);
14
35
  }
15
36
 
16
- getSphereIntersection(sphere) {
17
- var p0 = this.p0,
37
+ public getSphereIntersection(sphere: Sphere): [Vec3] | [Vec3, Vec3] | [] {
38
+ let p0 = this.p0,
18
39
  p1 = this.p1;
19
40
 
20
- var cx = sphere.x,
21
- cy = sphere.y,
22
- cz = sphere.z;
41
+ let cx = sphere.center.x,
42
+ cy = sphere.center.y,
43
+ cz = sphere.center.z;
23
44
 
24
- var px = p0.x,
45
+ let px = p0.x,
25
46
  py = p0.y,
26
47
  pz = p0.z;
27
48
 
28
- var vx = p1.x - px,
49
+ let vx = p1.x - px,
29
50
  vy = p1.y - py,
30
51
  vz = p1.z - pz;
31
52
 
32
- var A = vx * vx + vy * vy + vz * vz,
53
+ let A = vx * vx + vy * vy + vz * vz,
33
54
  B = 2.0 * (px * vx + py * vy + pz * vz - vx * cx - vy * cy - vz * cz),
34
55
  C = px * px - 2 * px * cx + cx * cx + py * py - 2 * py * cy + cy * cy +
35
56
  pz * pz - 2 * pz * cz + cz * cz - sphere.radius * sphere.radius;
36
- var D = B * B - 4 * A * C;
57
+ let D = B * B - 4 * A * C;
37
58
 
38
59
  if (D < 0) {
39
- return null;
60
+ // no solutions
61
+ return [];
40
62
  }
41
63
 
42
- var t1 = (-B - Math.Sqrt(D)) / (2.0 * A);
64
+ let t1 = (-B - Math.sqrt(D)) / (2.0 * A);
43
65
 
44
- var solution1 = new Vec3(
66
+ let solution1 = new Vec3(
45
67
  p0.x * (1 - t1) + t1 * p1.x,
46
68
  p0.y * (1 - t1) + t1 * p1.y,
47
- p0.z * (1 - t1) + t1 * p1.z);
69
+ p0.z * (1 - t1) + t1 * p1.z
70
+ );
48
71
 
49
72
  if (D == 0) {
50
- return solution1;
73
+ return [solution1];
51
74
  }
52
75
 
53
- var t2 = (-B + Math.Sqrt(D)) / (2.0 * A);
54
- var solution2 = new Vec3(
76
+ let t2 = (-B + Math.sqrt(D)) / (2.0 * A);
77
+ let solution2 = new Vec3(
55
78
  p0.x * (1 - t2) + t2 * p1.x,
56
79
  p0.y * (1 - t2) + t2 * p1.y,
57
80
  p0.z * (1 - t2) + t2 * p1.z);
58
81
 
59
82
  // prefer a solution that's on the line segment itself
60
- if (Math.Abs(t1 - 0.5) < Math.abs(t2 - 0.5)) {
83
+ if (Math.abs(t1 - 0.5) < Math.abs(t2 - 0.5)) {
61
84
  return [solution1, solution2];
62
85
  }
63
86
 
64
87
  return [solution2, solution1];
65
88
  }
66
89
 
67
- intersects(line, res, res2) {
90
+ public intersects(line: Line3, res: Vec3, res2?: Vec3): boolean {
68
91
 
69
92
  let p13 = this.p0.sub(line.p0),
70
93
  p43 = line.p1.sub(line.p0);
@@ -111,7 +134,7 @@ export class Line3 {
111
134
  return true;
112
135
  }
113
136
 
114
- getNearestDistancePoint(point, res) {
137
+ public getNearestDistancePoint(point: Vec3, res: Vec3): boolean {
115
138
 
116
139
  let p0 = this.p0,
117
140
  p1 = this.p1;
@@ -136,5 +159,4 @@ export class Line3 {
136
159
 
137
160
  return true;
138
161
  }
139
-
140
162
  }