@openglobus/og 0.11.7 → 0.12.3

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 (211) hide show
  1. package/css/og.css +5 -2
  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/Lighting.js +52 -73
  14. package/src/og/control/MouseNavigation.js +30 -29
  15. package/src/og/control/MouseWheelZoomControl.js +257 -0
  16. package/src/og/control/Sun.js +3 -3
  17. package/src/og/control/index.js +2 -0
  18. package/src/og/control/visibleExtent/Segment.js +1862 -0
  19. package/src/og/control/visibleExtent/VisibleExtent.js +80 -0
  20. package/src/og/control/visibleExtent/drawnode.js +751 -0
  21. package/src/og/entity/BaseBillboard.js +9 -9
  22. package/src/og/entity/Entity.js +742 -742
  23. package/src/og/entity/GeoObjectHandler.js +138 -134
  24. package/src/og/entity/Label.js +7 -7
  25. package/src/og/entity/LabelHandler.js +2 -1
  26. package/src/og/layer/CanvasTiles.js +8 -12
  27. package/src/og/layer/GeoImage.js +2 -10
  28. package/src/og/layer/GeoTexture2d.js +2 -10
  29. package/src/og/layer/GeoVideo.js +2 -10
  30. package/src/og/layer/KML.js +19 -12
  31. package/src/og/layer/Layer.js +4 -23
  32. package/src/og/layer/WMS.js +0 -2
  33. package/src/og/layer/XYZ.js +31 -33
  34. package/src/og/math/Vec3.js +18 -2
  35. package/src/og/quadTree/Node.js +48 -93
  36. package/src/og/quadTree/quadTree.js +1 -1
  37. package/src/og/renderer/Renderer.js +69 -96
  38. package/src/og/renderer/RendererEvents.js +3 -1
  39. package/src/og/scene/Planet.js +171 -173
  40. package/src/og/segment/Segment.js +99 -268
  41. package/src/og/segment/Slice.js +45 -0
  42. package/src/og/shaders/drawnode.js +171 -350
  43. package/src/og/shaders/geoObject.js +15 -6
  44. package/src/og/terrain/EmptyTerrain.js +3 -2
  45. package/src/og/terrain/GlobusTerrain.js +2 -0
  46. package/src/og/utils/GeoImageCreator.js +5 -1
  47. package/src/og/utils/Loader.js +1 -1
  48. package/src/og/utils/PlainSegmentWorker.js +0 -13
  49. package/src/og/webgl/Handler.js +14 -10
  50. package/types/Clock.d.ts +94 -0
  51. package/types/Deferred.d.ts +6 -0
  52. package/types/Events.d.ts +77 -0
  53. package/types/Extent.d.ts +166 -0
  54. package/types/Globe.d.ts +85 -0
  55. package/types/ImageCanvas.d.ts +123 -0
  56. package/types/Lock.d.ts +12 -0
  57. package/types/LonLat.d.ts +108 -0
  58. package/types/Popup.d.ts +42 -0
  59. package/types/QueueArray.d.ts +19 -0
  60. package/types/Rectangle.d.ts +80 -0
  61. package/types/Stack.d.ts +19 -0
  62. package/types/ajax.d.ts +24 -0
  63. package/types/arial.d.ts +48 -0
  64. package/types/astro/astro.d.ts +38 -0
  65. package/types/astro/earth.d.ts +7 -0
  66. package/types/astro/jd.d.ts +254 -0
  67. package/types/bv/Box.d.ts +30 -0
  68. package/types/bv/Sphere.d.ts +38 -0
  69. package/types/bv/index.d.ts +3 -0
  70. package/types/camera/Camera.d.ts +312 -0
  71. package/types/camera/Frustum.d.ts +133 -0
  72. package/types/camera/PlanetCamera.d.ts +219 -0
  73. package/types/camera/index.d.ts +3 -0
  74. package/types/cons.d.ts +40 -0
  75. package/types/control/CompassButton.d.ts +17 -0
  76. package/types/control/Control.d.ts +104 -0
  77. package/types/control/DebugInfo.d.ts +15 -0
  78. package/types/control/EarthCoordinates.d.ts +47 -0
  79. package/types/control/EarthNavigation.d.ts +43 -0
  80. package/types/control/GeoImageDragControl.d.ts +6 -0
  81. package/types/control/KeyboardNavigation.d.ts +21 -0
  82. package/types/control/LayerSwitcher.d.ts +21 -0
  83. package/types/control/Lighting.d.ts +16 -0
  84. package/types/control/MouseNavigation.d.ts +48 -0
  85. package/types/control/MouseWheelZoomControl.d.ts +45 -0
  86. package/types/control/ScaleControl.d.ts +22 -0
  87. package/types/control/ShowFps.d.ts +11 -0
  88. package/types/control/SimpleNavigation.d.ts +25 -0
  89. package/types/control/Sun.d.ts +50 -0
  90. package/types/control/ToggleWireframe.d.ts +12 -0
  91. package/types/control/TouchNavigation.d.ts +48 -0
  92. package/types/control/ZoomControl.d.ts +27 -0
  93. package/types/control/index.d.ts +18 -0
  94. package/types/ellipsoid/Ellipsoid.d.ts +146 -0
  95. package/types/ellipsoid/index.d.ts +3 -0
  96. package/types/ellipsoid/wgs84.d.ts +6 -0
  97. package/types/entity/BaseBillboard.d.ts +215 -0
  98. package/types/entity/Billboard.d.ts +94 -0
  99. package/types/entity/BillboardHandler.d.ts +79 -0
  100. package/types/entity/Entity.d.ts +348 -0
  101. package/types/entity/EntityCollection.d.ts +317 -0
  102. package/types/entity/GeoObject.d.ts +111 -0
  103. package/types/entity/GeoObjectHandler.d.ts +81 -0
  104. package/types/entity/Geometry.d.ts +74 -0
  105. package/types/entity/GeometryHandler.d.ts +76 -0
  106. package/types/entity/Label.d.ts +189 -0
  107. package/types/entity/LabelHandler.d.ts +31 -0
  108. package/types/entity/LabelWorker.d.ts +11 -0
  109. package/types/entity/PointCloud.d.ts +174 -0
  110. package/types/entity/PointCloudHandler.d.ts +38 -0
  111. package/types/entity/Polyline.d.ts +306 -0
  112. package/types/entity/PolylineHandler.d.ts +18 -0
  113. package/types/entity/Ray.d.ts +124 -0
  114. package/types/entity/RayHandler.d.ts +67 -0
  115. package/types/entity/ShapeHandler.d.ts +22 -0
  116. package/types/entity/Strip.d.ts +119 -0
  117. package/types/entity/StripHandler.d.ts +38 -0
  118. package/types/entity/index.d.ts +8 -0
  119. package/types/index.core.d.ts +65 -0
  120. package/types/index.d.ts +45 -0
  121. package/types/index.webgl.d.ts +7 -0
  122. package/types/input/KeyboardHandler.d.ts +10 -0
  123. package/types/input/MouseHandler.d.ts +5 -0
  124. package/types/input/TouchHandler.d.ts +5 -0
  125. package/types/input/input.d.ts +34 -0
  126. package/types/layer/BaseGeoImage.d.ts +94 -0
  127. package/types/layer/CanvasTiles.d.ts +67 -0
  128. package/types/layer/GeoImage.d.ts +52 -0
  129. package/types/layer/GeoTexture2d.d.ts +8 -0
  130. package/types/layer/GeoVideo.d.ts +55 -0
  131. package/types/layer/KML.d.ts +68 -0
  132. package/types/layer/Layer.d.ts +310 -0
  133. package/types/layer/Material.d.ts +45 -0
  134. package/types/layer/Vector.d.ts +208 -0
  135. package/types/layer/WMS.d.ts +61 -0
  136. package/types/layer/XYZ.d.ts +119 -0
  137. package/types/layer/index.d.ts +10 -0
  138. package/types/light/LightSource.d.ts +178 -0
  139. package/types/math/Line2.d.ts +11 -0
  140. package/types/math/Line3.d.ts +10 -0
  141. package/types/math/Mat3.d.ts +65 -0
  142. package/types/math/Mat4.d.ts +176 -0
  143. package/types/math/Plane.d.ts +18 -0
  144. package/types/math/Quat.d.ts +379 -0
  145. package/types/math/Ray.d.ts +82 -0
  146. package/types/math/Vec2.d.ts +309 -0
  147. package/types/math/Vec3.d.ts +467 -0
  148. package/types/math/Vec4.d.ts +162 -0
  149. package/types/math/coder.d.ts +43 -0
  150. package/types/math/index.d.ts +11 -0
  151. package/types/math.d.ts +261 -0
  152. package/types/mercator.d.ts +92 -0
  153. package/types/proj/EPSG3857.d.ts +6 -0
  154. package/types/proj/EPSG4326.d.ts +6 -0
  155. package/types/proj/Proj.d.ts +42 -0
  156. package/types/quadTree/EntityCollectionNode.d.ts +34 -0
  157. package/types/quadTree/Node.d.ts +60 -0
  158. package/types/quadTree/quadTree.d.ts +40 -0
  159. package/types/renderer/Renderer.d.ts +290 -0
  160. package/types/renderer/RendererEvents.d.ts +237 -0
  161. package/types/res/images.d.ts +3 -0
  162. package/types/scene/Axes.d.ts +11 -0
  163. package/types/scene/BaseNode.d.ts +60 -0
  164. package/types/scene/Planet.d.ts +576 -0
  165. package/types/scene/RenderNode.d.ts +142 -0
  166. package/types/scene/SkyBox.d.ts +10 -0
  167. package/types/scene/index.d.ts +4 -0
  168. package/types/segment/Segment.d.ts +275 -0
  169. package/types/segment/SegmentLonLat.d.ts +17 -0
  170. package/types/segment/Slice.d.ts +10 -0
  171. package/types/segment/segmentHelper.d.ts +13 -0
  172. package/types/shaders/billboard.d.ts +3 -0
  173. package/types/shaders/depth.d.ts +2 -0
  174. package/types/shaders/drawnode.d.ts +7 -0
  175. package/types/shaders/geoObject.d.ts +3 -0
  176. package/types/shaders/label.d.ts +4 -0
  177. package/types/shaders/pointCloud.d.ts +2 -0
  178. package/types/shaders/polyline.d.ts +3 -0
  179. package/types/shaders/ray.d.ts +2 -0
  180. package/types/shaders/screenFrame.d.ts +2 -0
  181. package/types/shaders/shape.d.ts +4 -0
  182. package/types/shaders/skybox.d.ts +2 -0
  183. package/types/shaders/toneMapping.d.ts +2 -0
  184. package/types/shapes/BaseShape.d.ts +250 -0
  185. package/types/shapes/Sphere.d.ts +41 -0
  186. package/types/terrain/BilTerrain.d.ts +7 -0
  187. package/types/terrain/EmptyTerrain.d.ts +73 -0
  188. package/types/terrain/Geoid.d.ts +26 -0
  189. package/types/terrain/GlobusTerrain.d.ts +116 -0
  190. package/types/terrain/MapboxTerrain.d.ts +7 -0
  191. package/types/terrain/index.d.ts +5 -0
  192. package/types/utils/FontAtlas.d.ts +15 -0
  193. package/types/utils/GeoImageCreator.d.ts +30 -0
  194. package/types/utils/ImagesCacheManager.d.ts +10 -0
  195. package/types/utils/Loader.d.ts +25 -0
  196. package/types/utils/NormalMapCreator.d.ts +39 -0
  197. package/types/utils/PlainSegmentWorker.d.ts +10 -0
  198. package/types/utils/TerrainWorker.d.ts +9 -0
  199. package/types/utils/TextureAtlas.d.ts +111 -0
  200. package/types/utils/VectorTileCreator.d.ts +16 -0
  201. package/types/utils/colorTable.d.ts +143 -0
  202. package/types/utils/earcut.d.ts +6 -0
  203. package/types/utils/shared.d.ts +231 -0
  204. package/types/webgl/Framebuffer.d.ts +135 -0
  205. package/types/webgl/Handler.d.ts +417 -0
  206. package/types/webgl/Multisample.d.ts +89 -0
  207. package/types/webgl/Program.d.ts +161 -0
  208. package/types/webgl/ProgramController.d.ts +89 -0
  209. package/types/webgl/callbacks.d.ts +1 -0
  210. package/types/webgl/index.d.ts +6 -0
  211. package/types/webgl/types.d.ts +2 -0
@@ -182,8 +182,7 @@ class Renderer {
182
182
  * @private
183
183
  * @type {Array.<number>} - (exactly 3 entries)
184
184
  */
185
- this._prevPickingColor = [0, 0, 0];
186
-
185
+ this._prevPickingColor = new Uint8Array(4);
187
186
  this._tempPickingColor_ = new Uint8Array(4);
188
187
 
189
188
  this._initialized = false;
@@ -424,20 +423,10 @@ class Renderer {
424
423
  useDepth: false
425
424
  }).init();
426
425
 
427
- //this.depthFramebuffer = new Framebuffer(this.handler, {
428
- // size: 2,
429
- // internalFormat: ["RGBA", "RGBA"],
430
- // format: ["RGBA", "RGBA"],
431
- // type: ["UNSIGNED_BYTE", "UNSIGNED_BYTE"],
432
- // attachment: ["COLOR_ATTACHMENT", "COLOR_ATTACHMENT"],
433
- // useDepth: true
434
- //}).init();
435
426
  this.screenDepthFramebuffer = new Framebuffer(this.handler, {
436
427
  useDepth: false
437
428
  }).init();
438
429
 
439
- this.readPixels = () => {};
440
-
441
430
  if (this.handler.gl.type === "webgl") {
442
431
  this.sceneFramebuffer = new Framebuffer(this.handler);
443
432
  this.sceneFramebuffer.init();
@@ -490,8 +479,8 @@ class Renderer {
490
479
  }
491
480
 
492
481
  this.handler.onCanvasResize = () => {
482
+ this.resize();
493
483
  this.events.dispatch(this.events.resize, this.handler.canvas);
494
- this._resize();
495
484
  };
496
485
 
497
486
  this._screenFrameCornersBuffer = this.handler.createArrayBuffer(
@@ -518,7 +507,7 @@ class Renderer {
518
507
  }
519
508
  }
520
509
 
521
- _resize() {
510
+ resize() {
522
511
  let c = this.handler.canvas;
523
512
  this.activeCamera.setAspectRatio(c.width / c.height);
524
513
  this.sceneFramebuffer.setSize(c.width, c.height);
@@ -530,10 +519,10 @@ class Renderer {
530
519
  this.toneMappingFramebuffer.setSize(c.width, c.height, true);
531
520
 
532
521
  this.depthFramebuffer &&
533
- this.depthFramebuffer.setSize(c.width, c.height, true);
522
+ this.depthFramebuffer.setSize(c.clientWidth, c.clientHeight, true);
534
523
 
535
524
  this.screenDepthFramebuffer &&
536
- this.screenDepthFramebuffer.setSize(c.width, c.height, true);
525
+ this.screenDepthFramebuffer.setSize(c.clientWidth, c.clientHeight, true);
537
526
 
538
527
  if (this.handler.gl.type === "webgl") {
539
528
  this.screenTexture.screen = this.sceneFramebuffer.textures[0];
@@ -753,6 +742,8 @@ class Renderer {
753
742
 
754
743
  let frustums = this.activeCamera.frustums;
755
744
 
745
+ let anyEvent = this.events.mouseState.anyEvent();
746
+
756
747
  // Rendering scene nodes and entityCollections
757
748
  let rn = this._renderNodesArr;
758
749
  let k = frustums.length;
@@ -765,17 +756,19 @@ class Renderer {
765
756
  }
766
757
  this._drawEntityCollections();
767
758
 
768
- this._drawDepthBuffer(k);
769
-
770
- // Rendering picking callbacks and refresh pickingColor
771
- this._drawPickingBuffer(k);
759
+ if (anyEvent) {
760
+ this._drawPickingBuffer(k);
761
+ }
772
762
  }
773
763
 
774
764
  sfb.deactivate();
775
765
 
776
766
  this.blitFramebuffer && sfb.blitTo(this.blitFramebuffer);
777
767
 
778
- if (e.mouseState.anyEvent()) {
768
+ if (anyEvent) {
769
+ // It works ONLY for 0 (closest) frustum
770
+ this._drawDepthBuffer();
771
+
779
772
  this._readPickingColor();
780
773
  }
781
774
 
@@ -846,99 +839,81 @@ class Renderer {
846
839
  gl.enable(gl.DEPTH_TEST);
847
840
  }
848
841
 
849
- /**
850
- * Returns picking object by screen coordinates
851
- * @param {number} x - X position
852
- * @param {number} y - Y position
853
- * @return {Object} -
854
- */
855
- getPickingObject(x, y) {
856
- let cnv = this.renderer.handler.canvas,
857
- c = new Uint8Array(3);
858
- this.readPixels(c, x / cnv.clientWidth, (cnv.clientHeight - y) / cnv.clientHeight, 1);
859
- return this.colorObjects[c[0] + "_" + c[1] + "_" + c[2]];
860
- }
861
-
862
842
  /**
863
843
  * Draw picking objects framebuffer.
864
844
  * @private
865
845
  */
866
846
  _drawPickingBuffer(frustumIndex) {
867
- if (this.events.mouseState.anyEvent()) {
868
- this.pickingFramebuffer.activate();
847
+ this.pickingFramebuffer.activate();
869
848
 
870
- var h = this.handler;
871
- var gl = h.gl;
872
-
873
- if (frustumIndex === this.activeCamera.FARTHEST_FRUSTUM_INDEX) {
874
- gl.clearColor(0.0, 0.0, 0.0, 1.0);
875
- gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
876
- } else {
877
- gl.clear(gl.DEPTH_BUFFER_BIT);
878
- }
849
+ var h = this.handler;
850
+ var gl = h.gl;
879
851
 
880
- gl.disable(h.gl.BLEND);
852
+ if (frustumIndex === this.activeCamera.FARTHEST_FRUSTUM_INDEX) {
853
+ gl.clearColor(0.0, 0.0, 0.0, 1.0);
854
+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
855
+ } else {
856
+ gl.clear(gl.DEPTH_BUFFER_BIT);
857
+ }
881
858
 
882
- var dp = this._pickingCallbacks;
883
- var i = dp.length;
884
- while (i--) {
885
- /**
886
- * This callback renders picking frame.
887
- * @callback og.Renderer~pickingCallback
888
- */
889
- dp[i].callback.call(dp[i].sender);
890
- }
859
+ gl.disable(h.gl.BLEND);
891
860
 
892
- this.pickingFramebuffer.deactivate();
861
+ var dp = this._pickingCallbacks;
862
+ var i = dp.length;
863
+ while (i--) {
864
+ /**
865
+ * This callback renders picking frame.
866
+ * @callback og.Renderer~pickingCallback
867
+ */
868
+ dp[i].callback.call(dp[i].sender);
893
869
  }
894
- }
895
870
 
896
- _drawDepthBuffer(frustumIndex) {
897
- if (frustumIndex === 0) {
898
- this.depthFramebuffer.activate();
871
+ this.pickingFramebuffer.deactivate();
872
+ }
899
873
 
900
- var h = this.handler;
901
- var gl = h.gl;
874
+ _drawDepthBuffer() {
875
+ this.depthFramebuffer.activate();
902
876
 
903
- gl.clearColor(0.0, 0.0, 0.0, 1.0);
904
- gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
877
+ var h = this.handler;
878
+ var gl = h.gl;
905
879
 
906
- gl.enable(gl.DEPTH_TEST);
880
+ gl.clearColor(0.0, 0.0, 0.0, 1.0);
881
+ gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
907
882
 
908
- var dp = this._depthCallbacks;
909
- var i = dp.length;
910
- while (i--) {
911
- /**
912
- * This callback renders depth frame.
913
- * @callback og.Renderer~depthCallback
914
- */
915
- dp[i].callback.call(dp[i].sender);
916
- }
883
+ gl.enable(gl.DEPTH_TEST);
917
884
 
918
- this.depthFramebuffer.deactivate();
885
+ var dp = this._depthCallbacks;
886
+ var i = dp.length;
887
+ while (i--) {
888
+ /**
889
+ * This callback renders depth frame.
890
+ * @callback og.Renderer~depthCallback
891
+ */
892
+ dp[i].callback.call(dp[i].sender);
893
+ }
919
894
 
920
- //
921
- // PASS to depth visualization
922
- var sh = h.programs.depth,
923
- p = sh._program;
895
+ this.depthFramebuffer.deactivate();
924
896
 
925
- gl = h.gl;
897
+ //
898
+ // PASS to depth visualization
899
+ this.screenDepthFramebuffer.activate();
900
+ var sh = h.programs.depth,
901
+ p = sh._program;
926
902
 
927
- gl.bindBuffer(gl.ARRAY_BUFFER, this._screenFrameCornersBuffer);
928
- gl.vertexAttribPointer(p.attributes.corners, 2, gl.FLOAT, false, 0, 0);
903
+ gl = h.gl;
929
904
 
930
- this.screenDepthFramebuffer.activate();
905
+ gl.bindBuffer(gl.ARRAY_BUFFER, this._screenFrameCornersBuffer);
906
+ gl.vertexAttribPointer(p.attributes.corners, 2, gl.FLOAT, false, 0, 0);
931
907
 
932
- sh.activate();
908
+ sh.activate();
933
909
 
934
- gl.activeTexture(gl.TEXTURE1);
935
- gl.bindTexture(gl.TEXTURE_2D, this.depthFramebuffer.textures[1]);
936
- gl.uniform1i(p.uniforms.depthTexture, 1);
910
+ gl.activeTexture(gl.TEXTURE0);
911
+ gl.bindTexture(gl.TEXTURE_2D, this.depthFramebuffer.textures[1]);
912
+ gl.uniform1i(p.uniforms.depthTexture, 0);
937
913
 
938
- gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
914
+ gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
939
915
 
940
- this.screenDepthFramebuffer.deactivate();
941
- }
916
+ this.screenDepthFramebuffer.deactivate();
942
917
  }
943
918
 
944
919
  _readPickingColor() {
@@ -952,15 +927,13 @@ class Renderer {
952
927
 
953
928
  var pc = this._currPickingColor;
954
929
  if (ts.x || ts.y) {
930
+ this.pickingFramebuffer.activate();
955
931
  this.pickingFramebuffer.readPixels(pc, ts.nx, 1.0 - ts.ny);
956
- if (!(pc[0] || pc[1] || pc[2])) {
957
- this.readPixels(pc, ts.nx, 1.0 - ts.ny, 1);
958
- }
932
+ this.pickingFramebuffer.deactivate();
959
933
  } else {
934
+ this.pickingFramebuffer.activate();
960
935
  this.pickingFramebuffer.readPixels(pc, ms.nx, 1.0 - ms.ny);
961
- if (!(pc[0] || pc[1] || pc[2])) {
962
- this.readPixels(pc, ms.nx, 1.0 - ms.ny, 1);
963
- }
936
+ this.pickingFramebuffer.deactivate();
964
937
  }
965
938
  }
966
939
  }
@@ -828,8 +828,10 @@ class RendererEvents extends Events {
828
828
 
829
829
  if (ts.touchStart) {
830
830
  var r = this.renderer;
831
-
831
+
832
+ r.pickingFramebuffer.activate();
832
833
  r.pickingFramebuffer.readPixels(r._currPickingColor, ts.nx, 1.0 - ts.ny, 1);
834
+ r.pickingFramebuffer.deactivate();
833
835
 
834
836
  var o = r.colorObjects;
835
837
  var c = r._currPickingColor;