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,235 @@
1
+ /*global define*/
2
+ define([
3
+ './DeveloperError'
4
+ ], function(
5
+ DeveloperError) {
6
+ "use strict";
7
+
8
+ var _supportsFullscreen;
9
+ var _names = {
10
+ requestFullscreen : undefined,
11
+ exitFullscreen : undefined,
12
+ fullscreenEnabled : undefined,
13
+ fullscreenElement : undefined,
14
+ fullscreenchange : undefined,
15
+ fullscreenerror : undefined
16
+ };
17
+
18
+ /**
19
+ * Browser-independent functions for working with the standard fullscreen API.
20
+ *
21
+ * @exports Fullscreen
22
+ *
23
+ * @see <a href='http://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html'>W3C Fullscreen Living Specification</a>
24
+ */
25
+ var Fullscreen = {};
26
+
27
+ /**
28
+ * Detects whether the browser supports the standard fullscreen API.
29
+ *
30
+ * @returns <code>true</code> if the browser supports the standard fullscreen API,
31
+ * <code>false</code> otherwise.
32
+ */
33
+ Fullscreen.supportsFullscreen = function() {
34
+ if (typeof _supportsFullscreen !== 'undefined') {
35
+ return _supportsFullscreen;
36
+ }
37
+
38
+ _supportsFullscreen = false;
39
+
40
+ var body = document.body;
41
+ if (typeof body.requestFullscreen === 'function') {
42
+ // go with the unprefixed, standard set of names
43
+ _names.requestFullscreen = 'requestFullscreen';
44
+ _names.exitFullscreen = 'exitFullscreen';
45
+ _names.fullscreenEnabled = 'fullscreenEnabled';
46
+ _names.fullscreenElement = 'fullscreenElement';
47
+ _names.fullscreenchange = 'fullscreenchange';
48
+ _names.fullscreenerror = 'fullscreenerror';
49
+ _supportsFullscreen = true;
50
+ return _supportsFullscreen;
51
+ }
52
+
53
+ //check for the correct combination of prefix plus the various names that browsers use
54
+ var prefixes = ['webkit', 'moz', 'o', 'ms', 'khtml'];
55
+ var name;
56
+ for ( var i = 0, len = prefixes.length; i < len; ++i) {
57
+ var prefix = prefixes[i];
58
+
59
+ // casing of Fullscreen differs across browsers
60
+ name = prefix + 'RequestFullscreen';
61
+ if (typeof body[name] === 'function') {
62
+ _names.requestFullscreen = name;
63
+ _supportsFullscreen = true;
64
+ } else {
65
+ name = prefix + 'RequestFullScreen';
66
+ if (typeof body[name] === 'function') {
67
+ _names.requestFullscreen = name;
68
+ _supportsFullscreen = true;
69
+ }
70
+ }
71
+
72
+ // disagreement about whether it's "exit" as per spec, or "cancel"
73
+ name = prefix + 'ExitFullscreen';
74
+ if (typeof document[name] === 'function') {
75
+ _names.exitFullscreen = name;
76
+ } else {
77
+ name = prefix + 'CancelFullScreen';
78
+ if (typeof document[name] === 'function') {
79
+ _names.exitFullscreen = name;
80
+ }
81
+ }
82
+
83
+ // casing of Fullscreen differs across browsers
84
+ name = prefix + 'FullscreenEnabled';
85
+ if (typeof document[name] !== 'undefined') {
86
+ _names.fullscreenEnabled = name;
87
+ } else {
88
+ name = prefix + 'FullScreenEnabled';
89
+ if (typeof document[name] !== 'undefined') {
90
+ _names.fullscreenEnabled = name;
91
+ }
92
+ }
93
+
94
+ // casing of Fullscreen differs across browsers
95
+ name = prefix + 'FullscreenElement';
96
+ if (typeof document[name] !== 'undefined') {
97
+ _names.fullscreenElement = name;
98
+ } else {
99
+ name = prefix + 'FullScreenElement';
100
+ if (typeof document[name] !== 'undefined') {
101
+ _names.fullscreenElement = name;
102
+ }
103
+ }
104
+
105
+ // thankfully, event names are all lowercase per spec
106
+ name = prefix + 'fullscreenchange';
107
+ // event names do not have 'on' in the front, but the property on the document does
108
+ if (typeof document['on' + name] !== 'undefined') {
109
+ _names.fullscreenchange = name;
110
+ }
111
+
112
+ name = prefix + 'fullscreenerror';
113
+ if (typeof document['on' + name] !== 'undefined') {
114
+ _names.fullscreenerror = name;
115
+ }
116
+ }
117
+
118
+ return _supportsFullscreen;
119
+ };
120
+
121
+ /**
122
+ * Asynchronously requests the browser to enter fullscreen mode on the given element.
123
+ * If fullscreen mode is not supported by the browser, does nothing.
124
+ *
125
+ * @param {Object} element The HTML element which will be placed into fullscreen mode.
126
+ *
127
+ * @example
128
+ * // Put the entire page into fullscreen.
129
+ * Fullscreen.requestFullscreen(document.body)
130
+ *
131
+ * // Place only the Cesium canvas into fullscreen.
132
+ * Fullscreen.requestFullscreen(scene.getCanvas())
133
+ */
134
+ Fullscreen.requestFullscreen = function(element) {
135
+ if (!Fullscreen.supportsFullscreen()) {
136
+ return;
137
+ }
138
+
139
+ element[_names.requestFullscreen]();
140
+ };
141
+
142
+ /**
143
+ * Asynchronously exits fullscreen mode. If the browser is not currently
144
+ * in fullscreen, or if fullscreen mode is not supported by the browser, does nothing.
145
+ */
146
+ Fullscreen.exitFullscreen = function() {
147
+ if (!Fullscreen.supportsFullscreen()) {
148
+ return;
149
+ }
150
+
151
+ document[_names.exitFullscreen]();
152
+ };
153
+
154
+ /**
155
+ * Determine whether the browser will allow an element to be made fullscreen, or not.
156
+ * For example, by default, iframes cannot go fullscreen unless the containing page
157
+ * adds an "allowfullscreen" attribute (or prefixed equivalent).
158
+ *
159
+ * @returns {Boolean} <code>true</code> if the browser is able to enter fullscreen mode,
160
+ * <code>false</code> if not, and <code>undefined</code> if the browser does not
161
+ * support fullscreen mode.
162
+ */
163
+ Fullscreen.isFullscreenEnabled = function() {
164
+ if (!Fullscreen.supportsFullscreen()) {
165
+ return undefined;
166
+ }
167
+
168
+ return document[_names.fullscreenEnabled];
169
+ };
170
+
171
+ /**
172
+ * Gets the element that is currently fullscreen, if any. To simply check if the
173
+ * browser is in fullscreen mode or not, use {@link Fullscreen#isFullscreen}.
174
+ *
175
+ * @returns {Object} the element that is currently fullscreen, or <code>null</code> if the browser is
176
+ * not in fullscreen mode, or <code>undefined</code> if the browser does not support fullscreen
177
+ * mode.
178
+ */
179
+ Fullscreen.getFullscreenElement = function() {
180
+ if (!Fullscreen.supportsFullscreen()) {
181
+ return undefined;
182
+ }
183
+
184
+ return document[_names.fullscreenElement];
185
+ };
186
+
187
+ /**
188
+ * Determines if the browser is currently in fullscreen mode.
189
+ *
190
+ * @returns {Boolean} <code>true</code> if the browser is currently in fullscreen mode, <code>false</code>
191
+ * if it is not, or <code>undefined</code> if the browser does not support fullscreen mode.
192
+ */
193
+ Fullscreen.isFullscreen = function() {
194
+ if (!Fullscreen.supportsFullscreen()) {
195
+ return undefined;
196
+ }
197
+
198
+ return Fullscreen.getFullscreenElement() !== null;
199
+ };
200
+
201
+ /**
202
+ * Gets the name of the event on the document that is fired when fullscreen is
203
+ * entered or exited. This event name is intended for use with addEventListener.
204
+ *
205
+ * In your event handler, to determine if the browser is in fullscreen mode or not,
206
+ * use {@link Fullscreen#isFullscreen}.
207
+ *
208
+ * @returns {String} the name of the event that is fired when fullscreen is entered or
209
+ * exited, or <code>undefined</code> if fullscreen is not supported.
210
+ */
211
+ Fullscreen.getFullscreenChangeEventName = function() {
212
+ if (!Fullscreen.supportsFullscreen()) {
213
+ return undefined;
214
+ }
215
+
216
+ return _names.fullscreenchange;
217
+ };
218
+
219
+ /**
220
+ * Gets the name of the event that is fired when a fullscreen error
221
+ * occurs. This event name is intended for use with addEventListener.
222
+ *
223
+ * @returns {String} the name of the event that is fired when a fullscreen error occurs,
224
+ * or <code>undefined</code> if fullscreen is not supported.
225
+ */
226
+ Fullscreen.getFullscreenErrorEventName = function() {
227
+ if (!Fullscreen.supportsFullscreen()) {
228
+ return undefined;
229
+ }
230
+
231
+ return _names.fullscreenerror;
232
+ };
233
+
234
+ return Fullscreen;
235
+ });
@@ -0,0 +1,107 @@
1
+ /*global define*/
2
+ define([
3
+ './defaultValue',
4
+ './Cartesian3',
5
+ './Cartographic',
6
+ './Ellipsoid'
7
+ ], function(
8
+ defaultValue,
9
+ Cartesian3,
10
+ Cartographic,
11
+ Ellipsoid) {
12
+ "use strict";
13
+
14
+ /**
15
+ * A simple map projection where longitude and latitude are linearly mapped to X and Y by multiplying
16
+ * them by the {@link Ellipsoid#getMaximumRadius}. This projection
17
+ * is commonly known as geographic, equirectangular, equidistant cylindrical, or plate carrée. It
18
+ * is also known as EPSG:4326.
19
+ *
20
+ * @alias GeographicProjection
21
+ * @constructor
22
+ * @immutable
23
+ *
24
+ * @param {Ellipsoid} [ellipsoid=Ellipsoid.WGS84] The ellipsoid.
25
+ *
26
+ * @see WebMercatorProjection
27
+ */
28
+ var GeographicProjection = function(ellipsoid) {
29
+ this._ellipsoid = defaultValue(ellipsoid, Ellipsoid.WGS84);
30
+ this._semimajorAxis = this._ellipsoid.getMaximumRadius();
31
+ this._oneOverSemimajorAxis = 1.0 / this._semimajorAxis;
32
+ };
33
+
34
+ /**
35
+ * Gets the {@link Ellipsoid}.
36
+ *
37
+ * @memberof GeographicProjection
38
+ *
39
+ * @returns {Ellipsoid} The ellipsoid.
40
+ */
41
+ GeographicProjection.prototype.getEllipsoid = function() {
42
+ return this._ellipsoid;
43
+ };
44
+
45
+ /**
46
+ * Projects a set of {@link Cartographic} coordinates, in radians, to map coordinates, in meters.
47
+ * X and Y are the longitude and latitude, respectively, multiplied by the maximum radius of the
48
+ * ellipsoid. Z is the unmodified height.
49
+ *
50
+ * @memberof GeographicProjection
51
+ *
52
+ * @param {Cartographic} cartographic The coordinates to project.
53
+ * @param {Cartesian3} [result] An instance into which to copy the result. If this parameter is
54
+ * undefined, a new instance is created and returned.
55
+ * @returns {Cartesian3} The projected coordinates. If the result parameter is not undefined, the
56
+ * coordinates are copied there and that instance is returned. Otherwise, a new instance is
57
+ * created and returned.
58
+ */
59
+ GeographicProjection.prototype.project = function(cartographic, result) {
60
+ // Actually this is the special case of equidistant cylindrical called the plate carree
61
+ var semimajorAxis = this._semimajorAxis;
62
+ var x = cartographic.longitude * semimajorAxis;
63
+ var y = cartographic.latitude * semimajorAxis;
64
+ var z = cartographic.height;
65
+
66
+ if (typeof result === 'undefined') {
67
+ return new Cartesian3(x, y, z);
68
+ }
69
+
70
+ result.x = x;
71
+ result.y = y;
72
+ result.z = z;
73
+ return result;
74
+ };
75
+
76
+ /**
77
+ * Unprojects a set of projected {@link Cartesian3} coordinates, in meters, to {@link Cartographic}
78
+ * coordinates, in radians. Longitude and Latitude are the X and Y coordinates, respectively,
79
+ * divided by the maximum radius of the ellipsoid. Height is the unmodified Z coordinate.
80
+ *
81
+ * @memberof GeographicProjection
82
+ *
83
+ * @param {Cartesian3} cartesian The coordinate to unproject.
84
+ * @param {Cartographic} [result] An instance into which to copy the result. If this parameter is
85
+ * undefined, a new instance is created and returned.
86
+ * @returns {Cartographic} The unprojected coordinates. If the result parameter is not undefined, the
87
+ * coordinates are copied there and that instance is returned. Otherwise, a new instance is
88
+ * created and returned.
89
+ */
90
+ GeographicProjection.prototype.unproject = function(cartesian, result) {
91
+ var oneOverEarthSemimajorAxis = this._oneOverSemimajorAxis;
92
+ var longitude = cartesian.x * oneOverEarthSemimajorAxis;
93
+ var latitude = cartesian.y * oneOverEarthSemimajorAxis;
94
+ var height = cartesian.z;
95
+
96
+ if (typeof result === 'undefined') {
97
+ return new Cartographic(longitude, latitude, height);
98
+ }
99
+
100
+ result.longitude = longitude;
101
+ result.latitude = latitude;
102
+ result.height = height;
103
+ return result;
104
+ };
105
+
106
+ return GeographicProjection;
107
+ });
@@ -0,0 +1,176 @@
1
+ /*global define*/
2
+ define(['./Math'
3
+ ], function(
4
+ CesiumMath) {
5
+ "use strict";
6
+
7
+ var factorial = CesiumMath.factorial;
8
+
9
+ function calculateCoefficientTerm(x, zIndices, xTable, derivOrder, termOrder, reservedIndices) {
10
+ var result = 0;
11
+ var reserved;
12
+ var i;
13
+ var j;
14
+
15
+ if (derivOrder > 0) {
16
+ for (i = 0; i < termOrder; i++) {
17
+ reserved = false;
18
+ for (j = 0; j < reservedIndices.length && !reserved; j++) {
19
+ if (i === reservedIndices[j]) {
20
+ reserved = true;
21
+ }
22
+ }
23
+
24
+ if (!reserved) {
25
+ reservedIndices.push(i);
26
+ result += calculateCoefficientTerm(x, zIndices, xTable, derivOrder - 1, termOrder, reservedIndices);
27
+ reservedIndices.splice(reservedIndices.length - 1, 1);
28
+ }
29
+ }
30
+
31
+ return result;
32
+ }
33
+
34
+ result = 1;
35
+ for (i = 0; i < termOrder; i++) {
36
+ reserved = false;
37
+ for (j = 0; j < reservedIndices.length && !reserved; j++) {
38
+ if (i === reservedIndices[j]) {
39
+ reserved = true;
40
+ }
41
+ }
42
+
43
+ if (!reserved) {
44
+ result *= x - xTable[zIndices[i]];
45
+ }
46
+ }
47
+
48
+ return result;
49
+ }
50
+
51
+ /**
52
+ * Functions for performing Hermite interpolation.
53
+ * @exports HermitePolynomialApproximation
54
+ *
55
+ * @see LinearApproximation
56
+ * @see LagrangePolynomialApproximation
57
+ */
58
+ var HermitePolynomialApproximation = {
59
+ type : 'Hermite'
60
+ };
61
+
62
+ /**
63
+ * Given the desired degree, returns the number of data points required for interpolation.
64
+ *
65
+ * @memberof HermitePolynomialApproximation
66
+ *
67
+ * @param degree The desired degree of interpolation.
68
+ *
69
+ * @returns The number of required data points needed for the desired degree of interpolation.
70
+ */
71
+ HermitePolynomialApproximation.getRequiredDataPoints = function(degree) {
72
+ return Math.max(degree + 1, 2);
73
+ };
74
+
75
+ /**
76
+ * <p>
77
+ * Interpolates values using the supplied interpolation algorithm. The appropriate subset of input
78
+ * values to use for the interpolation is determined automatically from an interpolation given
79
+ * degree.
80
+ * </p>
81
+ * <p>
82
+ * The xTable array can contain any number of elements, and the appropriate subset will be
83
+ * selected according to the degree of interpolation requested. For example, if degree is 5,
84
+ * the 6 elements surrounding x will be used for interpolation. When using
85
+ * {@link LinearApproximation} the degree should be 1 since it always deals with only 2 elements
86
+ * surrounding x. The yTable array should contain a number of elements equal to:
87
+ * <code>xTable.length * yStride</code>. If insufficient elements are provided
88
+ * to perform the requested degree of interpolation, the highest possible degree of interpolation
89
+ * will be performed.
90
+ * </p>
91
+ *
92
+ * @param {Number} x The independent variable for which the dependent variables will be interpolated.
93
+ *
94
+ * @param {Array} xTable The array of independent variables to use to interpolate. The values
95
+ * in this array must be in increasing order and the same value must not occur twice in the array.
96
+ *
97
+ * @param {Array} yTable The array of dependent variables to use to interpolate. For a set of three
98
+ * dependent values (p,q,w) and their derivatives (dp, dq, dw) at time 1 and time 2 this should be
99
+ * as follows: {p1, q1, w1, dp1, dq1, dw1, p2, q2, w2, dp2, dq2, dw2}.
100
+ *
101
+ * @param {Number} yStride The number of dependent variable values in yTable corresponding to
102
+ * each independent variable value in xTable.
103
+ *
104
+ * @returns An array of interpolated values. The array contains at least yStride elements, each
105
+ * of which is an interpolated dependent variable value.
106
+ *
107
+ * @see LinearApproximation
108
+ * @see LagrangePolynomialApproximation
109
+ *
110
+ * @memberof HermitePolynomialApproximation
111
+ */
112
+ HermitePolynomialApproximation.interpolateOrderZero = function(x, xTable, yTable, yStride) {
113
+ var length = xTable.length, i, j, d, s, len, index, result = new Array(yStride), coefficients = new Array(yStride);
114
+
115
+ for (i = 0; i < yStride; i++) {
116
+ result[i] = 0;
117
+
118
+ var l = new Array(length);
119
+ coefficients[i] = l;
120
+ for (j = 0; j < length; j++) {
121
+ l[j] = [];
122
+ }
123
+ }
124
+
125
+ var zIndicesLength = length, zIndices = new Array(zIndicesLength);
126
+
127
+ for (i = 0; i < zIndicesLength; i++) {
128
+ zIndices[i] = i;
129
+ }
130
+
131
+ var highestNonZeroCoef = length - 1;
132
+ for (s = 0; s < yStride; s++) {
133
+ for (j = 0; j < zIndicesLength; j++) {
134
+ index = zIndices[j] * yStride + s;
135
+ coefficients[s][0].push(yTable[index]);
136
+ }
137
+
138
+ for (i = 1; i < zIndicesLength; i++) {
139
+ var nonZeroCoefficients = false;
140
+ for (j = 0; j < zIndicesLength - i; j++) {
141
+ var zj = xTable[zIndices[j]];
142
+ var zn = xTable[zIndices[j + i]];
143
+
144
+ var numerator;
145
+ if (zn - zj <= 0) {
146
+ index = zIndices[j] * yStride + yStride * i + s;
147
+ numerator = yTable[index];
148
+ coefficients[s][i].push(numerator / factorial(i));
149
+ } else {
150
+ numerator = (coefficients[s][i - 1][j + 1] - coefficients[s][i - 1][j]);
151
+ coefficients[s][i].push(numerator / (zn - zj));
152
+ }
153
+ nonZeroCoefficients = nonZeroCoefficients || (numerator !== 0);
154
+ }
155
+
156
+ if (!nonZeroCoefficients) {
157
+ highestNonZeroCoef = i - 1;
158
+ }
159
+ }
160
+ }
161
+
162
+ for (d = 0, len = 0; d <= len; d++) {
163
+ for (i = d; i <= highestNonZeroCoef; i++) {
164
+ var tempTerm = calculateCoefficientTerm(x, zIndices, xTable, d, i, []);
165
+ for (s = 0; s < yStride; s++) {
166
+ var coeff = coefficients[s][i][0];
167
+ result[s + d * yStride] += coeff * tempTerm;
168
+ }
169
+ }
170
+ }
171
+
172
+ return result;
173
+ };
174
+
175
+ return HermitePolynomialApproximation;
176
+ });