cesium 0.13.0

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 (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,139 @@
1
+ /*global define*/
2
+ define([
3
+ './ImageryState',
4
+ './TileState'
5
+ ], function(
6
+ ImageryState,
7
+ TileState) {
8
+ "use strict";
9
+
10
+ /**
11
+ * A priority queue of tiles to be replaced, if necessary, to make room for new tiles. The queue
12
+ * is implemented as a linked list.
13
+ *
14
+ * @alias TileReplacementQueue
15
+ * @private
16
+ */
17
+ var TileReplacementQueue = function TileReplacementQueue() {
18
+ this.head = undefined;
19
+ this.tail = undefined;
20
+ this.count = 0;
21
+ this._lastBeforeStartOfFrame = undefined;
22
+ };
23
+
24
+ /**
25
+ * Marks the start of the render frame. Tiles before (closer to the head) this tile in the
26
+ * list were used last frame and must not be unloaded.
27
+ */
28
+ TileReplacementQueue.prototype.markStartOfRenderFrame = function() {
29
+ this._lastBeforeStartOfFrame = this.head;
30
+ };
31
+
32
+ /**
33
+ * Reduces the size of the queue to a specified size by unloading the least-recently used
34
+ * tiles. Tiles that were used last frame will not be unloaded, even if that puts the number
35
+ * of tiles above the specified maximum.
36
+ *
37
+ * @memberof TileReplacementQueue
38
+ *
39
+ * @param {Number} maximumTiles The maximum number of tiles in the queue.
40
+ */
41
+ TileReplacementQueue.prototype.trimTiles = function(maximumTiles) {
42
+ var tileToTrim = this.tail;
43
+ var keepTrimming = true;
44
+ while (keepTrimming &&
45
+ typeof this._lastBeforeStartOfFrame !== 'undefined' &&
46
+ this.count > maximumTiles &&
47
+ typeof tileToTrim !== 'undefined') {
48
+ // Stop trimming after we process the last tile not used in the
49
+ // current frame.
50
+ keepTrimming = tileToTrim !== this._lastBeforeStartOfFrame;
51
+
52
+ var previous = tileToTrim.replacementPrevious;
53
+
54
+ // Do not remove tiles that are transitioning or that have
55
+ // imagery that is transitioning.
56
+ var shouldRemoveTile = tileToTrim.state !== TileState.TRANSITIONING;
57
+ var imagery = tileToTrim.imagery;
58
+ for (var i = 0, len = imagery.length; shouldRemoveTile && i < len; ++i) {
59
+ var tileImagery = imagery[i];
60
+ shouldRemoveTile = tileImagery.imagery.state !== ImageryState.TRANSITIONING;
61
+ }
62
+
63
+ if (shouldRemoveTile) {
64
+ tileToTrim.freeResources();
65
+ this._remove(tileToTrim);
66
+ }
67
+
68
+ tileToTrim = previous;
69
+ }
70
+ };
71
+
72
+ TileReplacementQueue.prototype._remove = function(item) {
73
+ var previous = item.replacementPrevious;
74
+ var next = item.replacementNext;
75
+
76
+ if (item === this._lastBeforeStartOfFrame) {
77
+ this._lastBeforeStartOfFrame = next;
78
+ }
79
+
80
+ if (item === this.head) {
81
+ this.head = next;
82
+ } else {
83
+ previous.replacementNext = next;
84
+ }
85
+
86
+ if (item === this.tail) {
87
+ this.tail = previous;
88
+ } else {
89
+ next.replacementPrevious = previous;
90
+ }
91
+
92
+ item.replacementPrevious = undefined;
93
+ item.replacementNext = undefined;
94
+
95
+ --this.count;
96
+ };
97
+
98
+ /**
99
+ * Marks a tile as rendered this frame and moves it before the first tile that was not rendered
100
+ * this frame.
101
+ *
102
+ * @memberof TileReplacementQueue
103
+ *
104
+ * @param {TileReplacementQueue} item The tile that was rendered.
105
+ */
106
+ TileReplacementQueue.prototype.markTileRendered = function(item) {
107
+ var head = this.head;
108
+ if (head === item) {
109
+ if (item === this._lastBeforeStartOfFrame) {
110
+ this._lastBeforeStartOfFrame = item.replacementNext;
111
+ }
112
+ return;
113
+ }
114
+
115
+ ++this.count;
116
+
117
+ if (typeof head === 'undefined') {
118
+ // no other tiles in the list
119
+ item.replacementPrevious = undefined;
120
+ item.replacementNext = undefined;
121
+ this.head = item;
122
+ this.tail = item;
123
+ return;
124
+ }
125
+
126
+ if (typeof item.replacementPrevious !== 'undefined' || typeof item.replacementNext !== 'undefined') {
127
+ // tile already in the list, remove from its current location
128
+ this._remove(item);
129
+ }
130
+
131
+ item.replacementPrevious = undefined;
132
+ item.replacementNext = head;
133
+ head.replacementPrevious = item;
134
+
135
+ this.head = item;
136
+ };
137
+
138
+ return TileReplacementQueue;
139
+ });
@@ -0,0 +1,19 @@
1
+ /*global define*/
2
+ define(['../Core/Enumeration'], function(Enumeration) {
3
+ "use strict";
4
+
5
+ /**
6
+ * @private
7
+ */
8
+ var TileState = {
9
+ UNLOADED : new Enumeration(0, 'UNLOADED'),
10
+ TRANSITIONING : new Enumeration(1, 'TRANSITIONING'),
11
+ RECEIVED : new Enumeration(2, 'RECEIVED'),
12
+ TRANSFORMED : new Enumeration(3, 'TRANSFORMED'),
13
+ READY : new Enumeration(4, 'READY'),
14
+ FAILED : new Enumeration(5, 'FAILED'),
15
+ INVALID : new Enumeration(6, 'INVALID')
16
+ };
17
+
18
+ return TileState;
19
+ });
@@ -0,0 +1,213 @@
1
+ /*global define*/
2
+ define([
3
+ '../Core/DeveloperError',
4
+ './Tile'
5
+ ], function(
6
+ DeveloperError,
7
+ Tile) {
8
+ "use strict";
9
+
10
+ /**
11
+ * A tiling scheme for geometry or imagery on the surface of an ellipsoid. At level-of-detail zero,
12
+ * the coarsest, least-detailed level, the number of tiles is configurable.
13
+ * At level of detail one, each of the level zero tiles has four children, two in each direction.
14
+ * At level of detail two, each of the level one tiles has four children, two in each direction.
15
+ * This continues for as many levels as are present in the geometry or imagery source.
16
+ *
17
+ * @alias TilingScheme
18
+ * @constructor
19
+ *
20
+ * @see WebMercatorTilingScheme
21
+ * @see GeographicTilingScheme
22
+ */
23
+ var TilingScheme = function TilingScheme(description) {
24
+ throw new DeveloperError('This type should not be instantiated directly. Instead, use WebMercatorTilingScheme or GeographicTilingScheme.');
25
+ };
26
+
27
+ /**
28
+ * Gets the ellipsoid that is tiled by this tiling scheme.
29
+ *
30
+ * @memberof TilingScheme
31
+ *
32
+ * @returns {Ellipsoid} The ellipsoid.
33
+ */
34
+ TilingScheme.prototype.getEllipsoid = function() {
35
+ throw new DeveloperError('This type should not be instantiated directly.');
36
+ };
37
+
38
+ /**
39
+ * Gets the extent, in radians, covered by this tiling scheme.
40
+ *
41
+ * @memberof TilingScheme
42
+ *
43
+ * @returns {Extent} The extent.
44
+ */
45
+ TilingScheme.prototype.getExtent = function() {
46
+ throw new DeveloperError('This type should not be instantiated directly.');
47
+ };
48
+
49
+ /**
50
+ * Gets the map projection used by this tiling scheme.
51
+ *
52
+ * @memberof TilingScheme
53
+ *
54
+ * @returns {Projection} The map projection.
55
+ */
56
+ TilingScheme.prototype.getProjection = function() {
57
+ throw new DeveloperError('This type should not be instantiated directly.');
58
+ };
59
+
60
+ /**
61
+ * Gets the total number of tiles in the X direction at a specified level-of-detail.
62
+ *
63
+ * @memberof TilingScheme
64
+ *
65
+ * @param {Number} level The level-of-detail.
66
+ * @returns {Number} The number of tiles in the X direction at the given level.
67
+ */
68
+ TilingScheme.prototype.getNumberOfXTilesAtLevel = function(level) {
69
+ throw new DeveloperError('This type should not be instantiated directly.');
70
+ };
71
+
72
+ /**
73
+ * Gets the total number of tiles in the Y direction at a specified level-of-detail.
74
+ *
75
+ * @memberof TilingScheme
76
+ *
77
+ * @param {Number} level The level-of-detail.
78
+ * @returns {Number} The number of tiles in the Y direction at the given level.
79
+ */
80
+ TilingScheme.prototype.getNumberOfYTilesAtLevel = function(level) {
81
+ throw new DeveloperError('This type should not be instantiated directly.');
82
+ };
83
+
84
+ /**
85
+ * Creates the tile or tiles at level of detail zero, the coarsest, least detailed level.
86
+ *
87
+ * @memberof TilingScheme
88
+ *
89
+ * @returns {Array} An array containing the tiles at level of detail zero, starting with the
90
+ * tile in the northwest corner and followed by the tile (if any) to its east.
91
+ */
92
+ TilingScheme.prototype.createLevelZeroTiles = function() {
93
+ throw new DeveloperError('This type should not be instantiated directly.');
94
+ };
95
+
96
+ /**
97
+ * Transforms an extent specified in geodetic radians to the native coordinate system
98
+ * of this tiling scheme.
99
+ *
100
+ * @memberof TilingScheme
101
+ *
102
+ * @param {Extent} extent The extent to transform.
103
+ * @param {Extent} [result] The instance to which to copy the result, or undefined if a new instance
104
+ * should be created.
105
+ * @returns {Extent} The specified 'result', or a new object containing the native extent if 'result'
106
+ * is undefined.
107
+ */
108
+ TilingScheme.prototype.extentToNativeExtent = function(extent, result) {
109
+ throw new DeveloperError('This type should not be instantiated directly.');
110
+ };
111
+
112
+ /**
113
+ * Converts tile x, y coordinates and level to an extent expressed in the native coordinates
114
+ * of the tiling scheme.
115
+ *
116
+ * @memberof TilingScheme
117
+ *
118
+ * @param {Number} x The integer x coordinate of the tile.
119
+ * @param {Number} y The integer y coordinate of the tile.
120
+ * @param {Number} level The tile level-of-detail. Zero is the least detailed.
121
+ * @param {Object} [result] The instance to which to copy the result, or undefined if a new instance
122
+ * should be created.
123
+ *
124
+ * @returns {Extent} The specified 'result', or a new object containing the extent
125
+ * if 'result' is undefined.
126
+ */
127
+ TilingScheme.prototype.tileXYToNativeExtent = function(x, y, level, result) {
128
+ throw new DeveloperError('This type should not be instantiated directly.');
129
+ };
130
+
131
+ /**
132
+ * Converts tile x, y coordinates and level to a cartographic extent in radians.
133
+ *
134
+ * @memberof TilingScheme
135
+ *
136
+ * @param {Number} x The integer x coordinate of the tile.
137
+ * @param {Number} y The integer y coordinate of the tile.
138
+ * @param {Number} level The tile level-of-detail. Zero is the least detailed.
139
+ * @param {Object} [result] The instance to which to copy the result, or undefined if a new instance
140
+ * should be created.
141
+ *
142
+ * @returns {Extent} The specified 'result', or a new object containing the extent
143
+ * if 'result' is undefined.
144
+ */
145
+ TilingScheme.prototype.tileXYToExtent = function(x, y, level, result) {
146
+ throw new DeveloperError('This type should not be instantiated directly.');
147
+ };
148
+
149
+ /**
150
+ * Calculates the tile x, y coordinates of the tile containing
151
+ * a given cartographic position.
152
+ *
153
+ * @memberof TilingScheme
154
+ *
155
+ * @param {Cartographic} position The position.
156
+ * @param {Number} level The tile level-of-detail. Zero is the least detailed.
157
+ * @param {Cartesian} [result] The instance to which to copy the result, or undefined if a new instance
158
+ * should be created.
159
+ *
160
+ * @returns {Cartesian2} The specified 'result', or a new object containing the tile x, y coordinates
161
+ * if 'result' is undefined.
162
+ */
163
+ TilingScheme.prototype.positionToTileXY = function(position, level, result) {
164
+ throw new DeveloperError('This type should not be instantiated directly.');
165
+ };
166
+
167
+ /**
168
+ * Creates a rectangular set of tiles for level of detail zero, the coarsest, least detailed level.
169
+ *
170
+ * @memberof TilingScheme
171
+ *
172
+ * @param {TilingScheme} tilingScheme The tiling scheme for which the tiles are to be created.
173
+ * @param {Number} numberOfLevelZeroTilesX The number of tiles in the X direction at level zero of
174
+ * the tile tree.
175
+ * @param {Number} numberOfLevelZeroTilesY The number of tiles in the Y direction at level zero of
176
+ * the tile tree.
177
+ * @returns {Array} An array containing the tiles at level of detail zero, starting with the
178
+ * tile in the northwest corner and followed by the tile (if any) to its east.
179
+ *
180
+ * @exception {DeveloperError} <code>tilingScheme</code> is required.
181
+ * @exception {DeveloperError} <code>numberOfLevelZeroTilesX</code> is required.
182
+ * @exception {DeveloperError} <code>numberOfLevelZeroTilesY</code> is required.
183
+ */
184
+ TilingScheme.createRectangleOfLevelZeroTiles = function(tilingScheme, numberOfLevelZeroTilesX, numberOfLevelZeroTilesY) {
185
+ if (typeof tilingScheme === 'undefined') {
186
+ throw new DeveloperError('tilingScheme is required.');
187
+ }
188
+ if (typeof numberOfLevelZeroTilesX === 'undefined') {
189
+ throw new DeveloperError('numberOfLevelZeroTilesX is required.');
190
+ }
191
+ if (typeof numberOfLevelZeroTilesY === 'undefined') {
192
+ throw new DeveloperError('numberOfLevelZeroTilesY is required.');
193
+ }
194
+
195
+ var result = new Array(numberOfLevelZeroTilesX * numberOfLevelZeroTilesY);
196
+
197
+ var index = 0;
198
+ for (var y = 0; y < numberOfLevelZeroTilesY; ++y) {
199
+ for (var x = 0; x < numberOfLevelZeroTilesX; ++x) {
200
+ result[index++] = new Tile({
201
+ tilingScheme : tilingScheme,
202
+ x : x,
203
+ y : y,
204
+ level : 0
205
+ });
206
+ }
207
+ }
208
+
209
+ return result;
210
+ };
211
+
212
+ return TilingScheme;
213
+ });
@@ -0,0 +1,39 @@
1
+ /*global define*/
2
+ define(['../Core/Enumeration'], function(Enumeration) {
3
+ "use strict";
4
+
5
+ /**
6
+ * The vertical location of an origin relative to an object, e.g., a {@link Billboard}.
7
+ * For example, the vertical origin is used to display a billboard above or below (in
8
+ * screen space) of the actual position.
9
+ *
10
+ * @exports VerticalOrigin
11
+ *
12
+ * @see Billboard#setVerticalOrigin
13
+ */
14
+ var VerticalOrigin = {
15
+ /**
16
+ * The origin is at the vertical center of the object.
17
+ *
18
+ * @constant
19
+ * @type {Enumeration}
20
+ */
21
+ CENTER : new Enumeration(0, 'CENTER'),
22
+ /**
23
+ * The origin is at the bottom of the object.
24
+ *
25
+ * @constant
26
+ * @type {Enumeration}
27
+ */
28
+ BOTTOM : new Enumeration(1, 'BOTTOM'),
29
+ /**
30
+ * The origin is at the top of the object.
31
+ *
32
+ * @constant
33
+ * @type {Enumeration}
34
+ */
35
+ TOP : new Enumeration(-1, 'TOP')
36
+ };
37
+
38
+ return VerticalOrigin;
39
+ });
@@ -0,0 +1,256 @@
1
+ /*global define*/
2
+ define([
3
+ '../Core/Color',
4
+ '../Core/combine',
5
+ '../Core/destroyObject',
6
+ '../Core/defaultValue',
7
+ '../Core/DeveloperError',
8
+ '../Core/BoundingRectangle',
9
+ '../Core/ComponentDatatype',
10
+ '../Core/PrimitiveType',
11
+ './Material',
12
+ '../Renderer/BufferUsage',
13
+ '../Renderer/BlendingState',
14
+ '../Renderer/CommandLists',
15
+ '../Renderer/DrawCommand',
16
+ '../Shaders/Noise',
17
+ '../Shaders/ViewportQuadVS',
18
+ '../Shaders/ViewportQuadFS'
19
+ ], function(
20
+ Color,
21
+ combine,
22
+ destroyObject,
23
+ defaultValue,
24
+ DeveloperError,
25
+ BoundingRectangle,
26
+ ComponentDatatype,
27
+ PrimitiveType,
28
+ Material,
29
+ BufferUsage,
30
+ BlendingState,
31
+ CommandLists,
32
+ DrawCommand,
33
+ Noise,
34
+ ViewportQuadVS,
35
+ ViewportQuadFS) {
36
+ "use strict";
37
+
38
+ /**
39
+ * A viewport aligned quad.
40
+ *
41
+ * @alias ViewportQuad
42
+ * @constructor
43
+ *
44
+ * @param {BoundingRectangle} rectangle The BoundingRectangle defining the quad's position within the viewport.
45
+ *
46
+ * @example
47
+ * var viewportQuad = new ViewportQuad();
48
+ * var viewportQuad = new BoundingRectangle(0, 0, 80, 40);
49
+ * viewportQuad.material.uniforms.color = new Color(1.0, 0.0, 0.0, 1.0);
50
+ */
51
+ var ViewportQuad = function(rectangle) {
52
+
53
+ this._va = undefined;
54
+ this._overlayCommand = new DrawCommand();
55
+ this._overlayCommand.primitiveType = PrimitiveType.TRIANGLE_FAN;
56
+ this._commandLists = new CommandLists();
57
+ this._commandLists.overlayList.push(this._overlayCommand);
58
+
59
+
60
+ /**
61
+ * The BoundingRectangle defining the quad's position within the viewport.
62
+ *
63
+ * @type BoundingRectangle
64
+ *
65
+ * @example
66
+ * viewportQuad.rectangle = new BoundingRectangle(0, 0, 80, 40);
67
+ */
68
+ this.rectangle = new BoundingRectangle(0, 0, 10, 10);
69
+
70
+
71
+ /**
72
+ * The surface appearance of the viewport quad. This can be one of several built-in {@link Material} objects or a custom material, scripted with
73
+ * <a href='https://github.com/AnalyticalGraphicsInc/cesium/wiki/Fabric'>Fabric</a>.
74
+ * <p>
75
+ * The default material is <code>Material.ColorType</code>.
76
+ * </p>
77
+ *
78
+ * @type Material
79
+ *
80
+ * @example
81
+ * // 1. Change the color of the default material to yellow
82
+ * viewportQuad.material.uniforms.color = new Color(1.0, 1.0, 0.0, 1.0);
83
+ *
84
+ * // 2. Change material to horizontal stripes
85
+ * viewportQuad.material = Material.fromType(scene.getContext(), Material.StripeType);
86
+ *
87
+ * @see <a href='https://github.com/AnalyticalGraphicsInc/cesium/wiki/Fabric'>Fabric</a>
88
+ */
89
+ this.material = Material.fromType(undefined, Material.ColorType);
90
+ this.material.uniforms.color = new Color(1.0, 1.0, 1.0, 1.0);
91
+ this._material = undefined;
92
+ };
93
+
94
+ var attributeIndices = {
95
+ position : 0,
96
+ textureCoordinates : 1
97
+ };
98
+
99
+ var vertexArrayCache = {};
100
+
101
+ function getVertexArray(context) {
102
+ // Per-context cache for viewport quads
103
+ var c = vertexArrayCache[context.getId()];
104
+
105
+ if (typeof c !== 'undefined' &&
106
+ typeof c.vertexArray !== 'undefined') {
107
+
108
+ ++c.referenceCount;
109
+ return c;
110
+ }
111
+
112
+ var mesh = {
113
+ attributes : {
114
+ position : {
115
+ componentDatatype : ComponentDatatype.FLOAT,
116
+ componentsPerAttribute : 2,
117
+ values : [
118
+ -1.0, -1.0,
119
+ 1.0, -1.0,
120
+ 1.0, 1.0,
121
+ -1.0, 1.0
122
+ ]
123
+ },
124
+
125
+ textureCoordinates : {
126
+ componentDatatype : ComponentDatatype.FLOAT,
127
+ componentsPerAttribute : 2,
128
+ values : [
129
+ 0.0, 0.0,
130
+ 1.0, 0.0,
131
+ 1.0, 1.0,
132
+ 0.0, 1.0
133
+ ]
134
+ }
135
+ }
136
+ };
137
+
138
+ var va = context.createVertexArrayFromMesh({
139
+ mesh : mesh,
140
+ attributeIndices : attributeIndices,
141
+ bufferUsage : BufferUsage.STATIC_DRAW
142
+ });
143
+
144
+ var cachedVA = {
145
+ vertexArray : va,
146
+ referenceCount : 1,
147
+
148
+ release : function() {
149
+ if (typeof this.vertexArray !== 'undefined' &&
150
+ --this.referenceCount === 0) {
151
+
152
+ // TODO: Schedule this for a few hundred frames later so we don't thrash the cache
153
+ this.vertexArray = this.vertexArray.destroy();
154
+ }
155
+
156
+ return undefined;
157
+ }
158
+ };
159
+
160
+ vertexArrayCache[context.getId()] = cachedVA;
161
+ return cachedVA;
162
+ }
163
+
164
+ /**
165
+ * Commits changes to properties before rendering by updating the object's WebGL resources.
166
+ *
167
+ * @memberof ViewportQuad
168
+ *
169
+ * @exception {DeveloperError} this.material must be defined.
170
+ * @exception {DeveloperError} this.rectangle must be defined.
171
+ */
172
+ ViewportQuad.prototype.update = function(context, frameState, commandList) {
173
+ if (typeof this.material === 'undefined') {
174
+ throw new DeveloperError('this.material must be defined.');
175
+ }
176
+
177
+ if (typeof this.rectangle === 'undefined') {
178
+ throw new DeveloperError('this.rectangle must be defined.');
179
+ }
180
+
181
+ if (typeof this._va === 'undefined') {
182
+ this._va = getVertexArray(context);
183
+ this._overlayCommand.vertexArray = this._va.vertexArray;
184
+ this._overlayCommand.renderState = context.createRenderState({
185
+ blending : BlendingState.ALPHA_BLEND
186
+ });
187
+ }
188
+
189
+ var pass = frameState.passes;
190
+ if (pass.overlay) {
191
+ if (this._material !== this.material) {
192
+ // Recompile shader when material changes
193
+ this._material = this.material;
194
+
195
+ var fsSource =
196
+ '#line 0\n' +
197
+ Noise +
198
+ '#line 0\n' +
199
+ this._material.shaderSource +
200
+ '#line 0\n' +
201
+ ViewportQuadFS;
202
+
203
+ this._overlayCommand.shaderProgram = this._overlayCommand.shaderProgram && this._overlayCommand.shaderProgram.release();
204
+ this._overlayCommand.shaderProgram = context.getShaderCache().getShaderProgram(ViewportQuadVS, fsSource, attributeIndices);
205
+ }
206
+
207
+ this._overlayCommand.renderState.viewport = this.rectangle;
208
+ this._overlayCommand.uniformMap = this._material._uniforms;
209
+ commandList.push(this._commandLists);
210
+ }
211
+ };
212
+
213
+ /**
214
+ * Returns true if this object was destroyed; otherwise, false.
215
+ * <br /><br />
216
+ * If this object was destroyed, it should not be used; calling any function other than
217
+ * <code>isDestroyed</code> will result in a {@link DeveloperError} exception.
218
+ *
219
+ * @memberof ViewportQuad
220
+ *
221
+ * @return {Boolean} True if this object was destroyed; otherwise, false.
222
+ *
223
+ * @see ViewportQuad#destroy
224
+ */
225
+ ViewportQuad.prototype.isDestroyed = function() {
226
+ return false;
227
+ };
228
+
229
+ /**
230
+ * Destroys the WebGL resources held by this object. Destroying an object allows for deterministic
231
+ * release of WebGL resources, instead of relying on the garbage collector to destroy this object.
232
+ * <br /><br />
233
+ * Once an object is destroyed, it should not be used; calling any function other than
234
+ * <code>isDestroyed</code> will result in a {@link DeveloperError} exception. Therefore,
235
+ * assign the return value (<code>undefined</code>) to the object as done in the example.
236
+ *
237
+ * @memberof ViewportQuad
238
+ *
239
+ * @return {undefined}
240
+ *
241
+ * @exception {DeveloperError} This object was destroyed, i.e., destroy() was called.
242
+ *
243
+ * @see ViewportQuad#isDestroyed
244
+ *
245
+ * @example
246
+ * quad = quad && quad.destroy();
247
+ */
248
+ ViewportQuad.prototype.destroy = function() {
249
+ this._va = this._va && this._va.release();
250
+ this._overlayCommand.shaderProgram = this._overlayCommand.shaderProgram && this._overlayCommand.shaderProgram.release();
251
+
252
+ return destroyObject(this);
253
+ };
254
+
255
+ return ViewportQuad;
256
+ });