cesium 0.13.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (491) hide show
  1. data/LICENSE.md +259 -0
  2. data/README.rdoc +90 -0
  3. data/Rakefile +40 -0
  4. data/app/assets/javascripts/Assets/Assets.profile.js +8 -0
  5. data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_0.json +1 -0
  6. data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_1.json +1 -0
  7. data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_10.json +1 -0
  8. data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_11.json +1 -0
  9. data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_12.json +1 -0
  10. data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_13.json +1 -0
  11. data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_14.json +1 -0
  12. data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_15.json +1 -0
  13. data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_16.json +1 -0
  14. data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_17.json +1 -0
  15. data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_18.json +1 -0
  16. data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_19.json +1 -0
  17. data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_2.json +1 -0
  18. data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_20.json +1 -0
  19. data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_21.json +1 -0
  20. data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_22.json +1 -0
  21. data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_23.json +1 -0
  22. data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_24.json +1 -0
  23. data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_25.json +1 -0
  24. data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_26.json +1 -0
  25. data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_27.json +1 -0
  26. data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_3.json +1 -0
  27. data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_4.json +1 -0
  28. data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_5.json +1 -0
  29. data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_6.json +1 -0
  30. data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_7.json +1 -0
  31. data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_8.json +1 -0
  32. data/app/assets/javascripts/Assets/IAU2006_XYS/IAU2006_XYS_9.json +1 -0
  33. data/app/assets/javascripts/Assets/Textures/NE2_LR_LC_SR_W_DR_2048.jpg +0 -0
  34. data/app/assets/javascripts/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg +0 -0
  35. data/app/assets/javascripts/Assets/Textures/SkyBox/tycho2t3_80_my.jpg +0 -0
  36. data/app/assets/javascripts/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg +0 -0
  37. data/app/assets/javascripts/Assets/Textures/SkyBox/tycho2t3_80_px.jpg +0 -0
  38. data/app/assets/javascripts/Assets/Textures/SkyBox/tycho2t3_80_py.jpg +0 -0
  39. data/app/assets/javascripts/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg +0 -0
  40. data/app/assets/javascripts/Assets/Textures/waterNormals.jpg +0 -0
  41. data/app/assets/javascripts/Assets/package.json +6 -0
  42. data/app/assets/javascripts/Cesium.js +320 -0
  43. data/app/assets/javascripts/Core/AnimationController.js +148 -0
  44. data/app/assets/javascripts/Core/AxisAlignedBoundingBox.js +243 -0
  45. data/app/assets/javascripts/Core/BoundingRectangle.js +364 -0
  46. data/app/assets/javascripts/Core/BoundingSphere.js +819 -0
  47. data/app/assets/javascripts/Core/BoxTessellator.js +93 -0
  48. data/app/assets/javascripts/Core/Cartesian2.js +762 -0
  49. data/app/assets/javascripts/Core/Cartesian3.js +861 -0
  50. data/app/assets/javascripts/Core/Cartesian4.js +762 -0
  51. data/app/assets/javascripts/Core/Cartographic.js +211 -0
  52. data/app/assets/javascripts/Core/CatmullRomSpline.js +232 -0
  53. data/app/assets/javascripts/Core/Clock.js +195 -0
  54. data/app/assets/javascripts/Core/ClockRange.js +37 -0
  55. data/app/assets/javascripts/Core/ClockStep.js +32 -0
  56. data/app/assets/javascripts/Core/Color.js +1629 -0
  57. data/app/assets/javascripts/Core/ComponentDatatype.js +119 -0
  58. data/app/assets/javascripts/Core/Core.profile.js +8 -0
  59. data/app/assets/javascripts/Core/CubeMapEllipsoidTessellator.js +198 -0
  60. data/app/assets/javascripts/Core/CubicRealPolynomial.js +251 -0
  61. data/app/assets/javascripts/Core/DefaultProxy.js +30 -0
  62. data/app/assets/javascripts/Core/DeveloperError.js +60 -0
  63. data/app/assets/javascripts/Core/EarthOrientationParameters.js +383 -0
  64. data/app/assets/javascripts/Core/EarthOrientationParametersSample.js +50 -0
  65. data/app/assets/javascripts/Core/Ellipsoid.js +539 -0
  66. data/app/assets/javascripts/Core/EllipsoidTangentPlane.js +207 -0
  67. data/app/assets/javascripts/Core/EllipsoidalOccluder.js +151 -0
  68. data/app/assets/javascripts/Core/EncodedCartesian3.js +197 -0
  69. data/app/assets/javascripts/Core/Enumeration.js +67 -0
  70. data/app/assets/javascripts/Core/Event.js +122 -0
  71. data/app/assets/javascripts/Core/Extent.js +383 -0
  72. data/app/assets/javascripts/Core/ExtentTessellator.js +384 -0
  73. data/app/assets/javascripts/Core/FAR.js +13 -0
  74. data/app/assets/javascripts/Core/FeatureDetection.js +126 -0
  75. data/app/assets/javascripts/Core/Fullscreen.js +235 -0
  76. data/app/assets/javascripts/Core/GeographicProjection.js +107 -0
  77. data/app/assets/javascripts/Core/HermitePolynomialApproximation.js +176 -0
  78. data/app/assets/javascripts/Core/HermiteSpline.js +234 -0
  79. data/app/assets/javascripts/Core/Iau2006XysData.js +259 -0
  80. data/app/assets/javascripts/Core/Iau2006XysSample.js +36 -0
  81. data/app/assets/javascripts/Core/IndexDatatype.js +28 -0
  82. data/app/assets/javascripts/Core/Intersect.js +40 -0
  83. data/app/assets/javascripts/Core/IntersectionTests.js +359 -0
  84. data/app/assets/javascripts/Core/Interval.js +27 -0
  85. data/app/assets/javascripts/Core/Iso8601.js +46 -0
  86. data/app/assets/javascripts/Core/JulianDate.js +1228 -0
  87. data/app/assets/javascripts/Core/KeyboardEventModifier.js +38 -0
  88. data/app/assets/javascripts/Core/LagrangePolynomialApproximation.js +96 -0
  89. data/app/assets/javascripts/Core/LeapSecond.js +158 -0
  90. data/app/assets/javascripts/Core/LinearApproximation.js +98 -0
  91. data/app/assets/javascripts/Core/Math.js +532 -0
  92. data/app/assets/javascripts/Core/Matrix2.js +833 -0
  93. data/app/assets/javascripts/Core/Matrix3.js +1099 -0
  94. data/app/assets/javascripts/Core/Matrix4.js +2164 -0
  95. data/app/assets/javascripts/Core/MeshFilters.js +568 -0
  96. data/app/assets/javascripts/Core/Occluder.js +474 -0
  97. data/app/assets/javascripts/Core/OrientationInterpolator.js +109 -0
  98. data/app/assets/javascripts/Core/PlaneTessellator.js +74 -0
  99. data/app/assets/javascripts/Core/PolygonPipeline.js +792 -0
  100. data/app/assets/javascripts/Core/PolylinePipeline.js +90 -0
  101. data/app/assets/javascripts/Core/PrimitiveType.js +80 -0
  102. data/app/assets/javascripts/Core/QuadraticRealPolynomial.js +146 -0
  103. data/app/assets/javascripts/Core/QuarticRealPolynomial.js +339 -0
  104. data/app/assets/javascripts/Core/Quaternion.js +947 -0
  105. data/app/assets/javascripts/Core/Queue.js +95 -0
  106. data/app/assets/javascripts/Core/Ray.js +64 -0
  107. data/app/assets/javascripts/Core/ReferenceFrame.js +25 -0
  108. data/app/assets/javascripts/Core/RequestErrorEvent.js +35 -0
  109. data/app/assets/javascripts/Core/RuntimeError.js +59 -0
  110. data/app/assets/javascripts/Core/ScreenSpaceEventHandler.js +658 -0
  111. data/app/assets/javascripts/Core/ScreenSpaceEventType.js +149 -0
  112. data/app/assets/javascripts/Core/Shapes.js +230 -0
  113. data/app/assets/javascripts/Core/Spherical.js +192 -0
  114. data/app/assets/javascripts/Core/TaskProcessor.js +131 -0
  115. data/app/assets/javascripts/Core/TimeConstants.js +85 -0
  116. data/app/assets/javascripts/Core/TimeInterval.js +305 -0
  117. data/app/assets/javascripts/Core/TimeIntervalCollection.js +543 -0
  118. data/app/assets/javascripts/Core/TimeStandard.js +31 -0
  119. data/app/assets/javascripts/Core/Tipsify.js +285 -0
  120. data/app/assets/javascripts/Core/Transforms.js +614 -0
  121. data/app/assets/javascripts/Core/TridiagonalSystemSolver.js +102 -0
  122. data/app/assets/javascripts/Core/Visibility.js +38 -0
  123. data/app/assets/javascripts/Core/WebMercatorProjection.js +154 -0
  124. data/app/assets/javascripts/Core/WindingOrder.js +40 -0
  125. data/app/assets/javascripts/Core/binarySearch.js +69 -0
  126. data/app/assets/javascripts/Core/buildModuleUrl.js +77 -0
  127. data/app/assets/javascripts/Core/clone.js +21 -0
  128. data/app/assets/javascripts/Core/combine.js +81 -0
  129. data/app/assets/javascripts/Core/computeSunPosition.js +116 -0
  130. data/app/assets/javascripts/Core/createGuid.js +25 -0
  131. data/app/assets/javascripts/Core/defaultValue.js +22 -0
  132. data/app/assets/javascripts/Core/destroyObject.js +61 -0
  133. data/app/assets/javascripts/Core/freezeObject.js +20 -0
  134. data/app/assets/javascripts/Core/getImagePixels.js +46 -0
  135. data/app/assets/javascripts/Core/isLeapYear.js +30 -0
  136. data/app/assets/javascripts/Core/jsonp.js +116 -0
  137. data/app/assets/javascripts/Core/loadArrayBuffer.js +76 -0
  138. data/app/assets/javascripts/Core/loadImage.js +85 -0
  139. data/app/assets/javascripts/Core/loadJson.js +54 -0
  140. data/app/assets/javascripts/Core/loadText.js +78 -0
  141. data/app/assets/javascripts/Core/loadXML.js +76 -0
  142. data/app/assets/javascripts/Core/package.json +6 -0
  143. data/app/assets/javascripts/Core/pointInsideTriangle2D.js +41 -0
  144. data/app/assets/javascripts/Core/requestAnimationFrame.js +61 -0
  145. data/app/assets/javascripts/Core/throttleRequestByServer.js +74 -0
  146. data/app/assets/javascripts/Core/writeTextToCanvas.js +92 -0
  147. data/app/assets/javascripts/DynamicScene/CompositeDynamicObjectCollection.js +254 -0
  148. data/app/assets/javascripts/DynamicScene/CzmlBoolean.js +57 -0
  149. data/app/assets/javascripts/DynamicScene/CzmlCartesian2.js +96 -0
  150. data/app/assets/javascripts/DynamicScene/CzmlCartesian3.js +99 -0
  151. data/app/assets/javascripts/DynamicScene/CzmlCartographic.js +125 -0
  152. data/app/assets/javascripts/DynamicScene/CzmlColor.js +127 -0
  153. data/app/assets/javascripts/DynamicScene/CzmlDefaults.js +135 -0
  154. data/app/assets/javascripts/DynamicScene/CzmlHorizontalOrigin.js +59 -0
  155. data/app/assets/javascripts/DynamicScene/CzmlImage.js +61 -0
  156. data/app/assets/javascripts/DynamicScene/CzmlLabelStyle.js +59 -0
  157. data/app/assets/javascripts/DynamicScene/CzmlNumber.js +82 -0
  158. data/app/assets/javascripts/DynamicScene/CzmlString.js +56 -0
  159. data/app/assets/javascripts/DynamicScene/CzmlUnitCartesian3.js +99 -0
  160. data/app/assets/javascripts/DynamicScene/CzmlUnitQuaternion.js +172 -0
  161. data/app/assets/javascripts/DynamicScene/CzmlUnitSpherical.js +98 -0
  162. data/app/assets/javascripts/DynamicScene/CzmlVerticalOrigin.js +59 -0
  163. data/app/assets/javascripts/DynamicScene/DynamicBillboard.js +245 -0
  164. data/app/assets/javascripts/DynamicScene/DynamicBillboardVisualizer.js +347 -0
  165. data/app/assets/javascripts/DynamicScene/DynamicColorMaterial.js +78 -0
  166. data/app/assets/javascripts/DynamicScene/DynamicCone.js +291 -0
  167. data/app/assets/javascripts/DynamicScene/DynamicConeVisualizer.js +350 -0
  168. data/app/assets/javascripts/DynamicScene/DynamicConeVisualizerUsingCustomSensor.js +389 -0
  169. data/app/assets/javascripts/DynamicScene/DynamicDirectionsProperty.js +163 -0
  170. data/app/assets/javascripts/DynamicScene/DynamicEllipsoid.js +158 -0
  171. data/app/assets/javascripts/DynamicScene/DynamicEllipsoidVisualizer.js +277 -0
  172. data/app/assets/javascripts/DynamicScene/DynamicImageMaterial.js +136 -0
  173. data/app/assets/javascripts/DynamicScene/DynamicLabel.js +286 -0
  174. data/app/assets/javascripts/DynamicScene/DynamicLabelVisualizer.js +341 -0
  175. data/app/assets/javascripts/DynamicScene/DynamicMaterialProperty.js +125 -0
  176. data/app/assets/javascripts/DynamicScene/DynamicObject.js +364 -0
  177. data/app/assets/javascripts/DynamicScene/DynamicObjectCollection.js +137 -0
  178. data/app/assets/javascripts/DynamicScene/DynamicObjectView.js +299 -0
  179. data/app/assets/javascripts/DynamicScene/DynamicPath.js +214 -0
  180. data/app/assets/javascripts/DynamicScene/DynamicPathVisualizer.js +402 -0
  181. data/app/assets/javascripts/DynamicScene/DynamicPoint.js +184 -0
  182. data/app/assets/javascripts/DynamicScene/DynamicPointVisualizer.js +323 -0
  183. data/app/assets/javascripts/DynamicScene/DynamicPolygon.js +138 -0
  184. data/app/assets/javascripts/DynamicScene/DynamicPolygonVisualizer.js +251 -0
  185. data/app/assets/javascripts/DynamicScene/DynamicPolyline.js +183 -0
  186. data/app/assets/javascripts/DynamicScene/DynamicPolylineVisualizer.js +268 -0
  187. data/app/assets/javascripts/DynamicScene/DynamicPositionProperty.js +525 -0
  188. data/app/assets/javascripts/DynamicScene/DynamicProperty.js +352 -0
  189. data/app/assets/javascripts/DynamicScene/DynamicPyramid.js +204 -0
  190. data/app/assets/javascripts/DynamicScene/DynamicPyramidVisualizer.js +302 -0
  191. data/app/assets/javascripts/DynamicScene/DynamicScene.profile.js +8 -0
  192. data/app/assets/javascripts/DynamicScene/DynamicVertexPositionsProperty.js +199 -0
  193. data/app/assets/javascripts/DynamicScene/ReferenceProperty.js +155 -0
  194. data/app/assets/javascripts/DynamicScene/VisualizerCollection.js +181 -0
  195. data/app/assets/javascripts/DynamicScene/package.json +6 -0
  196. data/app/assets/javascripts/DynamicScene/processCzml.js +77 -0
  197. data/app/assets/javascripts/Renderer/BlendEquation.js +52 -0
  198. data/app/assets/javascripts/Renderer/BlendFunction.js +158 -0
  199. data/app/assets/javascripts/Renderer/BlendingState.js +64 -0
  200. data/app/assets/javascripts/Renderer/Buffer.js +141 -0
  201. data/app/assets/javascripts/Renderer/BufferUsage.js +48 -0
  202. data/app/assets/javascripts/Renderer/ClearCommand.js +40 -0
  203. data/app/assets/javascripts/Renderer/CommandLists.js +42 -0
  204. data/app/assets/javascripts/Renderer/Context.js +2805 -0
  205. data/app/assets/javascripts/Renderer/CubeMap.js +358 -0
  206. data/app/assets/javascripts/Renderer/CubeMapFace.js +202 -0
  207. data/app/assets/javascripts/Renderer/CullFace.js +50 -0
  208. data/app/assets/javascripts/Renderer/DepthFunction.js +95 -0
  209. data/app/assets/javascripts/Renderer/DrawCommand.js +96 -0
  210. data/app/assets/javascripts/Renderer/Framebuffer.js +435 -0
  211. data/app/assets/javascripts/Renderer/MipmapHint.js +50 -0
  212. data/app/assets/javascripts/Renderer/PickFramebuffer.js +178 -0
  213. data/app/assets/javascripts/Renderer/PixelDatatype.js +86 -0
  214. data/app/assets/javascripts/Renderer/PixelFormat.js +113 -0
  215. data/app/assets/javascripts/Renderer/Renderbuffer.js +102 -0
  216. data/app/assets/javascripts/Renderer/RenderbufferFormat.js +77 -0
  217. data/app/assets/javascripts/Renderer/Renderer.profile.js +8 -0
  218. data/app/assets/javascripts/Renderer/ShaderCache.js +121 -0
  219. data/app/assets/javascripts/Renderer/ShaderProgram.js +2402 -0
  220. data/app/assets/javascripts/Renderer/StencilFunction.js +95 -0
  221. data/app/assets/javascripts/Renderer/StencilOperation.js +95 -0
  222. data/app/assets/javascripts/Renderer/Texture.js +395 -0
  223. data/app/assets/javascripts/Renderer/TextureAtlas.js +472 -0
  224. data/app/assets/javascripts/Renderer/TextureAtlasBuilder.js +133 -0
  225. data/app/assets/javascripts/Renderer/TextureMagnificationFilter.js +41 -0
  226. data/app/assets/javascripts/Renderer/TextureMinificationFilter.js +77 -0
  227. data/app/assets/javascripts/Renderer/TextureWrap.js +50 -0
  228. data/app/assets/javascripts/Renderer/UniformDatatype.js +218 -0
  229. data/app/assets/javascripts/Renderer/UniformState.js +799 -0
  230. data/app/assets/javascripts/Renderer/VertexArray.js +365 -0
  231. data/app/assets/javascripts/Renderer/VertexArrayFacade.js +574 -0
  232. data/app/assets/javascripts/Renderer/VertexLayout.js +49 -0
  233. data/app/assets/javascripts/Renderer/loadCubeMap.js +92 -0
  234. data/app/assets/javascripts/Renderer/package.json +6 -0
  235. data/app/assets/javascripts/Scene/AnimationCollection.js +249 -0
  236. data/app/assets/javascripts/Scene/ArcGisMapServerImageryProvider.js +384 -0
  237. data/app/assets/javascripts/Scene/Billboard.js +680 -0
  238. data/app/assets/javascripts/Scene/BillboardCollection.js +1209 -0
  239. data/app/assets/javascripts/Scene/BingMapsImageryProvider.js +460 -0
  240. data/app/assets/javascripts/Scene/BingMapsStyle.js +55 -0
  241. data/app/assets/javascripts/Scene/Camera.js +358 -0
  242. data/app/assets/javascripts/Scene/CameraColumbusViewMode.js +30 -0
  243. data/app/assets/javascripts/Scene/CameraController.js +1258 -0
  244. data/app/assets/javascripts/Scene/CameraEventAggregator.js +270 -0
  245. data/app/assets/javascripts/Scene/CameraEventType.js +53 -0
  246. data/app/assets/javascripts/Scene/CameraFlightPath.js +495 -0
  247. data/app/assets/javascripts/Scene/CentralBody.js +817 -0
  248. data/app/assets/javascripts/Scene/CentralBodySurface.js +1120 -0
  249. data/app/assets/javascripts/Scene/CentralBodySurfaceShaderSet.js +107 -0
  250. data/app/assets/javascripts/Scene/ComplexConicSensorVolume.js +511 -0
  251. data/app/assets/javascripts/Scene/CompositePrimitive.js +454 -0
  252. data/app/assets/javascripts/Scene/CullingVolume.js +59 -0
  253. data/app/assets/javascripts/Scene/CustomSensorVolume.js +440 -0
  254. data/app/assets/javascripts/Scene/DiscardMissingTileImagePolicy.js +134 -0
  255. data/app/assets/javascripts/Scene/EllipsoidPrimitive.js +412 -0
  256. data/app/assets/javascripts/Scene/EllipsoidTerrainProvider.js +182 -0
  257. data/app/assets/javascripts/Scene/FrameState.js +86 -0
  258. data/app/assets/javascripts/Scene/FrustumCommands.js +32 -0
  259. data/app/assets/javascripts/Scene/GeographicTilingScheme.js +265 -0
  260. data/app/assets/javascripts/Scene/HorizontalOrigin.js +39 -0
  261. data/app/assets/javascripts/Scene/Imagery.js +85 -0
  262. data/app/assets/javascripts/Scene/ImageryLayer.js +876 -0
  263. data/app/assets/javascripts/Scene/ImageryLayerCollection.js +403 -0
  264. data/app/assets/javascripts/Scene/ImageryProvider.js +185 -0
  265. data/app/assets/javascripts/Scene/ImageryProviderError.js +149 -0
  266. data/app/assets/javascripts/Scene/ImageryState.js +20 -0
  267. data/app/assets/javascripts/Scene/Label.js +706 -0
  268. data/app/assets/javascripts/Scene/LabelCollection.js +697 -0
  269. data/app/assets/javascripts/Scene/LabelStyle.js +39 -0
  270. data/app/assets/javascripts/Scene/Material.js +1177 -0
  271. data/app/assets/javascripts/Scene/NeverTileDiscardPolicy.js +38 -0
  272. data/app/assets/javascripts/Scene/OpenStreetMapImageryProvider.js +282 -0
  273. data/app/assets/javascripts/Scene/OrthographicFrustum.js +345 -0
  274. data/app/assets/javascripts/Scene/PerformanceDisplay.js +183 -0
  275. data/app/assets/javascripts/Scene/PerspectiveFrustum.js +239 -0
  276. data/app/assets/javascripts/Scene/PerspectiveOffCenterFrustum.js +394 -0
  277. data/app/assets/javascripts/Scene/Polygon.js +886 -0
  278. data/app/assets/javascripts/Scene/Polyline.js +441 -0
  279. data/app/assets/javascripts/Scene/PolylineCollection.js +1532 -0
  280. data/app/assets/javascripts/Scene/Projections.js +93 -0
  281. data/app/assets/javascripts/Scene/RectangularPyramidSensorVolume.js +224 -0
  282. data/app/assets/javascripts/Scene/Scene.js +632 -0
  283. data/app/assets/javascripts/Scene/Scene.profile.js +8 -0
  284. data/app/assets/javascripts/Scene/SceneMode.js +51 -0
  285. data/app/assets/javascripts/Scene/SceneTransitioner.js +776 -0
  286. data/app/assets/javascripts/Scene/ScreenSpaceCameraController.js +1063 -0
  287. data/app/assets/javascripts/Scene/SensorVolumeCollection.js +192 -0
  288. data/app/assets/javascripts/Scene/SingleTileImageryProvider.js +295 -0
  289. data/app/assets/javascripts/Scene/SkyAtmosphere.js +239 -0
  290. data/app/assets/javascripts/Scene/SkyBox.js +231 -0
  291. data/app/assets/javascripts/Scene/TerrainProvider.js +229 -0
  292. data/app/assets/javascripts/Scene/TexturePool.js +154 -0
  293. data/app/assets/javascripts/Scene/Tile.js +322 -0
  294. data/app/assets/javascripts/Scene/TileDiscardPolicy.js +42 -0
  295. data/app/assets/javascripts/Scene/TileImagery.js +36 -0
  296. data/app/assets/javascripts/Scene/TileLoadQueue.js +123 -0
  297. data/app/assets/javascripts/Scene/TileMapServiceImageryProvider.js +337 -0
  298. data/app/assets/javascripts/Scene/TileReplacementQueue.js +139 -0
  299. data/app/assets/javascripts/Scene/TileState.js +19 -0
  300. data/app/assets/javascripts/Scene/TilingScheme.js +213 -0
  301. data/app/assets/javascripts/Scene/VerticalOrigin.js +39 -0
  302. data/app/assets/javascripts/Scene/ViewportQuad.js +256 -0
  303. data/app/assets/javascripts/Scene/WebMapServiceImageryProvider.js +374 -0
  304. data/app/assets/javascripts/Scene/WebMercatorTilingScheme.js +291 -0
  305. data/app/assets/javascripts/Scene/package.json +6 -0
  306. data/app/assets/javascripts/Shaders/BillboardCollectionFS.glsl +30 -0
  307. data/app/assets/javascripts/Shaders/BillboardCollectionFS.js +31 -0
  308. data/app/assets/javascripts/Shaders/BillboardCollectionVS.glsl +68 -0
  309. data/app/assets/javascripts/Shaders/BillboardCollectionVS.js +54 -0
  310. data/app/assets/javascripts/Shaders/BuiltinFunctions.glsl +927 -0
  311. data/app/assets/javascripts/Shaders/BuiltinFunctions.js +322 -0
  312. data/app/assets/javascripts/Shaders/CentralBodyFS.glsl +106 -0
  313. data/app/assets/javascripts/Shaders/CentralBodyFS.js +82 -0
  314. data/app/assets/javascripts/Shaders/CentralBodyFSDepth.glsl +20 -0
  315. data/app/assets/javascripts/Shaders/CentralBodyFSDepth.js +22 -0
  316. data/app/assets/javascripts/Shaders/CentralBodyFSPole.glsl +29 -0
  317. data/app/assets/javascripts/Shaders/CentralBodyFSPole.js +28 -0
  318. data/app/assets/javascripts/Shaders/CentralBodyVS.glsl +88 -0
  319. data/app/assets/javascripts/Shaders/CentralBodyVS.js +69 -0
  320. data/app/assets/javascripts/Shaders/CentralBodyVSDepth.glsl +9 -0
  321. data/app/assets/javascripts/Shaders/CentralBodyVSDepth.js +13 -0
  322. data/app/assets/javascripts/Shaders/CentralBodyVSPole.glsl +12 -0
  323. data/app/assets/javascripts/Shaders/CentralBodyVSPole.js +15 -0
  324. data/app/assets/javascripts/Shaders/ComplexConicSensorVolumeFS.glsl +448 -0
  325. data/app/assets/javascripts/Shaders/ComplexConicSensorVolumeFS.js +361 -0
  326. data/app/assets/javascripts/Shaders/ComplexConicSensorVolumeVS.glsl +19 -0
  327. data/app/assets/javascripts/Shaders/ComplexConicSensorVolumeVS.js +20 -0
  328. data/app/assets/javascripts/Shaders/ConstructiveSolidGeometry.glsl +886 -0
  329. data/app/assets/javascripts/Shaders/ConstructiveSolidGeometry.js +586 -0
  330. data/app/assets/javascripts/Shaders/CustomSensorVolumeFS.glsl +126 -0
  331. data/app/assets/javascripts/Shaders/CustomSensorVolumeFS.js +95 -0
  332. data/app/assets/javascripts/Shaders/CustomSensorVolumeVS.glsl +14 -0
  333. data/app/assets/javascripts/Shaders/CustomSensorVolumeVS.js +18 -0
  334. data/app/assets/javascripts/Shaders/EllipsoidFS.glsl +40 -0
  335. data/app/assets/javascripts/Shaders/EllipsoidFS.js +38 -0
  336. data/app/assets/javascripts/Shaders/EllipsoidVS.glsl +26 -0
  337. data/app/assets/javascripts/Shaders/EllipsoidVS.js +16 -0
  338. data/app/assets/javascripts/Shaders/Materials/AsphaltMaterial.glsl +25 -0
  339. data/app/assets/javascripts/Shaders/Materials/AsphaltMaterial.js +23 -0
  340. data/app/assets/javascripts/Shaders/Materials/BlobMaterial.glsl +18 -0
  341. data/app/assets/javascripts/Shaders/Materials/BlobMaterial.js +19 -0
  342. data/app/assets/javascripts/Shaders/Materials/BrickMaterial.glsl +42 -0
  343. data/app/assets/javascripts/Shaders/Materials/BrickMaterial.js +36 -0
  344. data/app/assets/javascripts/Shaders/Materials/BumpMapMaterial.glsl +29 -0
  345. data/app/assets/javascripts/Shaders/Materials/BumpMapMaterial.js +27 -0
  346. data/app/assets/javascripts/Shaders/Materials/CementMaterial.glsl +19 -0
  347. data/app/assets/javascripts/Shaders/Materials/CementMaterial.js +20 -0
  348. data/app/assets/javascripts/Shaders/Materials/CheckerboardMaterial.glsl +38 -0
  349. data/app/assets/javascripts/Shaders/Materials/CheckerboardMaterial.js +32 -0
  350. data/app/assets/javascripts/Shaders/Materials/DotMaterial.glsl +17 -0
  351. data/app/assets/javascripts/Shaders/Materials/DotMaterial.js +18 -0
  352. data/app/assets/javascripts/Shaders/Materials/ErosionMaterial.glsl +23 -0
  353. data/app/assets/javascripts/Shaders/Materials/ErosionMaterial.js +24 -0
  354. data/app/assets/javascripts/Shaders/Materials/FacetMaterial.glsl +18 -0
  355. data/app/assets/javascripts/Shaders/Materials/FacetMaterial.js +19 -0
  356. data/app/assets/javascripts/Shaders/Materials/FresnelMaterial.glsl +12 -0
  357. data/app/assets/javascripts/Shaders/Materials/FresnelMaterial.js +15 -0
  358. data/app/assets/javascripts/Shaders/Materials/GrassMaterial.glsl +28 -0
  359. data/app/assets/javascripts/Shaders/Materials/GrassMaterial.js +26 -0
  360. data/app/assets/javascripts/Shaders/Materials/NormalMapMaterial.glsl +19 -0
  361. data/app/assets/javascripts/Shaders/Materials/NormalMapMaterial.js +21 -0
  362. data/app/assets/javascripts/Shaders/Materials/ReflectionMaterial.glsl +13 -0
  363. data/app/assets/javascripts/Shaders/Materials/ReflectionMaterial.js +16 -0
  364. data/app/assets/javascripts/Shaders/Materials/RefractionMaterial.glsl +14 -0
  365. data/app/assets/javascripts/Shaders/Materials/RefractionMaterial.js +17 -0
  366. data/app/assets/javascripts/Shaders/Materials/RimLightingMaterial.glsl +18 -0
  367. data/app/assets/javascripts/Shaders/Materials/RimLightingMaterial.js +19 -0
  368. data/app/assets/javascripts/Shaders/Materials/StripeMaterial.glsl +29 -0
  369. data/app/assets/javascripts/Shaders/Materials/StripeMaterial.js +26 -0
  370. data/app/assets/javascripts/Shaders/Materials/TieDyeMaterial.glsl +17 -0
  371. data/app/assets/javascripts/Shaders/Materials/TieDyeMaterial.js +19 -0
  372. data/app/assets/javascripts/Shaders/Materials/Water.glsl +91 -0
  373. data/app/assets/javascripts/Shaders/Materials/Water.js +60 -0
  374. data/app/assets/javascripts/Shaders/Materials/WoodMaterial.glsl +36 -0
  375. data/app/assets/javascripts/Shaders/Materials/WoodMaterial.js +31 -0
  376. data/app/assets/javascripts/Shaders/Noise.glsl +453 -0
  377. data/app/assets/javascripts/Shaders/Noise.js +242 -0
  378. data/app/assets/javascripts/Shaders/PolygonFS.glsl +27 -0
  379. data/app/assets/javascripts/Shaders/PolygonFS.js +23 -0
  380. data/app/assets/javascripts/Shaders/PolygonFSPick.glsl +6 -0
  381. data/app/assets/javascripts/Shaders/PolygonFSPick.js +11 -0
  382. data/app/assets/javascripts/Shaders/PolygonVS.glsl +38 -0
  383. data/app/assets/javascripts/Shaders/PolygonVS.js +39 -0
  384. data/app/assets/javascripts/Shaders/PolygonVSPick.glsl +30 -0
  385. data/app/assets/javascripts/Shaders/PolygonVSPick.js +32 -0
  386. data/app/assets/javascripts/Shaders/PolylineFS.glsl +6 -0
  387. data/app/assets/javascripts/Shaders/PolylineFS.js +11 -0
  388. data/app/assets/javascripts/Shaders/PolylineVS.glsl +34 -0
  389. data/app/assets/javascripts/Shaders/PolylineVS.js +35 -0
  390. data/app/assets/javascripts/Shaders/Ray.glsl +532 -0
  391. data/app/assets/javascripts/Shaders/Ray.js +357 -0
  392. data/app/assets/javascripts/Shaders/ReprojectWebMercatorFS.glsl +26 -0
  393. data/app/assets/javascripts/Shaders/ReprojectWebMercatorFS.js +22 -0
  394. data/app/assets/javascripts/Shaders/ReprojectWebMercatorVS.glsl +11 -0
  395. data/app/assets/javascripts/Shaders/ReprojectWebMercatorVS.js +14 -0
  396. data/app/assets/javascripts/Shaders/SensorVolume.glsl +43 -0
  397. data/app/assets/javascripts/Shaders/SensorVolume.js +31 -0
  398. data/app/assets/javascripts/Shaders/Shaders.profile.js +8 -0
  399. data/app/assets/javascripts/Shaders/SkyAtmosphereFS.glsl +70 -0
  400. data/app/assets/javascripts/Shaders/SkyAtmosphereFS.js +62 -0
  401. data/app/assets/javascripts/Shaders/SkyAtmosphereVS.glsl +131 -0
  402. data/app/assets/javascripts/Shaders/SkyAtmosphereVS.js +115 -0
  403. data/app/assets/javascripts/Shaders/SkyBoxFS.glsl +10 -0
  404. data/app/assets/javascripts/Shaders/SkyBoxFS.js +14 -0
  405. data/app/assets/javascripts/Shaders/SkyBoxVS.glsl +10 -0
  406. data/app/assets/javascripts/Shaders/SkyBoxVS.js +14 -0
  407. data/app/assets/javascripts/Shaders/ViewportQuadFS.glsl +16 -0
  408. data/app/assets/javascripts/Shaders/ViewportQuadFS.js +17 -0
  409. data/app/assets/javascripts/Shaders/ViewportQuadVS.glsl +10 -0
  410. data/app/assets/javascripts/Shaders/ViewportQuadVS.js +14 -0
  411. data/app/assets/javascripts/Shaders/package.json +6 -0
  412. data/app/assets/javascripts/ThirdParty/ThirdParty.profile.js +8 -0
  413. data/app/assets/javascripts/ThirdParty/Tween.js +678 -0
  414. data/app/assets/javascripts/ThirdParty/Uri.js +277 -0
  415. data/app/assets/javascripts/ThirdParty/measureText.js +197 -0
  416. data/app/assets/javascripts/ThirdParty/package.json +6 -0
  417. data/app/assets/javascripts/ThirdParty/sprintf.js +319 -0
  418. data/app/assets/javascripts/ThirdParty/when.js +748 -0
  419. data/app/assets/javascripts/Widgets/Dojo/CesiumViewerWidget.css +175 -0
  420. data/app/assets/javascripts/Widgets/Dojo/CesiumViewerWidget.html +52 -0
  421. data/app/assets/javascripts/Widgets/Dojo/CesiumViewerWidget.js +1237 -0
  422. data/app/assets/javascripts/Widgets/Dojo/CesiumWidget.html +4 -0
  423. data/app/assets/javascripts/Widgets/Dojo/CesiumWidget.js +349 -0
  424. data/app/assets/javascripts/Widgets/Dojo/TimelineWidget.css +1 -0
  425. data/app/assets/javascripts/Widgets/Dojo/TimelineWidget.js +47 -0
  426. data/app/assets/javascripts/Widgets/Dojo/checkForChromeFrame.js +71 -0
  427. data/app/assets/javascripts/Widgets/Images/Bing_Logo_51x19_White.png +0 -0
  428. data/app/assets/javascripts/Widgets/Images/Cesium_Logo_overlay.png +0 -0
  429. data/app/assets/javascripts/Widgets/Images/TimelineIcons.png +0 -0
  430. data/app/assets/javascripts/Widgets/Images/ajax-loader.gif +0 -0
  431. data/app/assets/javascripts/Widgets/Images/animationBar.png +0 -0
  432. data/app/assets/javascripts/Widgets/Images/viewControlBar.png +0 -0
  433. data/app/assets/javascripts/Widgets/Timeline.css +113 -0
  434. data/app/assets/javascripts/Widgets/Timeline.js +629 -0
  435. data/app/assets/javascripts/Widgets/TimelineHighlightRange.js +51 -0
  436. data/app/assets/javascripts/Widgets/TimelineTrack.js +54 -0
  437. data/app/assets/javascripts/Widgets/Widgets.profile.js +8 -0
  438. data/app/assets/javascripts/Widgets/package.json +6 -0
  439. data/app/assets/javascripts/Workers/Workers.profile.js +8 -0
  440. data/app/assets/javascripts/Workers/cesiumWorkerBootstrapper.js +2015 -0
  441. data/app/assets/javascripts/Workers/createTaskProcessorWorker.js +55 -0
  442. data/app/assets/javascripts/Workers/createVerticesFromExtent.js +24 -0
  443. data/app/assets/javascripts/Workers/package.json +6 -0
  444. data/app/assets/javascripts/copyrightHeader.js +22 -0
  445. data/app/assets/javascripts/main.js +10 -0
  446. data/app/assets/stylesheets/cesium.css +4 -0
  447. data/app/controllers/cesium_controller.rb +4 -0
  448. data/app/helpers/cesium_helper.rb +2 -0
  449. data/app/views/cesium/index.html.erb +3 -0
  450. data/config/routes.rb +3 -0
  451. data/lib/cesium.rb +4 -0
  452. data/lib/cesium/engine.rb +4 -0
  453. data/lib/cesium/version.rb +3 -0
  454. data/lib/tasks/cesium_tasks.rake +4 -0
  455. data/test/cesium_test.rb +7 -0
  456. data/test/dummy/README.rdoc +261 -0
  457. data/test/dummy/Rakefile +7 -0
  458. data/test/dummy/app/assets/javascripts/adapters/jquery-adapter.js.coffee +4 -0
  459. data/test/dummy/app/assets/javascripts/app.js.coffee +11 -0
  460. data/test/dummy/app/assets/javascripts/application.js.coffee +73 -0
  461. data/test/dummy/app/assets/stylesheets/application.css +12 -0
  462. data/test/dummy/app/controllers/application_controller.rb +4 -0
  463. data/test/dummy/app/helpers/application_helper.rb +2 -0
  464. data/test/dummy/app/views/layouts/application.html.erb +21 -0
  465. data/test/dummy/config.ru +4 -0
  466. data/test/dummy/config/application.rb +59 -0
  467. data/test/dummy/config/boot.rb +10 -0
  468. data/test/dummy/config/database.yml +25 -0
  469. data/test/dummy/config/environment.rb +5 -0
  470. data/test/dummy/config/environments/development.rb +37 -0
  471. data/test/dummy/config/environments/production.rb +67 -0
  472. data/test/dummy/config/environments/test.rb +37 -0
  473. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  474. data/test/dummy/config/initializers/inflections.rb +15 -0
  475. data/test/dummy/config/initializers/mime_types.rb +5 -0
  476. data/test/dummy/config/initializers/secret_token.rb +7 -0
  477. data/test/dummy/config/initializers/session_store.rb +8 -0
  478. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  479. data/test/dummy/config/locales/en.yml +5 -0
  480. data/test/dummy/config/requirejs.yml +10 -0
  481. data/test/dummy/config/routes.rb +3 -0
  482. data/test/dummy/public/404.html +26 -0
  483. data/test/dummy/public/422.html +26 -0
  484. data/test/dummy/public/500.html +25 -0
  485. data/test/dummy/public/favicon.ico +0 -0
  486. data/test/dummy/script/rails +6 -0
  487. data/test/functional/cesium_controller_test.rb +9 -0
  488. data/test/integration/navigation_test.rb +10 -0
  489. data/test/test_helper.rb +15 -0
  490. data/test/unit/helpers/cesium_helper_test.rb +4 -0
  491. metadata +641 -0
@@ -0,0 +1,358 @@
1
+ /*global define*/
2
+ define([
3
+ '../Core/DeveloperError',
4
+ '../Core/destroyObject',
5
+ '../Core/Math',
6
+ './MipmapHint',
7
+ './TextureMagnificationFilter',
8
+ './TextureMinificationFilter',
9
+ './TextureWrap',
10
+ './CubeMapFace'
11
+ ], function(
12
+ DeveloperError,
13
+ destroyObject,
14
+ CesiumMath,
15
+ MipmapHint,
16
+ TextureMagnificationFilter,
17
+ TextureMinificationFilter,
18
+ TextureWrap,
19
+ CubeMapFace) {
20
+ "use strict";
21
+
22
+ /**
23
+ * A cube map with faces +x, -x, +y, -y, +z, and -z. Cube maps are used for environment techniques like
24
+ * approximate reflection and refraction as used in the Reflection and Refraction {@link Material}s.
25
+ *
26
+ * @alias CubeMap
27
+ * @internalConstructor
28
+ *
29
+ * @see Context#createCubeMap
30
+ */
31
+ var CubeMap = function(gl, textureFilterAnisotropic, textureTarget, texture, pixelFormat, pixelDatatype, size, preMultiplyAlpha, flipY) {
32
+ this._gl = gl;
33
+ this._textureFilterAnisotropic = textureFilterAnisotropic;
34
+ this._textureTarget = textureTarget;
35
+ this._texture = texture;
36
+ this._pixelFormat = pixelFormat;
37
+ this._pixelDatatype = pixelDatatype;
38
+ this._size = size;
39
+ this._preMultiplyAlpha = preMultiplyAlpha;
40
+ this._flipY = flipY;
41
+ this._sampler = undefined;
42
+
43
+ this._positiveX = new CubeMapFace(gl, texture, textureTarget, gl.TEXTURE_CUBE_MAP_POSITIVE_X, pixelFormat, pixelDatatype, size, preMultiplyAlpha, flipY);
44
+ this._negativeX = new CubeMapFace(gl, texture, textureTarget, gl.TEXTURE_CUBE_MAP_NEGATIVE_X, pixelFormat, pixelDatatype, size, preMultiplyAlpha, flipY);
45
+ this._positiveY = new CubeMapFace(gl, texture, textureTarget, gl.TEXTURE_CUBE_MAP_POSITIVE_Y, pixelFormat, pixelDatatype, size, preMultiplyAlpha, flipY);
46
+ this._negativeY = new CubeMapFace(gl, texture, textureTarget, gl.TEXTURE_CUBE_MAP_NEGATIVE_Y, pixelFormat, pixelDatatype, size, preMultiplyAlpha, flipY);
47
+ this._positiveZ = new CubeMapFace(gl, texture, textureTarget, gl.TEXTURE_CUBE_MAP_POSITIVE_Z, pixelFormat, pixelDatatype, size, preMultiplyAlpha, flipY);
48
+ this._negativeZ = new CubeMapFace(gl, texture, textureTarget, gl.TEXTURE_CUBE_MAP_NEGATIVE_Z, pixelFormat, pixelDatatype, size, preMultiplyAlpha, flipY);
49
+
50
+ this.setSampler();
51
+ };
52
+
53
+ /**
54
+ * Returns the +x face of this cube map for modification, rendering to, etc.
55
+ *
56
+ * @memberof CubeMap
57
+ *
58
+ * @returns {CubeMapFace} The +x face of this cube map.
59
+ *
60
+ * @exception {DeveloperError} This CubeMap was destroyed, i.e., destroy() was called.
61
+ */
62
+ CubeMap.prototype.getPositiveX = function() {
63
+ return this._positiveX;
64
+ };
65
+
66
+ /**
67
+ * Returns the -x face of this cube map for modification, rendering to, etc.
68
+ *
69
+ * @memberof CubeMap
70
+ *
71
+ * @returns {CubeMapFace} The -x face of this cube map.
72
+ *
73
+ * @exception {DeveloperError} This CubeMap was destroyed, i.e., destroy() was called.
74
+ */
75
+ CubeMap.prototype.getNegativeX = function() {
76
+ return this._negativeX;
77
+ };
78
+
79
+ /**
80
+ * Returns the +y face of this cube map for modification, rendering to, etc.
81
+ *
82
+ * @memberof CubeMap
83
+ *
84
+ * @returns {CubeMapFace} The +y face of this cube map.
85
+ *
86
+ * @exception {DeveloperError} This CubeMap was destroyed, i.e., destroy() was called.
87
+ */
88
+ CubeMap.prototype.getPositiveY = function() {
89
+ return this._positiveY;
90
+ };
91
+
92
+ /**
93
+ * Returns the -y face of this cube map for modification, rendering to, etc.
94
+ *
95
+ * @memberof CubeMap
96
+ *
97
+ * @returns {CubeMapFace} The -y face of this cube map.
98
+ *
99
+ * @exception {DeveloperError} This CubeMap was destroyed, i.e., destroy() was called.
100
+ */
101
+ CubeMap.prototype.getNegativeY = function() {
102
+ return this._negativeY;
103
+ };
104
+
105
+ /**
106
+ * Returns the +z face of this cube map for modification, rendering to, etc.
107
+ *
108
+ * @memberof CubeMap
109
+ *
110
+ * @returns {CubeMapFace} The +z face of this cube map.
111
+ *
112
+ * @exception {DeveloperError} This CubeMap was destroyed, i.e., destroy() was called.
113
+ */
114
+ CubeMap.prototype.getPositiveZ = function() {
115
+ return this._positiveZ;
116
+ };
117
+
118
+ /**
119
+ * Returns the -z face of this cube map for modification, rendering to, etc.
120
+ *
121
+ * @memberof CubeMap
122
+ *
123
+ * @returns {CubeMapFace} The -z face of this cube map.
124
+ *
125
+ * @exception {DeveloperError} This CubeMap was destroyed, i.e., destroy() was called.
126
+ */
127
+ CubeMap.prototype.getNegativeZ = function() {
128
+ return this._negativeZ;
129
+ };
130
+
131
+ /**
132
+ * Generates a complete mipmap chain for each cubemap face.
133
+ *
134
+ * @memberof CubeMap
135
+ *
136
+ * @param {MipmapHint} [hint=MipmapHint.DONT_CARE] A performance vs. quality hint.
137
+ *
138
+ * @exception {DeveloperError} hint is invalid.
139
+ * @exception {DeveloperError} This CubeMap's width must be a power of two to call generateMipmap().
140
+ * @exception {DeveloperError} This CubeMap's height must be a power of two to call generateMipmap().
141
+ * @exception {DeveloperError} This CubeMap was destroyed, i.e., destroy() was called.
142
+ *
143
+ * @example
144
+ * // Generate mipmaps, and then set the sampler so mipmaps are used for
145
+ * // minification when the cube map is sampled.
146
+ * cubeMap.generateMipmap();
147
+ * cubeMap.setSampler(context.createSampler({
148
+ * minificationFilter : TextureMinificationFilter.NEAREST_MIPMAP_LINEAR
149
+ * }));
150
+ */
151
+ CubeMap.prototype.generateMipmap = function(hint) {
152
+ if ((this._size > 1) && !CesiumMath.isPowerOfTwo(this._size)) {
153
+ throw new DeveloperError('width and height must be a power of two to call generateMipmap().');
154
+ }
155
+
156
+ hint = hint || MipmapHint.DONT_CARE;
157
+ if (!MipmapHint.validate(hint)) {
158
+ throw new DeveloperError('hint is invalid.');
159
+ }
160
+
161
+ var gl = this._gl;
162
+ var target = this._textureTarget;
163
+
164
+ gl.hint(gl.GENERATE_MIPMAP_HINT, hint);
165
+ gl.activeTexture(gl.TEXTURE0);
166
+ gl.bindTexture(target, this._texture);
167
+ gl.generateMipmap(target);
168
+ gl.bindTexture(target, null);
169
+ };
170
+
171
+ /**
172
+ * DOC_TBA
173
+ *
174
+ * @memberof CubeMap
175
+ *
176
+ * @param [sampler] DOC_TBA
177
+ *
178
+ * @exception {DeveloperError} This CubeMap was destroyed, i.e., destroy() was called.
179
+ */
180
+ CubeMap.prototype.setSampler = function(sampler) {
181
+ var s = sampler || {
182
+ wrapS : TextureWrap.CLAMP,
183
+ wrapT : TextureWrap.CLAMP,
184
+ minificationFilter : TextureMinificationFilter.LINEAR,
185
+ magnificationFilter : TextureMagnificationFilter.LINEAR,
186
+ maximumAnisotropy : 1.0
187
+ };
188
+
189
+ var gl = this._gl;
190
+ var target = this._textureTarget;
191
+
192
+ gl.activeTexture(gl.TEXTURE0);
193
+ gl.bindTexture(target, this._texture);
194
+ gl.texParameteri(target, gl.TEXTURE_MIN_FILTER, s.minificationFilter);
195
+ gl.texParameteri(target, gl.TEXTURE_MAG_FILTER, s.magnificationFilter);
196
+ gl.texParameteri(target, gl.TEXTURE_WRAP_S, s.wrapS);
197
+ gl.texParameteri(target, gl.TEXTURE_WRAP_T, s.wrapT);
198
+ if (this._textureFilterAnisotropic) {
199
+ gl.texParameteri(target, this._textureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT, s.maximumAnisotropy);
200
+ }
201
+ gl.bindTexture(target, null);
202
+
203
+ this._sampler = {
204
+ wrapS : s.wrapS,
205
+ wrapT : s.wrapT,
206
+ minificationFilter : s.minificationFilter,
207
+ magnificationFilter : s.magnificationFilter,
208
+ maximumAnisotropy : s.maximumAnisotropy
209
+ };
210
+ };
211
+
212
+ /**
213
+ * DOC_TBA
214
+ *
215
+ * @memberof CubeMap
216
+ *
217
+ * @exception {DeveloperError} This CubeMap was destroyed, i.e., destroy() was called.
218
+ */
219
+ CubeMap.prototype.getSampler = function() {
220
+ return this._sampler;
221
+ };
222
+
223
+ /**
224
+ * Returns the pixel format of this cube map. All faces in the same cube map have the same pixel format.
225
+ *
226
+ * @memberof CubeMap
227
+ *
228
+ * @returns {PixelFormat} The pixel format of this cubemap.
229
+ *
230
+ * @exception {DeveloperError} This CubeMap was destroyed, i.e., destroy() was called.
231
+ */
232
+ CubeMap.prototype.getPixelFormat = function() {
233
+ return this._pixelFormat;
234
+ };
235
+
236
+ /**
237
+ * Returns the pixel datatype of this cube map. All faces in the same cube map have the same pixel datatype.
238
+ *
239
+ * @memberof CubeMap
240
+ *
241
+ * @returns {PixelDatatype} The pixel datatype of this cubemap.
242
+ *
243
+ * @exception {DeveloperError} This CubeMap was destroyed, i.e., destroy() was called.
244
+ */
245
+ CubeMap.prototype.getPixelDatatype = function() {
246
+ return this._pixelDatatype;
247
+ };
248
+
249
+ /**
250
+ * Returns the width, in texels, of faces in this cube map. All faces in the same cube map have the same width and height, and the width equals the height.
251
+ *
252
+ * @memberof CubeMap
253
+ *
254
+ * @returns {Number} The width, in texels, of faces in this cube map.
255
+ *
256
+ * @exception {DeveloperError} This CubeMap was destroyed, i.e., destroy() was called.
257
+ */
258
+ CubeMap.prototype.getWidth = function() {
259
+ return this._size;
260
+ };
261
+
262
+ /**
263
+ * Returns the height, in texels, of faces in this cube map. All faces in the same cube map have the same width and height, and the width equals the height.
264
+ *
265
+ * @memberof CubeMap
266
+ *
267
+ * @returns {Number} The height, in texels, of faces in this cube map.
268
+ *
269
+ * @exception {DeveloperError} This CubeMap was destroyed, i.e., destroy() was called.
270
+ */
271
+ CubeMap.prototype.getHeight = function() {
272
+ return this._size;
273
+ };
274
+
275
+ /**
276
+ * Returns true if the cubemap was created with premultiplied alpha (UNPACK_PREMULTIPLY_ALPHA_WEBGL).
277
+ *
278
+ * @memberof CubeMap
279
+ *
280
+ * @returns {Boolean} true if the cubemap was created with premultiplied alpha; otherwise, false.
281
+ *
282
+ * @exception {DeveloperError} This cube map was destroyed, i.e., destroy() was called.
283
+ */
284
+ CubeMap.prototype.getPreMultiplyAlpha = function() {
285
+ return this._preMultiplyAlpha;
286
+ };
287
+
288
+ /**
289
+ * Returns true if the source pixels are flipped vertically when cube-map faces are created or updated, i.e.,
290
+ * <code>UNPACK_FLIP_Y_WEBGL</code> is used.
291
+ *
292
+ * @memberof CubeMap
293
+ *
294
+ * @return {Boolean} True if the source pixels are flipped vertically; otherwise, false.
295
+ *
296
+ * @exception {DeveloperError} This cube map was destroyed, i.e., destroy() was called.
297
+ */
298
+ CubeMap.prototype.getFlipY = function() {
299
+ return this._flipY;
300
+ };
301
+
302
+ CubeMap.prototype._getTexture = function() {
303
+ return this._texture;
304
+ };
305
+
306
+ CubeMap.prototype._getTarget = function() {
307
+ return this._textureTarget;
308
+ };
309
+
310
+ /**
311
+ * Returns true if this object was destroyed; otherwise, false.
312
+ * <br /><br />
313
+ * If this object was destroyed, it should not be used; calling any function other than
314
+ * <code>isDestroyed</code> will result in a {@link DeveloperError} exception.
315
+ *
316
+ * @memberof CubeMap
317
+ *
318
+ * @return {Boolean} True if this object was destroyed; otherwise, false.
319
+ *
320
+ * @see CubeMap#destroy
321
+ */
322
+ CubeMap.prototype.isDestroyed = function() {
323
+ return false;
324
+ };
325
+
326
+ /**
327
+ * Destroys the WebGL resources held by this object. Destroying an object allows for deterministic
328
+ * release of WebGL resources, instead of relying on the garbage collector to destroy this object.
329
+ * <br /><br />
330
+ * Once an object is destroyed, it should not be used; calling any function other than
331
+ * <code>isDestroyed</code> will result in a {@link DeveloperError} exception. Therefore,
332
+ * assign the return value (<code>undefined</code>) to the object as done in the example.
333
+ *
334
+ * @memberof CubeMap
335
+ *
336
+ * @return {undefined}
337
+ *
338
+ * @exception {DeveloperError} This cube map was destroyed, i.e., destroy() was called.
339
+ *
340
+ * @see CubeMap#isDestroyed
341
+ * @see <a href='http://www.khronos.org/opengles/sdk/2.0/docs/man/glDeleteTextures.xml'>glDeleteTextures</a>
342
+ *
343
+ * @example
344
+ * cubeMap = cubeMap && cubeMap.destroy();
345
+ */
346
+ CubeMap.prototype.destroy = function() {
347
+ this._gl.deleteTexture(this._texture);
348
+ this._positiveX = destroyObject(this._positiveX);
349
+ this._negativeX = destroyObject(this._negativeX);
350
+ this._positiveY = destroyObject(this._positiveY);
351
+ this._negativeY = destroyObject(this._negativeY);
352
+ this._positiveZ = destroyObject(this._positiveZ);
353
+ this._negativeZ = destroyObject(this._negativeZ);
354
+ return destroyObject(this);
355
+ };
356
+
357
+ return CubeMap;
358
+ });
@@ -0,0 +1,202 @@
1
+ /*global define*/
2
+ define([
3
+ '../Core/defaultValue',
4
+ '../Core/DeveloperError',
5
+ '../Core/destroyObject',
6
+ './MipmapHint',
7
+ './TextureMagnificationFilter',
8
+ './TextureMinificationFilter',
9
+ './TextureWrap'
10
+ ], function(
11
+ defaultValue,
12
+ DeveloperError,
13
+ destroyObject,
14
+ MipmapHint,
15
+ TextureMagnificationFilter,
16
+ TextureMinificationFilter,
17
+ TextureWrap) {
18
+ "use strict";
19
+
20
+ /**
21
+ * A face of a cube map (+x, -x, +y, -y, +z, or -z) that can be modified and rendered to.
22
+ *
23
+ * @alias CubeMapFace
24
+ * @internalConstructor
25
+ *
26
+ * @see CubeMap
27
+ */
28
+ var CubeMapFace = function(gl, texture, textureTarget, targetFace, pixelFormat, pixelDatatype, size, preMultiplyAlpha, flipY) {
29
+ this._gl = gl;
30
+ this._texture = texture;
31
+ this._textureTarget = textureTarget;
32
+ this._targetFace = targetFace;
33
+ this._pixelFormat = pixelFormat;
34
+ this._pixelDatatype = pixelDatatype;
35
+ this._size = size;
36
+ this._preMultiplyAlpha = preMultiplyAlpha;
37
+ this._flipY = flipY;
38
+ };
39
+
40
+ /**
41
+ * Copies texels from the source to the cubemap's face.
42
+ *
43
+ * @memberof CubeMapFace
44
+ *
45
+ * @param {Object} source The source ImageData, HTMLImageElement, HTMLCanvasElement, HTMLVideoElement, or an object with a width, height, and typed array as shown in the example.
46
+ * @param {Number} [xOffset=0] An offset in the x direction in the cubemap where copying begins.
47
+ * @param {Number} [yOffset=0] An offset in the y direction in the cubemap where copying begins.
48
+ *
49
+ * @exception {DeveloperError} source is required.
50
+ * @exception {DeveloperError} xOffset must be greater than or equal to zero.
51
+ * @exception {DeveloperError} yOffset must be greater than or equal to zero.
52
+ * @exception {DeveloperError} xOffset + source.width must be less than or equal to getWidth().
53
+ * @exception {DeveloperError} yOffset + source.height must be less than or equal to getHeight().
54
+ * @exception {DeveloperError} This CubeMap was destroyed, i.e., destroy() was called.
55
+ *
56
+ * @example
57
+ * // Create a cubemap with 1x1 faces, and make the +x face red.
58
+ * var cubeMap = context.createCubeMap({
59
+ * width : 1,
60
+ * height : 1
61
+ * });
62
+ * cubeMap.getPositiveX().copyFrom({
63
+ * width : 1,
64
+ * height : 1,
65
+ * arrayBufferView : new Uint8Array([255, 0, 0, 255])
66
+ * });
67
+ */
68
+ CubeMapFace.prototype.copyFrom = function(source, xOffset, yOffset) {
69
+ if (!source) {
70
+ throw new DeveloperError('source is required.');
71
+ }
72
+
73
+ xOffset = defaultValue(xOffset, 0);
74
+ yOffset = defaultValue(yOffset, 0);
75
+
76
+ var width = source.width;
77
+ var height = source.height;
78
+
79
+ if (xOffset < 0) {
80
+ throw new DeveloperError('xOffset must be greater than or equal to zero.');
81
+ }
82
+
83
+ if (yOffset < 0) {
84
+ throw new DeveloperError('yOffset must be greater than or equal to zero.');
85
+ }
86
+
87
+ if (xOffset + width > this._size) {
88
+ throw new DeveloperError('xOffset + source.width must be less than or equal to getWidth().');
89
+ }
90
+
91
+ if (yOffset + height > this._size) {
92
+ throw new DeveloperError('yOffset + source.height must be less than or equal to getHeight().');
93
+ }
94
+
95
+ var gl = this._gl;
96
+ var target = this._textureTarget;
97
+
98
+ // TODO: gl.pixelStorei(gl._UNPACK_ALIGNMENT, 4);
99
+ gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, this._preMultiplyAlpha);
100
+ gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, this._flipY);
101
+ gl.activeTexture(gl.TEXTURE0);
102
+ gl.bindTexture(target, this._texture);
103
+
104
+ //Firefox bug: texSubImage2D has overloads and can't resolve our enums, so we use + to explicitly convert to a number.
105
+ if (source.arrayBufferView) {
106
+ gl.texSubImage2D(this._targetFace, 0, xOffset, yOffset, width, height, +this._pixelFormat, +this._pixelDatatype, source.arrayBufferView);
107
+ } else {
108
+ gl.texSubImage2D(this._targetFace, 0, xOffset, yOffset, +this._pixelFormat, +this._pixelDatatype, source);
109
+ }
110
+
111
+ gl.bindTexture(target, null);
112
+ };
113
+
114
+ /**
115
+ * Copies texels from the framebuffer to the cubemap's face.
116
+ *
117
+ * @memberof CubeMapFace
118
+ *
119
+ * @param {Number} [xOffset=0] An offset in the x direction in the cubemap where copying begins.
120
+ * @param {Number} [yOffset=0] An offset in the y direction in the cubemap where copying begins.
121
+ * @param {Number} [framebufferXOffset=0] An offset in the x direction in the framebuffer where copying begins from.
122
+ * @param {Number} [framebufferYOffset=0] An offset in the y direction in the framebuffer where copying begins from.
123
+ * @param {Number} [width=CubeMap's width] The width of the subimage to copy.
124
+ * @param {Number} [height=CubeMap's height] The height of the subimage to copy.
125
+ *
126
+ * @exception {DeveloperError} This CubeMap was destroyed, i.e., destroy() was called.
127
+ * @exception {DeveloperError} xOffset must be greater than or equal to zero.
128
+ * @exception {DeveloperError} yOffset must be greater than or equal to zero.
129
+ * @exception {DeveloperError} framebufferXOffset must be greater than or equal to zero.
130
+ * @exception {DeveloperError} framebufferYOffset must be greater than or equal to zero.
131
+ * @exception {DeveloperError} xOffset + source.width must be less than or equal to getWidth().
132
+ * @exception {DeveloperError} yOffset + source.height must be less than or equal to getHeight().
133
+ * @exception {DeveloperError} This CubeMap was destroyed, i.e., destroy() was called.
134
+ *
135
+ * @example
136
+ * // Copy the framebuffer contents to the +x cube map face.
137
+ * cubeMap.getPositiveX().copyFromFramebuffer();
138
+ */
139
+ CubeMapFace.prototype.copyFromFramebuffer = function(xOffset, yOffset, framebufferXOffset, framebufferYOffset, width, height) {
140
+ xOffset = defaultValue(xOffset, 0);
141
+ yOffset = defaultValue(yOffset, 0);
142
+ framebufferXOffset = defaultValue(framebufferXOffset, 0);
143
+ framebufferYOffset = defaultValue(framebufferYOffset, 0);
144
+ width = defaultValue(width, this._size);
145
+ height = defaultValue(height, this._size);
146
+
147
+ if (xOffset < 0) {
148
+ throw new DeveloperError('xOffset must be greater than or equal to zero.');
149
+ }
150
+
151
+ if (yOffset < 0) {
152
+ throw new DeveloperError('yOffset must be greater than or equal to zero.');
153
+ }
154
+
155
+ if (framebufferXOffset < 0) {
156
+ throw new DeveloperError('framebufferXOffset must be greater than or equal to zero.');
157
+ }
158
+
159
+ if (framebufferYOffset < 0) {
160
+ throw new DeveloperError('framebufferYOffset must be greater than or equal to zero.');
161
+ }
162
+
163
+ if (xOffset + width > this._size) {
164
+ throw new DeveloperError('xOffset + source.width must be less than or equal to getWidth().');
165
+ }
166
+
167
+ if (yOffset + height > this._size) {
168
+ throw new DeveloperError('yOffset + source.height must be less than or equal to getHeight().');
169
+ }
170
+
171
+ var gl = this._gl;
172
+ var target = this._textureTarget;
173
+
174
+ gl.activeTexture(gl.TEXTURE0);
175
+ gl.bindTexture(target, this._texture);
176
+ gl.copyTexSubImage2D(this._targetFace, 0, xOffset, yOffset, framebufferXOffset, framebufferYOffset, width, height);
177
+ gl.bindTexture(target, null);
178
+ };
179
+
180
+ /**
181
+ * Returns the pixel format of this cube map face. All faces in the same cube map have the same pixel format.
182
+ *
183
+ * @memberof CubeMapFace
184
+ *
185
+ * @returns {PixelFormat} The pixel format of this cubemap face.
186
+ *
187
+ * @exception {DeveloperError} This CubeMap was destroyed, i.e., destroy() was called.
188
+ */
189
+ CubeMapFace.prototype.getPixelFormat = function() {
190
+ return this._pixelFormat;
191
+ };
192
+
193
+ CubeMapFace.prototype._getTexture = function() {
194
+ return this._texture;
195
+ };
196
+
197
+ CubeMapFace.prototype._getTarget = function() {
198
+ return this._targetFace;
199
+ };
200
+
201
+ return CubeMapFace;
202
+ });