@openglobus/og 0.11.8 → 0.12.4

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 (197) hide show
  1. package/css/og.css +2 -0
  2. package/dist/@openglobus/og.css +1 -0
  3. package/dist/@openglobus/og.esm.js +21 -0
  4. package/dist/@openglobus/og.esm.js.map +1 -0
  5. package/dist/@openglobus/og.umd.js +21 -0
  6. package/dist/@openglobus/og.umd.js.map +1 -0
  7. package/package.json +11 -11
  8. package/src/og/Globe.js +18 -6
  9. package/src/og/camera/Camera.js +70 -79
  10. package/src/og/camera/PlanetCamera.js +25 -30
  11. package/src/og/control/DebugInfo.js +2 -2
  12. package/src/og/control/EarthNavigation.js +26 -17
  13. package/src/og/control/MouseNavigation.js +11 -13
  14. package/src/og/control/MouseWheelZoomControl.js +5 -5
  15. package/src/og/control/Sun.js +3 -3
  16. package/src/og/entity/Entity.js +742 -742
  17. package/src/og/entity/GeoObjectHandler.js +138 -134
  18. package/src/og/entity/LabelHandler.js +2 -1
  19. package/src/og/layer/CanvasTiles.js +8 -11
  20. package/src/og/layer/KML.js +19 -12
  21. package/src/og/layer/Layer.js +9 -2
  22. package/src/og/layer/XYZ.js +27 -28
  23. package/src/og/math/Vec3.js +18 -2
  24. package/src/og/quadTree/Node.js +48 -93
  25. package/src/og/quadTree/quadTree.js +1 -1
  26. package/src/og/renderer/Renderer.js +3 -5
  27. package/src/og/scene/Planet.js +147 -127
  28. package/src/og/segment/Segment.js +63 -136
  29. package/src/og/shaders/drawnode.js +132 -221
  30. package/src/og/shaders/geoObject.js +15 -6
  31. package/src/og/terrain/EmptyTerrain.js +3 -2
  32. package/src/og/terrain/GlobusTerrain.js +2 -0
  33. package/src/og/utils/Loader.js +1 -1
  34. package/src/og/utils/PlainSegmentWorker.js +0 -13
  35. package/src/og/webgl/Handler.js +13 -9
  36. package/types/Clock.d.ts +94 -0
  37. package/types/Deferred.d.ts +6 -0
  38. package/types/Events.d.ts +77 -0
  39. package/types/Extent.d.ts +166 -0
  40. package/types/Globe.d.ts +85 -0
  41. package/types/ImageCanvas.d.ts +123 -0
  42. package/types/Lock.d.ts +12 -0
  43. package/types/LonLat.d.ts +108 -0
  44. package/types/Popup.d.ts +42 -0
  45. package/types/QueueArray.d.ts +19 -0
  46. package/types/Rectangle.d.ts +80 -0
  47. package/types/Stack.d.ts +19 -0
  48. package/types/ajax.d.ts +24 -0
  49. package/types/arial.d.ts +48 -0
  50. package/types/astro/astro.d.ts +38 -0
  51. package/types/astro/earth.d.ts +7 -0
  52. package/types/astro/jd.d.ts +254 -0
  53. package/types/bv/Box.d.ts +30 -0
  54. package/types/bv/Sphere.d.ts +38 -0
  55. package/types/bv/index.d.ts +3 -0
  56. package/types/camera/Camera.d.ts +312 -0
  57. package/types/camera/Frustum.d.ts +133 -0
  58. package/types/camera/PlanetCamera.d.ts +219 -0
  59. package/types/camera/index.d.ts +3 -0
  60. package/types/cons.d.ts +40 -0
  61. package/types/control/CompassButton.d.ts +17 -0
  62. package/types/control/Control.d.ts +104 -0
  63. package/types/control/DebugInfo.d.ts +15 -0
  64. package/types/control/EarthCoordinates.d.ts +47 -0
  65. package/types/control/EarthNavigation.d.ts +43 -0
  66. package/types/control/GeoImageDragControl.d.ts +6 -0
  67. package/types/control/KeyboardNavigation.d.ts +21 -0
  68. package/types/control/LayerSwitcher.d.ts +21 -0
  69. package/types/control/Lighting.d.ts +16 -0
  70. package/types/control/MouseNavigation.d.ts +48 -0
  71. package/types/control/MouseWheelZoomControl.d.ts +45 -0
  72. package/types/control/ScaleControl.d.ts +22 -0
  73. package/types/control/ShowFps.d.ts +11 -0
  74. package/types/control/SimpleNavigation.d.ts +25 -0
  75. package/types/control/Sun.d.ts +50 -0
  76. package/types/control/ToggleWireframe.d.ts +12 -0
  77. package/types/control/TouchNavigation.d.ts +48 -0
  78. package/types/control/ZoomControl.d.ts +27 -0
  79. package/types/control/index.d.ts +18 -0
  80. package/types/ellipsoid/Ellipsoid.d.ts +146 -0
  81. package/types/ellipsoid/index.d.ts +3 -0
  82. package/types/ellipsoid/wgs84.d.ts +6 -0
  83. package/types/entity/BaseBillboard.d.ts +215 -0
  84. package/types/entity/Billboard.d.ts +94 -0
  85. package/types/entity/BillboardHandler.d.ts +79 -0
  86. package/types/entity/Entity.d.ts +348 -0
  87. package/types/entity/EntityCollection.d.ts +317 -0
  88. package/types/entity/GeoObject.d.ts +111 -0
  89. package/types/entity/GeoObjectHandler.d.ts +81 -0
  90. package/types/entity/Geometry.d.ts +74 -0
  91. package/types/entity/GeometryHandler.d.ts +76 -0
  92. package/types/entity/Label.d.ts +189 -0
  93. package/types/entity/LabelHandler.d.ts +31 -0
  94. package/types/entity/LabelWorker.d.ts +11 -0
  95. package/types/entity/PointCloud.d.ts +174 -0
  96. package/types/entity/PointCloudHandler.d.ts +38 -0
  97. package/types/entity/Polyline.d.ts +306 -0
  98. package/types/entity/PolylineHandler.d.ts +18 -0
  99. package/types/entity/Ray.d.ts +124 -0
  100. package/types/entity/RayHandler.d.ts +67 -0
  101. package/types/entity/ShapeHandler.d.ts +22 -0
  102. package/types/entity/Strip.d.ts +119 -0
  103. package/types/entity/StripHandler.d.ts +38 -0
  104. package/types/entity/index.d.ts +8 -0
  105. package/types/index.core.d.ts +65 -0
  106. package/types/index.d.ts +45 -0
  107. package/types/index.webgl.d.ts +7 -0
  108. package/types/input/KeyboardHandler.d.ts +10 -0
  109. package/types/input/MouseHandler.d.ts +5 -0
  110. package/types/input/TouchHandler.d.ts +5 -0
  111. package/types/input/input.d.ts +34 -0
  112. package/types/layer/BaseGeoImage.d.ts +94 -0
  113. package/types/layer/CanvasTiles.d.ts +67 -0
  114. package/types/layer/GeoImage.d.ts +52 -0
  115. package/types/layer/GeoTexture2d.d.ts +8 -0
  116. package/types/layer/GeoVideo.d.ts +55 -0
  117. package/types/layer/KML.d.ts +68 -0
  118. package/types/layer/Layer.d.ts +311 -0
  119. package/types/layer/Material.d.ts +45 -0
  120. package/types/layer/Vector.d.ts +208 -0
  121. package/types/layer/WMS.d.ts +61 -0
  122. package/types/layer/XYZ.d.ts +119 -0
  123. package/types/layer/index.d.ts +10 -0
  124. package/types/light/LightSource.d.ts +178 -0
  125. package/types/math/Line2.d.ts +11 -0
  126. package/types/math/Line3.d.ts +10 -0
  127. package/types/math/Mat3.d.ts +65 -0
  128. package/types/math/Mat4.d.ts +176 -0
  129. package/types/math/Plane.d.ts +18 -0
  130. package/types/math/Quat.d.ts +379 -0
  131. package/types/math/Ray.d.ts +82 -0
  132. package/types/math/Vec2.d.ts +309 -0
  133. package/types/math/Vec3.d.ts +467 -0
  134. package/types/math/Vec4.d.ts +162 -0
  135. package/types/math/coder.d.ts +43 -0
  136. package/types/math/index.d.ts +11 -0
  137. package/types/math.d.ts +261 -0
  138. package/types/mercator.d.ts +92 -0
  139. package/types/proj/EPSG3857.d.ts +6 -0
  140. package/types/proj/EPSG4326.d.ts +6 -0
  141. package/types/proj/Proj.d.ts +42 -0
  142. package/types/quadTree/EntityCollectionNode.d.ts +34 -0
  143. package/types/quadTree/Node.d.ts +60 -0
  144. package/types/quadTree/quadTree.d.ts +40 -0
  145. package/types/renderer/Renderer.d.ts +290 -0
  146. package/types/renderer/RendererEvents.d.ts +237 -0
  147. package/types/res/images.d.ts +3 -0
  148. package/types/scene/Axes.d.ts +11 -0
  149. package/types/scene/BaseNode.d.ts +60 -0
  150. package/types/scene/Planet.d.ts +576 -0
  151. package/types/scene/RenderNode.d.ts +142 -0
  152. package/types/scene/SkyBox.d.ts +10 -0
  153. package/types/scene/index.d.ts +4 -0
  154. package/types/segment/Segment.d.ts +275 -0
  155. package/types/segment/SegmentLonLat.d.ts +17 -0
  156. package/types/segment/Slice.d.ts +10 -0
  157. package/types/segment/segmentHelper.d.ts +13 -0
  158. package/types/shaders/billboard.d.ts +3 -0
  159. package/types/shaders/depth.d.ts +2 -0
  160. package/types/shaders/drawnode.d.ts +7 -0
  161. package/types/shaders/geoObject.d.ts +3 -0
  162. package/types/shaders/label.d.ts +4 -0
  163. package/types/shaders/pointCloud.d.ts +2 -0
  164. package/types/shaders/polyline.d.ts +3 -0
  165. package/types/shaders/ray.d.ts +2 -0
  166. package/types/shaders/screenFrame.d.ts +2 -0
  167. package/types/shaders/shape.d.ts +4 -0
  168. package/types/shaders/skybox.d.ts +2 -0
  169. package/types/shaders/toneMapping.d.ts +2 -0
  170. package/types/shapes/BaseShape.d.ts +250 -0
  171. package/types/shapes/Sphere.d.ts +41 -0
  172. package/types/terrain/BilTerrain.d.ts +7 -0
  173. package/types/terrain/EmptyTerrain.d.ts +73 -0
  174. package/types/terrain/Geoid.d.ts +26 -0
  175. package/types/terrain/GlobusTerrain.d.ts +116 -0
  176. package/types/terrain/MapboxTerrain.d.ts +7 -0
  177. package/types/terrain/index.d.ts +5 -0
  178. package/types/utils/FontAtlas.d.ts +15 -0
  179. package/types/utils/GeoImageCreator.d.ts +30 -0
  180. package/types/utils/ImagesCacheManager.d.ts +10 -0
  181. package/types/utils/Loader.d.ts +25 -0
  182. package/types/utils/NormalMapCreator.d.ts +39 -0
  183. package/types/utils/PlainSegmentWorker.d.ts +10 -0
  184. package/types/utils/TerrainWorker.d.ts +9 -0
  185. package/types/utils/TextureAtlas.d.ts +111 -0
  186. package/types/utils/VectorTileCreator.d.ts +16 -0
  187. package/types/utils/colorTable.d.ts +143 -0
  188. package/types/utils/earcut.d.ts +6 -0
  189. package/types/utils/shared.d.ts +231 -0
  190. package/types/webgl/Framebuffer.d.ts +135 -0
  191. package/types/webgl/Handler.d.ts +417 -0
  192. package/types/webgl/Multisample.d.ts +89 -0
  193. package/types/webgl/Program.d.ts +161 -0
  194. package/types/webgl/ProgramController.d.ts +89 -0
  195. package/types/webgl/callbacks.d.ts +1 -0
  196. package/types/webgl/index.d.ts +6 -0
  197. package/types/webgl/types.d.ts +2 -0
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Used to display WMS services as tile layers on the globe.
3
+ * @class
4
+ * @extends {XYZ}
5
+ * //TODO: WMS version, format, and custom srs cpecification.
6
+ * @param {string} name - Layer name.
7
+ * @param {Object} options - Options:
8
+ * @param {number} [options.opacity=1.0] - Layer opacity.
9
+ * @param {number} [options.minZoom=0] - Minimal visibility zoom level.
10
+ * @param {number} [options.maxZoom=0] - Maximal visibility zoom level.
11
+ * @param {string} [options.attribution] - Layer attribution that displayed in the attribution area on the screen.
12
+ * @param {boolean} [options.isBaseLayer=false] - Base layer flag.
13
+ * @param {boolean} [options.visibility=true] - Layer visibility.
14
+ * @param {string} options.url - WMS url source.
15
+ * @param {number} [options.width=256] - Tile width.
16
+ * @param {number} [options.height=256] - Tile height.
17
+ * @param {string} options.layers - WMS layers string.
18
+ * @param {string} [options.version="1.1.1"] - WMS version.
19
+ * @example:
20
+ * new og.layer.WMS("USA States", {
21
+ * isBaseLayer: false,
22
+ * url: "http://openglobus.org/geoserver/",
23
+ * layers: "topp:states",
24
+ * opacity: 0.5,
25
+ * zIndex: 50,
26
+ * attribution: 'USA states - geoserver WMS example',
27
+ * version: "1.1.1",
28
+ * visibility: false }
29
+ * );
30
+ *
31
+ * @fires og.layer.XYZ#load
32
+ * @fires og.layer.XYZ#loadend
33
+ */
34
+ export class WMS extends XYZ {
35
+ static createRequestUrl(url: any, layers: any, format: string, version: string, request: string, srs: any, bbox: any, width?: number, height?: number): string;
36
+ static get_bbox_v1_1_1(extent: any): string;
37
+ static get_bbox_v1_3_0(extent: any): string;
38
+ constructor(name: any, options: any);
39
+ /**
40
+ * WMS layers string.
41
+ * @public
42
+ * @type {string}
43
+ */
44
+ public layers: string;
45
+ /**
46
+ * WMS tile width.
47
+ * @public
48
+ * @type {number}
49
+ */
50
+ public imageWidth: number;
51
+ /**
52
+ * WMS tile height.
53
+ * @public
54
+ * @type {number}
55
+ */
56
+ public imageHeight: number;
57
+ _getBbox: typeof WMS.get_bbox_v1_1_1;
58
+ setVersion(version: any): void;
59
+ _version: any;
60
+ }
61
+ import { XYZ } from "./XYZ.js";
@@ -0,0 +1,119 @@
1
+ /**
2
+ * Represents an imagery tiles source provider.
3
+ * @class
4
+ * @extends {Layer}
5
+ * @param {string} name - Layer name.
6
+ * @param {Object} options:
7
+ * @param {number} [options.opacity=1.0] - Layer opacity.
8
+ * @param {Array.<string>} [options.subdomains=['a','b','c']] - Subdomains of the tile service.
9
+ * @param {number} [options.minZoom=0] - Minimal visibility zoom level.
10
+ * @param {number} [options.maxZoom=0] - Maximal visibility zoom level.
11
+ * @param {number} [options.minNativeZoom=0] - Minimal available zoom level.
12
+ * @param {number} [options.maxNativeZoom=19] - Maximal available zoom level.
13
+ * @param {string} [options.attribution] - Layer attribution that displayed in the attribution area on the screen.
14
+ * @param {boolean} [options.isBaseLayer=false] - Base layer flag.
15
+ * @param {boolean} [options.visibility=true] - Layer visibility.
16
+ * @param {string} [options.crossOrigin=true] - If true, all tiles will have their crossOrigin attribute set to ''.
17
+ * @param {string} options.url - Tile url source template(see example below).
18
+ * @param {string} options.textureFilter - texture gl filter. NEAREST, LINEAR, MIPMAP, ANISOTROPHIC.
19
+ * @param {layer.XYZ~_urlRewriteCallback} options.urlRewrite - Url rewrite function.
20
+ * @fires og.layer.XYZ#load
21
+ * @fires og.layer.XYZ#loadend
22
+ *
23
+ * @example <caption>Creates OpenStreetMap base tile layer</caption>
24
+ * new og.layer.XYZ("OpenStreetMap", {
25
+ * isBaseLayer: true,
26
+ * url: "http://b.tile.openstreetmap.org/{z}/{x}/{y}.png",
27
+ * visibility: true,
28
+ * attribution: 'Data @ <a href="http://www.openstreetmap.org/">OpenStreetMap</a> contributors, <a href="http://www.openstreetmap.org/copyright">ODbL</a>'
29
+ * });
30
+ */
31
+ export class XYZ extends Layer {
32
+ /**
33
+ * @param {string} name - Layer name.
34
+ * @param {*} options
35
+ */
36
+ constructor(name: string, options: any);
37
+ /**
38
+ * Tile url source template.
39
+ * @public
40
+ * @type {string}
41
+ */
42
+ public url: string;
43
+ /**
44
+ * @protected
45
+ */
46
+ protected _s: any;
47
+ /**
48
+ * Minimal native zoom level when tiles are available.
49
+ * @public
50
+ * @type {number}
51
+ */
52
+ public minNativeZoom: number;
53
+ /**
54
+ * Maximal native zoom level when tiles are available.
55
+ * @public
56
+ * @type {number}
57
+ */
58
+ public maxNativeZoom: number;
59
+ /**
60
+ * @protected
61
+ */
62
+ protected _crossOrigin: any;
63
+ /**
64
+ * Rewrites imagery tile url query.
65
+ * @private
66
+ * @callback og.layer.XYZ~_urlRewriteCallback
67
+ * @param {Segment} segment - Segment to load.
68
+ * @param {string} url - Created url.
69
+ * @returns {string} - Url query string.
70
+ */
71
+ private _urlRewriteCallback;
72
+ /**
73
+ * Abort loading tiles.
74
+ * @public
75
+ */
76
+ public abortLoading(): void;
77
+ /**
78
+ * Sets imagery tiles url source template.
79
+ * @public
80
+ * @param {string} url - Url template.
81
+ * @example
82
+ * http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png
83
+ * where {z}, {x} and {y} - replaces by current tile values, {s} - random domen.
84
+ */
85
+ public setUrl(url: string): void;
86
+ _checkSegment(segment: any): boolean;
87
+ /**
88
+ * Start to load tile material.
89
+ * @public
90
+ * @virtual
91
+ * @param {Material} material - Loads current material.
92
+ */
93
+ public loadMaterial(material: Material, forceLoading: any): void;
94
+ /**
95
+ * Creates query url.
96
+ * @protected
97
+ * @virtual
98
+ * @param {Segment} segment - Creates specific url for current segment.
99
+ * @returns {String} - Returns url string.
100
+ */
101
+ protected _createUrl(segment: Segment): string;
102
+ _getSubdomain(): any;
103
+ /**
104
+ * Returns actual url query string.
105
+ * @protected
106
+ * @param {Segment} segment - Segment that loads image data.
107
+ * @returns {string} - Url string.
108
+ */
109
+ protected _getHTTPRequestString(segment: Segment): string;
110
+ /**
111
+ * Sets url rewrite callback, used for custom url rewriting for every tile laoding.
112
+ * @public
113
+ * @param {layer.XYZ~_urlRewriteCallback} ur - The callback that returns tile custom created url.
114
+ */
115
+ public setUrlRewriteCallback(ur: any): void;
116
+ applyMaterial(material: any): any;
117
+ clearMaterial(material: any): void;
118
+ }
119
+ import { Layer } from "./Layer.js";
@@ -0,0 +1,10 @@
1
+ import { CanvasTiles } from "./CanvasTiles.js";
2
+ import { GeoImage } from "./GeoImage.js";
3
+ import { GeoTexture2d } from "./GeoTexture2d.js";
4
+ import { GeoVideo } from "./GeoVideo.js";
5
+ import { KML } from "./KML.js";
6
+ import { Layer } from "./Layer.js";
7
+ import { Vector } from "./Vector.js";
8
+ import { WMS } from "./WMS.js";
9
+ import { XYZ } from "./XYZ.js";
10
+ export { CanvasTiles, GeoImage, GeoTexture2d, GeoVideo, KML, Layer, Vector, WMS, XYZ };
@@ -0,0 +1,178 @@
1
+ /**
2
+ * Represents basic light source.
3
+ * @class
4
+ * @param {string} [name] - Light source name.
5
+ * @param {Object} [params] - Light parameters:
6
+ * @param {Vec3} [params.position] - Light source position if it is a point light, otherwise it is a light direction vector.
7
+ * @param {Vec3} [params.ambient] - Ambient RGB color.
8
+ * @param {Vec3} [params.diffuse] - Diffuse RGB color.
9
+ * @param {Vec3} [params.specular] - Specular RGB color.
10
+ * @param {number} [params.shininess] - Specular shininess.
11
+ */
12
+ export class LightSource {
13
+ static set _staticCounter(arg: any);
14
+ static get _staticCounter(): any;
15
+ constructor(name: any, params: any);
16
+ /**
17
+ * Light name.
18
+ * @protected
19
+ * @type {string}
20
+ */
21
+ protected _name: string;
22
+ /**
23
+ * Render node where light is shines.
24
+ * @protected
25
+ * @type {RenderNode}
26
+ */
27
+ protected _renderNode: RenderNode;
28
+ /**
29
+ * Light position.
30
+ * @protected
31
+ * @type {Vec3}
32
+ */
33
+ protected _position: Vec3;
34
+ /**
35
+ * True if the light is directional.
36
+ * @public
37
+ * @type {boolean}
38
+ */
39
+ public directional: boolean;
40
+ /**
41
+ * Ambient color.
42
+ * @protected
43
+ * @type {Vec3}
44
+ */
45
+ protected _ambient: Vec3;
46
+ /**
47
+ * Diffuse color.
48
+ * @protected
49
+ * @type {Vec3}
50
+ */
51
+ protected _diffuse: Vec3;
52
+ /**
53
+ * Specular color.
54
+ * @protected
55
+ * @type {Vec3}
56
+ */
57
+ protected _specular: Vec3;
58
+ /**
59
+ * Shininess.
60
+ * @protected
61
+ * @type {number}
62
+ */
63
+ protected _shininess: number;
64
+ /**
65
+ * Light activity.
66
+ * @protected
67
+ * @type {boolean}
68
+ */
69
+ protected _active: boolean;
70
+ _tempAmbient: Vec3;
71
+ _tempDiffuse: Vec3;
72
+ _tempSpecular: Vec3;
73
+ _tempShininess: number;
74
+ /**
75
+ * Creates clone of the current light object.
76
+ * @todo: TODO
77
+ * @public
78
+ * @returns {LightSource}
79
+ */
80
+ public clone(): LightSource;
81
+ /**
82
+ * Set light activity. If activity is false the light doesn't shine.
83
+ * @public
84
+ * @param {boolean} active - Light activity.
85
+ */
86
+ public setActive(active: boolean): void;
87
+ /**
88
+ * Gets light activity.
89
+ * @public
90
+ * @returns {boolean}
91
+ */
92
+ public isActive(): boolean;
93
+ /**
94
+ * Set light source position, or if it is a directional type sets light direction vector.
95
+ * @public
96
+ * @param {Vec3} position - Light position or direction vector.
97
+ * @returns {LightSource}
98
+ */
99
+ public setPosition3v(position: Vec3): LightSource;
100
+ /**
101
+ * Set light source position, or if it is a directional type sets light direction vector.
102
+ * @public
103
+ * @param {Vec3} position - Light position or direction vector.
104
+ * @returns {LightSource}
105
+ */
106
+ public setPosition(x: any, y: any, z: any): LightSource;
107
+ /**
108
+ * Returns light source position, or if it is a directional type sets light direction vector.
109
+ * @public
110
+ * @returns {Vec3} - Light source position/direction.
111
+ */
112
+ public getPosition(): Vec3;
113
+ /**
114
+ * Set ambient color.
115
+ * @public
116
+ * @param {Vec3} rgb - Ambient color.
117
+ * @returns {LightSource}
118
+ */
119
+ public setAmbient3v(rgb: Vec3): LightSource;
120
+ /**
121
+ * Set diffuse color.
122
+ * @public
123
+ * @param {Vec3} rgb - Diffuse color.
124
+ * @returns {LightSource}
125
+ */
126
+ public setDiffuse3v(rgb: Vec3): LightSource;
127
+ /**
128
+ * Set specular color.
129
+ * @public
130
+ * @param {Vec3} rgb - Specular color.
131
+ * @returns {LightSource}
132
+ */
133
+ public setSpecular3v(rgb: Vec3): LightSource;
134
+ /**
135
+ * Set ambient color.
136
+ * @public
137
+ * @param {Vec3} rgb - Ambient color.
138
+ * @returns {LightSource}
139
+ */
140
+ public setAmbient(r: any, g: any, b: any): LightSource;
141
+ /**
142
+ * Set diffuse color.
143
+ * @public
144
+ * @returns {LightSource}
145
+ */
146
+ public setDiffuse(r: any, g: any, b: any): LightSource;
147
+ /**
148
+ * Set specular color.
149
+ * @public
150
+ * @returns {LightSource}
151
+ */
152
+ public setSpecular(r: any, g: any, b: any): LightSource;
153
+ /**
154
+ * Set material shininess.
155
+ * @public
156
+ * @returns {LightSource}
157
+ */
158
+ public setShininess(shininess: any): LightSource;
159
+ /**
160
+ * Sets light to black.
161
+ * @public
162
+ * @returns {LightSource}
163
+ */
164
+ public setBlack(): LightSource;
165
+ /**
166
+ * Adds current light to the render node scene.
167
+ * @public
168
+ * @param {RenderNode} renderNode - Render node scene.
169
+ * @returns {LightSource}
170
+ */
171
+ public addTo(renderNode: RenderNode): LightSource;
172
+ /**
173
+ * Removes from render node scene.
174
+ * @public
175
+ */
176
+ public remove(): void;
177
+ }
178
+ import { Vec3 } from "../math/Vec3.js";
@@ -0,0 +1,11 @@
1
+ export class Line2 {
2
+ static get(p0: any, p1: any): Line2;
3
+ static getParallel(l: any, p: any): Line2;
4
+ static getIntersection(L0: any, L1: any): Vec2;
5
+ constructor(a: any, b: any, c: any);
6
+ a: any;
7
+ b: any;
8
+ c: any;
9
+ intersects(l: any): Vec2;
10
+ }
11
+ import { Vec2 } from "./Vec2.js";
@@ -0,0 +1,10 @@
1
+ export class Line3 {
2
+ constructor(p0: any, p1: any);
3
+ p0: any;
4
+ p1: any;
5
+ getMagnitude(): any;
6
+ getSphereIntersection(sphere: any): Vec3 | Vec3[];
7
+ intersects(line: any, res: any, res2: any): boolean;
8
+ getNearestDistancePoint(point: any, res: any): boolean;
9
+ }
10
+ import { Vec3 } from "./Vec3.js";
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Mat3 factory.
3
+ * @static
4
+ * @return {Mat3}
5
+ */
6
+ export function mat3(): Mat3;
7
+ /**
8
+ * Class represents a 3x3 matrix.
9
+ * @class
10
+ */
11
+ export class Mat3 {
12
+ /**
13
+ * A 3x3 matrix, indexable as a column-major order array.
14
+ * @public
15
+ * @type {Array.<number>}
16
+ */
17
+ public _m: Array<number>;
18
+ /**
19
+ * Sets column-major order array matrix.
20
+ * @public
21
+ * @param {Array.<number>} m - Matrix array.
22
+ * @returns {Mat3}
23
+ */
24
+ public set(m: Array<number>): Mat3;
25
+ /**
26
+ * Duplicates a Mat3 instance.
27
+ * @public
28
+ * @returns {Mat3}
29
+ */
30
+ public clone(): Mat3;
31
+ /**
32
+ * Copy matrix.
33
+ * @public
34
+ * @param {Mat3} a - Matrix to copy.
35
+ * @returns {Mat3}
36
+ */
37
+ public copy(a: Mat3): Mat3;
38
+ /**
39
+ * Creates trasposed matrix from the current.
40
+ * @public
41
+ * @returns {Mat3}
42
+ */
43
+ public transposeTo(): Mat3;
44
+ /**
45
+ * Sets matrix to identity.
46
+ * @public
47
+ * @returns {Mat3}
48
+ */
49
+ public setIdentity(): Mat3;
50
+ /**
51
+ * Multiply to 3d vector.
52
+ * @public
53
+ * @params {Vec3} p - 3d vector.
54
+ * @returns {Vec3}
55
+ */
56
+ public mulVec(p: any): Vec3;
57
+ /**
58
+ * Converts to 4x4 matrix.
59
+ * @public
60
+ * @returns {Mat4}
61
+ */
62
+ public toMatrix4(): Mat4;
63
+ }
64
+ import { Vec3 } from "./Vec3.js";
65
+ import { Mat4 } from "./Mat4.js";
@@ -0,0 +1,176 @@
1
+ /**
2
+ * Mat4 factory.
3
+ * @static
4
+ * @returns {Mat4} -
5
+ */
6
+ export function mat4(): Mat4;
7
+ /**
8
+ * Class represents a 4x4 matrix.
9
+ * @class
10
+ */
11
+ export class Mat4 {
12
+ /**
13
+ * Returns identity matrix instance.
14
+ * @static
15
+ * @returns {Mat4} -
16
+ */
17
+ static identity(): Mat4;
18
+ /**
19
+ * A 4x4 matrix, indexable as a column-major order array.
20
+ * @public
21
+ * @type {Array.<number>}
22
+ */
23
+ public _m: Array<number>;
24
+ /**
25
+ * Sets column-major order array matrix.
26
+ * @public
27
+ * @param {Array.<number>} m - Matrix array.
28
+ * @returns {Mat4} -
29
+ */
30
+ public set(m: Array<number>): Mat4;
31
+ /**
32
+ * Duplicates a Matrix3 instance.
33
+ * @public
34
+ * @returns {Mat4} -
35
+ */
36
+ public clone(): Mat4;
37
+ /**
38
+ * Copy matrix.
39
+ * @public
40
+ * @param {Mat3} a - Matrix to copy.
41
+ */
42
+ public copy(a: Mat3): void;
43
+ /**
44
+ * Converts to 3x3 matrix.
45
+ * @public
46
+ * @returns {Mat3} -
47
+ */
48
+ public toMatrix3(): Mat3;
49
+ /**
50
+ * Multiply to 3d vector.
51
+ * @public
52
+ * @param {Vec3} p - 3d vector.
53
+ * @returns {Vec3} -
54
+ */
55
+ public mulVec3(p: Vec3): Vec3;
56
+ /**
57
+ * Multiply to 4d vector.
58
+ * @public
59
+ * @param {Vec4} p - 4d vector.
60
+ * @returns {Vec4} -
61
+ */
62
+ public mulVec4(p: Vec4): Vec4;
63
+ /**
64
+ * Creates an inversed 3x3 matrix of the current.
65
+ * @public
66
+ * @returns {Mat3} -
67
+ */
68
+ public toInverseMatrix3(): Mat3;
69
+ /**
70
+ * Creates an inversed matrix of the current.
71
+ * @public
72
+ * @returns {Mat4} -
73
+ */
74
+ public inverseTo(res: any): Mat4;
75
+ /**
76
+ * Creates a trasposed matrix of the current.
77
+ * @public
78
+ * @returns {Mat4} -
79
+ */
80
+ public transposeTo(): Mat4;
81
+ /**
82
+ * Sets matrix to identity.
83
+ * @public
84
+ * @returns {Mat4} -
85
+ */
86
+ public setIdentity(): Mat4;
87
+ /**
88
+ * Computes the product of two matrices.
89
+ * @public
90
+ * @param {Mat4} mx - Matrix to multiply.
91
+ * @returns {Mat4} -
92
+ */
93
+ public mul(mx: Mat4): Mat4;
94
+ /**
95
+ * Add translation vector to the current matrix.
96
+ * @public
97
+ * @param {Vec3} v - Translate vector.
98
+ * @returns {Mat4} -
99
+ */
100
+ public translate(v: Vec3): Mat4;
101
+ /**
102
+ * Sets translation matrix to the position.
103
+ * @public
104
+ * @param {Vec3} v - Translate to position.
105
+ * @returns {Mat4} -
106
+ */
107
+ public translateToPosition(v: Vec3): Mat4;
108
+ /**
109
+ * Rotate currrent matrix around the aligned axis and angle.
110
+ * @public
111
+ * @param {Vec3} u - Aligned axis.
112
+ * @param {number} angle - Aligned axis angle in radians.
113
+ * @returns {Mat4} -
114
+ * @todo: OPTIMIZE: reveal multiplication
115
+ */
116
+ public rotate(u: Vec3, angle: number): Mat4;
117
+ /**
118
+ * Sets current rotation matrix around the aligned axis and angle.
119
+ * @public
120
+ * @param {Vec3} u - Aligned axis.
121
+ * @param {number} angle - Aligned axis angle in radians.
122
+ * @returns {Mat4} -
123
+ */
124
+ public setRotation(u: Vec3, angle: number): Mat4;
125
+ /**
126
+ * Gets the rotation matrix from one vector to another.
127
+ * @public
128
+ * @param {Vec3} a - Firtst vector.
129
+ * @param {Vec3} b - Second vector.
130
+ * @returns {Mat4} -
131
+ */
132
+ public rotateBetweenVectors(a: Vec3, b: Vec3): Mat4;
133
+ /**
134
+ * Scale current matrix to the vector values.
135
+ * @public
136
+ * @param {Vec3} v - Scale vector.
137
+ * @returns {Mat4} -
138
+ */
139
+ public scale(v: Vec3): Mat4;
140
+ /**
141
+ * Sets perspective projection matrix frustum values.
142
+ * @public
143
+ * @param {number} left -
144
+ * @param {number} right -
145
+ * @param {number} bottom -
146
+ * @param {number} top -
147
+ * @param {number} near -
148
+ * @param {number} far -
149
+ * @returns {Mat4} -
150
+ */
151
+ public setPerspective(left: number, right: number, bottom: number, top: number, near: number, far: number): Mat4;
152
+ /**
153
+ * Creates current orthographic projection matrix.
154
+ * @public
155
+ * @param {number} left -
156
+ * @param {number} right -
157
+ * @param {number} bottom -
158
+ * @param {number} top -
159
+ * @param {number} near -
160
+ * @param {number} far -
161
+ * @return {Mat4} -
162
+ */
163
+ public setOrtho(left: number, right: number, bottom: number, top: number, near: number, far: number): Mat4;
164
+ /**
165
+ * Sets current rotation matrix by euler's angles.
166
+ * @public
167
+ * @param {number} ax - Rotation angle in radians arond X axis.
168
+ * @param {number} ay - Rotation angle in radians arond Y axis.
169
+ * @param {number} az - Rotation angle in radians arond Z axis.
170
+ * @returns {Mat4} -
171
+ */
172
+ public eulerToMatrix(ax: number, ay: number, az: number): Mat4;
173
+ }
174
+ import { Mat3 } from "./Mat3.js";
175
+ import { Vec3 } from "./Vec3.js";
176
+ import { Vec4 } from "./Vec4.js";
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Plane class.
3
+ * @constructor
4
+ * @param {Vec3} [p] - Plane point.
5
+ * @param {Vec3} [n] - Planet normal.
6
+ */
7
+ export class Plane {
8
+ constructor(p: any, n: any);
9
+ p: any;
10
+ n: any;
11
+ set(p: any, n: any): void;
12
+ getNormal(): any;
13
+ distance(p: any): any;
14
+ getProjection(v: any, def: any): Vec3;
15
+ getProjectionPoint(p: any, vh: any): any;
16
+ getIntersection(Pn1: any, Pn2: any, L: any): 1 | 0 | 2;
17
+ }
18
+ import { Vec3 } from "./Vec3.js";