@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.
- package/css/og.css +2 -0
- package/dist/@openglobus/og.css +1 -0
- package/dist/@openglobus/og.esm.js +21 -0
- package/dist/@openglobus/og.esm.js.map +1 -0
- package/dist/@openglobus/og.umd.js +21 -0
- package/dist/@openglobus/og.umd.js.map +1 -0
- package/package.json +11 -11
- package/src/og/Globe.js +18 -6
- package/src/og/camera/Camera.js +70 -79
- package/src/og/camera/PlanetCamera.js +25 -30
- package/src/og/control/DebugInfo.js +2 -2
- package/src/og/control/EarthNavigation.js +26 -17
- package/src/og/control/MouseNavigation.js +11 -13
- package/src/og/control/MouseWheelZoomControl.js +5 -5
- package/src/og/control/Sun.js +3 -3
- package/src/og/entity/Entity.js +742 -742
- package/src/og/entity/GeoObjectHandler.js +138 -134
- package/src/og/entity/LabelHandler.js +2 -1
- package/src/og/layer/CanvasTiles.js +8 -11
- package/src/og/layer/KML.js +19 -12
- package/src/og/layer/Layer.js +9 -2
- package/src/og/layer/XYZ.js +27 -28
- package/src/og/math/Vec3.js +18 -2
- package/src/og/quadTree/Node.js +48 -93
- package/src/og/quadTree/quadTree.js +1 -1
- package/src/og/renderer/Renderer.js +3 -5
- package/src/og/scene/Planet.js +147 -127
- package/src/og/segment/Segment.js +63 -136
- package/src/og/shaders/drawnode.js +132 -221
- package/src/og/shaders/geoObject.js +15 -6
- package/src/og/terrain/EmptyTerrain.js +3 -2
- package/src/og/terrain/GlobusTerrain.js +2 -0
- package/src/og/utils/Loader.js +1 -1
- package/src/og/utils/PlainSegmentWorker.js +0 -13
- package/src/og/webgl/Handler.js +13 -9
- package/types/Clock.d.ts +94 -0
- package/types/Deferred.d.ts +6 -0
- package/types/Events.d.ts +77 -0
- package/types/Extent.d.ts +166 -0
- package/types/Globe.d.ts +85 -0
- package/types/ImageCanvas.d.ts +123 -0
- package/types/Lock.d.ts +12 -0
- package/types/LonLat.d.ts +108 -0
- package/types/Popup.d.ts +42 -0
- package/types/QueueArray.d.ts +19 -0
- package/types/Rectangle.d.ts +80 -0
- package/types/Stack.d.ts +19 -0
- package/types/ajax.d.ts +24 -0
- package/types/arial.d.ts +48 -0
- package/types/astro/astro.d.ts +38 -0
- package/types/astro/earth.d.ts +7 -0
- package/types/astro/jd.d.ts +254 -0
- package/types/bv/Box.d.ts +30 -0
- package/types/bv/Sphere.d.ts +38 -0
- package/types/bv/index.d.ts +3 -0
- package/types/camera/Camera.d.ts +312 -0
- package/types/camera/Frustum.d.ts +133 -0
- package/types/camera/PlanetCamera.d.ts +219 -0
- package/types/camera/index.d.ts +3 -0
- package/types/cons.d.ts +40 -0
- package/types/control/CompassButton.d.ts +17 -0
- package/types/control/Control.d.ts +104 -0
- package/types/control/DebugInfo.d.ts +15 -0
- package/types/control/EarthCoordinates.d.ts +47 -0
- package/types/control/EarthNavigation.d.ts +43 -0
- package/types/control/GeoImageDragControl.d.ts +6 -0
- package/types/control/KeyboardNavigation.d.ts +21 -0
- package/types/control/LayerSwitcher.d.ts +21 -0
- package/types/control/Lighting.d.ts +16 -0
- package/types/control/MouseNavigation.d.ts +48 -0
- package/types/control/MouseWheelZoomControl.d.ts +45 -0
- package/types/control/ScaleControl.d.ts +22 -0
- package/types/control/ShowFps.d.ts +11 -0
- package/types/control/SimpleNavigation.d.ts +25 -0
- package/types/control/Sun.d.ts +50 -0
- package/types/control/ToggleWireframe.d.ts +12 -0
- package/types/control/TouchNavigation.d.ts +48 -0
- package/types/control/ZoomControl.d.ts +27 -0
- package/types/control/index.d.ts +18 -0
- package/types/ellipsoid/Ellipsoid.d.ts +146 -0
- package/types/ellipsoid/index.d.ts +3 -0
- package/types/ellipsoid/wgs84.d.ts +6 -0
- package/types/entity/BaseBillboard.d.ts +215 -0
- package/types/entity/Billboard.d.ts +94 -0
- package/types/entity/BillboardHandler.d.ts +79 -0
- package/types/entity/Entity.d.ts +348 -0
- package/types/entity/EntityCollection.d.ts +317 -0
- package/types/entity/GeoObject.d.ts +111 -0
- package/types/entity/GeoObjectHandler.d.ts +81 -0
- package/types/entity/Geometry.d.ts +74 -0
- package/types/entity/GeometryHandler.d.ts +76 -0
- package/types/entity/Label.d.ts +189 -0
- package/types/entity/LabelHandler.d.ts +31 -0
- package/types/entity/LabelWorker.d.ts +11 -0
- package/types/entity/PointCloud.d.ts +174 -0
- package/types/entity/PointCloudHandler.d.ts +38 -0
- package/types/entity/Polyline.d.ts +306 -0
- package/types/entity/PolylineHandler.d.ts +18 -0
- package/types/entity/Ray.d.ts +124 -0
- package/types/entity/RayHandler.d.ts +67 -0
- package/types/entity/ShapeHandler.d.ts +22 -0
- package/types/entity/Strip.d.ts +119 -0
- package/types/entity/StripHandler.d.ts +38 -0
- package/types/entity/index.d.ts +8 -0
- package/types/index.core.d.ts +65 -0
- package/types/index.d.ts +45 -0
- package/types/index.webgl.d.ts +7 -0
- package/types/input/KeyboardHandler.d.ts +10 -0
- package/types/input/MouseHandler.d.ts +5 -0
- package/types/input/TouchHandler.d.ts +5 -0
- package/types/input/input.d.ts +34 -0
- package/types/layer/BaseGeoImage.d.ts +94 -0
- package/types/layer/CanvasTiles.d.ts +67 -0
- package/types/layer/GeoImage.d.ts +52 -0
- package/types/layer/GeoTexture2d.d.ts +8 -0
- package/types/layer/GeoVideo.d.ts +55 -0
- package/types/layer/KML.d.ts +68 -0
- package/types/layer/Layer.d.ts +311 -0
- package/types/layer/Material.d.ts +45 -0
- package/types/layer/Vector.d.ts +208 -0
- package/types/layer/WMS.d.ts +61 -0
- package/types/layer/XYZ.d.ts +119 -0
- package/types/layer/index.d.ts +10 -0
- package/types/light/LightSource.d.ts +178 -0
- package/types/math/Line2.d.ts +11 -0
- package/types/math/Line3.d.ts +10 -0
- package/types/math/Mat3.d.ts +65 -0
- package/types/math/Mat4.d.ts +176 -0
- package/types/math/Plane.d.ts +18 -0
- package/types/math/Quat.d.ts +379 -0
- package/types/math/Ray.d.ts +82 -0
- package/types/math/Vec2.d.ts +309 -0
- package/types/math/Vec3.d.ts +467 -0
- package/types/math/Vec4.d.ts +162 -0
- package/types/math/coder.d.ts +43 -0
- package/types/math/index.d.ts +11 -0
- package/types/math.d.ts +261 -0
- package/types/mercator.d.ts +92 -0
- package/types/proj/EPSG3857.d.ts +6 -0
- package/types/proj/EPSG4326.d.ts +6 -0
- package/types/proj/Proj.d.ts +42 -0
- package/types/quadTree/EntityCollectionNode.d.ts +34 -0
- package/types/quadTree/Node.d.ts +60 -0
- package/types/quadTree/quadTree.d.ts +40 -0
- package/types/renderer/Renderer.d.ts +290 -0
- package/types/renderer/RendererEvents.d.ts +237 -0
- package/types/res/images.d.ts +3 -0
- package/types/scene/Axes.d.ts +11 -0
- package/types/scene/BaseNode.d.ts +60 -0
- package/types/scene/Planet.d.ts +576 -0
- package/types/scene/RenderNode.d.ts +142 -0
- package/types/scene/SkyBox.d.ts +10 -0
- package/types/scene/index.d.ts +4 -0
- package/types/segment/Segment.d.ts +275 -0
- package/types/segment/SegmentLonLat.d.ts +17 -0
- package/types/segment/Slice.d.ts +10 -0
- package/types/segment/segmentHelper.d.ts +13 -0
- package/types/shaders/billboard.d.ts +3 -0
- package/types/shaders/depth.d.ts +2 -0
- package/types/shaders/drawnode.d.ts +7 -0
- package/types/shaders/geoObject.d.ts +3 -0
- package/types/shaders/label.d.ts +4 -0
- package/types/shaders/pointCloud.d.ts +2 -0
- package/types/shaders/polyline.d.ts +3 -0
- package/types/shaders/ray.d.ts +2 -0
- package/types/shaders/screenFrame.d.ts +2 -0
- package/types/shaders/shape.d.ts +4 -0
- package/types/shaders/skybox.d.ts +2 -0
- package/types/shaders/toneMapping.d.ts +2 -0
- package/types/shapes/BaseShape.d.ts +250 -0
- package/types/shapes/Sphere.d.ts +41 -0
- package/types/terrain/BilTerrain.d.ts +7 -0
- package/types/terrain/EmptyTerrain.d.ts +73 -0
- package/types/terrain/Geoid.d.ts +26 -0
- package/types/terrain/GlobusTerrain.d.ts +116 -0
- package/types/terrain/MapboxTerrain.d.ts +7 -0
- package/types/terrain/index.d.ts +5 -0
- package/types/utils/FontAtlas.d.ts +15 -0
- package/types/utils/GeoImageCreator.d.ts +30 -0
- package/types/utils/ImagesCacheManager.d.ts +10 -0
- package/types/utils/Loader.d.ts +25 -0
- package/types/utils/NormalMapCreator.d.ts +39 -0
- package/types/utils/PlainSegmentWorker.d.ts +10 -0
- package/types/utils/TerrainWorker.d.ts +9 -0
- package/types/utils/TextureAtlas.d.ts +111 -0
- package/types/utils/VectorTileCreator.d.ts +16 -0
- package/types/utils/colorTable.d.ts +143 -0
- package/types/utils/earcut.d.ts +6 -0
- package/types/utils/shared.d.ts +231 -0
- package/types/webgl/Framebuffer.d.ts +135 -0
- package/types/webgl/Handler.d.ts +417 -0
- package/types/webgl/Multisample.d.ts +89 -0
- package/types/webgl/Program.d.ts +161 -0
- package/types/webgl/ProgramController.d.ts +89 -0
- package/types/webgl/callbacks.d.ts +1 -0
- package/types/webgl/index.d.ts +6 -0
- 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";
|