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,861 @@
1
+ /*global define*/
2
+ define([
3
+ './defaultValue',
4
+ './DeveloperError',
5
+ './freezeObject'
6
+ ], function(
7
+ defaultValue,
8
+ DeveloperError,
9
+ freezeObject) {
10
+ "use strict";
11
+
12
+ /**
13
+ * A 3D Cartesian point.
14
+ * @alias Cartesian3
15
+ * @constructor
16
+ *
17
+ * @param {Number} [x=0.0] The X component.
18
+ * @param {Number} [y=0.0] The Y component.
19
+ * @param {Number} [z=0.0] The Z component.
20
+ *
21
+ * @see Cartesian2
22
+ * @see Cartesian4
23
+ */
24
+ var Cartesian3 = function(x, y, z) {
25
+ /**
26
+ * The X component.
27
+ * @type Number
28
+ */
29
+ this.x = defaultValue(x, 0.0);
30
+
31
+ /**
32
+ * The Y component.
33
+ * @type Number
34
+ */
35
+ this.y = defaultValue(y, 0.0);
36
+
37
+ /**
38
+ * The Z component.
39
+ * @type Number
40
+ */
41
+ this.z = defaultValue(z, 0.0);
42
+ };
43
+
44
+ /**
45
+ * Converts the provided Spherical into Cartesian3 coordinates.
46
+ * @memberof Cartesian3
47
+ *
48
+ * @param {Spherical} spherical The Spherical to be converted to Cartesian3.
49
+ * @param {Cartesian3} [result] The object onto which to store the result.
50
+ * @return {Cartesian3} The modified result parameter or a new Cartesian3 instance if one was not provided.
51
+ *
52
+ * @exception {DeveloperError} spherical is required.
53
+ */
54
+ Cartesian3.fromSpherical = function(spherical, result) {
55
+ if (typeof spherical === 'undefined') {
56
+ throw new DeveloperError('spherical is required');
57
+ }
58
+ if (typeof result === 'undefined') {
59
+ result = new Cartesian3();
60
+ }
61
+ var clock = spherical.clock;
62
+ var cone = spherical.cone;
63
+ var magnitude = defaultValue(spherical.magnitude, 1.0);
64
+ var radial = magnitude * Math.sin(cone);
65
+ result.x = radial * Math.cos(clock);
66
+ result.y = radial * Math.sin(clock);
67
+ result.z = magnitude * Math.cos(cone);
68
+ return result;
69
+ };
70
+
71
+ /**
72
+ * Duplicates a Cartesian3 instance.
73
+ * @memberof Cartesian3
74
+ *
75
+ * @param {Cartesian3} cartesian The Cartesian to duplicate.
76
+ * @param {Cartesian3} [result] The object onto which to store the result.
77
+ * @return {Cartesian3} The modified result parameter or a new Cartesian3 instance if one was not provided.
78
+ *
79
+ * @exception {DeveloperError} cartesian is required.
80
+ */
81
+ Cartesian3.clone = function(cartesian, result) {
82
+ if (typeof cartesian === 'undefined') {
83
+ throw new DeveloperError('cartesian is required');
84
+ }
85
+
86
+ if (typeof result === 'undefined') {
87
+ return new Cartesian3(cartesian.x, cartesian.y, cartesian.z);
88
+ }
89
+
90
+ result.x = cartesian.x;
91
+ result.y = cartesian.y;
92
+ result.z = cartesian.z;
93
+ return result;
94
+ };
95
+
96
+ /**
97
+ * Creates a Cartesian3 instance from an existing Cartesian4. This simply takes the
98
+ * x, y, and z properties of the Cartesian4 and drops w.
99
+ * @function
100
+ *
101
+ * @param {Cartesian4} cartesian The Cartesian4 instance to create a Cartesian3 instance from.
102
+ * @param {Cartesian3} [result] The object onto which to store the result.
103
+ * @return {Cartesian3} The modified result parameter or a new Cartesian3 instance if one was not provided.
104
+ *
105
+ * @exception {DeveloperError} cartesian is required.
106
+ */
107
+ Cartesian3.fromCartesian4 = Cartesian3.clone;
108
+
109
+ /**
110
+ * Computes the value of the maximum component for the supplied Cartesian.
111
+ * @memberof Cartesian3
112
+ *
113
+ * @param {Cartesian3} The cartesian to use.
114
+ * @return {Number} The value of the maximum component.
115
+ *
116
+ * @exception {DeveloperError} cartesian is required.
117
+ */
118
+ Cartesian3.getMaximumComponent = function(cartesian) {
119
+ if (typeof cartesian === 'undefined') {
120
+ throw new DeveloperError('cartesian is required');
121
+ }
122
+ return Math.max(cartesian.x, cartesian.y, cartesian.z);
123
+ };
124
+
125
+ /**
126
+ * Computes the value of the minimum component for the supplied Cartesian.
127
+ * @memberof Cartesian3
128
+ *
129
+ * @param {Cartesian3} The cartesian to use.
130
+ * @return {Number} The value of the minimum component.
131
+ *
132
+ * @exception {DeveloperError} cartesian is required.
133
+ */
134
+ Cartesian3.getMinimumComponent = function(cartesian) {
135
+ if (typeof cartesian === 'undefined') {
136
+ throw new DeveloperError('cartesian is required');
137
+ }
138
+ return Math.min(cartesian.x, cartesian.y, cartesian.z);
139
+ };
140
+
141
+ /**
142
+ * Computes the provided Cartesian's squared magnitude.
143
+ * @memberof Cartesian3
144
+ *
145
+ * @param {Cartesian3} cartesian The Cartesian instance whose squared magnitude is to be computed.
146
+ * @return {Number} The squared magnitude.
147
+ *
148
+ * @exception {DeveloperError} cartesian is required.
149
+ */
150
+ Cartesian3.magnitudeSquared = function(cartesian) {
151
+ if (typeof cartesian === 'undefined') {
152
+ throw new DeveloperError('cartesian is required');
153
+ }
154
+ return cartesian.x * cartesian.x + cartesian.y * cartesian.y + cartesian.z * cartesian.z;
155
+ };
156
+
157
+ /**
158
+ * Computes the Cartesian's magnitude (length).
159
+ * @memberof Cartesian3
160
+ *
161
+ * @param {Cartesian3} cartesian The Cartesian instance whose magnitude is to be computed.
162
+ * @return {Number} The magnitude.
163
+ *
164
+ * @exception {DeveloperError} cartesian is required.
165
+ */
166
+ Cartesian3.magnitude = function(cartesian) {
167
+ return Math.sqrt(Cartesian3.magnitudeSquared(cartesian));
168
+ };
169
+
170
+ /**
171
+ * Computes the normalized form of the supplied Cartesian.
172
+ * @memberof Cartesian3
173
+ *
174
+ * @param {Cartesian3} cartesian The Cartesian to be normalized.
175
+ * @param {Cartesian3} [result] The object onto which to store the result.
176
+ * @return {Cartesian3} The modified result parameter or a new Cartesian3 instance if one was not provided.
177
+ *
178
+ * @exception {DeveloperError} cartesian is required.
179
+ */
180
+ Cartesian3.normalize = function(cartesian, result) {
181
+ if (typeof cartesian === 'undefined') {
182
+ throw new DeveloperError('cartesian is required');
183
+ }
184
+ var magnitude = Cartesian3.magnitude(cartesian);
185
+ if (typeof result === 'undefined') {
186
+ return new Cartesian3(cartesian.x / magnitude, cartesian.y / magnitude, cartesian.z / magnitude);
187
+ }
188
+ result.x = cartesian.x / magnitude;
189
+ result.y = cartesian.y / magnitude;
190
+ result.z = cartesian.z / magnitude;
191
+ return result;
192
+ };
193
+
194
+ /**
195
+ * Computes the dot (scalar) product of two Cartesians.
196
+ * @memberof Cartesian3
197
+ *
198
+ * @param {Cartesian3} left The first Cartesian.
199
+ * @param {Cartesian3} right The second Cartesian.
200
+ * @return {Number} The dot product.
201
+ *
202
+ * @exception {DeveloperError} left is required.
203
+ * @exception {DeveloperError} right is required.
204
+ */
205
+ Cartesian3.dot = function(left, right) {
206
+ if (typeof left === 'undefined') {
207
+ throw new DeveloperError('left is required');
208
+ }
209
+ if (typeof right === 'undefined') {
210
+ throw new DeveloperError('right is required');
211
+ }
212
+ return left.x * right.x + left.y * right.y + left.z * right.z;
213
+ };
214
+
215
+ /**
216
+ * Computes the componentwise product of two Cartesians.
217
+ * @memberof Cartesian3
218
+ *
219
+ * @param {Cartesian3} left The first Cartesian.
220
+ * @param {Cartesian3} right The second Cartesian.
221
+ * @param {Cartesian3} [result] The object onto which to store the result.
222
+ * @return {Cartesian3} The modified result parameter or a new Cartesian3 instance if one was not provided.
223
+ *
224
+ * @exception {DeveloperError} left is required.
225
+ * @exception {DeveloperError} right is required.
226
+ */
227
+ Cartesian3.multiplyComponents = function(left, right, result) {
228
+ if (typeof left === 'undefined') {
229
+ throw new DeveloperError('left is required');
230
+ }
231
+ if (typeof right === 'undefined') {
232
+ throw new DeveloperError('right is required');
233
+ }
234
+ if (typeof result === 'undefined') {
235
+ return new Cartesian3(left.x * right.x, left.y * right.y, left.z * right.z);
236
+ }
237
+ result.x = left.x * right.x;
238
+ result.y = left.y * right.y;
239
+ result.z = left.z * right.z;
240
+ return result;
241
+ };
242
+
243
+ /**
244
+ * Computes the componentwise sum of two Cartesians.
245
+ * @memberof Cartesian3
246
+ *
247
+ * @param {Cartesian3} left The first Cartesian.
248
+ * @param {Cartesian3} right The second Cartesian.
249
+ * @param {Cartesian3} [result] The object onto which to store the result.
250
+ * @return {Cartesian3} The modified result parameter or a new Cartesian3 instance if one was not provided.
251
+ *
252
+ * @exception {DeveloperError} left is required.
253
+ * @exception {DeveloperError} right is required.
254
+ */
255
+ Cartesian3.add = function(left, right, result) {
256
+ if (typeof left === 'undefined') {
257
+ throw new DeveloperError('left is required');
258
+ }
259
+ if (typeof right === 'undefined') {
260
+ throw new DeveloperError('right is required');
261
+ }
262
+ if (typeof result === 'undefined') {
263
+ return new Cartesian3(left.x + right.x, left.y + right.y, left.z + right.z);
264
+ }
265
+ result.x = left.x + right.x;
266
+ result.y = left.y + right.y;
267
+ result.z = left.z + right.z;
268
+ return result;
269
+ };
270
+
271
+ /**
272
+ * Computes the componentwise difference of two Cartesians.
273
+ * @memberof Cartesian3
274
+ *
275
+ * @param {Cartesian3} left The first Cartesian.
276
+ * @param {Cartesian3} right The second Cartesian.
277
+ * @param {Cartesian3} [result] The object onto which to store the result.
278
+ * @return {Cartesian3} The modified result parameter or a new Cartesian3 instance if one was not provided.
279
+ *
280
+ * @exception {DeveloperError} left is required.
281
+ * @exception {DeveloperError} right is required.
282
+ */
283
+ Cartesian3.subtract = function(left, right, result) {
284
+ if (typeof left === 'undefined') {
285
+ throw new DeveloperError('left is required');
286
+ }
287
+ if (typeof right === 'undefined') {
288
+ throw new DeveloperError('right is required');
289
+ }
290
+ if (typeof result === 'undefined') {
291
+ return new Cartesian3(left.x - right.x, left.y - right.y, left.z - right.z);
292
+ }
293
+ result.x = left.x - right.x;
294
+ result.y = left.y - right.y;
295
+ result.z = left.z - right.z;
296
+ return result;
297
+ };
298
+
299
+ /**
300
+ * Multiplies the provided Cartesian componentwise by the provided scalar.
301
+ * @memberof Cartesian3
302
+ *
303
+ * @param {Cartesian3} cartesian The Cartesian to be scaled.
304
+ * @param {Number} scalar The scalar to multiply with.
305
+ * @param {Cartesian3} [result] The object onto which to store the result.
306
+ * @return {Cartesian3} The modified result parameter or a new Cartesian3 instance if one was not provided.
307
+ *
308
+ * @exception {DeveloperError} cartesian is required.
309
+ * @exception {DeveloperError} scalar is required and must be a number.
310
+ */
311
+ Cartesian3.multiplyByScalar = function(cartesian, scalar, result) {
312
+ if (typeof cartesian === 'undefined') {
313
+ throw new DeveloperError('cartesian is required');
314
+ }
315
+ if (typeof scalar !== 'number') {
316
+ throw new DeveloperError('scalar is required and must be a number.');
317
+ }
318
+ if (typeof result === 'undefined') {
319
+ return new Cartesian3(cartesian.x * scalar, cartesian.y * scalar, cartesian.z * scalar);
320
+ }
321
+ result.x = cartesian.x * scalar;
322
+ result.y = cartesian.y * scalar;
323
+ result.z = cartesian.z * scalar;
324
+ return result;
325
+ };
326
+
327
+ /**
328
+ * Divides the provided Cartesian componentwise by the provided scalar.
329
+ * @memberof Cartesian3
330
+ *
331
+ * @param {Cartesian3} cartesian The Cartesian to be divided.
332
+ * @param {Number} scalar The scalar to divide by.
333
+ * @param {Cartesian3} [result] The object onto which to store the result.
334
+ * @return {Cartesian3} The modified result parameter or a new Cartesian3 instance if one was not provided.
335
+ *
336
+ * @exception {DeveloperError} cartesian is required.
337
+ * @exception {DeveloperError} scalar is required and must be a number.
338
+ */
339
+ Cartesian3.divideByScalar = function(cartesian, scalar, result) {
340
+ if (typeof cartesian === 'undefined') {
341
+ throw new DeveloperError('cartesian is required');
342
+ }
343
+ if (typeof scalar !== 'number') {
344
+ throw new DeveloperError('scalar is required and must be a number.');
345
+ }
346
+ if (typeof result === 'undefined') {
347
+ return new Cartesian3(cartesian.x / scalar, cartesian.y / scalar, cartesian.z / scalar);
348
+ }
349
+ result.x = cartesian.x / scalar;
350
+ result.y = cartesian.y / scalar;
351
+ result.z = cartesian.z / scalar;
352
+ return result;
353
+ };
354
+
355
+ /**
356
+ * Negates the provided Cartesian.
357
+ * @memberof Cartesian3
358
+ *
359
+ * @param {Cartesian3} cartesian The Cartesian to be negated.
360
+ * @param {Cartesian3} [result] The object onto which to store the result.
361
+ * @return {Cartesian3} The modified result parameter or a new Cartesian3 instance if one was not provided.
362
+ *
363
+ * @exception {DeveloperError} cartesian is required.
364
+ */
365
+ Cartesian3.negate = function(cartesian, result) {
366
+ if (typeof cartesian === 'undefined') {
367
+ throw new DeveloperError('cartesian is required');
368
+ }
369
+ if (typeof result === 'undefined') {
370
+ return new Cartesian3(-cartesian.x, -cartesian.y, -cartesian.z);
371
+ }
372
+ result.x = -cartesian.x;
373
+ result.y = -cartesian.y;
374
+ result.z = -cartesian.z;
375
+ return result;
376
+ };
377
+
378
+ /**
379
+ * Computes the absolute value of the provided Cartesian.
380
+ * @memberof Cartesian3
381
+ *
382
+ * @param {Cartesian3} cartesian The Cartesian whose absolute value is to be computed.
383
+ * @param {Cartesian3} [result] The object onto which to store the result.
384
+ * @return {Cartesian3} The modified result parameter or a new Cartesian3 instance if one was not provided.
385
+ *
386
+ * @exception {DeveloperError} cartesian is required.
387
+ */
388
+ Cartesian3.abs = function(cartesian, result) {
389
+ if (typeof cartesian === 'undefined') {
390
+ throw new DeveloperError('cartesian is required');
391
+ }
392
+ if (typeof result === 'undefined') {
393
+ return new Cartesian3(Math.abs(cartesian.x), Math.abs(cartesian.y), Math.abs(cartesian.z));
394
+ }
395
+ result.x = Math.abs(cartesian.x);
396
+ result.y = Math.abs(cartesian.y);
397
+ result.z = Math.abs(cartesian.z);
398
+ return result;
399
+ };
400
+
401
+ var lerpScratch = new Cartesian3();
402
+ /**
403
+ * Computes the linear interpolation or extrapolation at t using the provided cartesians.
404
+ * @memberof Cartesian3
405
+ *
406
+ * @param start The value corresponding to t at 0.0.
407
+ * @param end The value corresponding to t at 1.0.
408
+ * @param t The point along t at which to interpolate.
409
+ * @param {Cartesian3} [result] The object onto which to store the result.
410
+ * @return {Cartesian3} The modified result parameter or a new Cartesian3 instance if one was not provided.
411
+ *
412
+ * @exception {DeveloperError} start is required.
413
+ * @exception {DeveloperError} end is required.
414
+ * @exception {DeveloperError} t is required and must be a number.
415
+ */
416
+ Cartesian3.lerp = function(start, end, t, result) {
417
+ if (typeof start === 'undefined') {
418
+ throw new DeveloperError('start is required.');
419
+ }
420
+ if (typeof end === 'undefined') {
421
+ throw new DeveloperError('end is required.');
422
+ }
423
+ if (typeof t !== 'number') {
424
+ throw new DeveloperError('t is required and must be a number.');
425
+ }
426
+ Cartesian3.multiplyByScalar(end, t, lerpScratch);
427
+ result = Cartesian3.multiplyByScalar(start, 1.0 - t, result);
428
+ return Cartesian3.add(lerpScratch, result, result);
429
+ };
430
+
431
+ var angleBetweenScratch = new Cartesian3();
432
+ var angleBetweenScratch2 = new Cartesian3();
433
+ /**
434
+ * Returns the angle, in radians, between the provided Cartesians.
435
+ * @memberof Cartesian3
436
+ *
437
+ * @param {Cartesian3} left The first Cartesian.
438
+ * @param {Cartesian3} right The second Cartesian.
439
+ * @return {Number} The angle between the Cartesians.
440
+ *
441
+ * @exception {DeveloperError} left is required.
442
+ * @exception {DeveloperError} right is required.
443
+ */
444
+ Cartesian3.angleBetween = function(left, right) {
445
+ if (typeof left === 'undefined') {
446
+ throw new DeveloperError('left is required');
447
+ }
448
+ if (typeof right === 'undefined') {
449
+ throw new DeveloperError('right is required');
450
+ }
451
+ Cartesian3.normalize(left, angleBetweenScratch);
452
+ Cartesian3.normalize(right, angleBetweenScratch2);
453
+ var cosine = Cartesian3.dot(angleBetweenScratch, angleBetweenScratch2);
454
+ var sine = Cartesian3.cross(angleBetweenScratch, angleBetweenScratch2, angleBetweenScratch).magnitude();
455
+ return Math.atan2(sine, cosine);
456
+ };
457
+
458
+ var mostOrthogonalAxisScratch = new Cartesian3();
459
+ /**
460
+ * Returns the axis that is most orthogonal to the provided Cartesian.
461
+ * @memberof Cartesian3
462
+ *
463
+ * @param {Cartesian3} cartesian The Cartesian on which to find the most orthogonal axis.
464
+ * @param {Cartesian3} [result] The object onto which to store the result.
465
+ * @return {Cartesian3} The most orthogonal axis.
466
+ *
467
+ * @exception {DeveloperError} cartesian is required.
468
+ */
469
+ Cartesian3.mostOrthogonalAxis = function(cartesian, result) {
470
+ if (typeof cartesian === 'undefined') {
471
+ throw new DeveloperError('cartesian is required.');
472
+ }
473
+
474
+ var f = Cartesian3.normalize(cartesian, mostOrthogonalAxisScratch);
475
+ Cartesian3.abs(f, f);
476
+
477
+ if (f.x <= f.y) {
478
+ if (f.x <= f.z) {
479
+ result = Cartesian3.clone(Cartesian3.UNIT_X, result);
480
+ } else {
481
+ result = Cartesian3.clone(Cartesian3.UNIT_Z, result);
482
+ }
483
+ } else {
484
+ if (f.y <= f.z) {
485
+ result = Cartesian3.clone(Cartesian3.UNIT_Y, result);
486
+ } else {
487
+ result = Cartesian3.clone(Cartesian3.UNIT_Z, result);
488
+ }
489
+ }
490
+
491
+ return result;
492
+ };
493
+
494
+ /**
495
+ * Compares the provided Cartesians componentwise and returns
496
+ * <code>true</code> if they are equal, <code>false</code> otherwise.
497
+ * @memberof Cartesian3
498
+ *
499
+ * @param {Cartesian3} [left] The first Cartesian.
500
+ * @param {Cartesian3} [right] The second Cartesian.
501
+ * @return {Boolean} <code>true</code> if left and right are equal, <code>false</code> otherwise.
502
+ */
503
+ Cartesian3.equals = function(left, right) {
504
+ return (left === right) ||
505
+ ((typeof left !== 'undefined') &&
506
+ (typeof right !== 'undefined') &&
507
+ (left.x === right.x) &&
508
+ (left.y === right.y) &&
509
+ (left.z === right.z));
510
+ };
511
+
512
+ /**
513
+ * Compares the provided Cartesians componentwise and returns
514
+ * <code>true</code> if they are within the provided epsilon,
515
+ * <code>false</code> otherwise.
516
+ * @memberof Cartesian3
517
+ *
518
+ * @param {Cartesian3} [left] The first Cartesian.
519
+ * @param {Cartesian3} [right] The second Cartesian.
520
+ * @param {Number} epsilon The epsilon to use for equality testing.
521
+ * @return {Boolean} <code>true</code> if left and right are within the provided epsilon, <code>false</code> otherwise.
522
+ *
523
+ * @exception {DeveloperError} epsilon is required and must be a number.
524
+ */
525
+ Cartesian3.equalsEpsilon = function(left, right, epsilon) {
526
+ if (typeof epsilon !== 'number') {
527
+ throw new DeveloperError('epsilon is required and must be a number.');
528
+ }
529
+ return (left === right) ||
530
+ ((typeof left !== 'undefined') &&
531
+ (typeof right !== 'undefined') &&
532
+ (Math.abs(left.x - right.x) <= epsilon) &&
533
+ (Math.abs(left.y - right.y) <= epsilon) &&
534
+ (Math.abs(left.z - right.z) <= epsilon));
535
+ };
536
+
537
+ /**
538
+ * Computes the cross (outer) product of two Cartesians.
539
+ * @memberof Cartesian3
540
+ *
541
+ * @param {Cartesian3} left The first Cartesian.
542
+ * @param {Cartesian3} right The second Cartesian.
543
+ * @return {Number} The cross product.
544
+ *
545
+ * @exception {DeveloperError} left is required.
546
+ * @exception {DeveloperError} right is required.
547
+ */
548
+ Cartesian3.cross = function(left, right, result) {
549
+ if (typeof left === 'undefined') {
550
+ throw new DeveloperError('left is required');
551
+ }
552
+ if (typeof right === 'undefined') {
553
+ throw new DeveloperError('right is required');
554
+ }
555
+
556
+ var leftX = left.x;
557
+ var leftY = left.y;
558
+ var leftZ = left.z;
559
+ var rightX = right.x;
560
+ var rightY = right.y;
561
+ var rightZ = right.z;
562
+
563
+ var x = leftY * rightZ - leftZ * rightY;
564
+ var y = leftZ * rightX - leftX * rightZ;
565
+ var z = leftX * rightY - leftY * rightX;
566
+
567
+ if (typeof result === 'undefined') {
568
+ return new Cartesian3(x, y, z);
569
+ }
570
+ result.x = x;
571
+ result.y = y;
572
+ result.z = z;
573
+ return result;
574
+ };
575
+
576
+ /**
577
+ * An immutable Cartesian3 instance initialized to (0.0, 0.0, 0.0).
578
+ * @memberof Cartesian3
579
+ */
580
+ Cartesian3.ZERO = freezeObject(new Cartesian3(0.0, 0.0, 0.0));
581
+
582
+ /**
583
+ * An immutable Cartesian3 instance initialized to (1.0, 0.0, 0.0).
584
+ * @memberof Cartesian3
585
+ */
586
+ Cartesian3.UNIT_X = freezeObject(new Cartesian3(1.0, 0.0, 0.0));
587
+
588
+ /**
589
+ * An immutable Cartesian3 instance initialized to (0.0, 1.0, 0.0).
590
+ * @memberof Cartesian3
591
+ */
592
+ Cartesian3.UNIT_Y = freezeObject(new Cartesian3(0.0, 1.0, 0.0));
593
+
594
+ /**
595
+ * An immutable Cartesian3 instance initialized to (0.0, 0.0, 1.0).
596
+ * @memberof Cartesian3
597
+ */
598
+ Cartesian3.UNIT_Z = freezeObject(new Cartesian3(0.0, 0.0, 1.0));
599
+
600
+ /**
601
+ * Computes the value of the maximum component for this Cartesian.
602
+ * @memberof Cartesian3
603
+ *
604
+ * @return {Number} The value of the maximum component.
605
+ */
606
+ Cartesian3.prototype.getMaximumComponent = function() {
607
+ return Cartesian3.getMaximumComponent(this);
608
+ };
609
+
610
+ /**
611
+ * Computes the value of the minimum component for this Cartesian.
612
+ * @memberof Cartesian3
613
+ *
614
+ * @return {Number} The value of the minimum component.
615
+ */
616
+ Cartesian3.prototype.getMinimumComponent = function() {
617
+ return Cartesian3.getMinimumComponent(this);
618
+ };
619
+
620
+ /**
621
+ * Duplicates this Cartesian3 instance.
622
+ * @memberof Cartesian3
623
+ *
624
+ * @param {Cartesian3} [result] The object onto which to store the result.
625
+ * @return {Cartesian3} The modified result parameter or a new Cartesian3 instance if one was not provided.
626
+ */
627
+ Cartesian3.prototype.clone = function(result) {
628
+ return Cartesian3.clone(this, result);
629
+ };
630
+
631
+ /**
632
+ * Computes this Cartesian's squared magnitude.
633
+ * @memberof Cartesian3
634
+ *
635
+ * @return {Number} The squared magnitude.
636
+ */
637
+ Cartesian3.prototype.magnitudeSquared = function() {
638
+ return Cartesian3.magnitudeSquared(this);
639
+ };
640
+
641
+ /**
642
+ * Computes this Cartesian's magnitude (length).
643
+ * @memberof Cartesian3
644
+ *
645
+ * @return {Number} The magnitude.
646
+ */
647
+ Cartesian3.prototype.magnitude = function() {
648
+ return Cartesian3.magnitude(this);
649
+ };
650
+
651
+ /**
652
+ * Computes the normalized form of this Cartesian.
653
+ * @memberof Cartesian3
654
+ *
655
+ * @param {Cartesian3} [result] The object onto which to store the result.
656
+ * @return {Cartesian3} The modified result parameter or a new Cartesian3 instance if one was not provided.
657
+ */
658
+ Cartesian3.prototype.normalize = function(result) {
659
+ return Cartesian3.normalize(this, result);
660
+ };
661
+
662
+ /**
663
+ * Computes the dot (scalar) product of this Cartesian and a supplied cartesian.
664
+ * @memberof Cartesian3
665
+ *
666
+ * @param {Cartesian3} right The right hand side Cartesian.
667
+ * @return {Number} The dot product.
668
+ *
669
+ * @exception {DeveloperError} right is required.
670
+ */
671
+ Cartesian3.prototype.dot = function(right) {
672
+ return Cartesian3.dot(this, right);
673
+ };
674
+
675
+ /**
676
+ * Computes the componentwise product of this Cartesian and the provided Cartesian.
677
+ * @memberof Cartesian3
678
+ *
679
+ * @param {Cartesian3} right The right hand side Cartesian.
680
+ * @param {Cartesian3} [result] The object onto which to store the result.
681
+ * @return {Cartesian3} The modified result parameter or a new Cartesian3 instance if one was not provided.
682
+ *
683
+ * @exception {DeveloperError} right is required.
684
+ */
685
+ Cartesian3.prototype.multiplyComponents = function(right, result) {
686
+ return Cartesian3.multiplyComponents(this, right, result);
687
+ };
688
+
689
+ /**
690
+ * Computes the componentwise sum of this Cartesian and the provided Cartesian.
691
+ * @memberof Cartesian3
692
+ *
693
+ * @param {Cartesian3} right The right hand side Cartesian.
694
+ * @param {Cartesian3} [result] The object onto which to store the result.
695
+ * @return {Cartesian3} The modified result parameter or a new Cartesian3 instance if one was not provided.
696
+ *
697
+ * @exception {DeveloperError} right is required.
698
+ */
699
+ Cartesian3.prototype.add = function(right, result) {
700
+ return Cartesian3.add(this, right, result);
701
+ };
702
+
703
+ /**
704
+ * Computes the componentwise difference of this Cartesian and the provided Cartesian.
705
+ * @memberof Cartesian3
706
+ *
707
+ * @param {Cartesian3} right The right hand side Cartesian.
708
+ * @param {Cartesian3} [result] The object onto which to store the result.
709
+ * @return {Cartesian3} The modified result parameter or a new Cartesian3 instance if one was not provided.
710
+ *
711
+ * @exception {DeveloperError} right is required.
712
+ */
713
+ Cartesian3.prototype.subtract = function(right, result) {
714
+ return Cartesian3.subtract(this, right, result);
715
+ };
716
+
717
+ /**
718
+ * Multiplies this Cartesian componentwise by the provided scalar.
719
+ * @memberof Cartesian3
720
+ *
721
+ * @param {Number} scalar The scalar to multiply with.
722
+ * @param {Cartesian3} [result] The object onto which to store the result.
723
+ * @return {Cartesian3} The modified result parameter or a new Cartesian3 instance if one was not provided.
724
+ *
725
+ * @exception {DeveloperError} scalar is required and must be a number.
726
+ */
727
+ Cartesian3.prototype.multiplyByScalar = function(scalar, result) {
728
+ return Cartesian3.multiplyByScalar(this, scalar, result);
729
+ };
730
+
731
+ /**
732
+ * Divides this Cartesian componentwise by the provided scalar.
733
+ * @memberof Cartesian3
734
+ *
735
+ * @param {Number} scalar The scalar to divide by.
736
+ * @param {Cartesian3} [result] The object onto which to store the result.
737
+ * @return {Cartesian3} The modified result parameter or a new Cartesian3 instance if one was not provided.
738
+ *
739
+ * @exception {DeveloperError} scalar is required and must be a number.
740
+ */
741
+ Cartesian3.prototype.divideByScalar = function(scalar, result) {
742
+ return Cartesian3.divideByScalar(this, scalar, result);
743
+ };
744
+
745
+ /**
746
+ * Negates this Cartesian.
747
+ * @memberof Cartesian3
748
+ *
749
+ * @param {Cartesian3} [result] The object onto which to store the result.
750
+ * @return {Cartesian3} The modified result parameter or a new Cartesian3 instance if one was not provided.
751
+ */
752
+ Cartesian3.prototype.negate = function(result) {
753
+ return Cartesian3.negate(this, result);
754
+ };
755
+
756
+ /**
757
+ * Computes the absolute value of this Cartesian.
758
+ * @memberof Cartesian3
759
+ *
760
+ * @param {Cartesian3} [result] The object onto which to store the result.
761
+ * @return {Cartesian3} The modified result parameter or a new Cartesian3 instance if one was not provided.
762
+ */
763
+ Cartesian3.prototype.abs = function(result) {
764
+ return Cartesian3.abs(this, result);
765
+ };
766
+
767
+ /**
768
+ * Computes the linear interpolation or extrapolation at t using this Cartesian
769
+ * and the provided cartesian. This cartesian is assumed to be t at 0.0.
770
+ * @memberof Cartesian3
771
+ *
772
+ * @param end The value corresponding to t at 1.0.
773
+ * @param t The point along t at which to interpolate.
774
+ * @param {Cartesian3} [result] The object onto which to store the result.
775
+ * @return {Cartesian3} The modified result parameter or a new Cartesian3 instance if one was not provided.
776
+ *
777
+ * @exception {DeveloperError} end is required.
778
+ * @exception {DeveloperError} t is required and must be a number.
779
+ */
780
+ Cartesian3.prototype.lerp = function(end, t, result) {
781
+ return Cartesian3.lerp(this, end, t, result);
782
+ };
783
+
784
+ /**
785
+ * Returns the angle, in radians, between this Cartesian and the provided Cartesian.
786
+ * @memberof Cartesian3
787
+ *
788
+ * @param {Cartesian3} right The right hand side Cartesian.
789
+ * @return {Number} The angle between the Cartesians.
790
+ *
791
+ * @exception {DeveloperError} left is required.
792
+ * @exception {DeveloperError} right is required.
793
+ */
794
+ Cartesian3.prototype.angleBetween = function(right) {
795
+ return Cartesian3.angleBetween(this, right);
796
+ };
797
+
798
+ /**
799
+ * Returns the axis that is most orthogonal to the this Cartesian.
800
+ * @memberof Cartesian3
801
+ *
802
+ * @param {Cartesian3} [result] The object onto which to store the result.
803
+ * @return {Cartesian3} The most orthogonal axis.
804
+ */
805
+ Cartesian3.prototype.mostOrthogonalAxis = function(result) {
806
+ return Cartesian3.mostOrthogonalAxis(this, result);
807
+ };
808
+
809
+ /**
810
+ * Compares this Cartesian against the provided Cartesian componentwise and returns
811
+ * <code>true</code> if they are equal, <code>false</code> otherwise.
812
+ * @memberof Cartesian3
813
+ *
814
+ * @param {Cartesian3} [right] The right hand side Cartesian.
815
+ * @return {Boolean} <code>true</code> if they are equal, <code>false</code> otherwise.
816
+ */
817
+ Cartesian3.prototype.equals = function(right) {
818
+ return Cartesian3.equals(this, right);
819
+ };
820
+
821
+ /**
822
+ * Compares this Cartesian against the provided Cartesian componentwise and returns
823
+ * <code>true</code> if they are within the provided epsilon,
824
+ * <code>false</code> otherwise.
825
+ * @memberof Cartesian3
826
+ *
827
+ * @param {Cartesian3} [right] The right hand side Cartesian.
828
+ * @param {Number} epsilon The epsilon to use for equality testing.
829
+ * @return {Boolean} <code>true</code> if they are within the provided epsilon, <code>false</code> otherwise.
830
+ *
831
+ * @exception {DeveloperError} epsilon is required and must be a number.
832
+ */
833
+ Cartesian3.prototype.equalsEpsilon = function(right, epsilon) {
834
+ return Cartesian3.equalsEpsilon(this, right, epsilon);
835
+ };
836
+
837
+ /**
838
+ * Creates a string representing this Cartesian in the format '(x, y, z)'.
839
+ * @memberof Cartesian3
840
+ *
841
+ * @return {String} A string representing this Cartesian in the format '(x, y, z)'.
842
+ */
843
+ Cartesian3.prototype.toString = function() {
844
+ return '(' + this.x + ', ' + this.y + ', ' + this.z + ')';
845
+ };
846
+
847
+ /**
848
+ * Computes the cross (outer) product of this and the provided Cartesian.
849
+ * @memberof Cartesian3
850
+ *
851
+ * @param {Cartesian3} right The right hand side Cartesian.
852
+ * @return {Number} The cross product.
853
+ *
854
+ * @exception {DeveloperError} right is required.
855
+ */
856
+ Cartesian3.prototype.cross = function(right, result) {
857
+ return Cartesian3.cross(this, right, result);
858
+ };
859
+
860
+ return Cartesian3;
861
+ });