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,302 @@
1
+ /*global define*/
2
+ define([
3
+ '../Core/defaultValue',
4
+ '../Core/DeveloperError',
5
+ '../Core/destroyObject',
6
+ '../Core/Color',
7
+ '../Core/Matrix3',
8
+ '../Core/Matrix4',
9
+ '../Scene/CustomSensorVolume',
10
+ '../Scene/Material'
11
+ ], function(
12
+ defaultValue,
13
+ DeveloperError,
14
+ destroyObject,
15
+ Color,
16
+ Matrix3,
17
+ Matrix4,
18
+ CustomSensorVolume,
19
+ Material) {
20
+ "use strict";
21
+
22
+ var matrix3Scratch = new Matrix3();
23
+
24
+ /**
25
+ * A DynamicObject visualizer which maps the DynamicPyramid instance
26
+ * in DynamicObject.pyramid to a Pyramid primitive.
27
+ * @alias DynamicPyramidVisualizer
28
+ * @constructor
29
+ *
30
+ * @param {Scene} scene The scene the primitives will be rendered in.
31
+ * @param {DynamicObjectCollection} [dynamicObjectCollection] The dynamicObjectCollection to visualize.
32
+ *
33
+ * @exception {DeveloperError} scene is required.
34
+ *
35
+ * @see DynamicPyramid
36
+ * @see Scene
37
+ * @see DynamicObject
38
+ * @see DynamicObjectCollection
39
+ * @see CompositeDynamicObjectCollection
40
+ * @see VisualizerCollection
41
+ * @see DynamicBillboardVisualizer
42
+ * @see DynamicConeVisualizer
43
+ * @see DynamicConeVisualizerUsingCustomSensorr
44
+ * @see DynamicLabelVisualizer
45
+ * @see DynamicPointVisualizer
46
+ * @see DynamicPolygonVisualizer
47
+ * @see DynamicPolylineVisualizer
48
+ *
49
+ */
50
+ var DynamicPyramidVisualizer = function(scene, dynamicObjectCollection) {
51
+ if (typeof scene === 'undefined') {
52
+ throw new DeveloperError('scene is required.');
53
+ }
54
+ this._scene = scene;
55
+ this._unusedIndexes = [];
56
+ this._primitives = scene.getPrimitives();
57
+ this._pyramidCollection = [];
58
+ this._dynamicObjectCollection = undefined;
59
+ this.setDynamicObjectCollection(dynamicObjectCollection);
60
+ };
61
+
62
+ /**
63
+ * Returns the scene being used by this visualizer.
64
+ *
65
+ * @returns {Scene} The scene being used by this visualizer.
66
+ */
67
+ DynamicPyramidVisualizer.prototype.getScene = function() {
68
+ return this._scene;
69
+ };
70
+
71
+ /**
72
+ * Gets the DynamicObjectCollection being visualized.
73
+ *
74
+ * @returns {DynamicObjectCollection} The DynamicObjectCollection being visualized.
75
+ */
76
+ DynamicPyramidVisualizer.prototype.getDynamicObjectCollection = function() {
77
+ return this._dynamicObjectCollection;
78
+ };
79
+
80
+ /**
81
+ * Sets the DynamicObjectCollection to visualize.
82
+ *
83
+ * @param dynamicObjectCollection The DynamicObjectCollection to visualizer.
84
+ */
85
+ DynamicPyramidVisualizer.prototype.setDynamicObjectCollection = function(dynamicObjectCollection) {
86
+ var oldCollection = this._dynamicObjectCollection;
87
+ if (oldCollection !== dynamicObjectCollection) {
88
+ if (typeof oldCollection !== 'undefined') {
89
+ oldCollection.objectsRemoved.removeEventListener(DynamicPyramidVisualizer.prototype._onObjectsRemoved);
90
+ this.removeAllPrimitives();
91
+ }
92
+ this._dynamicObjectCollection = dynamicObjectCollection;
93
+ if (typeof dynamicObjectCollection !== 'undefined') {
94
+ dynamicObjectCollection.objectsRemoved.addEventListener(DynamicPyramidVisualizer.prototype._onObjectsRemoved, this);
95
+ }
96
+ }
97
+ };
98
+
99
+ /**
100
+ * Updates all of the primitives created by this visualizer to match their
101
+ * DynamicObject counterpart at the given time.
102
+ *
103
+ * @param {JulianDate} time The time to update to.
104
+ *
105
+ * @exception {DeveloperError} time is required.
106
+ */
107
+ DynamicPyramidVisualizer.prototype.update = function(time) {
108
+ if (typeof time === 'undefined') {
109
+ throw new DeveloperError('time is requied.');
110
+ }
111
+ if (typeof this._dynamicObjectCollection !== 'undefined') {
112
+ var dynamicObjects = this._dynamicObjectCollection.getObjects();
113
+ for ( var i = 0, len = dynamicObjects.length; i < len; i++) {
114
+ this._updateObject(time, dynamicObjects[i]);
115
+ }
116
+ }
117
+ };
118
+
119
+ /**
120
+ * Removes all primitives from the scene.
121
+ */
122
+ DynamicPyramidVisualizer.prototype.removeAllPrimitives = function() {
123
+ var i, len;
124
+ for (i = 0, len = this._pyramidCollection.length; i < len; i++) {
125
+ this._primitives.remove(this._pyramidCollection[i]);
126
+ }
127
+
128
+ if (typeof this._dynamicObjectCollection !== 'undefined') {
129
+ var dynamicObjects = this._dynamicObjectCollection.getObjects();
130
+ for (i = dynamicObjects.length - 1; i > -1; i--) {
131
+ dynamicObjects[i]._pyramidVisualizerIndex = undefined;
132
+ }
133
+ }
134
+
135
+ this._unusedIndexes = [];
136
+ this._pyramidCollection = [];
137
+ };
138
+
139
+ /**
140
+ * Returns true if this object was destroyed; otherwise, false.
141
+ * <br /><br />
142
+ * If this object was destroyed, it should not be used; calling any function other than
143
+ * <code>isDestroyed</code> will result in a {@link DeveloperError} exception.
144
+ *
145
+ * @memberof DynamicPyramidVisualizer
146
+ *
147
+ * @return {Boolean} True if this object was destroyed; otherwise, false.
148
+ *
149
+ * @see DynamicPyramidVisualizer#destroy
150
+ */
151
+ DynamicPyramidVisualizer.prototype.isDestroyed = function() {
152
+ return false;
153
+ };
154
+
155
+ /**
156
+ * Destroys the WebGL resources held by this object. Destroying an object allows for deterministic
157
+ * release of WebGL resources, instead of relying on the garbage collector to destroy this object.
158
+ * <br /><br />
159
+ * Once an object is destroyed, it should not be used; calling any function other than
160
+ * <code>isDestroyed</code> will result in a {@link DeveloperError} exception. Therefore,
161
+ * assign the return value (<code>undefined</code>) to the object as done in the example.
162
+ *
163
+ * @memberof DynamicPyramidVisualizer
164
+ *
165
+ * @return {undefined}
166
+ *
167
+ * @exception {DeveloperError} This object was destroyed, i.e., destroy() was called.
168
+ *
169
+ * @see DynamicPyramidVisualizer#isDestroyed
170
+ *
171
+ * @example
172
+ * visualizer = visualizer && visualizer.destroy();
173
+ */
174
+ DynamicPyramidVisualizer.prototype.destroy = function() {
175
+ this.removeAllPrimitives();
176
+ return destroyObject(this);
177
+ };
178
+
179
+ var position;
180
+ var orientation;
181
+ DynamicPyramidVisualizer.prototype._updateObject = function(time, dynamicObject) {
182
+ var context = this._scene.getContext();
183
+ var dynamicPyramid = dynamicObject.pyramid;
184
+ if (typeof dynamicPyramid === 'undefined') {
185
+ return;
186
+ }
187
+
188
+ var directionsProperty = dynamicPyramid.directions;
189
+ if (typeof directionsProperty === 'undefined') {
190
+ return;
191
+ }
192
+
193
+ var positionProperty = dynamicObject.position;
194
+ if (typeof positionProperty === 'undefined') {
195
+ return;
196
+ }
197
+
198
+ var orientationProperty = dynamicObject.orientation;
199
+ if (typeof orientationProperty === 'undefined') {
200
+ return;
201
+ }
202
+
203
+ var pyramid;
204
+ var showProperty = dynamicPyramid.show;
205
+ var pyramidVisualizerIndex = dynamicObject._pyramidVisualizerIndex;
206
+ var show = dynamicObject.isAvailable(time) && (typeof showProperty === 'undefined' || showProperty.getValue(time));
207
+
208
+ if (!show) {
209
+ //don't bother creating or updating anything else
210
+ if (typeof pyramidVisualizerIndex !== 'undefined') {
211
+ pyramid = this._pyramidCollection[pyramidVisualizerIndex];
212
+ pyramid.show = false;
213
+ dynamicObject._pyramidVisualizerIndex = undefined;
214
+ this._unusedIndexes.push(pyramidVisualizerIndex);
215
+ }
216
+ return;
217
+ }
218
+
219
+ if (typeof pyramidVisualizerIndex === 'undefined') {
220
+ var unusedIndexes = this._unusedIndexes;
221
+ var length = unusedIndexes.length;
222
+ if (length > 0) {
223
+ pyramidVisualizerIndex = unusedIndexes.pop();
224
+ pyramid = this._pyramidCollection[pyramidVisualizerIndex];
225
+ } else {
226
+ pyramidVisualizerIndex = this._pyramidCollection.length;
227
+ pyramid = new CustomSensorVolume();
228
+
229
+ this._pyramidCollection.push(pyramid);
230
+ this._primitives.add(pyramid);
231
+ }
232
+ dynamicObject._pyramidVisualizerIndex = pyramidVisualizerIndex;
233
+ pyramid.dynamicObject = dynamicObject;
234
+
235
+ // CZML_TODO Determine official defaults
236
+ pyramid.radius = Number.POSITIVE_INFINITY;
237
+ pyramid.showIntersection = true;
238
+ pyramid.intersectionColor = Color.YELLOW;
239
+ pyramid.material = Material.fromType(context, Material.ColorType);
240
+ } else {
241
+ pyramid = this._pyramidCollection[pyramidVisualizerIndex];
242
+ }
243
+
244
+ pyramid.show = true;
245
+
246
+ var directions = directionsProperty.getValueSpherical(time);
247
+ if (typeof directions !== 'undefined' && pyramid._visualizerDirections !== directions) {
248
+ pyramid.setDirections(directions);
249
+ pyramid._visualizerDirections = directions;
250
+ }
251
+
252
+ position = defaultValue(positionProperty.getValueCartesian(time, position), pyramid._visualizerPosition);
253
+ orientation = defaultValue(orientationProperty.getValue(time, orientation), pyramid._visualizerOrientation);
254
+
255
+ if (typeof position !== 'undefined' &&
256
+ typeof orientation !== 'undefined' &&
257
+ (!position.equals(pyramid._visualizerPosition) ||
258
+ !orientation.equals(pyramid._visualizerOrientation))) {
259
+ Matrix4.fromRotationTranslation(Matrix3.fromQuaternion(orientation, matrix3Scratch), position, pyramid.modelMatrix);
260
+ position.clone(pyramid._visualizerPosition);
261
+ orientation.clone(pyramid._visualizerOrientation);
262
+ }
263
+
264
+ var material = dynamicPyramid.material;
265
+ if (typeof material !== 'undefined') {
266
+ pyramid.material = material.getValue(time, context, pyramid.material);
267
+ }
268
+
269
+ var property = dynamicPyramid.intersectionColor;
270
+ if (typeof property !== 'undefined') {
271
+ var intersectionColor = property.getValue(time, intersectionColor);
272
+ if (typeof intersectionColor !== 'undefined') {
273
+ pyramid.intersectionColor = intersectionColor;
274
+ }
275
+ }
276
+
277
+ property = dynamicPyramid.radius;
278
+ if (typeof property !== 'undefined') {
279
+ var radius = property.getValue(time, radius);
280
+ if (typeof radius !== 'undefined') {
281
+ pyramid.radius = radius;
282
+ }
283
+ }
284
+ };
285
+
286
+ DynamicPyramidVisualizer.prototype._onObjectsRemoved = function(dynamicObjectCollection, dynamicObjects) {
287
+ var thisPyramidCollection = this._pyramidCollection;
288
+ var thisUnusedIndexes = this._unusedIndexes;
289
+ for ( var i = dynamicObjects.length - 1; i > -1; i--) {
290
+ var dynamicObject = dynamicObjects[i];
291
+ var pyramidVisualizerIndex = dynamicObject._pyramidVisualizerIndex;
292
+ if (typeof pyramidVisualizerIndex !== 'undefined') {
293
+ var pyramid = thisPyramidCollection[pyramidVisualizerIndex];
294
+ pyramid.show = false;
295
+ thisUnusedIndexes.push(pyramidVisualizerIndex);
296
+ dynamicObject._pyramidVisualizerIndex = undefined;
297
+ }
298
+ }
299
+ };
300
+
301
+ return DynamicPyramidVisualizer;
302
+ });
@@ -0,0 +1,8 @@
1
+ var profile = {
2
+ resourceTags : {
3
+ amd : function(filename, mid) {
4
+ "use strict";
5
+ return (/\.js$/).test(filename);
6
+ }
7
+ }
8
+ };
@@ -0,0 +1,199 @@
1
+ /*global define*/
2
+ define([
3
+ '../Core/JulianDate',
4
+ '../Core/TimeInterval',
5
+ '../Core/TimeIntervalCollection',
6
+ '../Core/Cartesian3',
7
+ '../Core/Cartographic',
8
+ '../Core/Iso8601',
9
+ '../Core/Ellipsoid',
10
+ './ReferenceProperty',
11
+ './DynamicPositionProperty'
12
+ ], function(
13
+ JulianDate,
14
+ TimeInterval,
15
+ TimeIntervalCollection,
16
+ Cartesian3,
17
+ Cartographic,
18
+ Iso8601,
19
+ Ellipsoid,
20
+ ReferenceProperty,
21
+ DynamicPositionProperty) {
22
+ "use strict";
23
+
24
+ var wgs84 = Ellipsoid.WGS84;
25
+
26
+ function ValueHolder(czmlInterval) {
27
+ var i, len, values = [], tmp;
28
+
29
+ tmp = czmlInterval.cartesian;
30
+ if (typeof tmp !== 'undefined') {
31
+ for (i = 0, len = tmp.length; i < len; i += 3) {
32
+ values.push(new Cartesian3(tmp[i], tmp[i + 1], tmp[i + 2]));
33
+ }
34
+ this.cartesian = values;
35
+ } else {
36
+ tmp = czmlInterval.cartographicRadians;
37
+ if (typeof tmp !== 'undefined') {
38
+ for (i = 0, len = tmp.length; i < len; i += 3) {
39
+ values.push(new Cartographic(tmp[i], tmp[i + 1], tmp[i + 2]));
40
+ }
41
+ this.cartographic = values;
42
+ } else {
43
+ tmp = czmlInterval.cartographicDegrees;
44
+ if (typeof tmp !== 'undefined') {
45
+ for (i = 0, len = tmp.length; i < len; i += 3) {
46
+ values.push(Cartographic.fromDegrees(tmp[i], tmp[i + 1], tmp[i + 2]));
47
+ }
48
+ this.cartographic = values;
49
+ }
50
+ }
51
+ }
52
+ }
53
+
54
+ ValueHolder.prototype.getValueCartographic = function() {
55
+ if (typeof this.cartographic === 'undefined') {
56
+ this.cartographic = wgs84.cartesianArrayToCartographicArray(this.cartesian);
57
+ }
58
+ return this.cartographic;
59
+ };
60
+
61
+ ValueHolder.prototype.getValueCartesian = function() {
62
+ if (typeof this.cartesian === 'undefined') {
63
+ this.cartesian = wgs84.cartographicArrayToCartesianArray(this.cartographic);
64
+ }
65
+ return this.cartesian;
66
+ };
67
+
68
+ /**
69
+ * A dynamic property which maintains an array of positions that can change over time.
70
+ * The positions can be represented as both Cartesian and Cartographic coordinates.
71
+ * Rather than creating instances of this object directly, it's typically
72
+ * created and managed via loading CZML data into a DynamicObjectCollection.
73
+ * Instances of this type are exposed via DynamicObject and it's sub-objects
74
+ * and are responsible for interpreting and interpolating the data for visualization.
75
+ *
76
+ * @alias DynamicVertexPositionsProperty
77
+ * @internalconstructor
78
+ *
79
+ * @see DynamicObject
80
+ * @see DynamicProperty
81
+ * @see ReferenceProperty
82
+ * @see DynamicMaterialProperty
83
+ * @see DynamicPositionProperty
84
+ * @see DynamicDirectionsProperty
85
+ */
86
+ var DynamicVertexPositionsProperty = function() {
87
+ this._propertyIntervals = new TimeIntervalCollection();
88
+ };
89
+
90
+ /**
91
+ * Processes the provided CZML interval or intervals into this property.
92
+ *
93
+ * @memberof DynamicVertexPositionsProperty
94
+ *
95
+ * @param {Object} czmlIntervals The CZML data to process.
96
+ * @param {TimeInterval} [constrainedInterval] Constrains the processing so that any times outside of this interval are ignored.
97
+ * @param {DynamicObjectCollection} dynamicObjectCollection The DynamicObjectCollection to be used as a target for resolving links within this property.
98
+ */
99
+ DynamicVertexPositionsProperty.prototype.processCzmlIntervals = function(czmlIntervals, constrainedInterval, dynamicObjectCollection) {
100
+ if (Array.isArray(czmlIntervals)) {
101
+ for ( var i = 0, len = czmlIntervals.length; i < len; i++) {
102
+ this._addCzmlInterval(czmlIntervals[i], constrainedInterval, dynamicObjectCollection);
103
+ }
104
+ } else {
105
+ this._addCzmlInterval(czmlIntervals, constrainedInterval, dynamicObjectCollection);
106
+ }
107
+ };
108
+
109
+ /**
110
+ * Retrieves the values at the supplied time as Cartographic coordinates.
111
+ * @memberof DynamicVertexPositionsProperty
112
+ *
113
+ * @param {JulianDate} time The time for which to retrieve the value.
114
+ * @returns An array of Cartographic coordinates for the provided time.
115
+ */
116
+ DynamicVertexPositionsProperty.prototype.getValueCartographic = function(time) {
117
+ var interval = this._propertyIntervals.findIntervalContainingDate(time);
118
+ if (typeof interval === 'undefined') {
119
+ return undefined;
120
+ }
121
+ var interval_data = interval.data;
122
+ if (Array.isArray(interval_data)) {
123
+ var result = [];
124
+ for ( var i = 0, len = interval_data.length; i < len; i++) {
125
+ var value = interval_data[i].getValueCartographic(time);
126
+ if (typeof value !== 'undefined') {
127
+ result.push(value);
128
+ }
129
+ }
130
+ return result;
131
+ }
132
+
133
+ return interval_data.getValueCartographic();
134
+
135
+ };
136
+
137
+ /**
138
+ * Retrieves the values at the supplied time as Cartesian coordinates.
139
+ * @memberof DynamicVertexPositionsProperty
140
+ *
141
+ * @param {JulianDate} time The time for which to retrieve the value.
142
+ * @returns An array of Cartesian coordinates for the provided time.
143
+ */
144
+ DynamicVertexPositionsProperty.prototype.getValueCartesian = function(time) {
145
+ var interval = this._propertyIntervals.findIntervalContainingDate(time);
146
+ if (typeof interval === 'undefined') {
147
+ return undefined;
148
+ }
149
+ var interval_data = interval.data;
150
+ if (Array.isArray(interval_data)) {
151
+ var result = [];
152
+ for ( var i = 0, len = interval_data.length; i < len; i++) {
153
+ var value = interval_data[i].getValueCartesian(time);
154
+ if (typeof value !== 'undefined') {
155
+ result.push(value);
156
+ }
157
+ }
158
+ return result;
159
+ }
160
+
161
+ return interval_data.getValueCartesian();
162
+ };
163
+
164
+ DynamicVertexPositionsProperty.prototype._addCzmlInterval = function(czmlInterval, constrainedInterval, dynamicObjectCollection) {
165
+ var iso8601Interval = czmlInterval.interval;
166
+ if (typeof iso8601Interval === 'undefined') {
167
+ iso8601Interval = Iso8601.MAXIMUM_INTERVAL.clone();
168
+ } else {
169
+ iso8601Interval = TimeInterval.fromIso8601(iso8601Interval);
170
+ }
171
+
172
+ if (typeof constrainedInterval !== 'undefined') {
173
+ iso8601Interval = iso8601Interval.intersect(constrainedInterval);
174
+ }
175
+
176
+ //See if we already have data at that interval.
177
+ var thisIntervals = this._propertyIntervals;
178
+ var existingInterval = thisIntervals.findInterval(iso8601Interval.start, iso8601Interval.stop);
179
+
180
+ //If not, create it.
181
+ if (typeof existingInterval === 'undefined') {
182
+ existingInterval = iso8601Interval;
183
+ thisIntervals.addInterval(existingInterval);
184
+ }
185
+
186
+ var references = czmlInterval.references;
187
+ if (typeof references === 'undefined') {
188
+ existingInterval.data = new ValueHolder(czmlInterval);
189
+ } else {
190
+ var properties = [];
191
+ for ( var i = 0, len = references.length; i < len; i++) {
192
+ properties.push(ReferenceProperty.fromString(dynamicObjectCollection, references[i]));
193
+ }
194
+ existingInterval.data = properties;
195
+ }
196
+ };
197
+
198
+ return DynamicVertexPositionsProperty;
199
+ });