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,99 @@
1
+ /*global define*/
2
+ define([
3
+ '../Core/Cartesian3'
4
+ ], function(
5
+ Cartesian3) {
6
+ "use strict";
7
+
8
+ var doublesPerValue = 3;
9
+
10
+ /**
11
+ * Provides methods for working with a unit Cartesian3 defined in CZML.
12
+ *
13
+ * @exports CzmlUnitCartesian3
14
+ *
15
+ * @see Cartesian3
16
+ * @see DynamicProperty
17
+ * @see DynamicPositionProperty
18
+ * @see CzmlBoolean
19
+ * @see CzmlCartesian2
20
+ * @see CzmlCartesian3
21
+ * @see CzmlCartographic
22
+ * @see CzmlColor
23
+ * @see CzmlHorizontalOrigin
24
+ * @see CzmlLabelStyle
25
+ * @see CzmlNumber
26
+ * @see CzmlString
27
+ * @see CzmlUnitQuaternion
28
+ * @see CzmlUnitSpherical
29
+ * @see CzmlVerticalOrigin
30
+ */
31
+ var CzmlUnitCartesian3 = {
32
+ /**
33
+ * The number of doubles per packed Cartesian3 value.
34
+ */
35
+ doublesPerValue : doublesPerValue,
36
+
37
+ /**
38
+ * The number of doubles per packed value used for interpolation.
39
+ */
40
+ doublesPerInterpolationValue : doublesPerValue,
41
+
42
+ /**
43
+ * Returns the packed Cartesian3 representation contained within the provided CZML interval
44
+ * or undefined if the interval does not contain Cartesian3 data.
45
+ *
46
+ * @param {Object} czmlInterval The CZML interval to unwrap.
47
+ */
48
+ unwrapInterval : function(czmlInterval) {
49
+ return czmlInterval.unitCartesian;
50
+ },
51
+
52
+ /**
53
+ * Returns true if this interval represents data that should be interpolated by the client
54
+ * or false if it's a single value.
55
+ *
56
+ * @param {Object} unwrappedInterval The result of CzmlUnitCartesian3.unwrapInterval.
57
+ */
58
+ isSampled : function(unwrappedInterval) {
59
+ return Array.isArray(unwrappedInterval) && unwrappedInterval.length > doublesPerValue;
60
+ },
61
+
62
+ /**
63
+ * Given a non-sampled unwrapped interval, returns a Cartesian3 instance of the data.
64
+ *
65
+ * @param {Object} unwrappedInterval The result of CzmlUnitCartesian3.unwrapInterval.
66
+ * @param {Cartesian3} result The object to store the result in, if undefined a new instance will be created.
67
+ * @returns The modified result parameter or a new Cartesian3 instance if result was not defined.
68
+ */
69
+ getValue : function(unwrappedInterval, result) {
70
+ if (typeof result === 'undefined') {
71
+ result = new Cartesian3();
72
+ }
73
+ result.x = unwrappedInterval[0];
74
+ result.y = unwrappedInterval[1];
75
+ result.z = unwrappedInterval[2];
76
+ return result.normalize(result);
77
+ },
78
+
79
+ /**
80
+ * Given a packed array of x, y, and z values, extracts a Cartesian3 instance.
81
+ *
82
+ * @param {Array} array A packed array of Cartesian3 values, where every three elements represents a Cartesian3.
83
+ * @param {Number} startingIndex The index into the array that contains the x value of the Cartesian3 you would like.
84
+ * @param {Cartesian3} result The object to store the result in, if undefined a new instance will be created.
85
+ * @returns The modified result parameter or a new Cartesian3 instance if result was not defined.
86
+ */
87
+ getValueFromArray : function(array, startingIndex, result) {
88
+ if (typeof result === 'undefined') {
89
+ result = new Cartesian3();
90
+ }
91
+ result.x = array[startingIndex];
92
+ result.y = array[startingIndex + 1];
93
+ result.z = array[startingIndex + 2];
94
+ return result.normalize(result);
95
+ }
96
+ };
97
+
98
+ return CzmlUnitCartesian3;
99
+ });
@@ -0,0 +1,172 @@
1
+ /*global define*/
2
+ define([
3
+ '../Core/Quaternion',
4
+ '../Core/Cartesian3'
5
+ ], function(
6
+ Quaternion,
7
+ Cartesian3) {
8
+ "use strict";
9
+
10
+ var doublesPerCartesian = 3;
11
+ var doublesPerQuaternion = 4;
12
+ var axis = new Cartesian3();
13
+ var rotationVector = new Cartesian3();
14
+ var tmpQuaternion = new Quaternion();
15
+ var quaternion0 = new Quaternion();
16
+ var quaternion0Conjugate = new Quaternion();
17
+
18
+ /**
19
+ * Provides methods for working with a unit Quaternion defined in CZML.
20
+ *
21
+ * @exports CzmlUnitQuaternion
22
+ *
23
+ * @see Quaternion
24
+ * @see DynamicProperty
25
+ * @see CzmlBoolean
26
+ * @see CzmlCartesian2
27
+ * @see CzmlCartesian3
28
+ * @see CzmlCartographic
29
+ * @see CzmlColor
30
+ * @see CzmlHorizontalOrigin
31
+ * @see CzmlLabelStyle
32
+ * @see CzmlNumber
33
+ * @see CzmlString
34
+ * @see CzmlUnitCartesian3
35
+ * @see CzmlUnitSpherical
36
+ * @see CzmlVerticalOrigin
37
+ */
38
+ var CzmlUnitQuaternion = {
39
+ /**
40
+ * The number of doubles per packed Quaternion value.
41
+ */
42
+ doublesPerValue : doublesPerQuaternion,
43
+
44
+ /**
45
+ * The number of doubles per packed value used for interpolation.
46
+ */
47
+ doublesPerInterpolationValue : doublesPerCartesian,
48
+
49
+ /**
50
+ * Returns the packed Quaternion representation contained within the provided CZML interval
51
+ * or undefined if the interval does not contain Quaternion data.
52
+ *
53
+ * @param {Object} czmlInterval The CZML interval to unwrap.
54
+ */
55
+ unwrapInterval : function(czmlInterval) {
56
+ return czmlInterval.unitQuaternion;
57
+ },
58
+
59
+ /**
60
+ * Returns true if this interval represents data that should be interpolated by the client
61
+ * or false if it's a single value.
62
+ *
63
+ * @param {Object} unwrappedInterval The result of CzmlUnitQuaternion.unwrapInterval.
64
+ */
65
+ isSampled : function(unwrappedInterval) {
66
+ return Array.isArray(unwrappedInterval) && unwrappedInterval.length > doublesPerQuaternion;
67
+ },
68
+
69
+ /**
70
+ * Given a packed array of x, y, z, and w values, creates a packed array of
71
+ * Cartesian3 axis-angle rotations suitable for interpolation.
72
+ *
73
+ * @param {Array} sourceArray The packed array of quaternion values.
74
+ * @param {Array} destinationArray The array to store the packed axis-angle rotations.
75
+ * @param {Number} firstIndex The index of the first element to be packed.
76
+ * @param {Number} lastIndex The index of the last element to be packed.
77
+ */
78
+ packValuesForInterpolation : function(sourceArray, destinationArray, firstIndex, lastIndex) {
79
+ CzmlUnitQuaternion.getValueFromArray(sourceArray, lastIndex * doublesPerQuaternion, quaternion0Conjugate);
80
+ quaternion0Conjugate.conjugate(quaternion0Conjugate);
81
+
82
+ for ( var i = 0, len = lastIndex - firstIndex + 1; i < len; i++) {
83
+ var offset = i * doublesPerCartesian;
84
+ CzmlUnitQuaternion.getValueFromArray(sourceArray, (firstIndex + i) * doublesPerQuaternion, tmpQuaternion);
85
+
86
+ tmpQuaternion.multiply(quaternion0Conjugate, tmpQuaternion);
87
+
88
+ if (tmpQuaternion.w < 0) {
89
+ tmpQuaternion.negate(tmpQuaternion);
90
+ }
91
+
92
+ tmpQuaternion.getAxis(axis);
93
+ var angle = tmpQuaternion.getAngle();
94
+ destinationArray[offset] = axis.x * angle;
95
+ destinationArray[offset + 1] = axis.y * angle;
96
+ destinationArray[offset + 2] = axis.z * angle;
97
+ }
98
+ },
99
+
100
+ /**
101
+ * Given a non-sampled unwrapped interval, returns a Quaternion instance of the data.
102
+ *
103
+ * @param {Object} unwrappedInterval The result of CzmlUnitQuaternion.unwrapInterval.
104
+ * @param {Cartesian3} result The object to store the result in, if undefined a new instance will be created.
105
+ * @returns The modified result parameter or a new Quaternion instance if result was not defined.
106
+ */
107
+ getValue : function(unwrappedInterval, result) {
108
+ if (typeof result === 'undefined') {
109
+ result = new Quaternion();
110
+ }
111
+ result.x = unwrappedInterval[0];
112
+ result.y = unwrappedInterval[1];
113
+ result.z = unwrappedInterval[2];
114
+ result.w = unwrappedInterval[3];
115
+ return result.normalize(result);
116
+ },
117
+
118
+ /**
119
+ * Given a packed array of x, y, z, and w values, extracts a Quaternion instance.
120
+ *
121
+ * @param {Array} array A packed array of Quaternion values, where every four elements represents a Cartesian3.
122
+ * @param {Number} startingIndex The index into the array that contains the x value of the Quaternion you would like.
123
+ * @param {Cartesian3} result The object to store the result in, if undefined a new instance will be created.
124
+ * @returns The modified result parameter or a new Quaternion instance if result was not defined.
125
+ */
126
+ getValueFromArray : function(array, startingIndex, result) {
127
+ if (typeof result === 'undefined') {
128
+ result = new Quaternion();
129
+ }
130
+ result.x = array[startingIndex];
131
+ result.y = array[startingIndex + 1];
132
+ result.z = array[startingIndex + 2];
133
+ result.w = array[startingIndex + 3];
134
+ return result.normalize(result);
135
+ },
136
+
137
+ /**
138
+ * Given a packed array of axis-angle rotations returned from CzmlUnitQuaternion.packValuesForInterpolation,
139
+ * converts the desired index into a unit Quaternion.
140
+ *
141
+ * @param {Array} array The array containing the packed axis-angle rotations.
142
+ * @param {Quaternion} result The object to store the result in, if undefined a new instance will be created.
143
+ * @param {Array} sourceArray The source array of the original Quaternion values previously passed to CzmlUnitQuaternion.packValuesForInterpolation.
144
+ * @param {Number} firstIndex The index previously passed to CzmlUnitQuaternion.packValuesForInterpolation.
145
+ * @param {Number} lastIndex The index previously passed to CzmlUnitQuaternion.packValuesForInterpolation
146
+ * @returns The modified result parameter or a new Quaternion instance if result was not defined.
147
+ */
148
+ getValueFromInterpolationResult : function(array, result, sourceArray, firstIndex, lastIndex) {
149
+ if (typeof result === 'undefined') {
150
+ result = new Quaternion();
151
+ }
152
+ rotationVector.x = array[0];
153
+ rotationVector.y = array[1];
154
+ rotationVector.z = array[2];
155
+ var magnitude = rotationVector.magnitude();
156
+
157
+ CzmlUnitQuaternion.getValueFromArray(sourceArray, lastIndex * doublesPerQuaternion, quaternion0);
158
+
159
+ if (magnitude === 0) {
160
+ //Can't just use Quaternion.IDENTITY here because tmpQuaternion may be modified in the future.
161
+ tmpQuaternion.x = tmpQuaternion.y = tmpQuaternion.z = 0.0;
162
+ tmpQuaternion.w = 1.0;
163
+ } else {
164
+ Quaternion.fromAxisAngle(rotationVector, magnitude, tmpQuaternion);
165
+ }
166
+
167
+ return result.normalize(tmpQuaternion.multiply(quaternion0, result), result);
168
+ }
169
+ };
170
+
171
+ return CzmlUnitQuaternion;
172
+ });
@@ -0,0 +1,98 @@
1
+ /*global define*/
2
+ define([
3
+ '../Core/Spherical'
4
+ ], function(
5
+ Spherical) {
6
+ "use strict";
7
+
8
+ var doublesPerValue = 2;
9
+
10
+ /**
11
+ * Provides methods for working with a unit Spherical defined in CZML.
12
+ *
13
+ * @exports CzmlUnitSpherical
14
+ *
15
+ * @see Spherical
16
+ * @see DynamicProperty
17
+ * @see CzmlBoolean
18
+ * @see CzmlCartesian2
19
+ * @see CzmlCartesian3
20
+ * @see CzmlCartographic
21
+ * @see CzmlColor
22
+ * @see CzmlHorizontalOrigin
23
+ * @see CzmlLabelStyle
24
+ * @see CzmlNumber
25
+ * @see CzmlString
26
+ * @see CzmlUnitCartesian3
27
+ * @see CzmlUnitQuaternion
28
+ * @see CzmlVerticalOrigin
29
+ */
30
+ var CzmlUnitSpherical = {
31
+ /**
32
+ * The number of doubles per packed Spherical value.
33
+ */
34
+ doublesPerValue : doublesPerValue,
35
+
36
+ /**
37
+ * The number of doubles per packed value used for interpolation.
38
+ */
39
+ doublesPerInterpolationValue : doublesPerValue,
40
+
41
+ /**
42
+ * Returns the packed Spherical representation contained within the provided CZML interval
43
+ * or undefined if the interval does not contain Spherical data.
44
+ *
45
+ * @param {Object} czmlInterval The CZML interval to unwrap.
46
+ */
47
+ unwrapInterval : function(czmlInterval) {
48
+ return czmlInterval.unitSpherical;
49
+ },
50
+
51
+ /**
52
+ * Returns true if this interval represents data that should be interpolated by the client
53
+ * or false if it's a single value.
54
+ *
55
+ * @param {Object} unwrappedInterval The result of CzmlUnitSpherical.unwrapInterval.
56
+ */
57
+ isSampled : function(unwrappedInterval) {
58
+ return Array.isArray(unwrappedInterval) && unwrappedInterval.length > doublesPerValue;
59
+ },
60
+
61
+ /**
62
+ * Given a non-sampled unwrapped interval, returns a Spherical instance of the data.
63
+ *
64
+ * @param {Object} unwrappedInterval The result of CzmlUnitSpherical.unwrapInterval.
65
+ * @param {Spherical} result The object to store the result in, if undefined a new instance will be created.
66
+ * @returns The modified result parameter or a new Spherical instance if result was not defined.
67
+ */
68
+ getValue : function(unwrappedInterval, spherical) {
69
+ if (typeof spherical === 'undefined') {
70
+ spherical = new Spherical();
71
+ }
72
+ spherical.clock = unwrappedInterval[0];
73
+ spherical.cone = unwrappedInterval[1];
74
+ spherical.magnitude = 1.0;
75
+ return spherical;
76
+ },
77
+
78
+ /**
79
+ * Given a packed array of clock and cone values, extracts a Spherical instance.
80
+ *
81
+ * @param {Array} array A packed array of Spherical values, where every two elements represents a Spherical.
82
+ * @param {Number} startingIndex The index into the array that contains the clock value of the Spherical you would like.
83
+ * @param {Spherical} result The object to store the result in, if undefined a new instance will be created.
84
+ * @returns The modified result parameter or a new Spherical instance if result was not defined.
85
+ */
86
+ getValueFromArray : function(array, startingIndex, spherical) {
87
+ if (typeof spherical === 'undefined') {
88
+ spherical = new Spherical();
89
+ }
90
+ spherical.clock = array[startingIndex];
91
+ spherical.cone = array[startingIndex + 1];
92
+ spherical.magnitude = 1.0;
93
+ return spherical;
94
+ }
95
+ };
96
+
97
+ return CzmlUnitSpherical;
98
+ });
@@ -0,0 +1,59 @@
1
+ /*global define*/
2
+ define([
3
+ '../Scene/VerticalOrigin'
4
+ ], function(
5
+ VerticalOrigin) {
6
+ "use strict";
7
+
8
+ /**
9
+ * Provides methods for working with a vertical origin defined in CZML.
10
+ *
11
+ * @exports CzmlVerticalOrigin
12
+ *
13
+ * @see VerticalOrigin
14
+ * @see DynamicProperty
15
+ * @see CzmlBoolean
16
+ * @see CzmlCartesian2
17
+ * @see CzmlCartesian3
18
+ * @see CzmlCartographic
19
+ * @see CzmlColor
20
+ * @see CzmlHorizontalOrigin
21
+ * @see CzmlLabelStyle
22
+ * @see CzmlNumber
23
+ * @see CzmlString
24
+ * @see CzmlUnitCartesian3
25
+ * @see CzmlUnitQuaternion
26
+ * @see CzmlUnitSpherical
27
+ */
28
+ var CzmlVerticalOrigin = {
29
+ /**
30
+ * Returns the packed enum representation contained within the provided CZML interval
31
+ * or undefined if the interval does not contain enum data.
32
+ *
33
+ * @param {Object} czmlInterval The CZML interval to unwrap.
34
+ */
35
+ unwrapInterval : function(czmlInterval) {
36
+ var result = czmlInterval.verticalOrigin;
37
+ return typeof result === 'undefined' ? czmlInterval : result;
38
+ },
39
+
40
+ /**
41
+ * Since enums can not be sampled, this method always returns false.
42
+ */
43
+ isSampled : function() {
44
+ return false;
45
+ },
46
+
47
+ /**
48
+ * Returns the VerticalOrigin contained within the unwrappedInterval.
49
+ *
50
+ * @param {Object} unwrappedInterval The result of CzmlVerticalOrigin.unwrapInterval.
51
+ * @returns The VerticalOrigin value.
52
+ */
53
+ getValue : function(unwrappedInterval) {
54
+ return VerticalOrigin[unwrappedInterval];
55
+ }
56
+ };
57
+
58
+ return CzmlVerticalOrigin;
59
+ });
@@ -0,0 +1,245 @@
1
+ /*global define*/
2
+ define([
3
+ '../Core/TimeInterval',
4
+ '../Core/defaultValue',
5
+ './CzmlBoolean',
6
+ './CzmlCartesian2',
7
+ './CzmlCartesian3',
8
+ './CzmlNumber',
9
+ './CzmlImage',
10
+ './CzmlHorizontalOrigin',
11
+ './CzmlVerticalOrigin',
12
+ './CzmlColor',
13
+ './DynamicProperty'
14
+ ], function(
15
+ TimeInterval,
16
+ defaultValue,
17
+ CzmlBoolean,
18
+ CzmlCartesian2,
19
+ CzmlCartesian3,
20
+ CzmlNumber,
21
+ CzmlImage,
22
+ CzmlHorizontalOrigin,
23
+ CzmlVerticalOrigin,
24
+ CzmlColor,
25
+ DynamicProperty) {
26
+ "use strict";
27
+
28
+ /**
29
+ * Represents a time-dynamic billboard, typically used in conjunction with DynamicBillboardVisualizer and
30
+ * DynamicObjectCollection to visualize CZML.
31
+ *
32
+ * @alias DynamicBillboard
33
+ * @constructor
34
+ *
35
+ * @see DynamicObject
36
+ * @see DynamicProperty
37
+ * @see DynamicObjectCollection
38
+ * @see DynamicBillboardVisualizer
39
+ * @see VisualizerCollection
40
+ * @see Billboard
41
+ * @see BillboardCollection
42
+ * @see CzmlDefaults
43
+ */
44
+ var DynamicBillboard = function() {
45
+ /**
46
+ * A DynamicProperty of type CzmlImage which determines the billboard's texture.
47
+ * @type DynamicProperty
48
+ */
49
+ this.image = undefined;
50
+ /**
51
+ * A DynamicProperty of type CzmlNumber which determines the billboard's scale.
52
+ * @type DynamicProperty
53
+ */
54
+ this.scale = undefined;
55
+ /**
56
+ * A DynamicProperty of type CzmlHorizontalOrigin which determines the billboard's horizontal origin.
57
+ * @type DynamicProperty
58
+ */
59
+ this.horizontalOrigin = undefined;
60
+ /**
61
+ * A DynamicProperty of type CzmlVerticalHorigin which determines the billboard's vertical origin.
62
+ * @type DynamicProperty
63
+ */
64
+ this.verticalOrigin = undefined;
65
+ /**
66
+ * A DynamicProperty of type CzmlColor which determines the billboard's color.
67
+ * @type DynamicProperty
68
+ */
69
+ this.color = undefined;
70
+ /**
71
+ * A DynamicProperty of type CzmlCartesian3 which determines the billboard's eye offset.
72
+ * @type DynamicProperty
73
+ */
74
+ this.eyeOffset = undefined;
75
+ /**
76
+ * A DynamicProperty of type CzmlCartesian2 which determines the billboard's pixel offset.
77
+ * @type DynamicProperty
78
+ */
79
+ this.pixelOffset = undefined;
80
+ /**
81
+ * A DynamicProperty of type CzmlBoolean which determines the billboard's visibility.
82
+ * @type DynamicProperty
83
+ */
84
+ this.show = undefined;
85
+ };
86
+
87
+ /**
88
+ * Processes a single CZML packet and merges its data into the provided DynamicObject's billboard.
89
+ * If the DynamicObject does not have a billboard, one is created. This method is not
90
+ * normally called directly, but is part of the array of CZML processing functions that is
91
+ * passed into the DynamicObjectCollection constructor.
92
+ * @memberof DynamicBillboard
93
+ *
94
+ * @param {DynamicObject} dynamicObject The DynamicObject which will contain the billboard data.
95
+ * @param {Object} packet The CZML packet to process.
96
+ * @param {DynamicObjectCollection} [dynamicObjectCollection] The collection into which objects are being loaded.
97
+ * @param {String} [sourceUri] The originating url of the CZML being processed.
98
+ * @returns {Boolean} true if any new properties were created while processing the packet, false otherwise.
99
+ *
100
+ * @see DynamicObject
101
+ * @see DynamicProperty
102
+ * @see DynamicObjectCollection
103
+ * @see CzmlDefaults#updaters
104
+ */
105
+ DynamicBillboard.processCzmlPacket = function(dynamicObject, packet, dynamicObjectCollection, sourceUri) {
106
+ var billboardData = packet.billboard;
107
+ if (typeof billboardData === 'undefined') {
108
+ return false;
109
+ }
110
+
111
+ var billboardUpdated = false;
112
+ var billboard = dynamicObject.billboard;
113
+ billboardUpdated = typeof billboard === 'undefined';
114
+ if (billboardUpdated) {
115
+ dynamicObject.billboard = billboard = new DynamicBillboard();
116
+ }
117
+
118
+ var interval = billboardData.interval;
119
+ if (typeof interval !== 'undefined') {
120
+ interval = TimeInterval.fromIso8601(interval);
121
+ }
122
+
123
+ if (typeof billboardData.color !== 'undefined') {
124
+ var color = billboard.color;
125
+ if (typeof color === 'undefined') {
126
+ billboard.color = color = new DynamicProperty(CzmlColor);
127
+ billboardUpdated = true;
128
+ }
129
+ color.processCzmlIntervals(billboardData.color, interval);
130
+ }
131
+
132
+ if (typeof billboardData.eyeOffset !== 'undefined') {
133
+ var eyeOffset = billboard.eyeOffset;
134
+ if (typeof eyeOffset === 'undefined') {
135
+ billboard.eyeOffset = eyeOffset = new DynamicProperty(CzmlCartesian3);
136
+ billboardUpdated = true;
137
+ }
138
+ eyeOffset.processCzmlIntervals(billboardData.eyeOffset, interval);
139
+ }
140
+
141
+ if (typeof billboardData.horizontalOrigin !== 'undefined') {
142
+ var horizontalOrigin = billboard.horizontalOrigin;
143
+ if (typeof horizontalOrigin === 'undefined') {
144
+ billboard.horizontalOrigin = horizontalOrigin = new DynamicProperty(CzmlHorizontalOrigin);
145
+ billboardUpdated = true;
146
+ }
147
+ horizontalOrigin.processCzmlIntervals(billboardData.horizontalOrigin, interval);
148
+ }
149
+
150
+ if (typeof billboardData.image !== 'undefined') {
151
+ var image = billboard.image;
152
+ if (typeof image === 'undefined') {
153
+ billboard.image = image = new DynamicProperty(CzmlImage);
154
+ billboardUpdated = true;
155
+ }
156
+ image.processCzmlIntervals(billboardData.image, interval, sourceUri);
157
+ }
158
+
159
+ if (typeof billboardData.pixelOffset !== 'undefined') {
160
+ var pixelOffset = billboard.pixelOffset;
161
+ if (typeof pixelOffset === 'undefined') {
162
+ billboard.pixelOffset = pixelOffset = new DynamicProperty(CzmlCartesian2);
163
+ billboardUpdated = true;
164
+ }
165
+ pixelOffset.processCzmlIntervals(billboardData.pixelOffset, interval);
166
+ }
167
+
168
+ if (typeof billboardData.scale !== 'undefined') {
169
+ var scale = billboard.scale;
170
+ if (typeof scale === 'undefined') {
171
+ billboard.scale = scale = new DynamicProperty(CzmlNumber);
172
+ billboardUpdated = true;
173
+ }
174
+ scale.processCzmlIntervals(billboardData.scale, interval);
175
+ }
176
+
177
+ if (typeof billboardData.show !== 'undefined') {
178
+ var show = billboard.show;
179
+ if (typeof show === 'undefined') {
180
+ billboard.show = show = new DynamicProperty(CzmlBoolean);
181
+ billboardUpdated = true;
182
+ }
183
+ show.processCzmlIntervals(billboardData.show, interval);
184
+ }
185
+
186
+ if (typeof billboardData.verticalOrigin !== 'undefined') {
187
+ var verticalOrigin = billboard.verticalOrigin;
188
+ if (typeof verticalOrigin === 'undefined') {
189
+ billboard.verticalOrigin = verticalOrigin = new DynamicProperty(CzmlVerticalOrigin);
190
+ billboardUpdated = true;
191
+ }
192
+ verticalOrigin.processCzmlIntervals(billboardData.verticalOrigin, interval);
193
+ }
194
+
195
+ return billboardUpdated;
196
+ };
197
+
198
+ /**
199
+ * Given two DynamicObjects, takes the billboard properties from the second
200
+ * and assigns them to the first, assuming such a property did not already exist.
201
+ * This method is not normally called directly, but is part of the array of CZML processing
202
+ * functions that is passed into the CompositeDynamicObjectCollection constructor.
203
+ * @memberof DynamicBillboard
204
+ *
205
+ * @param {DynamicObject} targetObject The DynamicObject which will have properties merged onto it.
206
+ * @param {DynamicObject} objectToMerge The DynamicObject containing properties to be merged.
207
+ *
208
+ * @see CzmlDefaults
209
+ */
210
+ DynamicBillboard.mergeProperties = function(targetObject, objectToMerge) {
211
+ var billboardToMerge = objectToMerge.billboard;
212
+ if (typeof billboardToMerge !== 'undefined') {
213
+
214
+ var targetBillboard = targetObject.billboard;
215
+ if (typeof targetBillboard === 'undefined') {
216
+ targetObject.billboard = targetBillboard = new DynamicBillboard();
217
+ }
218
+
219
+ targetBillboard.color = defaultValue(targetBillboard.color, billboardToMerge.color);
220
+ targetBillboard.eyeOffset = defaultValue(targetBillboard.eyeOffset, billboardToMerge.eyeOffset);
221
+ targetBillboard.horizontalOrigin = defaultValue(targetBillboard.horizontalOrigin, billboardToMerge.horizontalOrigin);
222
+ targetBillboard.image = defaultValue(targetBillboard.image, billboardToMerge.image);
223
+ targetBillboard.pixelOffset = defaultValue(targetBillboard.pixelOffset, billboardToMerge.pixelOffset);
224
+ targetBillboard.scale = defaultValue(targetBillboard.scale, billboardToMerge.scale);
225
+ targetBillboard.show = defaultValue(targetBillboard.show, billboardToMerge.show);
226
+ targetBillboard.verticalOrigin = defaultValue(targetBillboard.verticalOrigin, billboardToMerge.verticalOrigin);
227
+ }
228
+ };
229
+
230
+ /**
231
+ * Given a DynamicObject, undefines the billboard associated with it.
232
+ * This method is not normally called directly, but is part of the array of CZML processing
233
+ * functions that is passed into the CompositeDynamicObjectCollection constructor.
234
+ * @memberof DynamicBillboard
235
+ *
236
+ * @param {DynamicObject} dynamicObject The DynamicObject to remove the billboard from.
237
+ *
238
+ * @see CzmlDefaults
239
+ */
240
+ DynamicBillboard.undefineProperties = function(dynamicObject) {
241
+ dynamicObject.billboard = undefined;
242
+ };
243
+
244
+ return DynamicBillboard;
245
+ });