@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.
Files changed (255) hide show
  1. package/package.json +18 -20
  2. package/src/og/Clock.js +11 -11
  3. package/src/og/Deferred.js +1 -1
  4. package/src/og/Events.js +9 -7
  5. package/src/og/Extent.js +117 -72
  6. package/src/og/Globe.js +35 -22
  7. package/src/og/ImageCanvas.js +24 -18
  8. package/src/og/Lock.js +2 -2
  9. package/src/og/LonLat.js +40 -37
  10. package/src/og/Popup.js +21 -15
  11. package/src/og/QueueArray.js +7 -3
  12. package/src/og/Rectangle.js +11 -6
  13. package/src/og/Stack.js +8 -5
  14. package/src/og/ajax.js +21 -33
  15. package/src/og/astro/astro.js +5 -5
  16. package/src/og/astro/earth.js +23 -17
  17. package/src/og/astro/jd.js +44 -39
  18. package/src/og/astro/orbit.js +20 -18
  19. package/src/og/astro/rotation.js +17 -8
  20. package/src/og/bv/Box.js +7 -3
  21. package/src/og/bv/Sphere.js +17 -9
  22. package/src/og/camera/Camera.js +137 -86
  23. package/src/og/camera/Frustum.js +30 -19
  24. package/src/og/camera/PlanetCamera.js +30 -26
  25. package/src/og/control/CompassButton.js +8 -2
  26. package/src/og/control/Control.js +13 -11
  27. package/src/og/control/DebugInfo.js +4 -1
  28. package/src/og/control/EarthCoordinates.js +62 -41
  29. package/src/og/control/EarthNavigation.js +20 -22
  30. package/src/og/control/GeoImageDragControl.js +1 -1
  31. package/src/og/control/KeyboardNavigation.js +12 -12
  32. package/src/og/control/LayerSwitcher.js +24 -23
  33. package/src/og/control/Lighting.js +1 -1
  34. package/src/og/control/MouseNavigation.js +1 -1
  35. package/src/og/control/ScaleControl.js +1 -1
  36. package/src/og/control/SegmentBoundVisualization.js +8 -9
  37. package/src/og/control/ShowFps.js +15 -10
  38. package/src/og/control/SimpleNavigation.js +8 -10
  39. package/src/og/control/Sun.js +25 -15
  40. package/src/og/control/ToggleWireframe.js +5 -5
  41. package/src/og/control/TouchNavigation.js +58 -45
  42. package/src/og/control/ZoomControl.js +41 -25
  43. package/src/og/control/index.js +4 -0
  44. package/src/og/ellipsoid/Ellipsoid.js +181 -85
  45. package/src/og/ellipsoid/wgs84.js +4 -4
  46. package/src/og/entity/BaseBillboard.js +97 -44
  47. package/src/og/entity/Billboard.js +15 -11
  48. package/src/og/entity/BillboardHandler.js +314 -64
  49. package/src/og/entity/Entity.js +106 -74
  50. package/src/og/entity/EntityCollection.js +72 -49
  51. package/src/og/entity/GeoObject.js +228 -0
  52. package/src/og/entity/GeoObjectHandler.js +910 -0
  53. package/src/og/entity/Geometry.js +29 -26
  54. package/src/og/entity/GeometryHandler.js +598 -126
  55. package/src/og/entity/Label.js +74 -40
  56. package/src/og/entity/LabelHandler.js +47 -246
  57. package/src/og/entity/LabelWorker.js +213 -0
  58. package/src/og/entity/Object3d.js +504 -0
  59. package/src/og/entity/PointCloud.js +81 -33
  60. package/src/og/entity/PointCloudHandler.js +9 -9
  61. package/src/og/entity/Polyline.js +39 -39
  62. package/src/og/entity/Ray.js +61 -28
  63. package/src/og/entity/ShapeHandler.js +1 -1
  64. package/src/og/entity/Strip.js +77 -48
  65. package/src/og/entity/StripHandler.js +27 -27
  66. package/src/og/entity/index.js +8 -16
  67. package/src/og/input/KeyboardHandler.js +107 -104
  68. package/src/og/input/MouseHandler.js +81 -78
  69. package/src/og/input/TouchHandler.js +55 -51
  70. package/src/og/layer/BaseGeoImage.js +61 -30
  71. package/src/og/layer/CanvasTiles.js +26 -24
  72. package/src/og/layer/GeoImage.js +10 -10
  73. package/src/og/layer/GeoTexture2d.js +1 -1
  74. package/src/og/layer/GeoVideo.js +3 -3
  75. package/src/og/layer/KML.js +66 -40
  76. package/src/og/layer/Layer.js +27 -17
  77. package/src/og/layer/Material.js +93 -61
  78. package/src/og/layer/Vector.js +118 -72
  79. package/src/og/layer/WMS.js +36 -19
  80. package/src/og/layer/XYZ.js +55 -48
  81. package/src/og/light/LightSource.js +47 -40
  82. package/src/og/math/Line2.js +24 -24
  83. package/src/og/math/Line3.js +103 -102
  84. package/src/og/math/Mat3.js +134 -121
  85. package/src/og/math/Mat4.js +603 -459
  86. package/src/og/math/Plane.js +21 -20
  87. package/src/og/math/Quat.js +980 -927
  88. package/src/og/math/Ray.js +195 -187
  89. package/src/og/math/Vec2.js +127 -117
  90. package/src/og/math/Vec3.js +206 -176
  91. package/src/og/math/Vec4.js +49 -53
  92. package/src/og/math/coder.js +18 -18
  93. package/src/og/math.js +12 -12
  94. package/src/og/mercator.js +11 -11
  95. package/src/og/proj/EPSG3857.js +4 -4
  96. package/src/og/proj/EPSG4326.js +4 -4
  97. package/src/og/proj/Proj.js +31 -31
  98. package/src/og/quadTree/EntityCollectionNode.js +310 -300
  99. package/src/og/quadTree/Node.js +1008 -993
  100. package/src/og/renderer/Renderer.js +768 -747
  101. package/src/og/renderer/RendererEvents.js +9 -6
  102. package/src/og/scene/Axes.js +1 -1
  103. package/src/og/scene/BaseNode.js +8 -9
  104. package/src/og/scene/Planet.js +115 -87
  105. package/src/og/scene/RenderNode.js +29 -22
  106. package/src/og/scene/SkyBox.js +1 -1
  107. package/src/og/segment/Segment.js +1886 -1878
  108. package/src/og/segment/SegmentLonLat.js +298 -268
  109. package/src/og/segment/segmentHelper.js +11 -11
  110. package/src/og/shaders/bloom.js +1 -1
  111. package/src/og/shaders/blur.js +2 -2
  112. package/src/og/shaders/depth.js +1 -1
  113. package/src/og/shaders/geoObject.js +211 -0
  114. package/src/og/shaders/label.js +1 -1
  115. package/src/og/shaders/lumFilter.js +1 -1
  116. package/src/og/shaders/pointCloud.js +42 -42
  117. package/src/og/shaders/screenFrame.js +1 -1
  118. package/src/og/shaders/shape.js +15 -21
  119. package/src/og/shaders/skybox.js +37 -37
  120. package/src/og/shaders/toneMapping.js +1 -1
  121. package/src/og/shapes/BaseShape.js +129 -57
  122. package/src/og/shapes/Icosphere.js +30 -15
  123. package/src/og/shapes/Sphere.js +13 -16
  124. package/src/og/terrain/BilTerrain.js +2 -1
  125. package/src/og/terrain/EmptyTerrain.js +2 -2
  126. package/src/og/terrain/Geoid.js +2 -2
  127. package/src/og/terrain/GlobusTerrain.js +10 -10
  128. package/src/og/terrain/MapboxTerrain.js +1 -1
  129. package/src/og/utils/GeoImageCreator.js +9 -9
  130. package/src/og/utils/Loader.js +6 -6
  131. package/src/og/utils/NormalMapCreator.js +13 -13
  132. package/src/og/utils/TerrainWorker.js +1 -1
  133. package/src/og/utils/TextureAtlas.js +20 -22
  134. package/src/og/utils/VectorTileCreator.js +5 -5
  135. package/src/og/utils/earcut.js +1 -1
  136. package/src/og/utils/shared.js +15 -15
  137. package/src/og/webgl/Framebuffer.js +101 -53
  138. package/src/og/webgl/Handler.js +125 -85
  139. package/src/og/webgl/Multisample.js +55 -27
  140. package/src/og/webgl/Program.js +80 -35
  141. package/src/og/webgl/ProgramController.js +27 -23
  142. package/src/og/webgl/callbacks.js +8 -8
  143. package/types/Clock.d.ts +6 -2
  144. package/types/Deferred.d.ts +1 -1
  145. package/types/Events.d.ts +8 -4
  146. package/types/Extent.d.ts +37 -33
  147. package/types/Globe.d.ts +15 -13
  148. package/types/ImageCanvas.d.ts +5 -3
  149. package/types/LonLat.d.ts +24 -24
  150. package/types/Popup.d.ts +4 -0
  151. package/types/QueueArray.d.ts +6 -2
  152. package/types/Rectangle.d.ts +10 -4
  153. package/types/Stack.d.ts +4 -0
  154. package/types/ajax.d.ts +1 -1
  155. package/types/astro/earth.d.ts +3 -2
  156. package/types/bv/Box.d.ts +10 -5
  157. package/types/bv/Sphere.d.ts +13 -7
  158. package/types/camera/Camera.d.ts +90 -81
  159. package/types/camera/Frustum.d.ts +26 -22
  160. package/types/camera/PlanetCamera.d.ts +49 -53
  161. package/types/control/CompassButton.d.ts +4 -4
  162. package/types/control/Control.d.ts +7 -4
  163. package/types/control/DebugInfo.d.ts +3 -4
  164. package/types/control/EarthCoordinates.d.ts +6 -6
  165. package/types/control/EarthNavigation.d.ts +42 -0
  166. package/types/control/KeyboardNavigation.d.ts +3 -4
  167. package/types/control/LayerSwitcher.d.ts +3 -5
  168. package/types/control/Lighting.d.ts +3 -3
  169. package/types/control/MouseNavigation.d.ts +47 -0
  170. package/types/control/ScaleControl.d.ts +3 -3
  171. package/types/control/ShowFps.d.ts +3 -4
  172. package/types/control/SimpleNavigation.d.ts +3 -6
  173. package/types/control/Sun.d.ts +8 -10
  174. package/types/control/ToggleWireframe.d.ts +3 -3
  175. package/types/control/TouchNavigation.d.ts +48 -0
  176. package/types/control/ZoomControl.d.ts +3 -4
  177. package/types/control/index.d.ts +3 -1
  178. package/types/ellipsoid/Ellipsoid.d.ts +47 -43
  179. package/types/ellipsoid/wgs84.d.ts +3 -2
  180. package/types/entity/BaseBillboard.d.ts +41 -34
  181. package/types/entity/Billboard.d.ts +7 -7
  182. package/types/entity/BillboardHandler.d.ts +4 -0
  183. package/types/entity/Entity.d.ts +101 -83
  184. package/types/entity/EntityCollection.d.ts +57 -43
  185. package/types/entity/GeoObject.d.ts +111 -0
  186. package/types/entity/GeoObjectHandler.d.ts +77 -0
  187. package/types/entity/Geometry.d.ts +9 -7
  188. package/types/entity/GeometryHandler.d.ts +2 -2
  189. package/types/entity/Label.d.ts +24 -29
  190. package/types/entity/LabelHandler.d.ts +9 -2
  191. package/types/entity/LabelWorker.d.ts +9 -0
  192. package/types/entity/PointCloud.d.ts +8 -8
  193. package/types/entity/PointCloudHandler.d.ts +3 -3
  194. package/types/entity/Polyline.d.ts +58 -55
  195. package/types/entity/Ray.d.ts +19 -18
  196. package/types/entity/Strip.d.ts +8 -7
  197. package/types/entity/StripHandler.d.ts +3 -3
  198. package/types/entity/index.d.ts +7 -7
  199. package/types/input/KeyboardHandler.d.ts +10 -0
  200. package/types/input/MouseHandler.d.ts +5 -0
  201. package/types/input/TouchHandler.d.ts +5 -0
  202. package/types/layer/BaseGeoImage.d.ts +23 -35
  203. package/types/layer/CanvasTiles.d.ts +15 -22
  204. package/types/layer/GeoImage.d.ts +5 -18
  205. package/types/layer/GeoVideo.d.ts +5 -30
  206. package/types/layer/KML.d.ts +20 -15
  207. package/types/layer/Layer.d.ts +326 -0
  208. package/types/layer/Material.d.ts +45 -0
  209. package/types/layer/Vector.d.ts +208 -0
  210. package/types/layer/WMS.d.ts +4 -7
  211. package/types/layer/XYZ.d.ts +19 -25
  212. package/types/light/LightSource.d.ts +54 -53
  213. package/types/math/Line2.d.ts +11 -0
  214. package/types/math/Line3.d.ts +10 -0
  215. package/types/math/Mat3.d.ts +30 -18
  216. package/types/math/Mat4.d.ts +71 -52
  217. package/types/math/Plane.d.ts +5 -4
  218. package/types/math/Quat.d.ts +379 -0
  219. package/types/math/Ray.d.ts +82 -0
  220. package/types/math/Vec2.d.ts +102 -101
  221. package/types/math/Vec3.d.ts +143 -142
  222. package/types/math/Vec4.d.ts +40 -39
  223. package/types/math/coder.d.ts +12 -11
  224. package/types/math.d.ts +8 -8
  225. package/types/mercator.d.ts +3 -3
  226. package/types/proj/EPSG3857.d.ts +3 -2
  227. package/types/proj/EPSG4326.d.ts +3 -2
  228. package/types/proj/Proj.d.ts +42 -0
  229. package/types/quadTree/EntityCollectionNode.d.ts +34 -0
  230. package/types/quadTree/Node.d.ts +61 -0
  231. package/types/renderer/Renderer.d.ts +300 -0
  232. package/types/renderer/RendererEvents.d.ts +10 -7
  233. package/types/scene/BaseNode.d.ts +9 -9
  234. package/types/scene/Planet.d.ts +131 -126
  235. package/types/scene/RenderNode.d.ts +22 -23
  236. package/types/segment/Segment.d.ts +279 -0
  237. package/types/segment/SegmentLonLat.d.ts +16 -0
  238. package/types/shaders/geoObject.d.ts +3 -0
  239. package/types/shapes/BaseShape.d.ts +43 -40
  240. package/types/shapes/Sphere.d.ts +7 -7
  241. package/types/terrain/BilTerrain.d.ts +0 -1
  242. package/types/terrain/EmptyTerrain.d.ts +4 -4
  243. package/types/terrain/GlobusTerrain.d.ts +17 -54
  244. package/types/terrain/MapboxTerrain.d.ts +0 -1
  245. package/types/utils/GeoImageCreator.d.ts +3 -2
  246. package/types/utils/TextureAtlas.d.ts +8 -8
  247. package/types/utils/shared.d.ts +25 -24
  248. package/types/webgl/Framebuffer.d.ts +5 -5
  249. package/types/webgl/Handler.d.ts +68 -43
  250. package/types/webgl/Multisample.d.ts +5 -5
  251. package/types/webgl/Program.d.ts +8 -2
  252. package/types/webgl/ProgramController.d.ts +18 -13
  253. package/src/og/inherits.js +0 -8
  254. package/src/og/utils/polylabel.js +0 -176
  255. package/types/inherits.d.ts +0 -4
@@ -2,14 +2,14 @@
2
2
  * @module og/webgl/Framebuffer
3
3
  */
4
4
 
5
- 'use strict';
5
+ "use strict";
6
6
 
7
- import { ImageCanvas } from '../ImageCanvas.js';
7
+ import { ImageCanvas } from "../ImageCanvas.js";
8
8
 
9
9
  /**
10
10
  * Class represents framebuffer.
11
11
  * @class
12
- * @param {og.webgl.Handler} handler - WebGL handler.
12
+ * @param {Handler} handler - WebGL handler.
13
13
  * @param {Object} [options] - Framebuffer options:
14
14
  * @param {number} [options.width] - Framebuffer width. Default is handler canvas width.
15
15
  * @param {number} [options.height] - Framebuffer height. Default is handler canvas height.
@@ -21,13 +21,11 @@ import { ImageCanvas } from '../ImageCanvas.js';
21
21
  * @param {Boolean} [options.useDepth] - Using depth buffer during the rendering.
22
22
  */
23
23
  export class Framebuffer {
24
-
25
24
  constructor(handler, options = {}) {
26
-
27
25
  /**
28
26
  * WebGL handler.
29
27
  * @public
30
- * @type {og.webgl.Handler}
28
+ * @type {Handler}
31
29
  */
32
30
  this.handler = handler;
33
31
 
@@ -49,20 +47,27 @@ export class Framebuffer {
49
47
 
50
48
  this._filter = options.filter || "NEAREST";
51
49
 
52
- this._internalFormatArr = options.internalFormat instanceof Array ? options.internalFormat : [options.internalFormat || "RGBA"];
50
+ this._internalFormatArr =
51
+ options.internalFormat instanceof Array
52
+ ? options.internalFormat
53
+ : [options.internalFormat || "RGBA"];
53
54
 
54
- this._formatArr = options.format instanceof Array ? options.format : [options.format || "RGBA"];
55
+ this._formatArr =
56
+ options.format instanceof Array ? options.format : [options.format || "RGBA"];
55
57
 
56
- this._typeArr = options.type instanceof Array ? options.type : [options.type || "UNSIGNED_BYTE"];
58
+ this._typeArr =
59
+ options.type instanceof Array ? options.type : [options.type || "UNSIGNED_BYTE"];
57
60
 
58
- this._attachmentArr = options.attachment instanceof Array ?
59
- options.attachment.map((a, i) => {
60
- let res = a.toUpperCase();
61
- if (res === "COLOR_ATTACHMENT") {
62
- return `${res}${i.toString()}`;
63
- }
64
- return res;
65
- }) : [options.attachment || "COLOR_ATTACHMENT0"];
61
+ this._attachmentArr =
62
+ options.attachment instanceof Array
63
+ ? options.attachment.map((a, i) => {
64
+ let res = a.toUpperCase();
65
+ if (res === "COLOR_ATTACHMENT") {
66
+ return `${res}${i.toString()}`;
67
+ }
68
+ return res;
69
+ })
70
+ : [options.attachment || "COLOR_ATTACHMENT0"];
66
71
 
67
72
  /**
68
73
  * Framebuffer width.
@@ -78,12 +83,13 @@ export class Framebuffer {
78
83
  */
79
84
  this._height = options.height || handler.canvas.height;
80
85
 
81
- this._depthComponent = options.depthComponent != undefined ? options.depthComponent : "DEPTH_COMPONENT16";
86
+ this._depthComponent =
87
+ options.depthComponent != undefined ? options.depthComponent : "DEPTH_COMPONENT16";
82
88
 
83
89
  this._useDepth = options.useDepth != undefined ? options.useDepth : true;
84
90
 
85
91
  /**
86
- * Framebuffer activity.
92
+ * Framebuffer activity.
87
93
  * @private
88
94
  * @type {boolean}
89
95
  */
@@ -97,28 +103,34 @@ export class Framebuffer {
97
103
  * @type {number}
98
104
  */
99
105
  this.textures = options.textures || new Array(this._size);
100
- };
106
+ }
101
107
 
102
108
  static blit(sourceFramebuffer, destFramebuffer, glAttachment, glMask, glFilter) {
103
-
104
109
  let gl = sourceFramebuffer.handler.gl;
105
110
 
106
111
  gl.bindFramebuffer(gl.READ_FRAMEBUFFER, sourceFramebuffer._fbo);
107
- gl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, framebuffer._fbo);
112
+ gl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, destFramebuffer._fbo);
108
113
  gl.readBuffer(glAttachment);
109
114
 
110
115
  gl.clearBufferfv(gl.COLOR, 0, [0.0, 0.0, 0.0, 1.0]);
111
116
 
112
117
  gl.blitFramebuffer(
113
- 0, 0, sourceFramebuffer._width, sourceFramebuffer._height,
114
- 0, 0, destFramebuffer._width, destFramebuffer._height,
115
- glMask, glFilter
118
+ 0,
119
+ 0,
120
+ sourceFramebuffer._width,
121
+ sourceFramebuffer._height,
122
+ 0,
123
+ 0,
124
+ destFramebuffer._width,
125
+ destFramebuffer._height,
126
+ glMask,
127
+ glFilter
116
128
  );
117
129
 
118
130
  gl.bindFramebuffer(gl.FRAMEBUFFER, null);
119
131
  gl.bindFramebuffer(gl.READ_FRAMEBUFFER, null);
120
132
  gl.bindFramebuffer(gl.DRAW_FRAMEBUFFER, null);
121
- };
133
+ }
122
134
 
123
135
  destroy() {
124
136
  var gl = this.handler.gl;
@@ -135,7 +147,7 @@ export class Framebuffer {
135
147
  this._fbo = null;
136
148
 
137
149
  this._active = false;
138
- };
150
+ }
139
151
 
140
152
  /**
141
153
  * Framebuffer initialization.
@@ -151,8 +163,8 @@ export class Framebuffer {
151
163
  if (!this._isBare) {
152
164
  let attachmentArr = [];
153
165
  for (var i = 0; i < this.textures.length; i++) {
154
-
155
- let ti = this.textures[i] ||
166
+ let ti =
167
+ this.textures[i] ||
156
168
  this.handler.createEmptyTexture2DExt(
157
169
  this._width,
158
170
  this._height,
@@ -178,15 +190,25 @@ export class Framebuffer {
178
190
  if (this._useDepth) {
179
191
  this._depthRenderbuffer = gl.createRenderbuffer();
180
192
  gl.bindRenderbuffer(gl.RENDERBUFFER, this._depthRenderbuffer);
181
- gl.renderbufferStorage(gl.RENDERBUFFER, gl[this._depthComponent], this._width, this._height);
182
- gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, this._depthRenderbuffer);
193
+ gl.renderbufferStorage(
194
+ gl.RENDERBUFFER,
195
+ gl[this._depthComponent],
196
+ this._width,
197
+ this._height
198
+ );
199
+ gl.framebufferRenderbuffer(
200
+ gl.FRAMEBUFFER,
201
+ gl.DEPTH_ATTACHMENT,
202
+ gl.RENDERBUFFER,
203
+ this._depthRenderbuffer
204
+ );
183
205
  gl.bindRenderbuffer(gl.RENDERBUFFER, null);
184
206
  }
185
207
 
186
208
  gl.bindFramebuffer(gl.FRAMEBUFFER, null);
187
209
 
188
210
  return this;
189
- };
211
+ }
190
212
 
191
213
  /**
192
214
  * Bind buffer texture.
@@ -197,9 +219,15 @@ export class Framebuffer {
197
219
  bindOutputTexture(texture, glAttachment) {
198
220
  var gl = this.handler.gl;
199
221
  gl.bindTexture(gl.TEXTURE_2D, texture);
200
- gl.framebufferTexture2D(gl.FRAMEBUFFER, glAttachment || gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);
222
+ gl.framebufferTexture2D(
223
+ gl.FRAMEBUFFER,
224
+ glAttachment || gl.COLOR_ATTACHMENT0,
225
+ gl.TEXTURE_2D,
226
+ texture,
227
+ 0
228
+ );
201
229
  gl.bindTexture(gl.TEXTURE_2D, null);
202
- };
230
+ }
203
231
 
204
232
  /**
205
233
  * Sets framebuffer viewport size.
@@ -219,7 +247,7 @@ export class Framebuffer {
219
247
  this.destroy();
220
248
  this.init();
221
249
  }
222
- };
250
+ }
223
251
 
224
252
  /**
225
253
  * Returns framebuffer completed.
@@ -232,7 +260,7 @@ export class Framebuffer {
232
260
  return true;
233
261
  }
234
262
  return false;
235
- };
263
+ }
236
264
 
237
265
  /**
238
266
  * Gets pixel RBGA color from framebuffer by coordinates.
@@ -248,9 +276,17 @@ export class Framebuffer {
248
276
  var gl = this.handler.gl;
249
277
  gl.bindFramebuffer(gl.FRAMEBUFFER, this._fbo);
250
278
  gl.readBuffer && gl.readBuffer(gl.COLOR_ATTACHMENT0 + index || 0);
251
- gl.readPixels(nx * this._width, ny * this._height, w, h, gl.RGBA, gl[this._typeArr[index]], res);
279
+ gl.readPixels(
280
+ nx * this._width,
281
+ ny * this._height,
282
+ w,
283
+ h,
284
+ gl.RGBA,
285
+ gl[this._typeArr[index]],
286
+ res
287
+ );
252
288
  gl.bindFramebuffer(gl.FRAMEBUFFER, null);
253
- };
289
+ }
254
290
 
255
291
  /**
256
292
  * Reads all pixels(RGBA colors) from framebuffer.
@@ -262,14 +298,22 @@ export class Framebuffer {
262
298
  var gl = this.handler.gl;
263
299
  gl.bindFramebuffer(gl.FRAMEBUFFER, this._fbo);
264
300
  gl.readBuffer && gl.readBuffer(gl.COLOR_ATTACHMENT0 + attachmentIndex);
265
- gl.readPixels(0, 0, this._width, this._height, gl.RGBA, gl[this._typeArr[attachmentIndex]], res);
301
+ gl.readPixels(
302
+ 0,
303
+ 0,
304
+ this._width,
305
+ this._height,
306
+ gl.RGBA,
307
+ gl[this._typeArr[attachmentIndex]],
308
+ res
309
+ );
266
310
  gl.bindFramebuffer(gl.FRAMEBUFFER, null);
267
- };
311
+ }
268
312
 
269
313
  /**
270
314
  * Activate framebuffer frame to draw.
271
315
  * @public
272
- * @returns {og.webgl.Framebuffer} Returns Current framebuffer.
316
+ * @returns {Framebuffer} Returns Current framebuffer.
273
317
  */
274
318
  activate() {
275
319
  var gl = this.handler.gl;
@@ -281,7 +325,7 @@ export class Framebuffer {
281
325
  c && (c._active = false);
282
326
  this.handler.framebufferStack.push(this);
283
327
  return this;
284
- };
328
+ }
285
329
 
286
330
  /**
287
331
  * Deactivate framebuffer frame.
@@ -301,7 +345,7 @@ export class Framebuffer {
301
345
  } else {
302
346
  gl.viewport(0, 0, h.canvas.width, h.canvas.height);
303
347
  }
304
- };
348
+ }
305
349
 
306
350
  /**
307
351
  * Gets JavaScript image object that framebuffer has drawn.
@@ -314,7 +358,7 @@ export class Framebuffer {
314
358
  var imageCanvas = new ImageCanvas(this._width, this._height);
315
359
  imageCanvas.setData(data);
316
360
  return imageCanvas.getImage();
317
- };
361
+ }
318
362
 
319
363
  /**
320
364
  * Open dialog window with framebuffer image.
@@ -323,17 +367,21 @@ export class Framebuffer {
323
367
  openImage() {
324
368
  var img = this.getImage();
325
369
  var dataUrl = img.src;
326
- var windowContent = '<!DOCTYPE html>';
327
- windowContent += '<html>';
328
- windowContent += '<head><title>Print</title></head>';
329
- windowContent += '<body>';
370
+ var windowContent = "<!DOCTYPE html>";
371
+ windowContent += "<html>";
372
+ windowContent += "<head><title>Print</title></head>";
373
+ windowContent += "<body>";
330
374
  windowContent += '<img src="' + dataUrl + '">';
331
- windowContent += '</body>';
332
- windowContent += '</html>';
333
- var printWin = window.open('', '', 'width=' + img.width + 'px ,height=' + img.height + 'px');
375
+ windowContent += "</body>";
376
+ windowContent += "</html>";
377
+ var printWin = window.open(
378
+ "",
379
+ "",
380
+ "width=" + img.width + "px ,height=" + img.height + "px"
381
+ );
334
382
  printWin.document.open();
335
383
  printWin.document.write(windowContent);
336
384
  printWin.document.close();
337
385
  printWin.focus();
338
- };
339
- }
386
+ }
387
+ }