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,384 @@
1
+ /*global define*/
2
+ define([
3
+ './defaultValue',
4
+ './DeveloperError',
5
+ './Math',
6
+ './Ellipsoid',
7
+ './Extent',
8
+ './Cartesian3',
9
+ './ComponentDatatype',
10
+ './PrimitiveType'
11
+ ], function(
12
+ defaultValue,
13
+ DeveloperError,
14
+ CesiumMath,
15
+ Ellipsoid,
16
+ Extent,
17
+ Cartesian3,
18
+ ComponentDatatype,
19
+ PrimitiveType) {
20
+ "use strict";
21
+
22
+ /**
23
+ * Contains class functions to create a mesh or vertex array from a cartographic extent.
24
+ *
25
+ * @exports ExtentTessellator
26
+ *
27
+ * @see CubeMapEllipsoidTessellator
28
+ * @see BoxTessellator
29
+ * @see PlaneTessellator
30
+ */
31
+ var ExtentTessellator = {};
32
+
33
+ /**
34
+ * Compute vertices from a cartographic extent. This function is different from
35
+ * {@link ExtentTessellator#compute} and {@link ExtentTessellator#computeBuffers}
36
+ * in that it assumes that you have already allocated output arrays of the correct size.
37
+ *
38
+ * @param {Extent} description.extent A cartographic extent with north, south, east and west properties in radians.
39
+ * @param {Number} description.width The number of vertices in the longitude direction.
40
+ * @param {Number} description.height The number of vertices in the latitude direction.
41
+ * @param {Number} description.granularityX The distance, in radians, between each longitude.
42
+ * @param {Number} description.granularityY The distance, in radians, between each latitude.
43
+ * @param {Number} description.surfaceHeight The height from the surface of the ellipsoid.
44
+ * @param {Boolean} description.generateTextureCoordinates Whether to generate texture coordinates.
45
+ * @param {Boolean} description.interleaveTextureCoordinates Whether to interleave the texture coordinates into the vertex array.
46
+ * @param {Cartesian3} description.relativetoCenter The positions will be computed as <code>worldPosition.subtract(relativeToCenter)</code>.
47
+ * @param {Cartesian3} description.radiiSquared The radii squared of the ellipsoid to use.
48
+ * @param {Array|Float32Array} description.vertices The array to use to store computed vertices.
49
+ * @param {Array|Float32Array} description.textureCoordinates The array to use to store computed texture coordinates, unless interleaved.
50
+ * @param {Array|Float32Array} [description.indices] The array to use to store computed indices. If undefined, indices will be not computed.
51
+ */
52
+ ExtentTessellator.computeVertices = function(description) {
53
+ description = defaultValue(description, {});
54
+
55
+ var extent = description.extent;
56
+ var surfaceHeight = description.surfaceHeight;
57
+ var width = description.width;
58
+ var height = description.height;
59
+
60
+ var granularityX = (extent.east - extent.west) / (width - 1);
61
+ var granularityY = (extent.north - extent.south) / (height - 1);
62
+ var generateTextureCoordinates = description.generateTextureCoordinates;
63
+ var interleaveTextureCoordinates = description.interleaveTextureCoordinates;
64
+ var relativeToCenter = description.relativeToCenter;
65
+
66
+ var vertices = description.vertices;
67
+ var textureCoordinates = description.textureCoordinates;
68
+ var indices = description.indices;
69
+
70
+ var radiiSquared = description.radiiSquared;
71
+ var radiiSquaredX = radiiSquared.x;
72
+ var radiiSquaredY = radiiSquared.y;
73
+ var radiiSquaredZ = radiiSquared.z;
74
+
75
+ var cos = Math.cos;
76
+ var sin = Math.sin;
77
+ var sqrt = Math.sqrt;
78
+
79
+ // for computing texture coordinates
80
+ var lonScalar = 1.0 / (extent.east - extent.west);
81
+ var latScalar = 1.0 / (extent.north - extent.south);
82
+
83
+ var vertexArrayIndex = 0;
84
+ var textureCoordinatesIndex = 0;
85
+
86
+ for ( var row = 0; row < height; ++row) {
87
+ var latitude = extent.north - granularityY * row;
88
+ var cosLatitude = cos(latitude);
89
+ var nZ = sin(latitude);
90
+ var kZ = radiiSquaredZ * nZ;
91
+
92
+ var geographicV = (latitude - extent.south) * latScalar;
93
+
94
+ var v = geographicV;
95
+
96
+ for ( var col = 0; col < width; ++col) {
97
+ var longitude = extent.west + granularityX * col;
98
+
99
+ var nX = cosLatitude * cos(longitude);
100
+ var nY = cosLatitude * sin(longitude);
101
+
102
+ var kX = radiiSquaredX * nX;
103
+ var kY = radiiSquaredY * nY;
104
+
105
+ var gamma = sqrt((kX * nX) + (kY * nY) + (kZ * nZ));
106
+
107
+ var rSurfaceX = kX / gamma;
108
+ var rSurfaceY = kY / gamma;
109
+ var rSurfaceZ = kZ / gamma;
110
+
111
+ vertices[vertexArrayIndex++] = rSurfaceX + nX * surfaceHeight - relativeToCenter.x;
112
+ vertices[vertexArrayIndex++] = rSurfaceY + nY * surfaceHeight - relativeToCenter.y;
113
+ vertices[vertexArrayIndex++] = rSurfaceZ + nZ * surfaceHeight - relativeToCenter.z;
114
+
115
+ if (generateTextureCoordinates) {
116
+ var geographicU = (longitude - extent.west) * lonScalar;
117
+
118
+ var u = geographicU;
119
+
120
+ if (interleaveTextureCoordinates) {
121
+ vertices[vertexArrayIndex++] = u;
122
+ vertices[vertexArrayIndex++] = v;
123
+ } else {
124
+ textureCoordinates[textureCoordinatesIndex++] = u;
125
+ textureCoordinates[textureCoordinatesIndex++] = v;
126
+ }
127
+ }
128
+ }
129
+ }
130
+
131
+ if (typeof indices !== 'undefined') {
132
+ var index = 0;
133
+ var indicesIndex = 0;
134
+ for ( var i = 0; i < height - 1; ++i) {
135
+ for ( var j = 0; j < width - 1; ++j) {
136
+ var upperLeft = index;
137
+ var lowerLeft = upperLeft + width;
138
+ var lowerRight = lowerLeft + 1;
139
+ var upperRight = upperLeft + 1;
140
+
141
+ indices[indicesIndex++] = upperLeft;
142
+ indices[indicesIndex++] = lowerLeft;
143
+ indices[indicesIndex++] = upperRight;
144
+ indices[indicesIndex++] = upperRight;
145
+ indices[indicesIndex++] = lowerLeft;
146
+ indices[indicesIndex++] = lowerRight;
147
+
148
+ ++index;
149
+ }
150
+ ++index;
151
+ }
152
+ }
153
+ };
154
+
155
+ /**
156
+ * Creates a mesh from a cartographic extent.
157
+ *
158
+ * @param {Extent} description.extent A cartographic extent with north, south, east and west properties in radians.
159
+ * @param {Ellipsoid} [description.ellipsoid=Ellipsoid.WGS84] The ellipsoid on which the extent lies.
160
+ * @param {Number} [description.granularity=0.1] The distance, in radians, between each latitude and longitude. Determines the number of positions in the buffer.
161
+ * @param {Number} [description.surfaceHeight=0.0] The height from the surface of the ellipsoid.
162
+ * @param {Cartesian3} [description.relativetoCenter=Cartesian3.ZERO] The positions will be computed as <code>worldPosition.subtract(relativeToCenter)</code>.
163
+ * @param {Boolean} [description.generateTextureCoordinates=false] Whether to generate texture coordinates.
164
+ *
165
+ * @exception {DeveloperError} <code>description.extent</code> is required and must have north, south, east and west attributes.
166
+ * @exception {DeveloperError} <code>description.extent.north</code> must be in the interval [<code>-Pi/2</code>, <code>Pi/2</code>].
167
+ * @exception {DeveloperError} <code>description.extent.south</code> must be in the interval [<code>-Pi/2</code>, <code>Pi/2</code>].
168
+ * @exception {DeveloperError} <code>description.extent.east</code> must be in the interval [<code>-Pi</code>, <code>Pi</code>].
169
+ * @exception {DeveloperError} <code>description.extent.west</code> must be in the interval [<code>-Pi</code>, <code>Pi</code>].
170
+ * @exception {DeveloperError} <code>description.extent.north</code> must be greater than <code>extent.south</code>.
171
+ * @exception {DeveloperError} <code>description.extent.east</code> must be greater than <code>extent.west</code>.
172
+ * @exception {DeveloperError} <code>description.context</code> is required.
173
+ *
174
+ * @return {Object} A mesh containing attributes for positions, possibly texture coordinates and indices
175
+ * from the extent for creating a vertex array.
176
+ *
177
+ * @see Context#createVertexArrayFromMesh
178
+ * @see MeshFilters.createAttributeIndices
179
+ * @see MeshFilters.toWireframeInPlace
180
+ * @see Extent
181
+ *
182
+ * @example
183
+ * // Create a vertex array for rendering a wireframe extent.
184
+ * var mesh = ExtentTessellator.compute({
185
+ * ellipsoid : Ellipsoid.WGS84,
186
+ * extent : new Extent(
187
+ * CesiumMath.toRadians(-80.0),
188
+ * CesiumMath.toRadians(39.0),
189
+ * CesiumMath.toRadians(-74.0),
190
+ * CesiumMath.toRadians(42.0)
191
+ * ),
192
+ * granularity : 0.01,
193
+ * surfaceHeight : 10000.0
194
+ * });
195
+ * mesh = MeshFilters.toWireframeInPlace(mesh);
196
+ * var va = context.createVertexArrayFromMesh({
197
+ * mesh : mesh,
198
+ * attributeIndices : MeshFilters.createAttributeIndices(mesh)
199
+ * });
200
+ */
201
+ ExtentTessellator.compute = function(description) {
202
+ description = defaultValue(description, {});
203
+
204
+ var extent = description.extent;
205
+ extent.validate();
206
+
207
+ var ellipsoid = defaultValue(description.ellipsoid, Ellipsoid.WGS84);
208
+ description.radiiSquared = ellipsoid.getRadiiSquared();
209
+ description.relativeToCenter = defaultValue(description.relativeToCenter, Cartesian3.ZERO);
210
+
211
+ var granularity = defaultValue(description.granularity, 0.1);
212
+ description.surfaceHeight = defaultValue(description.surfaceHeight, 0.0);
213
+
214
+ description.width = Math.ceil((extent.east - extent.west) / granularity) + 1;
215
+ description.height = Math.ceil((extent.north - extent.south) / granularity) + 1;
216
+
217
+ var vertices = [];
218
+ var indices = [];
219
+ var textureCoordinates = [];
220
+
221
+ description.generateTextureCoordinates = defaultValue(description.generateTextureCoordinates, false);
222
+ description.interleaveTextureCoordinates = false;
223
+ description.vertices = vertices;
224
+ description.textureCoordinates = textureCoordinates;
225
+ description.indices = indices;
226
+
227
+ ExtentTessellator.computeVertices(description);
228
+
229
+ var mesh = {
230
+ attributes : {},
231
+ indexLists : [{
232
+ primitiveType : PrimitiveType.TRIANGLES,
233
+ values : indices
234
+ }]
235
+ };
236
+
237
+ var positionName = defaultValue(description.positionName, 'position');
238
+ mesh.attributes[positionName] = {
239
+ componentDatatype : ComponentDatatype.FLOAT,
240
+ componentsPerAttribute : 3,
241
+ values : vertices
242
+ };
243
+
244
+ if (description.generateTextureCoordinates) {
245
+ var textureCoordinatesName = defaultValue(description.textureCoordinatesName, 'textureCoordinates');
246
+ mesh.attributes[textureCoordinatesName] = {
247
+ componentDatatype : ComponentDatatype.FLOAT,
248
+ componentsPerAttribute : 2,
249
+ values : textureCoordinates
250
+ };
251
+ }
252
+
253
+ return mesh;
254
+ };
255
+
256
+ /**
257
+ * Creates arrays of vertex attributes and indices from a cartographic extent.
258
+ *
259
+ * @param {Extent} description.extent A cartographic extent with north, south, east and west properties in radians.
260
+ * @param {Ellipsoid} [description.ellipsoid=Ellipsoid.WGS84] The ellipsoid on which the extent lies.
261
+ * @param {Number} [description.granularity=0.1] The distance, in radians, between each latitude and longitude. Determines the number of positions in the buffer.
262
+ * @param {Number} [description.surfaceHeight=0.0] The height from the surface of the ellipsoid.
263
+ * @param {Cartesian3} [description.relativetoCenter=Cartesian3.ZERO] The positions will be computed as <code>worldPosition.subtract(relativeToCenter)</code>.
264
+ * @param {Boolean} [description.generateTextureCoordinates=false] Whether to generate texture coordinates.
265
+ * @param {Boolean} [description.interleaveTextureCoordinates=false] If texture coordinates are generated, whether to interleave the positions and texture coordinates in a single buffer.
266
+ *
267
+ * @exception {DeveloperError} <code>description.extent</code> is required and must have north, south, east and west attributes.
268
+ * @exception {DeveloperError} <code>description.extent.north</code> must be in the interval [<code>-Pi/2</code>, <code>Pi/2</code>].
269
+ * @exception {DeveloperError} <code>description.extent.south</code> must be in the interval [<code>-Pi/2</code>, <code>Pi/2</code>].
270
+ * @exception {DeveloperError} <code>description.extent.east</code> must be in the interval [<code>-Pi</code>, <code>Pi</code>].
271
+ * @exception {DeveloperError} <code>description.extent.west</code> must be in the interval [<code>-Pi</code>, <code>Pi</code>].
272
+ * @exception {DeveloperError} <code>description.extent.north</code> must be greater than <code>extent.south</code>. *
273
+ * @exception {DeveloperError} <code>description.extent.east</code> must be greater than <code>extent.west</code>.
274
+ *
275
+ * @return {Object} An object with flattened arrays for vertex attributes and indices.
276
+ *
277
+ * @example
278
+ * // Example 1:
279
+ * // Create a vertex array for a solid extent, with separate positions and texture coordinates.
280
+ * var buffers = ExtentTessellator.computeBuffers({
281
+ * ellipsoid : ellipsoid,
282
+ * extent : extent,
283
+ * generateTextureCoordinates : true
284
+ * });
285
+ *
286
+ * var datatype = ComponentDatatype.FLOAT;
287
+ * var usage = BufferUsage.STATIC_DRAW;
288
+ * var positionBuffer = context.createVertexBuffer(datatype.toTypedArray(buffers.positions), usage);
289
+ * var textureCoordinateBuffer = context.createVertexBuffer(datatype.toTypedArray(buffers.textureCoordinates), usage);
290
+ * attributes = [{
291
+ * index : attributeIndices.position,
292
+ * vertexBuffer : positionBuffer,
293
+ * componentDatatype : datatype,
294
+ * componentsPerAttribute : 3
295
+ * }, {
296
+ * index : attributeIndices.textureCoordinates,
297
+ * vertexBuffer : textureCoordinateBuffer,
298
+ * componentDatatype : datatype,
299
+ * componentsPerAttribute : 2
300
+ * }];
301
+ * var indexBuffer = context.createIndexBuffer(new Uint16Array(buffers.indices), usage, IndexDatatype.UNSIGNED_SHORT);
302
+ * var va = context.createVertexArray(attributes, indexBuffer);
303
+ *
304
+ * @example
305
+ * // Example 2:
306
+ * // Create a vertex array for a solid extent, with interleaved positions and texture coordinates.
307
+ * var buffers = ExtentTessellator.computeBuffers({
308
+ * ellipsoid : ellipsoid,
309
+ * extent : extent,
310
+ * generateTextureCoordinates : true,
311
+ * interleaveTextureCoordinates : true
312
+ * });
313
+ *
314
+ * var datatype = ComponentDatatype.FLOAT;
315
+ * var usage = BufferUsage.STATIC_DRAW;
316
+ * var typedArray = datatype.toTypedArray(buffers.vertices);
317
+ * var buffer = context.createVertexBuffer(typedArray, usage);
318
+ * var stride = 5 * datatype.sizeInBytes;
319
+ * var attributes = [{
320
+ * index : attributeIndices.position3D,
321
+ * vertexBuffer : buffer,
322
+ * componentDatatype : datatype,
323
+ * componentsPerAttribute : 3,
324
+ * normalize : false,
325
+ * offsetInBytes : 0,
326
+ * strideInBytes : stride
327
+ * }, {
328
+ * index : attributeIndices.textureCoordinates,
329
+ * vertexBuffer : buffer,
330
+ * componentDatatype : datatype,
331
+ * componentsPerAttribute : 2,
332
+ * normalize : false,
333
+ * offsetInBytes : 3 * datatype.sizeInBytes,
334
+ * strideInBytes : stride
335
+ * }];
336
+ * var indexBuffer = context.createIndexBuffer(new Uint16Array(buffers.indices), usage, IndexDatatype.UNSIGNED_SHORT);
337
+ * var vacontext.createVertexArray(attributes, indexBuffer);
338
+ */
339
+ ExtentTessellator.computeBuffers = function(description) {
340
+ description = defaultValue(description, {});
341
+
342
+ var extent = description.extent;
343
+ extent.validate();
344
+
345
+ var ellipsoid = defaultValue(description.ellipsoid, Ellipsoid.WGS84);
346
+ description.radiiSquared = ellipsoid.getRadiiSquared();
347
+ description.relativeToCenter = defaultValue(description.relativeToCenter, Cartesian3.ZERO);
348
+
349
+ var granularity = defaultValue(description.granularity, 0.1);
350
+ description.surfaceHeight = defaultValue(description.surfaceHeight, 0.0);
351
+
352
+ description.width = Math.ceil((extent.east - extent.west) / granularity) + 1;
353
+ description.height = Math.ceil((extent.north - extent.south) / granularity) + 1;
354
+
355
+ var vertices = [];
356
+ var indices = [];
357
+ var textureCoordinates = [];
358
+
359
+ description.generateTextureCoordinates = defaultValue(description.generateTextureCoordinates, false);
360
+ description.interleaveTextureCoordinates = defaultValue(description.interleaveTextureCoordinates, false);
361
+ description.vertices = vertices;
362
+ description.textureCoordinates = textureCoordinates;
363
+ description.indices = indices;
364
+
365
+ ExtentTessellator.computeVertices(description);
366
+
367
+ var result = {
368
+ indices : indices
369
+ };
370
+
371
+ if (description.interleaveTextureCoordinates) {
372
+ result.vertices = vertices;
373
+ } else {
374
+ result.positions = vertices;
375
+ if (description.generateTextureCoordinates) {
376
+ result.textureCoordinates = textureCoordinates;
377
+ }
378
+ }
379
+
380
+ return result;
381
+ };
382
+
383
+ return ExtentTessellator;
384
+ });
@@ -0,0 +1,13 @@
1
+ /*global define*/
2
+ define(function() {
3
+ "use strict";
4
+
5
+ /**
6
+ * Distance from the Sun to Pluto in meters.
7
+ *
8
+ * @exports FAR
9
+ */
10
+ var FAR = 5906376272000.0;
11
+
12
+ return FAR;
13
+ });
@@ -0,0 +1,126 @@
1
+ /*global define*/
2
+ define([
3
+ './Fullscreen'
4
+ ], function(
5
+ Fullscreen) {
6
+ "use strict";
7
+
8
+ /**
9
+ * A set of functions to detect whether the current browser supports
10
+ * various features.
11
+ *
12
+ * @exports FeatureDetection
13
+ */
14
+ var FeatureDetection = {};
15
+
16
+ function extractVersion(versionString) {
17
+ return versionString.split('.').map(function(v) {
18
+ return parseInt(v, 10);
19
+ });
20
+ }
21
+
22
+ var _isChrome;
23
+ var _chromeVersion;
24
+ function isChrome() {
25
+ if (typeof _isChrome === 'undefined') {
26
+ var fields = (/ Chrome\/([\.0-9]+)/).exec(navigator.userAgent);
27
+ if (!fields) {
28
+ return (_isChrome = false);
29
+ }
30
+
31
+ _isChrome = true;
32
+ _chromeVersion = extractVersion(fields[1]);
33
+ }
34
+
35
+ return _isChrome;
36
+ }
37
+
38
+ function chromeVersion() {
39
+ return isChrome() && _chromeVersion;
40
+ }
41
+
42
+ var _isSafari;
43
+ var _safariVersion;
44
+ function isSafari() {
45
+ if (typeof _isSafari === 'undefined') {
46
+ // Chrome contains Safari in the user agent too
47
+ if (isChrome() || !(/ Safari\/[\.0-9]+/).test(navigator.userAgent)) {
48
+ return (_isSafari = false);
49
+ }
50
+
51
+ var fields = (/ Version\/([\.0-9]+)/).exec(navigator.userAgent);
52
+ if (!fields) {
53
+ return (_isSafari = false);
54
+ }
55
+
56
+ _isSafari = true;
57
+ _safariVersion = extractVersion(fields[1]);
58
+ }
59
+
60
+ return _isSafari;
61
+ }
62
+
63
+ function safariVersion() {
64
+ return isSafari() && _safariVersion;
65
+ }
66
+
67
+ var _isWebkit;
68
+ var _webkitVersion;
69
+ function isWebkit() {
70
+ if (typeof _isWebkit === 'undefined') {
71
+ var fields = (/ AppleWebKit\/([\.0-9]+)(\+?)/).exec(navigator.userAgent);
72
+ if (!fields) {
73
+ return (_isWebkit = false);
74
+ }
75
+
76
+ _isWebkit = true;
77
+ _webkitVersion = extractVersion(fields[1]);
78
+ _webkitVersion.isNightly = !!fields[2];
79
+ }
80
+
81
+ return _isWebkit;
82
+ }
83
+
84
+ function webkitVersion() {
85
+ return isWebkit() && _webkitVersion;
86
+ }
87
+
88
+ var _supportsCrossOriginImagery;
89
+
90
+ /**
91
+ * Detects whether the current browser supports the use of cross-origin
92
+ * requests to load streaming imagery.
93
+ *
94
+ * @returns true if the browser can load cross-origin streaming imagery, false if not.
95
+ *
96
+ * @see <a href='http://www.w3.org/TR/cors/'>Cross-Origin Resource Sharing</a>
97
+ */
98
+ FeatureDetection.supportsCrossOriginImagery = function() {
99
+ if (typeof _supportsCrossOriginImagery === 'undefined') {
100
+ if (isSafari() && webkitVersion()[0] < 536) {
101
+ // versions of Safari below this incorrectly throw a DOM error when calling
102
+ // readPixels on a canvas containing a cross-origin image.
103
+ _supportsCrossOriginImagery = false;
104
+ } else {
105
+ // any other versions of browsers that incorrectly block
106
+ // readPixels on canvas containing crossOrigin images?
107
+ _supportsCrossOriginImagery = 'withCredentials' in new XMLHttpRequest();
108
+ }
109
+ }
110
+ return _supportsCrossOriginImagery;
111
+ };
112
+
113
+ /**
114
+ * Detects whether the current browser supports the full screen standard.
115
+ *
116
+ * @returns true if the supports the full screen standard, false if not.
117
+ *
118
+ * @see Fullscreen
119
+ * @see <a href='http://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html'>W3C Fullscreen Living Specification</a>
120
+ */
121
+ FeatureDetection.supportsFullscreen = function() {
122
+ return Fullscreen.supportsFullscreen();
123
+ };
124
+
125
+ return FeatureDetection;
126
+ });