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,251 @@
1
+ /*global define*/
2
+ define([
3
+ '../Core/DeveloperError',
4
+ '../Core/destroyObject',
5
+ '../Scene/Polygon',
6
+ '../Scene/Material'
7
+ ], function(
8
+ DeveloperError,
9
+ destroyObject,
10
+ Polygon,
11
+ Material) {
12
+ "use strict";
13
+
14
+ /**
15
+ * A DynamicObject visualizer which maps the DynamicPolygon instance
16
+ * in DynamicObject.polygon to a Polygon primitive.
17
+ * @alias DynamicPolygonVisualizer
18
+ * @constructor
19
+ *
20
+ * @param {Scene} scene The scene the primitives will be rendered in.
21
+ * @param {DynamicObjectCollection} [dynamicObjectCollection] The dynamicObjectCollection to visualize.
22
+ *
23
+ * @exception {DeveloperError} scene is required.
24
+ *
25
+ * @see DynamicPolygon
26
+ * @see Scene
27
+ * @see DynamicObject
28
+ * @see DynamicObjectCollection
29
+ * @see CompositeDynamicObjectCollection
30
+ * @see VisualizerCollection
31
+ * @see DynamicBillboardVisualizer
32
+ * @see DynamicConeVisualizer
33
+ * @see DynamicConeVisualizerUsingCustomSensorr
34
+ * @see DynamicLabelVisualizer
35
+ * @see DynamicPointVisualizer
36
+ * @see DynamicPolylineVisualizer
37
+ * @see DynamicPyramidVisualizer
38
+ *
39
+ */
40
+ var DynamicPolygonVisualizer = function(scene, dynamicObjectCollection) {
41
+ if (typeof scene === 'undefined') {
42
+ throw new DeveloperError('scene is required.');
43
+ }
44
+ this._scene = scene;
45
+ this._unusedIndexes = [];
46
+ this._primitives = scene.getPrimitives();
47
+ this._polygonCollection = [];
48
+ this._dynamicObjectCollection = undefined;
49
+ this.setDynamicObjectCollection(dynamicObjectCollection);
50
+ };
51
+
52
+ /**
53
+ * Returns the scene being used by this visualizer.
54
+ *
55
+ * @returns {Scene} The scene being used by this visualizer.
56
+ */
57
+ DynamicPolygonVisualizer.prototype.getScene = function() {
58
+ return this._scene;
59
+ };
60
+
61
+ /**
62
+ * Gets the DynamicObjectCollection being visualized.
63
+ *
64
+ * @returns {DynamicObjectCollection} The DynamicObjectCollection being visualized.
65
+ */
66
+ DynamicPolygonVisualizer.prototype.getDynamicObjectCollection = function() {
67
+ return this._dynamicObjectCollection;
68
+ };
69
+
70
+ /**
71
+ * Sets the DynamicObjectCollection to visualize.
72
+ *
73
+ * @param dynamicObjectCollection The DynamicObjectCollection to visualizer.
74
+ */
75
+ DynamicPolygonVisualizer.prototype.setDynamicObjectCollection = function(dynamicObjectCollection) {
76
+ var oldCollection = this._dynamicObjectCollection;
77
+ if (oldCollection !== dynamicObjectCollection) {
78
+ if (typeof oldCollection !== 'undefined') {
79
+ oldCollection.objectsRemoved.removeEventListener(DynamicPolygonVisualizer.prototype._onObjectsRemoved);
80
+ this.removeAllPrimitives();
81
+ }
82
+ this._dynamicObjectCollection = dynamicObjectCollection;
83
+ if (typeof dynamicObjectCollection !== 'undefined') {
84
+ dynamicObjectCollection.objectsRemoved.addEventListener(DynamicPolygonVisualizer.prototype._onObjectsRemoved, this);
85
+ }
86
+ }
87
+ };
88
+
89
+ /**
90
+ * Updates all of the primitives created by this visualizer to match their
91
+ * DynamicObject counterpart at the given time.
92
+ *
93
+ * @param {JulianDate} time The time to update to.
94
+ *
95
+ * @exception {DeveloperError} time is required.
96
+ */
97
+ DynamicPolygonVisualizer.prototype.update = function(time) {
98
+ if (typeof time === 'undefined') {
99
+ throw new DeveloperError('time is requied.');
100
+ }
101
+ if (typeof this._dynamicObjectCollection !== 'undefined') {
102
+ var dynamicObjects = this._dynamicObjectCollection.getObjects();
103
+ for ( var i = 0, len = dynamicObjects.length; i < len; i++) {
104
+ this._updateObject(time, dynamicObjects[i]);
105
+ }
106
+ }
107
+ };
108
+
109
+ /**
110
+ * Removes all primitives from the scene.
111
+ */
112
+ DynamicPolygonVisualizer.prototype.removeAllPrimitives = function() {
113
+ var i, len;
114
+ for (i = 0, len = this._polygonCollection.length; i < len; i++) {
115
+ this._primitives.remove(this._polygonCollection[i]);
116
+ }
117
+
118
+ if (typeof this._dynamicObjectCollection !== 'undefined') {
119
+ var dynamicObjects = this._dynamicObjectCollection.getObjects();
120
+ for (i = dynamicObjects.length - 1; i > -1; i--) {
121
+ dynamicObjects[i]._polygonVisualizerIndex = undefined;
122
+ }
123
+ }
124
+
125
+ this._unusedIndexes = [];
126
+ this._polygonCollection = [];
127
+ };
128
+
129
+ /**
130
+ * Returns true if this object was destroyed; otherwise, false.
131
+ * <br /><br />
132
+ * If this object was destroyed, it should not be used; calling any function other than
133
+ * <code>isDestroyed</code> will result in a {@link DeveloperError} exception.
134
+ *
135
+ * @memberof DynamicPolygonVisualizer
136
+ *
137
+ * @return {Boolean} True if this object was destroyed; otherwise, false.
138
+ *
139
+ * @see DynamicPolygonVisualizer#destroy
140
+ */
141
+ DynamicPolygonVisualizer.prototype.isDestroyed = function() {
142
+ return false;
143
+ };
144
+
145
+ /**
146
+ * Destroys the WebGL resources held by this object. Destroying an object allows for deterministic
147
+ * release of WebGL resources, instead of relying on the garbage collector to destroy this object.
148
+ * <br /><br />
149
+ * Once an object is destroyed, it should not be used; calling any function other than
150
+ * <code>isDestroyed</code> will result in a {@link DeveloperError} exception. Therefore,
151
+ * assign the return value (<code>undefined</code>) to the object as done in the example.
152
+ *
153
+ * @memberof DynamicPolygonVisualizer
154
+ *
155
+ * @return {undefined}
156
+ *
157
+ * @exception {DeveloperError} This object was destroyed, i.e., destroy() was called.
158
+ *
159
+ * @see DynamicPolygonVisualizer#isDestroyed
160
+ *
161
+ * @example
162
+ * visualizer = visualizer && visualizer.destroy();
163
+ */
164
+ DynamicPolygonVisualizer.prototype.destroy = function() {
165
+ this.removeAllPrimitives();
166
+ return destroyObject(this);
167
+ };
168
+
169
+ DynamicPolygonVisualizer.prototype._updateObject = function(time, dynamicObject) {
170
+ var context = this._scene.getContext();
171
+ var dynamicPolygon = dynamicObject.polygon;
172
+ if (typeof dynamicPolygon === 'undefined') {
173
+ return;
174
+ }
175
+
176
+ var vertexPositionsProperty = dynamicObject.vertexPositions;
177
+ if (typeof vertexPositionsProperty === 'undefined') {
178
+ return;
179
+ }
180
+
181
+ var vertexPositions = vertexPositionsProperty.getValueCartesian(time);
182
+
183
+ var polygon;
184
+ var showProperty = dynamicPolygon.show;
185
+ var polygonVisualizerIndex = dynamicObject._polygonVisualizerIndex;
186
+ var show = dynamicObject.isAvailable(time) && (typeof showProperty === 'undefined' || showProperty.getValue(time));
187
+
188
+
189
+ if (!show || typeof vertexPositions === 'undefined' || vertexPositions.length < 3) {
190
+ //don't bother creating or updating anything else
191
+ if (typeof polygonVisualizerIndex !== 'undefined') {
192
+ polygon = this._polygonCollection[polygonVisualizerIndex];
193
+ polygon.show = false;
194
+ dynamicObject._polygonVisualizerIndex = undefined;
195
+ this._unusedIndexes.push(polygonVisualizerIndex);
196
+ }
197
+ return;
198
+ }
199
+
200
+ if (typeof polygonVisualizerIndex === 'undefined') {
201
+ var unusedIndexes = this._unusedIndexes;
202
+ var length = unusedIndexes.length;
203
+ if (length > 0) {
204
+ polygonVisualizerIndex = unusedIndexes.pop();
205
+ polygon = this._polygonCollection[polygonVisualizerIndex];
206
+ } else {
207
+ polygonVisualizerIndex = this._polygonCollection.length;
208
+ polygon = new Polygon();
209
+ this._polygonCollection.push(polygon);
210
+ this._primitives.add(polygon);
211
+ }
212
+ dynamicObject._polygonVisualizerIndex = polygonVisualizerIndex;
213
+ polygon.dynamicObject = dynamicObject;
214
+
215
+ // CZML_TODO Determine official defaults
216
+ polygon.material = Material.fromType(context, Material.ColorType);
217
+
218
+ } else {
219
+ polygon = this._polygonCollection[polygonVisualizerIndex];
220
+ }
221
+
222
+ polygon.show = true;
223
+
224
+ if (polygon._visualizerPositions !== vertexPositions) {
225
+ polygon.setPositions(vertexPositions);
226
+ polygon._visualizerPositions = vertexPositions;
227
+ }
228
+
229
+ var material = dynamicPolygon.material;
230
+ if (typeof material !== 'undefined') {
231
+ polygon.material = material.getValue(time, context, polygon.material);
232
+ }
233
+ };
234
+
235
+ DynamicPolygonVisualizer.prototype._onObjectsRemoved = function(dynamicObjectCollection, dynamicObjects) {
236
+ var thisPolygonCollection = this._polygonCollection;
237
+ var thisUnusedIndexes = this._unusedIndexes;
238
+ for ( var i = dynamicObjects.length - 1; i > -1; i--) {
239
+ var dynamicObject = dynamicObjects[i];
240
+ var polygonVisualizerIndex = dynamicObject._polygonVisualizerIndex;
241
+ if (typeof polygonVisualizerIndex !== 'undefined') {
242
+ var polygon = thisPolygonCollection[polygonVisualizerIndex];
243
+ polygon.show = false;
244
+ thisUnusedIndexes.push(polygonVisualizerIndex);
245
+ dynamicObject._polygonVisualizerIndex = undefined;
246
+ }
247
+ }
248
+ };
249
+
250
+ return DynamicPolygonVisualizer;
251
+ });
@@ -0,0 +1,183 @@
1
+ /*global define*/
2
+ define([
3
+ '../Core/TimeInterval',
4
+ '../Core/defaultValue',
5
+ './CzmlBoolean',
6
+ './CzmlNumber',
7
+ './CzmlColor',
8
+ './DynamicProperty'],
9
+ function(
10
+ TimeInterval,
11
+ defaultValue,
12
+ CzmlBoolean,
13
+ CzmlNumber,
14
+ CzmlColor,
15
+ DynamicProperty) {
16
+ "use strict";
17
+
18
+ /**
19
+ * Represents a time-dynamic polyline, typically used in conjunction with DynamicPolylineVisualizer and
20
+ * DynamicObjectCollection to visualize CZML.
21
+ *
22
+ * @alias DynamicPolyline
23
+ * @constructor
24
+ *
25
+ * @see DynamicObject
26
+ * @see DynamicProperty
27
+ * @see DynamicObjectCollection
28
+ * @see DynamicPolylineVisualizer
29
+ * @see VisualizerCollection
30
+ * @see Polyline
31
+ * @see CzmlDefaults
32
+ */
33
+ var DynamicPolyline = function() {
34
+ /**
35
+ * A DynamicProperty of type CzmlColor which determines the line's color.
36
+ * @type DynamicProperty
37
+ */
38
+ this.color = undefined;
39
+ /**
40
+ * A DynamicProperty of type CzmlColor which determines the line's outline color.
41
+ * @type DynamicProperty
42
+ */
43
+ this.outlineColor = undefined;
44
+ /**
45
+ * A DynamicProperty of type CzmlNumber which determines the line's outline width.
46
+ * @type DynamicProperty
47
+ */
48
+ this.outlineWidth = undefined;
49
+ /**
50
+ * A DynamicProperty of type CzmlBoolean which determines the lines's visibility.
51
+ * @type DynamicProperty
52
+ */
53
+ this.show = undefined;
54
+ /**
55
+ * A DynamicProperty of type CzmlNumber which determines the line's width.
56
+ * @type DynamicProperty
57
+ */
58
+ this.width = undefined;
59
+ };
60
+
61
+ /**
62
+ * Processes a single CZML packet and merges its data into the provided DynamicObject's polyline.
63
+ * If the DynamicObject does not have a polyline, one is created. This method is not
64
+ * normally called directly, but is part of the array of CZML processing functions that is
65
+ * passed into the DynamicObjectCollection constructor.
66
+ *
67
+ * @param {DynamicObject} dynamicObject The DynamicObject which will contain the polyline data.
68
+ * @param {Object} packet The CZML packet to process.
69
+ * @returns {Boolean} true if any new properties were created while processing the packet, false otherwise.
70
+ *
71
+ * @see DynamicObject
72
+ * @see DynamicProperty
73
+ * @see DynamicObjectCollection
74
+ * @see CzmlDefaults#updaters
75
+ */
76
+ DynamicPolyline.processCzmlPacket = function(dynamicObject, packet) {
77
+ var polylineData = packet.polyline;
78
+ if (typeof polylineData === 'undefined') {
79
+ return false;
80
+ }
81
+
82
+ var polylineUpdated = false;
83
+ var polyline = dynamicObject.polyline;
84
+ polylineUpdated = typeof polyline === 'undefined';
85
+ if (polylineUpdated) {
86
+ dynamicObject.polyline = polyline = new DynamicPolyline();
87
+ }
88
+
89
+ var interval = polylineData.interval;
90
+ if (typeof interval !== 'undefined') {
91
+ interval = TimeInterval.fromIso8601(interval);
92
+ }
93
+
94
+ if (typeof polylineData.color !== 'undefined') {
95
+ var color = polyline.color;
96
+ if (typeof color === 'undefined') {
97
+ polyline.color = color = new DynamicProperty(CzmlColor);
98
+ polylineUpdated = true;
99
+ }
100
+ color.processCzmlIntervals(polylineData.color, interval);
101
+ }
102
+
103
+ if (typeof polylineData.width !== 'undefined') {
104
+ var width = polyline.width;
105
+ if (typeof width === 'undefined') {
106
+ polyline.width = width = new DynamicProperty(CzmlNumber);
107
+ polylineUpdated = true;
108
+ }
109
+ width.processCzmlIntervals(polylineData.width, interval);
110
+ }
111
+
112
+ if (typeof polylineData.outlineColor !== 'undefined') {
113
+ var outlineColor = polyline.outlineColor;
114
+ if (typeof outlineColor === 'undefined') {
115
+ polyline.outlineColor = outlineColor = new DynamicProperty(CzmlColor);
116
+ polylineUpdated = true;
117
+ }
118
+ outlineColor.processCzmlIntervals(polylineData.outlineColor, interval);
119
+ }
120
+
121
+ if (typeof polylineData.outlineWidth !== 'undefined') {
122
+ var outlineWidth = polyline.outlineWidth;
123
+ if (typeof outlineWidth === 'undefined') {
124
+ polyline.outlineWidth = outlineWidth = new DynamicProperty(CzmlNumber);
125
+ polylineUpdated = true;
126
+ }
127
+ outlineWidth.processCzmlIntervals(polylineData.outlineWidth, interval);
128
+ }
129
+
130
+ if (typeof polylineData.show !== 'undefined') {
131
+ var show = polyline.show;
132
+ if (typeof show === 'undefined') {
133
+ polyline.show = show = new DynamicProperty(CzmlBoolean);
134
+ polylineUpdated = true;
135
+ }
136
+ show.processCzmlIntervals(polylineData.show, interval);
137
+ }
138
+ return polylineUpdated;
139
+ };
140
+
141
+ /**
142
+ * Given two DynamicObjects, takes the polyline properties from the second
143
+ * and assigns them to the first, assuming such a property did not already exist.
144
+ * This method is not normally called directly, but is part of the array of CZML processing
145
+ * functions that is passed into the CompositeDynamicObjectCollection constructor.
146
+ *
147
+ * @param {DynamicObject} targetObject The DynamicObject which will have properties merged onto it.
148
+ * @param {DynamicObject} objectToMerge The DynamicObject containing properties to be merged.
149
+ *
150
+ * @see CzmlDefaults
151
+ */
152
+ DynamicPolyline.mergeProperties = function(targetObject, objectToMerge) {
153
+ var polylineToMerge = objectToMerge.polyline;
154
+ if (typeof polylineToMerge !== 'undefined') {
155
+
156
+ var targetPolyline = targetObject.polyline;
157
+ if (typeof targetPolyline === 'undefined') {
158
+ targetObject.polyline = targetPolyline = new DynamicPolyline();
159
+ }
160
+
161
+ targetPolyline.color = defaultValue(targetPolyline.color, polylineToMerge.color);
162
+ targetPolyline.width = defaultValue(targetPolyline.width, polylineToMerge.width);
163
+ targetPolyline.outlineColor = defaultValue(targetPolyline.outlineColor, polylineToMerge.outlineColor);
164
+ targetPolyline.outlineWidth = defaultValue(targetPolyline.outlineWidth, polylineToMerge.outlineWidth);
165
+ targetPolyline.show = defaultValue(targetPolyline.show, polylineToMerge.show);
166
+ }
167
+ };
168
+
169
+ /**
170
+ * Given a DynamicObject, undefines the polyline associated with it.
171
+ * This method is not normally called directly, but is part of the array of CZML processing
172
+ * functions that is passed into the CompositeDynamicObjectCollection constructor.
173
+ *
174
+ * @param {DynamicObject} dynamicObject The DynamicObject to remove the polyline from.
175
+ *
176
+ * @see CzmlDefaults
177
+ */
178
+ DynamicPolyline.undefineProperties = function(dynamicObject) {
179
+ dynamicObject.polyline = undefined;
180
+ };
181
+
182
+ return DynamicPolyline;
183
+ });
@@ -0,0 +1,268 @@
1
+ /*global define*/
2
+ define([
3
+ '../Core/DeveloperError',
4
+ '../Core/destroyObject',
5
+ '../Core/Color',
6
+ '../Scene/PolylineCollection'
7
+ ], function(
8
+ DeveloperError,
9
+ destroyObject,
10
+ Color,
11
+ PolylineCollection) {
12
+ "use strict";
13
+
14
+ /**
15
+ * A DynamicObject visualizer which maps the DynamicPolyline instance
16
+ * in DynamicObject.polyline to a Polyline primitive.
17
+ * @alias DynamicPolylineVisualizer
18
+ * @constructor
19
+ *
20
+ * @param {Scene} scene The scene the primitives will be rendered in.
21
+ * @param {DynamicObjectCollection} [dynamicObjectCollection] The dynamicObjectCollection to visualize.
22
+ *
23
+ * @exception {DeveloperError} scene is required.
24
+ *
25
+ * @see DynamicPolyline
26
+ * @see Scene
27
+ * @see DynamicObject
28
+ * @see DynamicObjectCollection
29
+ * @see CompositeDynamicObjectCollection
30
+ * @see VisualizerCollection
31
+ * @see DynamicBillboardVisualizer
32
+ * @see DynamicConeVisualizer
33
+ * @see DynamicConeVisualizerUsingCustomSensorr
34
+ * @see DynamicLabelVisualizer
35
+ * @see DynamicPointVisualizer
36
+ * @see DynamicPolygonVisualizer
37
+ * @see DynamicPyramidVisualizer
38
+ *
39
+ */
40
+ var DynamicPolylineVisualizer = function(scene, dynamicObjectCollection) {
41
+ if (typeof scene === 'undefined') {
42
+ throw new DeveloperError('scene is required.');
43
+ }
44
+ this._scene = scene;
45
+ this._unusedIndexes = [];
46
+ this._primitives = scene.getPrimitives();
47
+ var polylineCollection = this._polylineCollection = new PolylineCollection();
48
+ scene.getPrimitives().add(polylineCollection);
49
+ this._dynamicObjectCollection = undefined;
50
+ this.setDynamicObjectCollection(dynamicObjectCollection);
51
+ };
52
+
53
+ /**
54
+ * Returns the scene being used by this visualizer.
55
+ *
56
+ * @returns {Scene} The scene being used by this visualizer.
57
+ */
58
+ DynamicPolylineVisualizer.prototype.getScene = function() {
59
+ return this._scene;
60
+ };
61
+
62
+ /**
63
+ * Gets the DynamicObjectCollection being visualized.
64
+ *
65
+ * @returns {DynamicObjectCollection} The DynamicObjectCollection being visualized.
66
+ */
67
+ DynamicPolylineVisualizer.prototype.getDynamicObjectCollection = function() {
68
+ return this._dynamicObjectCollection;
69
+ };
70
+
71
+ /**
72
+ * Sets the DynamicObjectCollection to visualize.
73
+ *
74
+ * @param dynamicObjectCollection The DynamicObjectCollection to visualizer.
75
+ */
76
+ DynamicPolylineVisualizer.prototype.setDynamicObjectCollection = function(dynamicObjectCollection) {
77
+ var oldCollection = this._dynamicObjectCollection;
78
+ if (oldCollection !== dynamicObjectCollection) {
79
+ if (typeof oldCollection !== 'undefined') {
80
+ oldCollection.objectsRemoved.removeEventListener(DynamicPolylineVisualizer.prototype._onObjectsRemoved);
81
+ this.removeAllPrimitives();
82
+ }
83
+ this._dynamicObjectCollection = dynamicObjectCollection;
84
+ if (typeof dynamicObjectCollection !== 'undefined') {
85
+ dynamicObjectCollection.objectsRemoved.addEventListener(DynamicPolylineVisualizer.prototype._onObjectsRemoved, this);
86
+ }
87
+ }
88
+ };
89
+
90
+ /**
91
+ * Updates all of the primitives created by this visualizer to match their
92
+ * DynamicObject counterpart at the given time.
93
+ *
94
+ * @param {JulianDate} time The time to update to.
95
+ *
96
+ * @exception {DeveloperError} time is required.
97
+ */
98
+ DynamicPolylineVisualizer.prototype.update = function(time) {
99
+ if (typeof time === 'undefined') {
100
+ throw new DeveloperError('time is requied.');
101
+ }
102
+ if (typeof this._dynamicObjectCollection !== 'undefined') {
103
+ var dynamicObjects = this._dynamicObjectCollection.getObjects();
104
+ for ( var i = 0, len = dynamicObjects.length; i < len; i++) {
105
+ this._updateObject(time, dynamicObjects[i]);
106
+ }
107
+ }
108
+ };
109
+
110
+ /**
111
+ * Removes all primitives from the scene.
112
+ */
113
+ DynamicPolylineVisualizer.prototype.removeAllPrimitives = function() {
114
+ var i;
115
+ this._polylineCollection.removeAll();
116
+
117
+ if (typeof this._dynamicObjectCollection !== 'undefined') {
118
+ var dynamicObjects = this._dynamicObjectCollection.getObjects();
119
+ for (i = dynamicObjects.length - 1; i > -1; i--) {
120
+ dynamicObjects[i]._polylineVisualizerIndex = undefined;
121
+ }
122
+ }
123
+
124
+ this._unusedIndexes = [];
125
+ };
126
+
127
+ /**
128
+ * Returns true if this object was destroyed; otherwise, false.
129
+ * <br /><br />
130
+ * If this object was destroyed, it should not be used; calling any function other than
131
+ * <code>isDestroyed</code> will result in a {@link DeveloperError} exception.
132
+ *
133
+ * @memberof DynamicPolylineVisualizer
134
+ *
135
+ * @return {Boolean} True if this object was destroyed; otherwise, false.
136
+ *
137
+ * @see DynamicPolylineVisualizer#destroy
138
+ */
139
+ DynamicPolylineVisualizer.prototype.isDestroyed = function() {
140
+ return false;
141
+ };
142
+
143
+ /**
144
+ * Destroys the WebGL resources held by this object. Destroying an object allows for deterministic
145
+ * release of WebGL resources, instead of relying on the garbage collector to destroy this object.
146
+ * <br /><br />
147
+ * Once an object is destroyed, it should not be used; calling any function other than
148
+ * <code>isDestroyed</code> will result in a {@link DeveloperError} exception. Therefore,
149
+ * assign the return value (<code>undefined</code>) to the object as done in the example.
150
+ *
151
+ * @memberof DynamicPolylineVisualizer
152
+ *
153
+ * @return {undefined}
154
+ *
155
+ * @exception {DeveloperError} This object was destroyed, i.e., destroy() was called.
156
+ *
157
+ * @see DynamicPolylineVisualizer#isDestroyed
158
+ *
159
+ * @example
160
+ * visualizer = visualizer && visualizer.destroy();
161
+ */
162
+ DynamicPolylineVisualizer.prototype.destroy = function() {
163
+ this.removeAllPrimitives();
164
+ this._scene.getPrimitives().remove(this._polylineCollection);
165
+ return destroyObject(this);
166
+ };
167
+
168
+ DynamicPolylineVisualizer.prototype._updateObject = function(time, dynamicObject) {
169
+ var dynamicPolyline = dynamicObject.polyline;
170
+ if (typeof dynamicPolyline === 'undefined') {
171
+ return;
172
+ }
173
+
174
+ var vertexPositionsProperty = dynamicObject.vertexPositions;
175
+ if (typeof vertexPositionsProperty === 'undefined') {
176
+ return;
177
+ }
178
+
179
+ var polyline;
180
+ var showProperty = dynamicPolyline.show;
181
+ var polylineVisualizerIndex = dynamicObject._polylineVisualizerIndex;
182
+ var show = dynamicObject.isAvailable(time) && (typeof showProperty === 'undefined' || showProperty.getValue(time));
183
+
184
+ if (!show) {
185
+ //don't bother creating or updating anything else
186
+ if (typeof polylineVisualizerIndex !== 'undefined') {
187
+ polyline = this._polylineCollection.get(polylineVisualizerIndex);
188
+ polyline.setShow(false);
189
+ dynamicObject._polylineVisualizerIndex = undefined;
190
+ this._unusedIndexes.push(polylineVisualizerIndex);
191
+ }
192
+ return;
193
+ }
194
+
195
+ if (typeof polylineVisualizerIndex === 'undefined') {
196
+ var unusedIndexes = this._unusedIndexes;
197
+ var length = unusedIndexes.length;
198
+ if (length > 0) {
199
+ polylineVisualizerIndex = unusedIndexes.pop();
200
+ polyline = this._polylineCollection.get(polylineVisualizerIndex);
201
+ } else {
202
+ polylineVisualizerIndex = this._polylineCollection.getLength();
203
+ polyline = this._polylineCollection.add();
204
+ }
205
+ dynamicObject._polylineVisualizerIndex = polylineVisualizerIndex;
206
+ polyline.dynamicObject = dynamicObject;
207
+
208
+ // CZML_TODO Determine official defaults
209
+ polyline.setColor(Color.WHITE);
210
+ polyline.setOutlineColor(Color.BLACK);
211
+ polyline.setOutlineWidth(1);
212
+ polyline.setWidth(1);
213
+ } else {
214
+ polyline = this._polylineCollection.get(polylineVisualizerIndex);
215
+ }
216
+
217
+ polyline.setShow(true);
218
+
219
+ var vertexPositions = vertexPositionsProperty.getValueCartesian(time);
220
+ if (typeof vertexPositions !== 'undefined' && polyline._visualizerPositions !== vertexPositions) {
221
+ polyline.setPositions(vertexPositions);
222
+ polyline._visualizerPositions = vertexPositions;
223
+ }
224
+
225
+ var property = dynamicPolyline.color;
226
+ if (typeof property !== 'undefined') {
227
+ polyline.setColor(property.getValue(time, polyline.getColor()));
228
+ }
229
+
230
+ property = dynamicPolyline.outlineColor;
231
+ if (typeof property !== 'undefined') {
232
+ polyline.setOutlineColor(property.getValue(time, polyline.getOutlineColor()));
233
+ }
234
+
235
+ property = dynamicPolyline.outlineWidth;
236
+ if (typeof property !== 'undefined') {
237
+ var outlineWidth = property.getValue(time);
238
+ if (typeof outlineWidth !== 'undefined') {
239
+ polyline.setOutlineWidth(outlineWidth);
240
+ }
241
+ }
242
+
243
+ property = dynamicPolyline.width;
244
+ if (typeof property !== 'undefined') {
245
+ var width = property.getValue(time);
246
+ if (typeof width !== 'undefined') {
247
+ polyline.setWidth(width);
248
+ }
249
+ }
250
+ };
251
+
252
+ DynamicPolylineVisualizer.prototype._onObjectsRemoved = function(dynamicObjectCollection, dynamicObjects) {
253
+ var thisPolylineCollection = this._polylineCollection;
254
+ var thisUnusedIndexes = this._unusedIndexes;
255
+ for ( var i = dynamicObjects.length - 1; i > -1; i--) {
256
+ var dynamicObject = dynamicObjects[i];
257
+ var polylineVisualizerIndex = dynamicObject._polylineVisualizerIndex;
258
+ if (typeof polylineVisualizerIndex !== 'undefined') {
259
+ var polyline = thisPolylineCollection.get(polylineVisualizerIndex);
260
+ polyline.setShow(false);
261
+ thisUnusedIndexes.push(polylineVisualizerIndex);
262
+ dynamicObject._polylineVisualizerIndex = undefined;
263
+ }
264
+ }
265
+ };
266
+
267
+ return DynamicPolylineVisualizer;
268
+ });