@openglobus/og 0.11.1 → 0.11.6
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/package.json +18 -20
- package/src/og/Clock.js +11 -11
- package/src/og/Deferred.js +1 -1
- package/src/og/Events.js +9 -7
- package/src/og/Extent.js +117 -72
- package/src/og/Globe.js +35 -22
- package/src/og/ImageCanvas.js +24 -18
- package/src/og/Lock.js +2 -2
- package/src/og/LonLat.js +40 -37
- package/src/og/Popup.js +21 -15
- package/src/og/QueueArray.js +7 -3
- package/src/og/Rectangle.js +11 -6
- package/src/og/Stack.js +8 -5
- package/src/og/ajax.js +21 -33
- package/src/og/astro/astro.js +5 -5
- package/src/og/astro/earth.js +23 -17
- package/src/og/astro/jd.js +44 -39
- package/src/og/astro/orbit.js +20 -18
- package/src/og/astro/rotation.js +17 -8
- package/src/og/bv/Box.js +7 -3
- package/src/og/bv/Sphere.js +17 -9
- package/src/og/camera/Camera.js +137 -86
- package/src/og/camera/Frustum.js +30 -19
- package/src/og/camera/PlanetCamera.js +30 -26
- package/src/og/control/CompassButton.js +8 -2
- package/src/og/control/Control.js +13 -11
- package/src/og/control/DebugInfo.js +4 -1
- package/src/og/control/EarthCoordinates.js +62 -41
- package/src/og/control/EarthNavigation.js +20 -22
- package/src/og/control/GeoImageDragControl.js +1 -1
- package/src/og/control/KeyboardNavigation.js +12 -12
- package/src/og/control/LayerSwitcher.js +24 -23
- package/src/og/control/Lighting.js +1 -1
- package/src/og/control/MouseNavigation.js +1 -1
- package/src/og/control/ScaleControl.js +1 -1
- package/src/og/control/SegmentBoundVisualization.js +8 -9
- package/src/og/control/ShowFps.js +15 -10
- package/src/og/control/SimpleNavigation.js +8 -10
- package/src/og/control/Sun.js +25 -15
- package/src/og/control/ToggleWireframe.js +5 -5
- package/src/og/control/TouchNavigation.js +58 -45
- package/src/og/control/ZoomControl.js +41 -25
- package/src/og/control/index.js +4 -0
- package/src/og/ellipsoid/Ellipsoid.js +181 -85
- package/src/og/ellipsoid/wgs84.js +4 -4
- package/src/og/entity/BaseBillboard.js +97 -44
- package/src/og/entity/Billboard.js +15 -11
- package/src/og/entity/BillboardHandler.js +314 -64
- package/src/og/entity/Entity.js +106 -74
- package/src/og/entity/EntityCollection.js +72 -49
- package/src/og/entity/GeoObject.js +228 -0
- package/src/og/entity/GeoObjectHandler.js +910 -0
- package/src/og/entity/Geometry.js +29 -26
- package/src/og/entity/GeometryHandler.js +598 -126
- package/src/og/entity/Label.js +74 -40
- package/src/og/entity/LabelHandler.js +47 -246
- package/src/og/entity/LabelWorker.js +213 -0
- package/src/og/entity/Object3d.js +504 -0
- package/src/og/entity/PointCloud.js +81 -33
- package/src/og/entity/PointCloudHandler.js +9 -9
- package/src/og/entity/Polyline.js +39 -39
- package/src/og/entity/Ray.js +61 -28
- package/src/og/entity/ShapeHandler.js +1 -1
- package/src/og/entity/Strip.js +77 -48
- package/src/og/entity/StripHandler.js +27 -27
- package/src/og/entity/index.js +8 -16
- package/src/og/input/KeyboardHandler.js +107 -104
- package/src/og/input/MouseHandler.js +81 -78
- package/src/og/input/TouchHandler.js +55 -51
- package/src/og/layer/BaseGeoImage.js +61 -30
- package/src/og/layer/CanvasTiles.js +26 -24
- package/src/og/layer/GeoImage.js +10 -10
- package/src/og/layer/GeoTexture2d.js +1 -1
- package/src/og/layer/GeoVideo.js +3 -3
- package/src/og/layer/KML.js +66 -40
- package/src/og/layer/Layer.js +27 -17
- package/src/og/layer/Material.js +93 -61
- package/src/og/layer/Vector.js +118 -72
- package/src/og/layer/WMS.js +36 -19
- package/src/og/layer/XYZ.js +55 -48
- package/src/og/light/LightSource.js +47 -40
- package/src/og/math/Line2.js +24 -24
- package/src/og/math/Line3.js +103 -102
- package/src/og/math/Mat3.js +134 -121
- package/src/og/math/Mat4.js +603 -459
- package/src/og/math/Plane.js +21 -20
- package/src/og/math/Quat.js +980 -927
- package/src/og/math/Ray.js +195 -187
- package/src/og/math/Vec2.js +127 -117
- package/src/og/math/Vec3.js +206 -176
- package/src/og/math/Vec4.js +49 -53
- package/src/og/math/coder.js +18 -18
- package/src/og/math.js +12 -12
- package/src/og/mercator.js +11 -11
- package/src/og/proj/EPSG3857.js +4 -4
- package/src/og/proj/EPSG4326.js +4 -4
- package/src/og/proj/Proj.js +31 -31
- package/src/og/quadTree/EntityCollectionNode.js +310 -300
- package/src/og/quadTree/Node.js +1008 -993
- package/src/og/renderer/Renderer.js +768 -747
- package/src/og/renderer/RendererEvents.js +9 -6
- package/src/og/scene/Axes.js +1 -1
- package/src/og/scene/BaseNode.js +8 -9
- package/src/og/scene/Planet.js +115 -87
- package/src/og/scene/RenderNode.js +29 -22
- package/src/og/scene/SkyBox.js +1 -1
- package/src/og/segment/Segment.js +1886 -1878
- package/src/og/segment/SegmentLonLat.js +298 -268
- package/src/og/segment/segmentHelper.js +11 -11
- package/src/og/shaders/bloom.js +1 -1
- package/src/og/shaders/blur.js +2 -2
- package/src/og/shaders/depth.js +1 -1
- package/src/og/shaders/geoObject.js +211 -0
- package/src/og/shaders/label.js +1 -1
- package/src/og/shaders/lumFilter.js +1 -1
- package/src/og/shaders/pointCloud.js +42 -42
- package/src/og/shaders/screenFrame.js +1 -1
- package/src/og/shaders/shape.js +15 -21
- package/src/og/shaders/skybox.js +37 -37
- package/src/og/shaders/toneMapping.js +1 -1
- package/src/og/shapes/BaseShape.js +129 -57
- package/src/og/shapes/Icosphere.js +30 -15
- package/src/og/shapes/Sphere.js +13 -16
- package/src/og/terrain/BilTerrain.js +2 -1
- package/src/og/terrain/EmptyTerrain.js +2 -2
- package/src/og/terrain/Geoid.js +2 -2
- package/src/og/terrain/GlobusTerrain.js +10 -10
- package/src/og/terrain/MapboxTerrain.js +1 -1
- package/src/og/utils/GeoImageCreator.js +9 -9
- package/src/og/utils/Loader.js +6 -6
- package/src/og/utils/NormalMapCreator.js +13 -13
- package/src/og/utils/TerrainWorker.js +1 -1
- package/src/og/utils/TextureAtlas.js +20 -22
- package/src/og/utils/VectorTileCreator.js +5 -5
- package/src/og/utils/earcut.js +1 -1
- package/src/og/utils/shared.js +15 -15
- package/src/og/webgl/Framebuffer.js +101 -53
- package/src/og/webgl/Handler.js +125 -85
- package/src/og/webgl/Multisample.js +55 -27
- package/src/og/webgl/Program.js +80 -35
- package/src/og/webgl/ProgramController.js +27 -23
- package/src/og/webgl/callbacks.js +8 -8
- package/types/Clock.d.ts +6 -2
- package/types/Deferred.d.ts +1 -1
- package/types/Events.d.ts +8 -4
- package/types/Extent.d.ts +37 -33
- package/types/Globe.d.ts +15 -13
- package/types/ImageCanvas.d.ts +5 -3
- package/types/LonLat.d.ts +24 -24
- package/types/Popup.d.ts +4 -0
- package/types/QueueArray.d.ts +6 -2
- package/types/Rectangle.d.ts +10 -4
- package/types/Stack.d.ts +4 -0
- package/types/ajax.d.ts +1 -1
- package/types/astro/earth.d.ts +3 -2
- package/types/bv/Box.d.ts +10 -5
- package/types/bv/Sphere.d.ts +13 -7
- package/types/camera/Camera.d.ts +90 -81
- package/types/camera/Frustum.d.ts +26 -22
- package/types/camera/PlanetCamera.d.ts +49 -53
- package/types/control/CompassButton.d.ts +4 -4
- package/types/control/Control.d.ts +7 -4
- package/types/control/DebugInfo.d.ts +3 -4
- package/types/control/EarthCoordinates.d.ts +6 -6
- package/types/control/EarthNavigation.d.ts +42 -0
- package/types/control/KeyboardNavigation.d.ts +3 -4
- package/types/control/LayerSwitcher.d.ts +3 -5
- package/types/control/Lighting.d.ts +3 -3
- package/types/control/MouseNavigation.d.ts +47 -0
- package/types/control/ScaleControl.d.ts +3 -3
- package/types/control/ShowFps.d.ts +3 -4
- package/types/control/SimpleNavigation.d.ts +3 -6
- package/types/control/Sun.d.ts +8 -10
- package/types/control/ToggleWireframe.d.ts +3 -3
- package/types/control/TouchNavigation.d.ts +48 -0
- package/types/control/ZoomControl.d.ts +3 -4
- package/types/control/index.d.ts +3 -1
- package/types/ellipsoid/Ellipsoid.d.ts +47 -43
- package/types/ellipsoid/wgs84.d.ts +3 -2
- package/types/entity/BaseBillboard.d.ts +41 -34
- package/types/entity/Billboard.d.ts +7 -7
- package/types/entity/BillboardHandler.d.ts +4 -0
- package/types/entity/Entity.d.ts +101 -83
- package/types/entity/EntityCollection.d.ts +57 -43
- package/types/entity/GeoObject.d.ts +111 -0
- package/types/entity/GeoObjectHandler.d.ts +77 -0
- package/types/entity/Geometry.d.ts +9 -7
- package/types/entity/GeometryHandler.d.ts +2 -2
- package/types/entity/Label.d.ts +24 -29
- package/types/entity/LabelHandler.d.ts +9 -2
- package/types/entity/LabelWorker.d.ts +9 -0
- package/types/entity/PointCloud.d.ts +8 -8
- package/types/entity/PointCloudHandler.d.ts +3 -3
- package/types/entity/Polyline.d.ts +58 -55
- package/types/entity/Ray.d.ts +19 -18
- package/types/entity/Strip.d.ts +8 -7
- package/types/entity/StripHandler.d.ts +3 -3
- package/types/entity/index.d.ts +7 -7
- 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/layer/BaseGeoImage.d.ts +23 -35
- package/types/layer/CanvasTiles.d.ts +15 -22
- package/types/layer/GeoImage.d.ts +5 -18
- package/types/layer/GeoVideo.d.ts +5 -30
- package/types/layer/KML.d.ts +20 -15
- package/types/layer/Layer.d.ts +326 -0
- package/types/layer/Material.d.ts +45 -0
- package/types/layer/Vector.d.ts +208 -0
- package/types/layer/WMS.d.ts +4 -7
- package/types/layer/XYZ.d.ts +19 -25
- package/types/light/LightSource.d.ts +54 -53
- package/types/math/Line2.d.ts +11 -0
- package/types/math/Line3.d.ts +10 -0
- package/types/math/Mat3.d.ts +30 -18
- package/types/math/Mat4.d.ts +71 -52
- package/types/math/Plane.d.ts +5 -4
- package/types/math/Quat.d.ts +379 -0
- package/types/math/Ray.d.ts +82 -0
- package/types/math/Vec2.d.ts +102 -101
- package/types/math/Vec3.d.ts +143 -142
- package/types/math/Vec4.d.ts +40 -39
- package/types/math/coder.d.ts +12 -11
- package/types/math.d.ts +8 -8
- package/types/mercator.d.ts +3 -3
- package/types/proj/EPSG3857.d.ts +3 -2
- package/types/proj/EPSG4326.d.ts +3 -2
- package/types/proj/Proj.d.ts +42 -0
- package/types/quadTree/EntityCollectionNode.d.ts +34 -0
- package/types/quadTree/Node.d.ts +61 -0
- package/types/renderer/Renderer.d.ts +300 -0
- package/types/renderer/RendererEvents.d.ts +10 -7
- package/types/scene/BaseNode.d.ts +9 -9
- package/types/scene/Planet.d.ts +131 -126
- package/types/scene/RenderNode.d.ts +22 -23
- package/types/segment/Segment.d.ts +279 -0
- package/types/segment/SegmentLonLat.d.ts +16 -0
- package/types/shaders/geoObject.d.ts +3 -0
- package/types/shapes/BaseShape.d.ts +43 -40
- package/types/shapes/Sphere.d.ts +7 -7
- package/types/terrain/BilTerrain.d.ts +0 -1
- package/types/terrain/EmptyTerrain.d.ts +4 -4
- package/types/terrain/GlobusTerrain.d.ts +17 -54
- package/types/terrain/MapboxTerrain.d.ts +0 -1
- package/types/utils/GeoImageCreator.d.ts +3 -2
- package/types/utils/TextureAtlas.d.ts +8 -8
- package/types/utils/shared.d.ts +25 -24
- package/types/webgl/Framebuffer.d.ts +5 -5
- package/types/webgl/Handler.d.ts +68 -43
- package/types/webgl/Multisample.d.ts +5 -5
- package/types/webgl/Program.d.ts +8 -2
- package/types/webgl/ProgramController.d.ts +18 -13
- package/src/og/inherits.js +0 -8
- package/src/og/utils/polylabel.js +0 -176
- package/types/inherits.d.ts +0 -4
|
@@ -2,20 +2,20 @@
|
|
|
2
2
|
* @module og/entity/BaseBillboard
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
"use strict";
|
|
6
6
|
|
|
7
|
-
import * as utils from
|
|
8
|
-
import { Vec3 } from
|
|
7
|
+
import * as utils from "../utils/shared.js";
|
|
8
|
+
import { Vec3 } from "../math/Vec3.js";
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Base prototype for billboard and label classes.
|
|
12
12
|
* @class
|
|
13
13
|
* @param {Object} [options] - Options:
|
|
14
|
-
* @param {
|
|
14
|
+
* @param {Vec3|Array.<number>} [options.position] - Billboard spatial position.
|
|
15
15
|
* @param {number} [options.rotation] - Screen angle rotaion.
|
|
16
|
-
* @param {
|
|
17
|
-
* @param {
|
|
18
|
-
* @param {
|
|
16
|
+
* @param {Vec4|string|Array.<number>} [options.color] - Billboard color.
|
|
17
|
+
* @param {Vec3|Array.<number>} [options.alignedAxis] - Billboard aligned vector.
|
|
18
|
+
* @param {Vec3|Array.<number>} [options.offset] - Billboard center screen offset.
|
|
19
19
|
* @param {boolean} [options.visibility] - Visibility.
|
|
20
20
|
*/
|
|
21
21
|
class BaseBillboard {
|
|
@@ -33,14 +33,14 @@ class BaseBillboard {
|
|
|
33
33
|
/**
|
|
34
34
|
* Billboard center cartesian position.
|
|
35
35
|
* @protected
|
|
36
|
-
* @type {
|
|
36
|
+
* @type {Vec3}
|
|
37
37
|
*/
|
|
38
38
|
this._position = utils.createVector3(options.position);
|
|
39
39
|
|
|
40
40
|
this._positionHigh = new Vec3();
|
|
41
|
-
|
|
41
|
+
|
|
42
42
|
this._positionLow = new Vec3();
|
|
43
|
-
|
|
43
|
+
|
|
44
44
|
Vec3.doubleToTwoFloats(this._position, this._positionHigh, this._positionLow);
|
|
45
45
|
|
|
46
46
|
/**
|
|
@@ -53,21 +53,21 @@ class BaseBillboard {
|
|
|
53
53
|
/**
|
|
54
54
|
* RGBA color.
|
|
55
55
|
* @protected
|
|
56
|
-
* @type {
|
|
56
|
+
* @type {Vec4}
|
|
57
57
|
*/
|
|
58
58
|
this._color = utils.createColorRGBA(options.color);
|
|
59
59
|
|
|
60
60
|
/**
|
|
61
61
|
* Cartesian aligned axis vector.
|
|
62
62
|
* @protected
|
|
63
|
-
* @type {
|
|
63
|
+
* @type {Vec3}
|
|
64
64
|
*/
|
|
65
65
|
this._alignedAxis = utils.createVector3(options.alignedAxis);
|
|
66
66
|
|
|
67
67
|
/**
|
|
68
68
|
* Billboard center screen space offset. Where x,y - screen space offset and z - depth offset.
|
|
69
69
|
* @protected
|
|
70
|
-
* @type {
|
|
70
|
+
* @type {math.Vecto3}
|
|
71
71
|
*/
|
|
72
72
|
this._offset = utils.createVector3(options.offset);
|
|
73
73
|
|
|
@@ -81,14 +81,14 @@ class BaseBillboard {
|
|
|
81
81
|
/**
|
|
82
82
|
* Entity instance that holds this billboard.
|
|
83
83
|
* @protected
|
|
84
|
-
* @type {
|
|
84
|
+
* @type {Entity}
|
|
85
85
|
*/
|
|
86
86
|
this._entity = null;
|
|
87
87
|
|
|
88
88
|
/**
|
|
89
89
|
* Handler that stores and renders this billboard object.
|
|
90
90
|
* @protected
|
|
91
|
-
* @type {
|
|
91
|
+
* @type {BillboardHandler}
|
|
92
92
|
*/
|
|
93
93
|
this._handler = null;
|
|
94
94
|
|
|
@@ -97,7 +97,16 @@ class BaseBillboard {
|
|
|
97
97
|
* @protected
|
|
98
98
|
* @type {number}
|
|
99
99
|
*/
|
|
100
|
-
this._handlerIndex = -1;
|
|
100
|
+
this._handlerIndex = -1;
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* An indication that the object is ready to draw
|
|
104
|
+
* @protected
|
|
105
|
+
* @type {number}
|
|
106
|
+
*/
|
|
107
|
+
this._isReady = false;
|
|
108
|
+
|
|
109
|
+
this._lockId = -1;
|
|
101
110
|
}
|
|
102
111
|
|
|
103
112
|
static get _staticCounter() {
|
|
@@ -121,28 +130,36 @@ class BaseBillboard {
|
|
|
121
130
|
setPosition(x, y, z) {
|
|
122
131
|
this._position.x = x;
|
|
123
132
|
this._position.y = y;
|
|
124
|
-
this._position.z = z;
|
|
125
|
-
Vec3.doubleToTwoFloats(
|
|
126
|
-
|
|
133
|
+
this._position.z = z;
|
|
134
|
+
Vec3.doubleToTwoFloats(this._position, this._positionHigh, this._positionLow);
|
|
135
|
+
if (this._isReady) {
|
|
136
|
+
this._handler.setPositionArr(this._handlerIndex, this._positionHigh, this._positionLow);
|
|
137
|
+
} else if (this._lockId !== -1) {
|
|
138
|
+
this._lockId = -2;
|
|
139
|
+
}
|
|
127
140
|
}
|
|
128
141
|
|
|
129
142
|
/**
|
|
130
143
|
* Sets billboard position.
|
|
131
144
|
* @public
|
|
132
|
-
* @param {
|
|
145
|
+
* @param {Vec3} position - Cartesian coordinates.
|
|
133
146
|
*/
|
|
134
147
|
setPosition3v(position) {
|
|
135
148
|
this._position.x = position.x;
|
|
136
149
|
this._position.y = position.y;
|
|
137
150
|
this._position.z = position.z;
|
|
138
151
|
Vec3.doubleToTwoFloats(position, this._positionHigh, this._positionLow);
|
|
139
|
-
|
|
152
|
+
if (this._isReady) {
|
|
153
|
+
this._handler.setPositionArr(this._handlerIndex, this._positionHigh, this._positionLow);
|
|
154
|
+
} else if (this._lockId !== -1) {
|
|
155
|
+
this._lockId = -2;
|
|
156
|
+
}
|
|
140
157
|
}
|
|
141
158
|
|
|
142
159
|
/**
|
|
143
160
|
* Returns billboard position.
|
|
144
161
|
* @public
|
|
145
|
-
* @returns {
|
|
162
|
+
* @returns {Vec3}
|
|
146
163
|
*/
|
|
147
164
|
getPosition() {
|
|
148
165
|
return this._position;
|
|
@@ -158,26 +175,34 @@ class BaseBillboard {
|
|
|
158
175
|
setOffset(x, y, z) {
|
|
159
176
|
this._offset.x = x;
|
|
160
177
|
this._offset.y = y;
|
|
161
|
-
|
|
162
|
-
|
|
178
|
+
z != undefined && (this._offset.z = z);
|
|
179
|
+
if (this._isReady) {
|
|
180
|
+
this._handler.setOffsetArr(this._handlerIndex, this._offset);
|
|
181
|
+
} else if (this._lockId !== -1) {
|
|
182
|
+
this._lockId = -2;
|
|
183
|
+
}
|
|
163
184
|
}
|
|
164
185
|
|
|
165
186
|
/**
|
|
166
187
|
* Sets screen space offset.
|
|
167
188
|
* @public
|
|
168
|
-
* @param {
|
|
189
|
+
* @param {Vec2} offset - Offset size.
|
|
169
190
|
*/
|
|
170
191
|
setOffset3v(offset) {
|
|
171
192
|
this._offset.x = offset.x;
|
|
172
193
|
this._offset.y = offset.y;
|
|
173
|
-
|
|
174
|
-
|
|
194
|
+
offset.z != undefined && (this._offset.z = offset.z);
|
|
195
|
+
if (this._isReady) {
|
|
196
|
+
this._handler.setOffsetArr(this._handlerIndex, offset);
|
|
197
|
+
} else if (this._lockId !== -1) {
|
|
198
|
+
this._lockId = -2;
|
|
199
|
+
}
|
|
175
200
|
}
|
|
176
201
|
|
|
177
202
|
/**
|
|
178
203
|
* Returns billboard screen space offset size.
|
|
179
204
|
* @public
|
|
180
|
-
* @returns {
|
|
205
|
+
* @returns {Vec3}
|
|
181
206
|
*/
|
|
182
207
|
getOffset() {
|
|
183
208
|
return this._offset;
|
|
@@ -190,7 +215,11 @@ class BaseBillboard {
|
|
|
190
215
|
*/
|
|
191
216
|
setRotation(rotation) {
|
|
192
217
|
this._rotation = rotation;
|
|
193
|
-
|
|
218
|
+
if (this._isReady) {
|
|
219
|
+
this._handler.setRotationArr(this._handlerIndex, rotation);
|
|
220
|
+
} else if (this._lockId !== -1) {
|
|
221
|
+
this._lockId = -2;
|
|
222
|
+
}
|
|
194
223
|
}
|
|
195
224
|
|
|
196
225
|
/**
|
|
@@ -224,21 +253,29 @@ class BaseBillboard {
|
|
|
224
253
|
this._color.x = r;
|
|
225
254
|
this._color.y = g;
|
|
226
255
|
this._color.z = b;
|
|
227
|
-
|
|
228
|
-
|
|
256
|
+
a != undefined && (this._color.w = a);
|
|
257
|
+
if (this._isReady) {
|
|
258
|
+
this._handler.setRgbaArr(this._handlerIndex, this._color);
|
|
259
|
+
} else if (this._lockId !== -1) {
|
|
260
|
+
this._lockId = -2;
|
|
261
|
+
}
|
|
229
262
|
}
|
|
230
263
|
|
|
231
264
|
/**
|
|
232
265
|
* Sets RGBA color. Each channel from 0.0 to 1.0.
|
|
233
266
|
* @public
|
|
234
|
-
* @param {
|
|
267
|
+
* @param {Vec4} color - RGBA vector.
|
|
235
268
|
*/
|
|
236
269
|
setColor4v(color) {
|
|
237
270
|
this._color.x = color.x;
|
|
238
271
|
this._color.y = color.y;
|
|
239
272
|
this._color.z = color.z;
|
|
240
|
-
|
|
241
|
-
|
|
273
|
+
color.w != undefined && (this._color.w = color.w);
|
|
274
|
+
if (this._isReady) {
|
|
275
|
+
this._handler.setRgbaArr(this._handlerIndex, color);
|
|
276
|
+
} else if (this._lockId !== -1) {
|
|
277
|
+
this._lockId = -2;
|
|
278
|
+
}
|
|
242
279
|
}
|
|
243
280
|
|
|
244
281
|
/**
|
|
@@ -253,7 +290,7 @@ class BaseBillboard {
|
|
|
253
290
|
/**
|
|
254
291
|
* Returns RGBA color.
|
|
255
292
|
* @public
|
|
256
|
-
* @returns {
|
|
293
|
+
* @returns {Vec4}
|
|
257
294
|
*/
|
|
258
295
|
getColor() {
|
|
259
296
|
return this._color;
|
|
@@ -266,7 +303,11 @@ class BaseBillboard {
|
|
|
266
303
|
*/
|
|
267
304
|
setVisibility(visibility) {
|
|
268
305
|
this._visibility = visibility;
|
|
269
|
-
|
|
306
|
+
if (this._isReady) {
|
|
307
|
+
this._handler.setVisibility(this._handlerIndex, visibility);
|
|
308
|
+
} else if (this._lockId !== -1) {
|
|
309
|
+
this._lockId = -2;
|
|
310
|
+
}
|
|
270
311
|
}
|
|
271
312
|
|
|
272
313
|
/**
|
|
@@ -289,25 +330,33 @@ class BaseBillboard {
|
|
|
289
330
|
this._alignedAxis.x = x;
|
|
290
331
|
this._alignedAxis.y = y;
|
|
291
332
|
this._alignedAxis.z = z;
|
|
292
|
-
|
|
333
|
+
if (this._isReady) {
|
|
334
|
+
this._handler.setAlignedAxisArr(this._handlerIndex, this._alignedAxis);
|
|
335
|
+
} else if (this._lockId !== -1) {
|
|
336
|
+
this._lockId = -2;
|
|
337
|
+
}
|
|
293
338
|
}
|
|
294
339
|
|
|
295
340
|
/**
|
|
296
341
|
* Sets billboard aligned vector.
|
|
297
342
|
* @public
|
|
298
|
-
* @param {
|
|
343
|
+
* @param {math.Vecto3} alignedAxis - Vector to align.
|
|
299
344
|
*/
|
|
300
345
|
setAlignedAxis3v(alignedAxis) {
|
|
301
346
|
this._alignedAxis.x = alignedAxis.x;
|
|
302
347
|
this._alignedAxis.y = alignedAxis.y;
|
|
303
348
|
this._alignedAxis.z = alignedAxis.z;
|
|
304
|
-
|
|
349
|
+
if (this._isReady) {
|
|
350
|
+
this._handler.setAlignedAxisArr(this._handlerIndex, alignedAxis);
|
|
351
|
+
} else if (this._lockId !== -1) {
|
|
352
|
+
this._lockId = -2;
|
|
353
|
+
}
|
|
305
354
|
}
|
|
306
355
|
|
|
307
356
|
/**
|
|
308
357
|
* Returns aligned vector.
|
|
309
358
|
* @public
|
|
310
|
-
* @returns {
|
|
359
|
+
* @returns {Vec3}
|
|
311
360
|
*/
|
|
312
361
|
getAlignedAxis() {
|
|
313
362
|
return this._alignedAxis;
|
|
@@ -325,11 +374,15 @@ class BaseBillboard {
|
|
|
325
374
|
/**
|
|
326
375
|
* Sets billboard picking color.
|
|
327
376
|
* @public
|
|
328
|
-
* @param {
|
|
377
|
+
* @param {Vec3} color - Picking color.
|
|
329
378
|
*/
|
|
330
379
|
setPickingColor3v(color) {
|
|
331
|
-
|
|
380
|
+
if (this._isReady) {
|
|
381
|
+
this._handler.setPickingColorArr(this._handlerIndex, color);
|
|
382
|
+
} else if (this._lockId !== -1) {
|
|
383
|
+
this._lockId = -2;
|
|
384
|
+
}
|
|
332
385
|
}
|
|
333
|
-
}
|
|
386
|
+
}
|
|
334
387
|
|
|
335
|
-
export { BaseBillboard };
|
|
388
|
+
export { BaseBillboard };
|
|
@@ -2,20 +2,20 @@
|
|
|
2
2
|
* @module og/entity/Billboard
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
"use strict";
|
|
6
6
|
|
|
7
|
-
import { BaseBillboard } from
|
|
7
|
+
import { BaseBillboard } from "./BaseBillboard.js";
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Represents basic quad billboard image.
|
|
11
11
|
* @class
|
|
12
|
-
* @extends {
|
|
12
|
+
* @extends {BaseBillboard}
|
|
13
13
|
* @param {Object} [options] - Options:
|
|
14
|
-
* @param {
|
|
14
|
+
* @param {Vec3|Array.<number>} [options.position] - Billboard spatial position.
|
|
15
15
|
* @param {number} [options.rotation] - Screen angle rotaion.
|
|
16
|
-
* @param {
|
|
17
|
-
* @param {
|
|
18
|
-
* @param {
|
|
16
|
+
* @param {Vec4|string|Array.<number>} [options.color] - Billboard color.
|
|
17
|
+
* @param {Vec3|Array.<number>} [options.alignedAxis] - Billboard aligned vector.
|
|
18
|
+
* @param {Vec3|Array.<number>} [options.offset] - Billboard center screen offset.
|
|
19
19
|
* @param {boolean} [options.visibility] - Visibility.
|
|
20
20
|
* @param {string} [options.src] - Billboard image url source.
|
|
21
21
|
* @param {Image} [options.image] - Billboard image object.
|
|
@@ -76,7 +76,10 @@ class Billboard extends BaseBillboard {
|
|
|
76
76
|
ta.loadImage(src, function (img) {
|
|
77
77
|
if (ta.nodes[img.__nodeIndex]) {
|
|
78
78
|
that._image = img;
|
|
79
|
-
bh.setTexCoordArr(
|
|
79
|
+
bh.setTexCoordArr(
|
|
80
|
+
that._handlerIndex,
|
|
81
|
+
ta.nodes[that._image.__nodeIndex].texCoords
|
|
82
|
+
);
|
|
80
83
|
} else {
|
|
81
84
|
ta.addImage(img);
|
|
82
85
|
ta.createTexture();
|
|
@@ -106,7 +109,8 @@ class Billboard extends BaseBillboard {
|
|
|
106
109
|
setSize(width, height) {
|
|
107
110
|
this._width = width;
|
|
108
111
|
this._height = height;
|
|
109
|
-
this._handler &&
|
|
112
|
+
this._handler &&
|
|
113
|
+
this._handler.setSizeArr(this._handlerIndex, width * this._scale, height * this._scale);
|
|
110
114
|
}
|
|
111
115
|
|
|
112
116
|
/**
|
|
@@ -156,6 +160,6 @@ class Billboard extends BaseBillboard {
|
|
|
156
160
|
getHeight() {
|
|
157
161
|
return this._height;
|
|
158
162
|
}
|
|
159
|
-
}
|
|
163
|
+
}
|
|
160
164
|
|
|
161
|
-
export { Billboard };
|
|
165
|
+
export { Billboard };
|