cesium 1.23.0 → 1.24.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (249) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/Cesium/Cesium.js +1 -1
  3. data/app/assets/javascripts/Cesium/Core/AttributeCompression.js +52 -16
  4. data/app/assets/javascripts/Cesium/Core/BoundingRectangle.js +4 -0
  5. data/app/assets/javascripts/Cesium/Core/BoundingSphere.js +4 -0
  6. data/app/assets/javascripts/Cesium/Core/BoxGeometry.js +8 -4
  7. data/app/assets/javascripts/Cesium/Core/BoxOutlineGeometry.js +6 -3
  8. data/app/assets/javascripts/Cesium/Core/Cartesian2.js +4 -0
  9. data/app/assets/javascripts/Cesium/Core/Cartesian3.js +4 -0
  10. data/app/assets/javascripts/Cesium/Core/Cartesian4.js +4 -0
  11. data/app/assets/javascripts/Cesium/Core/CircleGeometry.js +4 -2
  12. data/app/assets/javascripts/Cesium/Core/CircleOutlineGeometry.js +3 -1
  13. data/app/assets/javascripts/Cesium/Core/Color.js +6 -2
  14. data/app/assets/javascripts/Cesium/Core/CorridorGeometry.js +4 -0
  15. data/app/assets/javascripts/Cesium/Core/CorridorOutlineGeometry.js +4 -0
  16. data/app/assets/javascripts/Cesium/Core/CylinderGeometry.js +4 -0
  17. data/app/assets/javascripts/Cesium/Core/CylinderOutlineGeometry.js +5 -0
  18. data/app/assets/javascripts/Cesium/Core/EllipseGeometry.js +4 -0
  19. data/app/assets/javascripts/Cesium/Core/EllipseOutlineGeometry.js +4 -0
  20. data/app/assets/javascripts/Cesium/Core/Ellipsoid.js +4 -0
  21. data/app/assets/javascripts/Cesium/Core/EllipsoidGeometry.js +4 -0
  22. data/app/assets/javascripts/Cesium/Core/EllipsoidOutlineGeometry.js +4 -0
  23. data/app/assets/javascripts/Cesium/Core/JulianDate.js +2 -1
  24. data/app/assets/javascripts/Cesium/Core/Math.js +11 -7
  25. data/app/assets/javascripts/Cesium/Core/Matrix2.js +5 -1
  26. data/app/assets/javascripts/Cesium/Core/Matrix3.js +5 -1
  27. data/app/assets/javascripts/Cesium/Core/Matrix4.js +6 -2
  28. data/app/assets/javascripts/Cesium/Core/NearFarScalar.js +4 -0
  29. data/app/assets/javascripts/Cesium/Core/PolygonGeometry.js +4 -0
  30. data/app/assets/javascripts/Cesium/Core/PolygonOutlineGeometry.js +4 -0
  31. data/app/assets/javascripts/Cesium/Core/PolylineGeometry.js +4 -0
  32. data/app/assets/javascripts/Cesium/Core/PolylinePipeline.js +2 -1
  33. data/app/assets/javascripts/Cesium/Core/PolylineVolumeGeometry.js +4 -0
  34. data/app/assets/javascripts/Cesium/Core/PolylineVolumeOutlineGeometry.js +4 -0
  35. data/app/assets/javascripts/Cesium/Core/Quaternion.js +5 -1
  36. data/app/assets/javascripts/Cesium/Core/Rectangle.js +4 -0
  37. data/app/assets/javascripts/Cesium/Core/RectangleGeometry.js +4 -0
  38. data/app/assets/javascripts/Cesium/Core/RectangleOutlineGeometry.js +4 -0
  39. data/app/assets/javascripts/Cesium/Core/SimplePolylineGeometry.js +4 -0
  40. data/app/assets/javascripts/Cesium/Core/SphereGeometry.js +3 -1
  41. data/app/assets/javascripts/Cesium/Core/SphereOutlineGeometry.js +3 -1
  42. data/app/assets/javascripts/Cesium/Core/VertexFormat.js +4 -0
  43. data/app/assets/javascripts/Cesium/Core/WallGeometry.js +4 -0
  44. data/app/assets/javascripts/Cesium/Core/WallOutlineGeometry.js +4 -0
  45. data/app/assets/javascripts/Cesium/DataSources/BillboardGraphics.js +2 -2
  46. data/app/assets/javascripts/Cesium/DataSources/CzmlDataSource.js +17 -3
  47. data/app/assets/javascripts/Cesium/DataSources/Rotation.js +5 -1
  48. data/app/assets/javascripts/Cesium/DataSources/StaticGeometryPerMaterialBatch.js +3 -6
  49. data/app/assets/javascripts/Cesium/DataSources/VelocityOrientationProperty.js +1 -1
  50. data/app/assets/javascripts/Cesium/DataSources/VelocityVectorProperty.js +33 -8
  51. data/app/assets/javascripts/Cesium/Scene/Scene.js +1 -1
  52. data/app/assets/javascripts/Cesium/Scene/UrlTemplateImageryProvider.js +65 -6
  53. data/app/assets/javascripts/Cesium/Widgets/BaseLayerPicker/createDefaultImageryProviderViewModels.js +0 -12
  54. data/app/assets/javascripts/Cesium/Workers/combineGeometry.js +104 -28
  55. data/app/assets/javascripts/Cesium/Workers/createBoxGeometry.js +54 -14
  56. data/app/assets/javascripts/Cesium/Workers/createBoxOutlineGeometry.js +48 -13
  57. data/app/assets/javascripts/Cesium/Workers/createCircleGeometry.js +117 -30
  58. data/app/assets/javascripts/Cesium/Workers/createCircleOutlineGeometry.js +54 -12
  59. data/app/assets/javascripts/Cesium/Workers/createCorridorGeometry.js +63 -13
  60. data/app/assets/javascripts/Cesium/Workers/createCorridorOutlineGeometry.js +59 -13
  61. data/app/assets/javascripts/Cesium/Workers/createCylinderGeometry.js +54 -10
  62. data/app/assets/javascripts/Cesium/Workers/createCylinderOutlineGeometry.js +51 -10
  63. data/app/assets/javascripts/Cesium/Workers/createEllipseGeometry.js +113 -28
  64. data/app/assets/javascripts/Cesium/Workers/createEllipseOutlineGeometry.js +51 -11
  65. data/app/assets/javascripts/Cesium/Workers/createEllipsoidGeometry.js +54 -10
  66. data/app/assets/javascripts/Cesium/Workers/createEllipsoidOutlineGeometry.js +46 -10
  67. data/app/assets/javascripts/Cesium/Workers/createGeometry.js +104 -28
  68. data/app/assets/javascripts/Cesium/Workers/createPointGeometry.js +42 -10
  69. data/app/assets/javascripts/Cesium/Workers/createPolygonGeometry.js +117 -28
  70. data/app/assets/javascripts/Cesium/Workers/createPolygonOutlineGeometry.js +109 -28
  71. data/app/assets/javascripts/Cesium/Workers/createPolylineGeometry.js +58 -13
  72. data/app/assets/javascripts/Cesium/Workers/createPolylineVolumeGeometry.js +119 -29
  73. data/app/assets/javascripts/Cesium/Workers/createPolylineVolumeOutlineGeometry.js +63 -13
  74. data/app/assets/javascripts/Cesium/Workers/createRectangleGeometry.js +118 -29
  75. data/app/assets/javascripts/Cesium/Workers/createRectangleOutlineGeometry.js +62 -13
  76. data/app/assets/javascripts/Cesium/Workers/createSimplePolylineGeometry.js +54 -13
  77. data/app/assets/javascripts/Cesium/Workers/createSphereGeometry.js +57 -11
  78. data/app/assets/javascripts/Cesium/Workers/createSphereOutlineGeometry.js +49 -11
  79. data/app/assets/javascripts/Cesium/Workers/createVerticesFromHeightmap.js +105 -28
  80. data/app/assets/javascripts/Cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +105 -28
  81. data/app/assets/javascripts/Cesium/Workers/createWallGeometry.js +63 -13
  82. data/app/assets/javascripts/Cesium/Workers/createWallOutlineGeometry.js +59 -13
  83. data/app/assets/javascripts/Cesium/Workers/upsampleQuantizedTerrainMesh.js +105 -28
  84. data/lib/cesium/version.rb +1 -1
  85. data/test/dummy/log/development.log +58 -0
  86. data/test/dummy/tmp/cache/assets/C16/BE0/sprockets%2F730c481502395cc21463bcc305986308 +0 -0
  87. data/test/dummy/tmp/cache/assets/C2B/E00/sprockets%2Fc04978048739428a79d6348576ab030a +0 -0
  88. data/test/dummy/tmp/cache/assets/C54/680/sprockets%2F31c6133a4541f42b507e5689b076759f +0 -0
  89. data/test/dummy/tmp/cache/assets/C7C/C90/sprockets%2F92c082511a234b21cf6c479b6f507576 +0 -0
  90. data/test/dummy/tmp/cache/assets/C80/710/sprockets%2F41b1692a0f1a77581854ee4b7709913a +0 -0
  91. data/test/dummy/tmp/cache/assets/C80/CD0/sprockets%2F0032971af77940c1af9e2f460177809a +0 -0
  92. data/test/dummy/tmp/cache/assets/C91/0D0/sprockets%2F5bd71287903ba95d2fb5743719549e92 +0 -0
  93. data/test/dummy/tmp/cache/assets/C91/8A0/sprockets%2Fe02395f83f6f5201913e1b888f46f645 +0 -0
  94. data/test/dummy/tmp/cache/assets/C92/9A0/sprockets%2F6c85f9c609287aa6552391f576f0f405 +0 -0
  95. data/test/dummy/tmp/cache/assets/C9F/3A0/sprockets%2F2469356cd21d5a5902b06584ea0b20d5 +0 -0
  96. data/test/dummy/tmp/cache/assets/CAF/8F0/sprockets%2Fdfb0351981258b34aa1a77478e5027e7 +0 -0
  97. data/test/dummy/tmp/cache/assets/CB1/EE0/sprockets%2F931d2725b8c14ed84a31e373fc813188 +0 -0
  98. data/test/dummy/tmp/cache/assets/CB2/5A0/sprockets%2F434a0c6d7c301964022e91e8f99bb727 +0 -0
  99. data/test/dummy/tmp/cache/assets/CB4/D90/sprockets%2F5fb974e230f8a43f0146694636b621fc +0 -0
  100. data/test/dummy/tmp/cache/assets/CB7/2E0/sprockets%2Ff1ed26933745612dc769d5fb75c17321 +0 -0
  101. data/test/dummy/tmp/cache/assets/CB7/A10/sprockets%2Fd34b045e6d4215367bcf6f08e4638926 +0 -0
  102. data/test/dummy/tmp/cache/assets/CB7/C10/sprockets%2F262600ead4686290c10b01aa60e0ce20 +0 -0
  103. data/test/dummy/tmp/cache/assets/CB7/FA0/sprockets%2Fe11b1d418699c10ce19c92b8a8562992 +0 -0
  104. data/test/dummy/tmp/cache/assets/CB9/FD0/sprockets%2F868358f2ee30f4326e761014cd2576ee +0 -0
  105. data/test/dummy/tmp/cache/assets/CBB/5D0/sprockets%2F7965dc683e03140b80566dbd76677f0c +0 -0
  106. data/test/dummy/tmp/cache/assets/CC3/1D0/sprockets%2Fe05f83785d87559e712ef7331136b7fa +0 -0
  107. data/test/dummy/tmp/cache/assets/CC9/200/sprockets%2F742fb8ce196abf238199836fd7457166 +0 -0
  108. data/test/dummy/tmp/cache/assets/CD0/310/sprockets%2F825eb4414b555ce140fc46ad24b48061 +0 -0
  109. data/test/dummy/tmp/cache/assets/CD3/940/sprockets%2F641b837eeb02a10631a0d20acd987887 +0 -0
  110. data/test/dummy/tmp/cache/assets/CD4/D30/sprockets%2F6741dd0454f9080fa418ed09a192ab40 +0 -0
  111. data/test/dummy/tmp/cache/assets/CD5/900/sprockets%2F0603a31cdcdf8ec2872219242c65f336 +0 -0
  112. data/test/dummy/tmp/cache/assets/CD8/B20/sprockets%2F364405189b0c5f332ae0fe14a05f95d8 +0 -0
  113. data/test/dummy/tmp/cache/assets/CD9/3C0/sprockets%2Fb082b86281b7a873eb2250f31854afd4 +0 -0
  114. data/test/dummy/tmp/cache/assets/CDA/700/sprockets%2F24c5884ae3352ca70a9546d02bb6e844 +0 -0
  115. data/test/dummy/tmp/cache/assets/CDC/3A0/sprockets%2F2bdb3f8510205db3f3bf4605947851f7 +0 -0
  116. data/test/dummy/tmp/cache/assets/CDC/910/sprockets%2F4127b7bf7565f5eb82a54f5012c7512d +0 -0
  117. data/test/dummy/tmp/cache/assets/CDD/5A0/sprockets%2Fb7dfa40599517f39400db36240fa16c9 +0 -0
  118. data/test/dummy/tmp/cache/assets/CE0/340/sprockets%2F284aa881b4e78191f904a950baf6209b +0 -0
  119. data/test/dummy/tmp/cache/assets/CE4/970/sprockets%2F32866ea407500e99bb62e5c62a8617df +0 -0
  120. data/test/dummy/tmp/cache/assets/CE6/DD0/sprockets%2Ffd590df3a5e39763c7258802d8233c1c +0 -0
  121. data/test/dummy/tmp/cache/assets/CEB/1D0/sprockets%2Fb3014c30d4b5ad090fb00a5a303b7929 +0 -0
  122. data/test/dummy/tmp/cache/assets/CEC/230/sprockets%2F06c6439d6734e9122d0429d99bd76ceb +0 -0
  123. data/test/dummy/tmp/cache/assets/CEC/9B0/sprockets%2F623d2921e3b7bd6cbe9288253e18e776 +0 -0
  124. data/test/dummy/tmp/cache/assets/CF0/2D0/sprockets%2F2a12ef035037b0440f54e40e6ad2db70 +0 -0
  125. data/test/dummy/tmp/cache/assets/CF0/8D0/sprockets%2Fd87a027ff95cd7b9080555d76f16824a +0 -0
  126. data/test/dummy/tmp/cache/assets/CF6/3F0/sprockets%2Fc8a187687d86c86d20ccd8d39258428a +0 -0
  127. data/test/dummy/tmp/cache/assets/CF7/F70/sprockets%2Fae6e6576ed90a32b820967df2b797397 +0 -0
  128. data/test/dummy/tmp/cache/assets/CF9/CA0/sprockets%2Fe3287c6767a894efd1e4461ae21599e8 +0 -0
  129. data/test/dummy/tmp/cache/assets/CFA/720/sprockets%2Fdc2ea106de9ab60be261248f21059224 +0 -0
  130. data/test/dummy/tmp/cache/assets/CFA/B50/sprockets%2F8505a240bc3a2e4b1a953417c73ebc72 +0 -0
  131. data/test/dummy/tmp/cache/assets/CFC/0E0/sprockets%2Fe99f6ace35113dfc044311e14a605a51 +0 -0
  132. data/test/dummy/tmp/cache/assets/CFC/9F0/sprockets%2F7922cd5ca1a340f4b4d450bad4551916 +0 -0
  133. data/test/dummy/tmp/cache/assets/CFD/470/sprockets%2Fd1eb4316039dba02de282ac28358b913 +0 -0
  134. data/test/dummy/tmp/cache/assets/CFE/AE0/sprockets%2F7c886a80519554ea620aac2325bb1ce0 +0 -0
  135. data/test/dummy/tmp/cache/assets/D00/C10/sprockets%2F169d5c9cc4598e63f95577f52e9da370 +0 -0
  136. data/test/dummy/tmp/cache/assets/D01/A60/sprockets%2F3ca75cfcf2037d5364e4531448da120d +0 -0
  137. data/test/dummy/tmp/cache/assets/D09/210/sprockets%2F0c57094235e32edddcc747ed202873b3 +0 -0
  138. data/test/dummy/tmp/cache/assets/D0A/810/sprockets%2F9cc7c89425ba1686a18a1d8beb005209 +0 -0
  139. data/test/dummy/tmp/cache/assets/D0A/CB0/sprockets%2F01b7bc8d4406b16b212891ef72eeb775 +0 -0
  140. data/test/dummy/tmp/cache/assets/D0E/A10/sprockets%2F05ebd4b57720dbc2c207882946bd47a9 +0 -0
  141. data/test/dummy/tmp/cache/assets/D0E/C00/sprockets%2F010b6f849ec9259fa3de514a18e74a32 +0 -0
  142. data/test/dummy/tmp/cache/assets/D0F/980/sprockets%2Fdaa14ed9a3657161c56c66483e2d17e4 +0 -0
  143. data/test/dummy/tmp/cache/assets/D11/C40/sprockets%2F04aecf869ffe1036d6a34e5412b37548 +0 -0
  144. data/test/dummy/tmp/cache/assets/D15/6B0/sprockets%2F3bfbac97eb5796307418d0f0e679144a +0 -0
  145. data/test/dummy/tmp/cache/assets/D16/0C0/sprockets%2F58fb9abfdb670a8502813dc88487711a +0 -0
  146. data/test/dummy/tmp/cache/assets/D16/2C0/sprockets%2Fa90ad78854c9bd1156e3866eb0e234f5 +0 -0
  147. data/test/dummy/tmp/cache/assets/D18/290/sprockets%2F5cb980f53c999c04b9b0b930dd08266e +0 -0
  148. data/test/dummy/tmp/cache/assets/D19/420/sprockets%2F379a804e588c4e9ca18e4ee3306653ac +0 -0
  149. data/test/dummy/tmp/cache/assets/D1A/5D0/sprockets%2F5131b11116be12111ba22e43df8f2fec +0 -0
  150. data/test/dummy/tmp/cache/assets/D1A/670/sprockets%2F4f45089e5678ba2b1c06518bde98a7d4 +0 -0
  151. data/test/dummy/tmp/cache/assets/D1C/540/sprockets%2F334e02662b45fcc11013c90d2ebaad05 +0 -0
  152. data/test/dummy/tmp/cache/assets/D1D/C90/sprockets%2Fa688522a4494897a6f6a5e6b80b0c4ff +0 -0
  153. data/test/dummy/tmp/cache/assets/D25/5B0/sprockets%2F56355268a998595bebb9b6c42ba875af +0 -0
  154. data/test/dummy/tmp/cache/assets/D26/C90/sprockets%2Ff78c003cad298697456d86b714e36eff +0 -0
  155. data/test/dummy/tmp/cache/assets/D29/F80/sprockets%2F3d888988ef5e7292bf1f181eb622b19f +0 -0
  156. data/test/dummy/tmp/cache/assets/D34/950/sprockets%2Fa9ab3c0627dd00d6b037ddf42259448d +0 -0
  157. data/test/dummy/tmp/cache/assets/D34/E10/sprockets%2F74034ea037bd6434c8eb68ccf2b3026d +0 -0
  158. data/test/dummy/tmp/cache/assets/D37/F00/sprockets%2F18060fd4371473efaa135cea6076ced7 +0 -0
  159. data/test/dummy/tmp/cache/assets/D37/F20/sprockets%2F16df6ed68997bc0c45996cff6797760b +0 -0
  160. data/test/dummy/tmp/cache/assets/D3A/9E0/sprockets%2F62f2cbed105a1411ff3e9f2f7167089a +0 -0
  161. data/test/dummy/tmp/cache/assets/D3A/F00/sprockets%2Fa682b6bc9df4741b972e1f371d70d0c0 +0 -0
  162. data/test/dummy/tmp/cache/assets/D3B/2C0/sprockets%2F5f98712fffc4d6ac560ec126317c3d10 +0 -0
  163. data/test/dummy/tmp/cache/assets/D3C/FE0/sprockets%2F24f6d543983043d0d1feefacb090196e +0 -0
  164. data/test/dummy/tmp/cache/assets/D3E/500/sprockets%2Fe0d19b79ad67649fb3c1cf715a11a393 +0 -0
  165. data/test/dummy/tmp/cache/assets/D3E/520/sprockets%2F4765d7ea3ba6a5d16231c29de0d958c4 +0 -0
  166. data/test/dummy/tmp/cache/assets/D3F/5E0/sprockets%2Fcbf1d7fac4114ec9059f87f2a0936342 +0 -0
  167. data/test/dummy/tmp/cache/assets/D40/880/sprockets%2F7813c7a2e234b7d2dcca77bff3315587 +0 -0
  168. data/test/dummy/tmp/cache/assets/D43/010/sprockets%2F99f2034c5afbf60c8d6d7a9b52615b80 +0 -0
  169. data/test/dummy/tmp/cache/assets/D45/0C0/sprockets%2F516fc9d887a1ad9640352f26fcd2a90e +0 -0
  170. data/test/dummy/tmp/cache/assets/D46/890/sprockets%2F5ca5e9e8272bf7e14e20f4ea81078d91 +0 -0
  171. data/test/dummy/tmp/cache/assets/D48/140/sprockets%2Fe57106ab8293a7f3d776e690bbd447dc +0 -0
  172. data/test/dummy/tmp/cache/assets/D49/000/sprockets%2Fd94896eee0f35a0a966393090fcc3fc1 +0 -0
  173. data/test/dummy/tmp/cache/assets/D4B/3C0/sprockets%2F26891ba685ff4c6f9d4f2f1c6242f03f +0 -0
  174. data/test/dummy/tmp/cache/assets/D4B/EB0/sprockets%2F90e1f184458ccb432d9fddb8994423af +0 -0
  175. data/test/dummy/tmp/cache/assets/D4B/F30/sprockets%2F87e2067c8a98c80860ca18525aefaff4 +0 -0
  176. data/test/dummy/tmp/cache/assets/D50/F40/sprockets%2F0a264e8ef7b828ffbc499e545d1d3554 +0 -0
  177. data/test/dummy/tmp/cache/assets/D52/C10/sprockets%2Fdf92f8b92422d0c6196e986b0fa84d8d +0 -0
  178. data/test/dummy/tmp/cache/assets/D53/0B0/sprockets%2F3ce0380426fadc73b3e4b21a4b305d6a +0 -0
  179. data/test/dummy/tmp/cache/assets/D55/050/sprockets%2Ff8a1519f64f695a48b04fc494d7fce19 +0 -0
  180. data/test/dummy/tmp/cache/assets/D57/5C0/sprockets%2F2da710dd9256d942b03cfcac3602ca16 +0 -0
  181. data/test/dummy/tmp/cache/assets/D59/110/sprockets%2F2ec0c121af2f7eb46d4a164c3fd75032 +0 -0
  182. data/test/dummy/tmp/cache/assets/D59/F50/sprockets%2F9f2c7e737ba13a57c6ff589292d86fa7 +0 -0
  183. data/test/dummy/tmp/cache/assets/D5C/370/sprockets%2Ff6f72925d6c49e05e66faa4765fe8c57 +0 -0
  184. data/test/dummy/tmp/cache/assets/D5E/540/sprockets%2F989fc9956e6f8db3448a45ffca0e2834 +0 -0
  185. data/test/dummy/tmp/cache/assets/D63/2C0/sprockets%2Fb29b4f22c11cdf82445a279ce2b3e08b +0 -0
  186. data/test/dummy/tmp/cache/assets/D65/390/sprockets%2F5a8932bfeba07d1607613f62bf1b9e1b +0 -0
  187. data/test/dummy/tmp/cache/assets/D66/680/sprockets%2Feac220c53d6b904767a143f4fd1f66cb +0 -0
  188. data/test/dummy/tmp/cache/assets/D67/F30/sprockets%2Fa1c2a19503d7136786bf4c98fdb0cda3 +0 -0
  189. data/test/dummy/tmp/cache/assets/D68/7B0/sprockets%2F01f91bbce586ad5a7181d176fa5bc454 +0 -0
  190. data/test/dummy/tmp/cache/assets/D6F/FF0/sprockets%2Fc74fa24a4bb8a8c9e77cfd024536324e +0 -0
  191. data/test/dummy/tmp/cache/assets/D72/260/sprockets%2F805c75a5e038c51b5bab63f7af785ef3 +0 -0
  192. data/test/dummy/tmp/cache/assets/D72/AD0/sprockets%2F73ce023923f93c1f4dd858d329d4adda +0 -0
  193. data/test/dummy/tmp/cache/assets/D73/1E0/sprockets%2F2028a62d96b8b021e87ea2c9dded688a +0 -0
  194. data/test/dummy/tmp/cache/assets/D73/920/sprockets%2F77a5d5acdcd4b3629277aa338f8d7e12 +0 -0
  195. data/test/dummy/tmp/cache/assets/D74/F00/sprockets%2F35bfb58f60c6bdd9076b5319d09d4b3f +0 -0
  196. data/test/dummy/tmp/cache/assets/D75/2C0/sprockets%2F5580e9bd1b1d8e6bf3ea14e7b3568d73 +0 -0
  197. data/test/dummy/tmp/cache/assets/D77/AE0/sprockets%2F5668bbe7bf9792cfd8da59d01b7a1061 +0 -0
  198. data/test/dummy/tmp/cache/assets/D7A/3F0/sprockets%2Fbf3d583f5ba468586a1db5f56e52ef61 +0 -0
  199. data/test/dummy/tmp/cache/assets/D7B/230/sprockets%2F4e473cebde712a45d9879939c2e2bec1 +0 -0
  200. data/test/dummy/tmp/cache/assets/D7B/260/sprockets%2F0d277dabe82a3ad3ec30ce2a14a52303 +0 -0
  201. data/test/dummy/tmp/cache/assets/D7C/FB0/sprockets%2Fe8f0b9a5d83e431c3d687b93bd59e34c +0 -0
  202. data/test/dummy/tmp/cache/assets/D80/4A0/sprockets%2Fc0322f552fc7ddecd97889feaf544660 +0 -0
  203. data/test/dummy/tmp/cache/assets/D86/8D0/sprockets%2F01297d1e51cdfbcce40ca119a6af0291 +0 -0
  204. data/test/dummy/tmp/cache/assets/D88/6E0/sprockets%2F2d8c8f5d9e37f75a0a9b68b5cb9485e4 +0 -0
  205. data/test/dummy/tmp/cache/assets/D89/DF0/sprockets%2Fb8ca8ddcdf983496f377059c08f04e6f +0 -0
  206. data/test/dummy/tmp/cache/assets/D97/A10/sprockets%2Ff1fe3b6160ec3da42f287aed3d3235c9 +0 -0
  207. data/test/dummy/tmp/cache/assets/D9C/230/sprockets%2F5126f140ae32b9557afd23d7f8cbdbc9 +0 -0
  208. data/test/dummy/tmp/cache/assets/D9D/450/sprockets%2Fcc373a7814f46e9e68d3cb8ab0ec6a20 +0 -0
  209. data/test/dummy/tmp/cache/assets/D9D/E00/sprockets%2F62f7d32b35fb23cc6360fbedd75c6e17 +0 -0
  210. data/test/dummy/tmp/cache/assets/D9E/750/sprockets%2F3ab32a9aab15487d6b9be355c37dfe92 +0 -0
  211. data/test/dummy/tmp/cache/assets/D9F/6E0/sprockets%2Fbb0a236a70758a95bbcb8e66e588c2cd +0 -0
  212. data/test/dummy/tmp/cache/assets/D9F/790/sprockets%2F4d9649c0c0fdecf285b30fa1474b59db +0 -0
  213. data/test/dummy/tmp/cache/assets/DA7/690/sprockets%2Fc49a7fa0c7dc57f03aa9f4fdb3994291 +0 -0
  214. data/test/dummy/tmp/cache/assets/DA8/B70/sprockets%2F3ddd853d4c7253dc5ab53748cc7e4f5f +0 -0
  215. data/test/dummy/tmp/cache/assets/DA9/6C0/sprockets%2Fff22f389eaabe920d9917593f53d0add +0 -0
  216. data/test/dummy/tmp/cache/assets/DAA/D30/sprockets%2Fba92440f66d3ab82ccfcd4f86e899a16 +0 -0
  217. data/test/dummy/tmp/cache/assets/DAE/8E0/sprockets%2Faee3dc2a887eeee336ef1893818372bd +0 -0
  218. data/test/dummy/tmp/cache/assets/DBC/A70/sprockets%2F0f7da71f1d2e23fc55bc2441e0efa41f +0 -0
  219. data/test/dummy/tmp/cache/assets/DBE/2C0/sprockets%2F551e2bb3e1bc603f1d8e829b24bf4ada +0 -0
  220. data/test/dummy/tmp/cache/assets/DC3/160/sprockets%2F129f0ad08b545cfedaf5ab12c5059de5 +0 -0
  221. data/test/dummy/tmp/cache/assets/DC8/590/sprockets%2F804613cab66aacfd4fae5f0ea275692e +0 -0
  222. data/test/dummy/tmp/cache/assets/DC8/670/sprockets%2F47b5310b4dbf58b2b8dcd6ba98c05db6 +0 -0
  223. data/test/dummy/tmp/cache/assets/DC9/BC0/sprockets%2F42d9ff9f511d0c7e072f24bbfc305cce +0 -0
  224. data/test/dummy/tmp/cache/assets/DCA/310/sprockets%2F032481b7ad8da4f7ecc2ea13fd7497ac +0 -0
  225. data/test/dummy/tmp/cache/assets/DCF/5D0/sprockets%2F95dcbbc1e3f58076e0fbc297cbaf9124 +0 -0
  226. data/test/dummy/tmp/cache/assets/DCF/6F0/sprockets%2Fb35295b9c0ed38dd040ea475edfea37f +0 -0
  227. data/test/dummy/tmp/cache/assets/DCF/AC0/sprockets%2Fca3f2c931d05fd9271edb9db0f19c92f +0 -0
  228. data/test/dummy/tmp/cache/assets/DD2/720/sprockets%2Fa7e3feaca76d2fd8f11d79a30938b70d +0 -0
  229. data/test/dummy/tmp/cache/assets/DD3/150/sprockets%2Fbae8affcbd247de88930e215e7d4d460 +0 -0
  230. data/test/dummy/tmp/cache/assets/DDD/370/sprockets%2F016219ffdd478c3c40e6f4efee84da9f +0 -0
  231. data/test/dummy/tmp/cache/assets/DDE/860/sprockets%2F8c57c9956b38b6572a9dcd1a6fcbeaf4 +0 -0
  232. data/test/dummy/tmp/cache/assets/DEA/980/sprockets%2Fc5897a1f996aafff34f555f76a39fbbd +0 -0
  233. data/test/dummy/tmp/cache/assets/DEC/5F0/sprockets%2F410f8c0c1dcf61a1d2dc2a7d3e5bd5e8 +0 -0
  234. data/test/dummy/tmp/cache/assets/DEE/930/sprockets%2F8e899ec8a7afe2577634ef981ccabcc9 +0 -0
  235. data/test/dummy/tmp/cache/assets/DF3/7B0/sprockets%2Fbe3e96d12fac88a1e35da10fad9722ca +0 -0
  236. data/test/dummy/tmp/cache/assets/E01/7D0/sprockets%2F771e23888dbed36f017cbb35acdbc8df +0 -0
  237. data/test/dummy/tmp/cache/assets/E03/8C0/sprockets%2Fdddca472be9884cdfe6af78222bad074 +0 -0
  238. data/test/dummy/tmp/cache/assets/E04/730/sprockets%2F583c8db59edef3f0c5b7e336e284babb +0 -0
  239. data/test/dummy/tmp/cache/assets/E0E/850/sprockets%2F9e16585b5e9e67d2ad3bfc79fe3c3cbb +0 -0
  240. data/test/dummy/tmp/cache/assets/E16/890/sprockets%2F25d48ca77decab21aa4e144a30aed4ed +0 -0
  241. data/test/dummy/tmp/cache/assets/E28/A80/sprockets%2F34a8d9e9cbd7a2a5178da0afbf4e10fd +0 -0
  242. data/test/dummy/tmp/cache/assets/E28/D00/sprockets%2Fcb82c1534ddccee2fa79b6a84e1d3ae4 +0 -0
  243. data/test/dummy/tmp/cache/assets/E31/6E0/sprockets%2Ff305b61e7fa499ad2504bfebb9e7edea +0 -0
  244. data/test/dummy/tmp/cache/assets/E6E/9C0/sprockets%2Ffa55f351fcecf1bc2ba6ba1310cbfaa5 +0 -0
  245. data/test/dummy/tmp/data/meta_request/9f4fa7337e7e94a98f0b910b6ca482cc.json +1 -0
  246. data/test/dummy/tmp/data/meta_request/daa67d658c0acef85e2bd06df1c83b29.json +1 -0
  247. data/test/dummy/tmp/data/meta_request/dce6a6c9d301470e341c23d760d54745.json +1 -0
  248. metadata +8 -4
  249. data/test/dummy/tmp/data/meta_request/efac4ed670e3c58c510e003f42e04992.json +0 -1
@@ -630,6 +630,8 @@ define([
630
630
  * @param {RectangleGeometry} value The value to pack.
631
631
  * @param {Number[]} array The array to pack into.
632
632
  * @param {Number} [startingIndex=0] The index into the array at which to start packing the elements.
633
+ *
634
+ * @returns {Number[]} The array that was packed into
633
635
  */
634
636
  RectangleGeometry.pack = function(value, array, startingIndex) {
635
637
  //>>includeStart('debug', pragmas.debug);
@@ -664,6 +666,8 @@ define([
664
666
  array[startingIndex++] = value._extrude ? 1.0 : 0.0;
665
667
  array[startingIndex++] = value._closeTop ? 1.0 : 0.0;
666
668
  array[startingIndex] = value._closeBottom ? 1.0 : 0.0;
669
+
670
+ return array;
667
671
  };
668
672
 
669
673
  var scratchRectangle = new Rectangle();
@@ -230,6 +230,8 @@ define([
230
230
  * @param {RectangleOutlineGeometry} value The value to pack.
231
231
  * @param {Number[]} array The array to pack into.
232
232
  * @param {Number} [startingIndex=0] The index into the array at which to start packing the elements.
233
+ *
234
+ * @returns {Number[]} The array that was packed into
233
235
  */
234
236
  RectangleOutlineGeometry.pack = function(value, array, startingIndex) {
235
237
  //>>includeStart('debug', pragmas.debug);
@@ -255,6 +257,8 @@ define([
255
257
  array[startingIndex++] = value._rotation;
256
258
  array[startingIndex++] = defined(value._extrudedHeight) ? 1.0 : 0.0;
257
259
  array[startingIndex] = defaultValue(value._extrudedHeight, 0.0);
260
+
261
+ return array;
258
262
  };
259
263
 
260
264
  var scratchRectangle = new Rectangle();
@@ -143,6 +143,8 @@ define([
143
143
  * @param {SimplePolylineGeometry} value The value to pack.
144
144
  * @param {Number[]} array The array to pack into.
145
145
  * @param {Number} [startingIndex=0] The index into the array at which to start packing the elements.
146
+ *
147
+ * @returns {Number[]} The array that was packed into
146
148
  */
147
149
  SimplePolylineGeometry.pack = function(value, array, startingIndex) {
148
150
  //>>includeStart('debug', pragmas.debug);
@@ -180,6 +182,8 @@ define([
180
182
  array[startingIndex++] = value._colorsPerVertex ? 1.0 : 0.0;
181
183
  array[startingIndex++] = value._followSurface ? 1.0 : 0.0;
182
184
  array[startingIndex] = value._granularity;
185
+
186
+ return array;
183
187
  };
184
188
 
185
189
  /**
@@ -65,6 +65,8 @@ define([
65
65
  * @param {SphereGeometry} value The value to pack.
66
66
  * @param {Number[]} array The array to pack into.
67
67
  * @param {Number} [startingIndex=0] The index into the array at which to start packing the elements.
68
+ *
69
+ * @returns {Number[]} The array that was packed into
68
70
  */
69
71
  SphereGeometry.pack = function(value, array, startingIndex) {
70
72
  //>>includeStart('debug', pragmas.debug);
@@ -73,7 +75,7 @@ define([
73
75
  }
74
76
  //>>includeEnd('debug');
75
77
 
76
- EllipsoidGeometry.pack(value._ellipsoidGeometry, array, startingIndex);
78
+ return EllipsoidGeometry.pack(value._ellipsoidGeometry, array, startingIndex);
77
79
  };
78
80
 
79
81
  var scratchEllipsoidGeometry = new EllipsoidGeometry();
@@ -63,6 +63,8 @@ define([
63
63
  * @param {SphereOutlineGeometry} value The value to pack.
64
64
  * @param {Number[]} array The array to pack into.
65
65
  * @param {Number} [startingIndex=0] The index into the array at which to start packing the elements.
66
+ *
67
+ * @returns {Number[]} The array that was packed into
66
68
  */
67
69
  SphereOutlineGeometry.pack = function(value, array, startingIndex) {
68
70
  //>>includeStart('debug', pragmas.debug);
@@ -71,7 +73,7 @@ define([
71
73
  }
72
74
  //>>includeEnd('debug');
73
75
 
74
- EllipsoidOutlineGeometry.pack(value._ellipsoidGeometry, array, startingIndex);
76
+ return EllipsoidOutlineGeometry.pack(value._ellipsoidGeometry, array, startingIndex);
75
77
  };
76
78
 
77
79
  var scratchEllipsoidGeometry = new EllipsoidOutlineGeometry();
@@ -227,6 +227,8 @@ define([
227
227
  * @param {VertexFormat} value The value to pack.
228
228
  * @param {Number[]} array The array to pack into.
229
229
  * @param {Number} [startingIndex=0] The index into the array at which to start packing the elements.
230
+ *
231
+ * @returns {Number[]} The array that was packed into
230
232
  */
231
233
  VertexFormat.pack = function(value, array, startingIndex) {
232
234
  //>>includeStart('debug', pragmas.debug);
@@ -246,6 +248,8 @@ define([
246
248
  array[startingIndex++] = value.binormal ? 1.0 : 0.0;
247
249
  array[startingIndex++] = value.tangent ? 1.0 : 0.0;
248
250
  array[startingIndex++] = value.color ? 1.0 : 0.0;
251
+
252
+ return array;
249
253
  };
250
254
 
251
255
  /**
@@ -133,6 +133,8 @@ define([
133
133
  * @param {WallGeometry} value The value to pack.
134
134
  * @param {Number[]} array The array to pack into.
135
135
  * @param {Number} [startingIndex=0] The index into the array at which to start packing the elements.
136
+ *
137
+ * @returns {Number[]} The array that was packed into
136
138
  */
137
139
  WallGeometry.pack = function(value, array, startingIndex) {
138
140
  //>>includeStart('debug', pragmas.debug);
@@ -183,6 +185,8 @@ define([
183
185
  startingIndex += VertexFormat.packedLength;
184
186
 
185
187
  array[startingIndex] = value._granularity;
188
+
189
+ return array;
186
190
  };
187
191
 
188
192
  var scratchEllipsoid = Ellipsoid.clone(Ellipsoid.UNIT_SPHERE);
@@ -120,6 +120,8 @@ define([
120
120
  * @param {WallOutlineGeometry} value The value to pack.
121
121
  * @param {Number[]} array The array to pack into.
122
122
  * @param {Number} [startingIndex=0] The index into the array at which to start packing the elements.
123
+ *
124
+ * @returns {Number[]} The array that was packed into
123
125
  */
124
126
  WallOutlineGeometry.pack = function(value, array, startingIndex) {
125
127
  //>>includeStart('debug', pragmas.debug);
@@ -167,6 +169,8 @@ define([
167
169
  startingIndex += Ellipsoid.packedLength;
168
170
 
169
171
  array[startingIndex] = value._granularity;
172
+
173
+ return array;
170
174
  };
171
175
 
172
176
  var scratchEllipsoid = Ellipsoid.clone(Ellipsoid.UNIT_SPHERE);
@@ -36,7 +36,7 @@ define([
36
36
  * @param {Property} [options.eyeOffset=Cartesian3.ZERO] A {@link Cartesian3} Property specifying the eye offset.
37
37
  * @param {Property} [options.pixelOffset=Cartesian2.ZERO] A {@link Cartesian2} Property specifying the pixel offset.
38
38
  * @param {Property} [options.rotation=0] A numeric Property specifying the rotation about the alignedAxis.
39
- * @param {Property} [options.alignedAxis=Cartesian3.ZERO] A {@link Cartesian3} Property specifying the axis of rotation.
39
+ * @param {Property} [options.alignedAxis=Cartesian3.ZERO] A {@link Cartesian3} Property specifying the unit vector axis of rotation.
40
40
  * @param {Property} [options.width] A numeric Property specifying the width of the billboard in pixels, overriding the native size.
41
41
  * @param {Property} [options.height] A numeric Property specifying the height of the billboard in pixels, overriding the native size.
42
42
  * @param {Property} [options.color=Color.WHITE] A Property specifying the tint {@link Color} of the image.
@@ -146,7 +146,7 @@ define([
146
146
  rotation : createPropertyDescriptor('rotation'),
147
147
 
148
148
  /**
149
- * Gets or sets the {@link Cartesian3} Property specifying the axis of rotation
149
+ * Gets or sets the {@link Cartesian3} Property specifying the unit vector axis of rotation
150
150
  * in the fixed frame. When set to Cartesian3.ZERO the rotation is from the top of the screen.
151
151
  * @memberof BillboardGraphics.prototype
152
152
  * @type {Property}
@@ -79,6 +79,7 @@ define([
79
79
  './StripeOrientation',
80
80
  './TimeIntervalCollectionPositionProperty',
81
81
  './TimeIntervalCollectionProperty',
82
+ './VelocityVectorProperty',
82
83
  './WallGraphics'
83
84
  ], function(
84
85
  BoundingRectangle,
@@ -160,6 +161,7 @@ define([
160
161
  StripeOrientation,
161
162
  TimeIntervalCollectionPositionProperty,
162
163
  TimeIntervalCollectionProperty,
164
+ VelocityVectorProperty,
163
165
  WallGraphics) {
164
166
  'use strict';
165
167
 
@@ -1089,6 +1091,18 @@ define([
1089
1091
  iso8601 : undefined
1090
1092
  };
1091
1093
 
1094
+ function processAlignedAxis(billboard, packetData, interval, sourceUri, entityCollection) {
1095
+ if (!defined(packetData)) {
1096
+ return;
1097
+ }
1098
+
1099
+ if (defined(packetData.velocityReference)) {
1100
+ billboard.alignedAxis = new VelocityVectorProperty(makeReference(entityCollection, packetData.velocityReference), true);
1101
+ } else {
1102
+ processPacketData(Cartesian3, billboard, 'alignedAxis', packetData, interval, sourceUri, entityCollection);
1103
+ }
1104
+ }
1105
+
1092
1106
  function processBillboard(entity, packet, entityCollection, sourceUri) {
1093
1107
  var billboardData = packet.billboard;
1094
1108
  if (!defined(billboardData)) {
@@ -1117,7 +1131,7 @@ define([
1117
1131
  processPacketData(HeightReference, billboard, 'heightReference', billboardData.heightReference, interval, sourceUri, entityCollection);
1118
1132
  processPacketData(Color, billboard, 'color', billboardData.color, interval, sourceUri, entityCollection);
1119
1133
  processPacketData(Rotation, billboard, 'rotation', billboardData.rotation, interval, sourceUri, entityCollection);
1120
- processPacketData(Cartesian3, billboard, 'alignedAxis', billboardData.alignedAxis, interval, sourceUri, entityCollection);
1134
+ processAlignedAxis(billboard, billboardData.alignedAxis, interval, sourceUri, entityCollection);
1121
1135
  processPacketData(Boolean, billboard, 'sizeInMeters', billboardData.sizeInMeters, interval, sourceUri, entityCollection);
1122
1136
  processPacketData(Number, billboard, 'width', billboardData.width, interval, sourceUri, entityCollection);
1123
1137
  processPacketData(Number, billboard, 'height', billboardData.height, interval, sourceUri, entityCollection);
@@ -1343,7 +1357,7 @@ define([
1343
1357
  if (!defined(label)) {
1344
1358
  entity.label = label = new LabelGraphics();
1345
1359
  }
1346
-
1360
+
1347
1361
  processPacketData(Boolean, label, 'show', labelData.show, interval, sourceUri, entityCollection);
1348
1362
  processPacketData(String, label, 'text', labelData.text, interval, sourceUri, entityCollection);
1349
1363
  processPacketData(String, label, 'font', labelData.font, interval, sourceUri, entityCollection);
@@ -1495,12 +1509,12 @@ define([
1495
1509
 
1496
1510
  processPacketData(Boolean, point, 'show', pointData.show, interval, sourceUri, entityCollection);
1497
1511
  processPacketData(Number, point, 'pixelSize', pointData.pixelSize, interval, sourceUri, entityCollection);
1512
+ processPacketData(HeightReference, point, 'heightReference', pointData.heightReference, interval, sourceUri, entityCollection);
1498
1513
  processPacketData(Color, point, 'color', pointData.color, interval, sourceUri, entityCollection);
1499
1514
  processPacketData(Color, point, 'outlineColor', pointData.outlineColor, interval, sourceUri, entityCollection);
1500
1515
  processPacketData(Number, point, 'outlineWidth', pointData.outlineWidth, interval, sourceUri, entityCollection);
1501
1516
  processPacketData(NearFarScalar, point, 'scaleByDistance', pointData.scaleByDistance, interval, sourceUri, entityCollection);
1502
1517
  processPacketData(NearFarScalar, point, 'translucencyByDistance', pointData.translucencyByDistance, interval, sourceUri, entityCollection);
1503
- processPacketData(HeightReference, point, 'heightReference', pointData.heightReference, interval, sourceUri, entityCollection);
1504
1518
  }
1505
1519
 
1506
1520
  function processPolygon(entity, packet, entityCollection, sourceUri) {
@@ -34,7 +34,7 @@ define([
34
34
  * //a SampledProperty(Number) instead. Note, the actual
35
35
  * //return value is in radians, not degrees.
36
36
  * property.getValue(time2);
37
- *
37
+ *
38
38
  * @see PackableForInterpolation
39
39
  */
40
40
  var Rotation = {
@@ -50,6 +50,8 @@ define([
50
50
  * @param {Rotation} value The value to pack.
51
51
  * @param {Number[]} array The array to pack into.
52
52
  * @param {Number} [startingIndex=0] The index into the array at which to start packing the elements.
53
+ *
54
+ * @returns {Number[]} The array that was packed into
53
55
  */
54
56
  pack : function(value, array, startingIndex) {
55
57
  //>>includeStart('debug', pragmas.debug);
@@ -64,6 +66,8 @@ define([
64
66
 
65
67
  startingIndex = defaultValue(startingIndex, 0);
66
68
  array[startingIndex] = value;
69
+
70
+ return array;
67
71
  },
68
72
 
69
73
  /**
@@ -68,10 +68,8 @@ define([
68
68
 
69
69
  Batch.prototype.remove = function(updater) {
70
70
  var id = updater.entity.id;
71
- var createPrimitive = this.updaters.remove(id);
72
-
73
- if (createPrimitive) {
74
- this.geometry.remove(id);
71
+ this.createPrimitive = this.geometry.remove(id) || this.createPrimitive;
72
+ if (this.updaters.remove(id)) {
75
73
  this.updatersWithAttributes.remove(id);
76
74
  var unsubscribe = this.subscriptions.get(id);
77
75
  if (defined(unsubscribe)) {
@@ -79,8 +77,7 @@ define([
79
77
  this.subscriptions.remove(id);
80
78
  }
81
79
  }
82
- this.createPrimitive = createPrimitive;
83
- return createPrimitive;
80
+ return this.createPrimitive;
84
81
  };
85
82
 
86
83
  Batch.prototype.update = function(time) {
@@ -49,7 +49,7 @@ define([
49
49
  * }));
50
50
  */
51
51
  function VelocityOrientationProperty(position, ellipsoid) {
52
- this._velocityVectorProperty = new VelocityVectorProperty(position);
52
+ this._velocityVectorProperty = new VelocityVectorProperty(position, true);
53
53
  this._subscription = undefined;
54
54
  this._ellipsoid = undefined;
55
55
  this._definitionChanged = new Event();
@@ -27,6 +27,7 @@ define([
27
27
  * @constructor
28
28
  *
29
29
  * @param {Property} [position] The position property used to compute the velocity.
30
+ * @param {Boolean} [normalize=true] Whether to normalize the computed velocity vector.
30
31
  *
31
32
  * @example
32
33
  * //Create an entity with a billboard rotated to match its velocity.
@@ -36,14 +37,15 @@ define([
36
37
  * position : position,
37
38
  * billboard : {
38
39
  * image : 'image.png',
39
- * alignedAxis : new Cesium.VelocityVectorProperty(position)
40
+ * alignedAxis : new Cesium.VelocityVectorProperty(position, true) // alignedAxis must be a unit vector
40
41
  * }
41
42
  * }));
42
43
  */
43
- function VelocityVectorProperty(position) {
44
+ function VelocityVectorProperty(position, normalize) {
44
45
  this._position = undefined;
45
46
  this._subscription = undefined;
46
47
  this._definitionChanged = new Event();
48
+ this._normalize = defaultValue(normalize, true);
47
49
 
48
50
  this.position = position;
49
51
  }
@@ -74,7 +76,7 @@ define([
74
76
  }
75
77
  },
76
78
  /**
77
- * Gets or sets the position property used to compute orientation.
79
+ * Gets or sets the position property used to compute the velocity vector.
78
80
  * @memberof VelocityVectorProperty.prototype
79
81
  *
80
82
  * @type {Property}
@@ -101,12 +103,31 @@ define([
101
103
  this._definitionChanged.raiseEvent(this);
102
104
  }
103
105
  }
106
+ },
107
+ /**
108
+ * Gets or sets whether the vector produced by this property
109
+ * will be normalized or not.
110
+ * @memberof VelocityVectorProperty.prototype
111
+ *
112
+ * @type {Boolean}
113
+ */
114
+ normalize : {
115
+ get : function() {
116
+ return this._normalize;
117
+ },
118
+ set : function(value) {
119
+ if (this._normalize === value) {
120
+ return;
121
+ }
122
+
123
+ this._normalize = value;
124
+ this._definitionChanged.raiseEvent(this);
125
+ }
104
126
  }
105
127
  });
106
128
 
107
129
  var position1Scratch = new Cartesian3();
108
130
  var position2Scratch = new Cartesian3();
109
- var velocityScratch = new Cartesian3();
110
131
  var timeScratch = new JulianDate();
111
132
  var step = 1.0 / 60.0;
112
133
 
@@ -137,7 +158,7 @@ define([
137
158
 
138
159
  var property = this._position;
139
160
  if (Property.isConstant(property)) {
140
- return undefined;
161
+ return this._normalize ? undefined : Cartesian3.clone(Cartesian3.ZERO, velocityResult);
141
162
  }
142
163
 
143
164
  var position1 = property.getValue(time, position1Scratch);
@@ -159,15 +180,19 @@ define([
159
180
  }
160
181
 
161
182
  if (Cartesian3.equals(position1, position2)) {
162
- return undefined;
183
+ return this._normalize ? undefined : Cartesian3.clone(Cartesian3.ZERO, velocityResult);
163
184
  }
164
185
 
165
186
  if (defined(positionResult)) {
166
187
  position1.clone(positionResult);
167
188
  }
168
189
 
169
- var velocity = Cartesian3.subtract(position2, position1, velocityScratch);
170
- return Cartesian3.normalize(velocity, velocityResult);
190
+ var velocity = Cartesian3.subtract(position2, position1, velocityResult);
191
+ if (this._normalize) {
192
+ return Cartesian3.normalize(velocity, velocityResult);
193
+ } else {
194
+ return Cartesian3.divideByScalar(velocity, step, velocityResult);
195
+ }
171
196
  };
172
197
 
173
198
  /**
@@ -2140,7 +2140,7 @@ define([
2140
2140
  var shadowMaps = frameState.shadowMaps;
2141
2141
  var length = shadowMaps.length;
2142
2142
 
2143
- frameState.shadowHints.shadowsEnabled = (length > 0) && !frameState.passes.pick;
2143
+ frameState.shadowHints.shadowsEnabled = (length > 0) && !frameState.passes.pick && (scene.mode === SceneMode.SCENE3D);
2144
2144
  if (!frameState.shadowHints.shadowsEnabled) {
2145
2145
  return;
2146
2146
  }
@@ -89,6 +89,19 @@ define([
89
89
  * <li><code>{latitudeProjected}</code>: The latitude of the picked position in the projected coordinates of the tiling scheme.</li>
90
90
  * <li><code>{format}</code>: The format in which to get feature information, as specified in the {@link GetFeatureInfoFormat}.</li>
91
91
  * </ul>
92
+ * @param {Object} [options.urlSchemeZeroPadding] Gets the URL scheme zero padding for each tile coordinate. The format is '000' where
93
+ * each coordinate will be padded on the left with zeros to match the width of the passed string of zeros. e.g. Setting:
94
+ * urlSchemeZeroPadding : { '{x}' : '0000'}
95
+ * will cause an 'x' value of 12 to return the string '0012' for {x} in the generated URL.
96
+ * It the passed object has the following keywords:
97
+ * <ul>
98
+ * <li> <code>{z}</code>: The zero padding for the level of the tile in the tiling scheme.</li>
99
+ * <li> <code>{x}</code>: The zero padding for the tile X coordinate in the tiling scheme.</li>
100
+ * <li> <code>{y}</code>: The zero padding for the the tile Y coordinate in the tiling scheme.</li>
101
+ * <li> <code>{reverseX}</code>: The zero padding for the tile reverseX coordinate in the tiling scheme.</li>
102
+ * <li> <code>{reverseY}</code>: The zero padding for the tile reverseY coordinate in the tiling scheme.</li>
103
+ * <li> <code>{reverseZ}</code>: The zero padding for the reverseZ coordinate of the tile in the tiling scheme.</li>
104
+ * </ul>
92
105
  * @param {String|String[]} [options.subdomains='abc'] The subdomains to use for the <code>{s}</code> placeholder in the URL template.
93
106
  * If this parameter is a single string, each character in the string is a subdomain. If it is
94
107
  * an array, each element in the array is a subdomain.
@@ -170,6 +183,7 @@ define([
170
183
  this._errorEvent = new Event();
171
184
 
172
185
  this._url = undefined;
186
+ this._urlSchemeZeroPadding = undefined;
173
187
  this._pickFeaturesUrl = undefined;
174
188
  this._proxy = undefined;
175
189
  this._tileWidth = undefined;
@@ -229,6 +243,31 @@ define([
229
243
  }
230
244
  },
231
245
 
246
+ /**
247
+ * Gets the URL scheme zero padding for each tile coordinate. The format is '000' where each coordinate will be padded on
248
+ * the left with zeros to match the width of the passed string of zeros. e.g. Setting:
249
+ * urlSchemeZeroPadding : { '{x}' : '0000'}
250
+ * will cause an 'x' value of 12 to return the string '0012' for {x} in the generated URL.
251
+ * It has the following keywords:
252
+ * <ul>
253
+ * <li> <code>{z}</code>: The zero padding for the level of the tile in the tiling scheme.</li>
254
+ * <li> <code>{x}</code>: The zero padding for the tile X coordinate in the tiling scheme.</li>
255
+ * <li> <code>{y}</code>: The zero padding for the the tile Y coordinate in the tiling scheme.</li>
256
+ * <li> <code>{reverseX}</code>: The zero padding for the tile reverseX coordinate in the tiling scheme.</li>
257
+ * <li> <code>{reverseY}</code>: The zero padding for the tile reverseY coordinate in the tiling scheme.</li>
258
+ * <li> <code>{reverseZ}</code>: The zero padding for the reverseZ coordinate of the tile in the tiling scheme.</li>
259
+ * </ul>
260
+ * @memberof UrlTemplateImageryProvider.prototype
261
+ * @type {Object}
262
+ * @readonly
263
+ */
264
+ urlSchemeZeroPadding : {
265
+ get : function() {
266
+ return this._urlSchemeZeroPadding;
267
+ }
268
+ },
269
+
270
+
232
271
  /**
233
272
  * Gets the URL template to use to use to pick features. If this property is not specified,
234
273
  * {@link UrlTemplateImageryProvider#pickFeatures} will immediately returned undefined, indicating no
@@ -502,6 +541,7 @@ define([
502
541
  //>>includeEnd('debug');
503
542
  that.enablePickFeatures = defaultValue(properties.enablePickFeatures, that.enablePickFeatures);
504
543
  that._url = properties.url;
544
+ that._urlSchemeZeroPadding = defaultValue(properties.urlSchemeZeroPadding, that.urlSchemeZeroPadding);
505
545
  that._pickFeaturesUrl = properties.pickFeaturesUrl;
506
546
  that._proxy = properties.proxy;
507
547
  that._tileDiscardPolicy = properties.tileDiscardPolicy;
@@ -717,29 +757,48 @@ define([
717
757
  return parts;
718
758
  }
719
759
 
760
+ function padWithZerosIfNecessary(imageryProvider, key, value) {
761
+ if (imageryProvider &&
762
+ imageryProvider.urlSchemeZeroPadding &&
763
+ imageryProvider.urlSchemeZeroPadding.hasOwnProperty(key) )
764
+ {
765
+ var paddingTemplate = imageryProvider.urlSchemeZeroPadding[key];
766
+ if (typeof paddingTemplate === 'string') {
767
+ var paddingTemplateWidth = paddingTemplate.length;
768
+ if (paddingTemplateWidth > 1) {
769
+ value = (value.length >= paddingTemplateWidth) ? value : new Array(paddingTemplateWidth - value.toString().length + 1).join('0') + value;
770
+ }
771
+ }
772
+ }
773
+ return value;
774
+ }
775
+
720
776
  function xTag(imageryProvider, x, y, level) {
721
- return x;
777
+ return padWithZerosIfNecessary(imageryProvider, '{x}', x);
722
778
  }
723
779
 
724
780
  function reverseXTag(imageryProvider, x, y, level) {
725
- return imageryProvider.tilingScheme.getNumberOfXTilesAtLevel(level) - x - 1;
781
+ var reverseX = imageryProvider.tilingScheme.getNumberOfXTilesAtLevel(level) - x - 1;
782
+ return padWithZerosIfNecessary(imageryProvider, '{reverseX}', reverseX);
726
783
  }
727
784
 
728
785
  function yTag(imageryProvider, x, y, level) {
729
- return y;
786
+ return padWithZerosIfNecessary(imageryProvider, '{y}', y);
730
787
  }
731
788
 
732
789
  function reverseYTag(imageryProvider, x, y, level) {
733
- return imageryProvider.tilingScheme.getNumberOfYTilesAtLevel(level) - y - 1;
790
+ var reverseY = imageryProvider.tilingScheme.getNumberOfYTilesAtLevel(level) - y - 1;
791
+ return padWithZerosIfNecessary(imageryProvider, '{reverseY}', reverseY);
734
792
  }
735
793
 
736
794
  function reverseZTag(imageryProvider, x, y, level) {
737
795
  var maximumLevel = imageryProvider.maximumLevel;
738
- return defined(maximumLevel) && level < maximumLevel ? maximumLevel - level - 1 : level;
796
+ var reverseZ = defined(maximumLevel) && level < maximumLevel ? maximumLevel - level - 1 : level;
797
+ return padWithZerosIfNecessary(imageryProvider, '{reverseZ}', reverseZ);
739
798
  }
740
799
 
741
800
  function zTag(imageryProvider, x, y, level) {
742
- return level;
801
+ return padWithZerosIfNecessary(imageryProvider, '{z}', level);
743
802
  }
744
803
 
745
804
  function sTag(imageryProvider, x, y, level) {