@mapgis/cesium 16.8.0 → 16.8.1
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.
- package/Documentation/Color.html +185 -185
- package/Documentation/ModelFilterTool.html +3 -3
- package/Documentation/Scene.html +26 -26
- package/dist/Cesium.d.ts +4262 -152
- package/dist/Cesium.js +3 -3
- package/dist/Workers/{Color-2e7c1984.js → Color-d1173a3e.js} +1 -1
- package/dist/Workers/createPolylineGeometry.js +1 -1
- package/dist/Workers/createSimplePolylineGeometry.js +1 -1
- package/dist/Workers/createVectorTileGeometries.js +1 -1
- package/dist/Workers/createVectorTilePolygons.js +1 -1
- package/package.json +1 -1
- package/@mapgiscesium@16.5.0/346/233/264/346/226/260/350/257/264/346/230/216.md +0 -8
- package/dist/Workers/AttributeCompression-b9605c73.js +0 -1
- package/dist/Workers/AxisAlignedBoundingBox-26346796.js +0 -1
- package/dist/Workers/AxisAlignedBoundingBox-450093aa.js +0 -1
- package/dist/Workers/AxisAlignedBoundingBox-6524b214.js +0 -1
- package/dist/Workers/AxisAlignedBoundingBox-73a9d462.js +0 -1
- package/dist/Workers/AxisAlignedBoundingBox-996de4d7.js +0 -1
- package/dist/Workers/AxisAlignedBoundingBox-c65efdad.js +0 -1
- package/dist/Workers/AxisAlignedBoundingBox-cbc92df1.js +0 -1
- package/dist/Workers/AxisAlignedBoundingBox-f0ce5db6.js +0 -1
- package/dist/Workers/AxisAlignedBoundingBox-fe8fad3e.js +0 -1
- package/dist/Workers/BoundingRectangle-28b9fdf0.js +0 -1
- package/dist/Workers/BoundingRectangle-487613f3.js +0 -1
- package/dist/Workers/BoundingRectangle-97e6b58d.js +0 -1
- package/dist/Workers/BoundingRectangle-b3ae8525.js +0 -1
- package/dist/Workers/BoundingRectangle-ce593811.js +0 -1
- package/dist/Workers/BoundingRectangle-d5cbbc95.js +0 -1
- package/dist/Workers/BoundingRectangle-d6d7a8e5.js +0 -1
- package/dist/Workers/BoundingRectangle-ecccc268.js +0 -1
- package/dist/Workers/BoundingRectangle-f1ffad8b.js +0 -1
- package/dist/Workers/BoxGeometry-0f1f8568.js +0 -1
- package/dist/Workers/BoxGeometry-13026ce3.js +0 -1
- package/dist/Workers/BoxGeometry-2d60329e.js +0 -1
- package/dist/Workers/BoxGeometry-3726be8b.js +0 -1
- package/dist/Workers/BoxGeometry-6dbcc914.js +0 -1
- package/dist/Workers/BoxGeometry-9e762f2e.js +0 -1
- package/dist/Workers/BoxGeometry-bd552da0.js +0 -1
- package/dist/Workers/BoxGeometry-d47744b6.js +0 -1
- package/dist/Workers/BoxGeometry-f55ff093.js +0 -1
- package/dist/Workers/Cartesian2-c1eb9da0.js +0 -1
- package/dist/Workers/Color-3aa21182.js +0 -1
- package/dist/Workers/Color-5b416733.js +0 -1
- package/dist/Workers/Color-98ea9560.js +0 -1
- package/dist/Workers/Color-9f2a6781.js +0 -1
- package/dist/Workers/Color-a4bb5b8a.js +0 -1
- package/dist/Workers/Color-af213549.js +0 -1
- package/dist/Workers/Color-b3353b71.js +0 -1
- package/dist/Workers/Color-cab9e933.js +0 -1
- package/dist/Workers/Color-d7f86623.js +0 -1
- package/dist/Workers/Color-e9b0b56b.js +0 -1
- package/dist/Workers/CoplanarPolygonGeometryLibrary-0cd605e2.js +0 -1
- package/dist/Workers/CoplanarPolygonGeometryLibrary-4311fc38.js +0 -1
- package/dist/Workers/CoplanarPolygonGeometryLibrary-838fa1ce.js +0 -1
- package/dist/Workers/CoplanarPolygonGeometryLibrary-8f8d8ac1.js +0 -1
- package/dist/Workers/CoplanarPolygonGeometryLibrary-cd63dc83.js +0 -1
- package/dist/Workers/CoplanarPolygonGeometryLibrary-ceede0d0.js +0 -1
- package/dist/Workers/CoplanarPolygonGeometryLibrary-df225097.js +0 -1
- package/dist/Workers/CoplanarPolygonGeometryLibrary-e350124e.js +0 -1
- package/dist/Workers/CoplanarPolygonGeometryLibrary-ed9489b1.js +0 -1
- package/dist/Workers/CorridorGeometryLibrary-0471dcd0.js +0 -1
- package/dist/Workers/CorridorGeometryLibrary-2321175a.js +0 -1
- package/dist/Workers/CorridorGeometryLibrary-353eec0a.js +0 -1
- package/dist/Workers/CorridorGeometryLibrary-4c3150e8.js +0 -1
- package/dist/Workers/CorridorGeometryLibrary-4db1f8fd.js +0 -1
- package/dist/Workers/CorridorGeometryLibrary-4dfdc665.js +0 -1
- package/dist/Workers/CorridorGeometryLibrary-7ab6160a.js +0 -1
- package/dist/Workers/CorridorGeometryLibrary-90fffecc.js +0 -1
- package/dist/Workers/CorridorGeometryLibrary-df6e9ae6.js +0 -1
- package/dist/Workers/CylinderGeometry-325283f2.js +0 -1
- package/dist/Workers/CylinderGeometry-639b5060.js +0 -1
- package/dist/Workers/CylinderGeometry-6c32efdc.js +0 -1
- package/dist/Workers/CylinderGeometry-7cfc0752.js +0 -1
- package/dist/Workers/CylinderGeometry-8107a836.js +0 -1
- package/dist/Workers/CylinderGeometry-d0b18367.js +0 -1
- package/dist/Workers/CylinderGeometry-d0bc500d.js +0 -1
- package/dist/Workers/CylinderGeometry-ea8d45f7.js +0 -1
- package/dist/Workers/CylinderGeometry-f8c8f23b.js +0 -1
- package/dist/Workers/EllipseGeometry-196fb5d2.js +0 -1
- package/dist/Workers/EllipseGeometry-34b7aab0.js +0 -1
- package/dist/Workers/EllipseGeometry-3a63604a.js +0 -1
- package/dist/Workers/EllipseGeometry-4dc2f3cd.js +0 -1
- package/dist/Workers/EllipseGeometry-5bc7efb7.js +0 -1
- package/dist/Workers/EllipseGeometry-a00d9fde.js +0 -1
- package/dist/Workers/EllipseGeometry-a21e62b2.js +0 -1
- package/dist/Workers/EllipseGeometry-b25df4e1.js +0 -1
- package/dist/Workers/EllipseGeometry-fce1c172.js +0 -1
- package/dist/Workers/EllipseGeometryLibrary-2e02e40d.js +0 -1
- package/dist/Workers/EllipseGeometryLibrary-716ccbc1.js +0 -1
- package/dist/Workers/EllipseGeometryLibrary-774fb909.js +0 -1
- package/dist/Workers/EllipseGeometryLibrary-787e8d53.js +0 -1
- package/dist/Workers/EllipseGeometryLibrary-8b1f8e47.js +0 -1
- package/dist/Workers/EllipseGeometryLibrary-9003dd80.js +0 -1
- package/dist/Workers/EllipseGeometryLibrary-bb11ea48.js +0 -1
- package/dist/Workers/EllipseGeometryLibrary-cde71e7f.js +0 -1
- package/dist/Workers/EllipseGeometryLibrary-fc808930.js +0 -1
- package/dist/Workers/EllipseOutlineGeometry-210384df.js +0 -1
- package/dist/Workers/EllipseOutlineGeometry-3831cf67.js +0 -1
- package/dist/Workers/EllipseOutlineGeometry-63fa8f1c.js +0 -1
- package/dist/Workers/EllipseOutlineGeometry-8bc5a2e5.js +0 -1
- package/dist/Workers/EllipseOutlineGeometry-97648130.js +0 -1
- package/dist/Workers/EllipseOutlineGeometry-c0b0a9a4.js +0 -1
- package/dist/Workers/EllipseOutlineGeometry-dbb4067a.js +0 -1
- package/dist/Workers/EllipseOutlineGeometry-e46b4af5.js +0 -1
- package/dist/Workers/EllipseOutlineGeometry-ec5d7684.js +0 -1
- package/dist/Workers/EllipsoidGeodesic-a0581819.js +0 -1
- package/dist/Workers/EllipsoidGeometry-499e5b68.js +0 -1
- package/dist/Workers/EllipsoidGeometry-5af792d2.js +0 -1
- package/dist/Workers/EllipsoidGeometry-6a2f4f30.js +0 -1
- package/dist/Workers/EllipsoidGeometry-71f9609d.js +0 -1
- package/dist/Workers/EllipsoidGeometry-751dd3dc.js +0 -1
- package/dist/Workers/EllipsoidGeometry-8844cb55.js +0 -1
- package/dist/Workers/EllipsoidGeometry-d0a3d570.js +0 -1
- package/dist/Workers/EllipsoidGeometry-dc85d254.js +0 -1
- package/dist/Workers/EllipsoidGeometry-fcbf9df5.js +0 -1
- package/dist/Workers/EllipsoidOutlineGeometry-008bdd22.js +0 -1
- package/dist/Workers/EllipsoidOutlineGeometry-34940155.js +0 -1
- package/dist/Workers/EllipsoidOutlineGeometry-66e52f3c.js +0 -1
- package/dist/Workers/EllipsoidOutlineGeometry-9466799f.js +0 -1
- package/dist/Workers/EllipsoidOutlineGeometry-aa49f341.js +0 -1
- package/dist/Workers/EllipsoidOutlineGeometry-bf6fec74.js +0 -1
- package/dist/Workers/EllipsoidOutlineGeometry-cb9dbedb.js +0 -1
- package/dist/Workers/EllipsoidOutlineGeometry-e9a5c4a4.js +0 -1
- package/dist/Workers/EllipsoidOutlineGeometry-fd9318b6.js +0 -1
- package/dist/Workers/EllipsoidRhumbLine-2fd480f5.js +0 -1
- package/dist/Workers/EllipsoidTangentPlane-27707043.js +0 -1
- package/dist/Workers/EllipsoidTangentPlane-67eb8fd7.js +0 -1
- package/dist/Workers/EllipsoidTangentPlane-7e7cce04.js +0 -1
- package/dist/Workers/EllipsoidTangentPlane-b07a98b6.js +0 -1
- package/dist/Workers/EllipsoidTangentPlane-b362af49.js +0 -1
- package/dist/Workers/EllipsoidTangentPlane-d3bb82f1.js +0 -1
- package/dist/Workers/EllipsoidTangentPlane-d5fd24ed.js +0 -1
- package/dist/Workers/EllipsoidTangentPlane-eee5ec6d.js +0 -1
- package/dist/Workers/EllipsoidTangentPlane-fd3d43cb.js +0 -1
- package/dist/Workers/EncodedCartesian3-6f721b97.js +0 -1
- package/dist/Workers/FrustumGeometry-037da224.js +0 -1
- package/dist/Workers/FrustumGeometry-54d281be.js +0 -1
- package/dist/Workers/FrustumGeometry-64fca627.js +0 -1
- package/dist/Workers/FrustumGeometry-697158a6.js +0 -1
- package/dist/Workers/FrustumGeometry-705dc598.js +0 -1
- package/dist/Workers/FrustumGeometry-7a28dc14.js +0 -1
- package/dist/Workers/FrustumGeometry-a0988373.js +0 -1
- package/dist/Workers/FrustumGeometry-b357a0a2.js +0 -1
- package/dist/Workers/FrustumGeometry-de2d6bb2.js +0 -1
- package/dist/Workers/GeometryAttribute-8106b887.js +0 -1
- package/dist/Workers/GeometryAttribute-842f7f8f.js +0 -1
- package/dist/Workers/GeometryAttribute-9509a6ac.js +0 -1
- package/dist/Workers/GeometryAttribute-9cc31675.js +0 -1
- package/dist/Workers/GeometryAttribute-a5b580d6.js +0 -1
- package/dist/Workers/GeometryAttribute-b0d1422a.js +0 -1
- package/dist/Workers/GeometryAttribute-e03451d8.js +0 -1
- package/dist/Workers/GeometryAttribute-f0467ee1.js +0 -1
- package/dist/Workers/GeometryAttribute-f82de479.js +0 -1
- package/dist/Workers/GeometryInstance-083d7584.js +0 -1
- package/dist/Workers/GeometryInstance-1af88174.js +0 -1
- package/dist/Workers/GeometryInstance-2f8b5c4a.js +0 -1
- package/dist/Workers/GeometryInstance-35d037ed.js +0 -1
- package/dist/Workers/GeometryInstance-3fbf3924.js +0 -1
- package/dist/Workers/GeometryInstance-539e00df.js +0 -1
- package/dist/Workers/GeometryInstance-5729d1a7.js +0 -1
- package/dist/Workers/GeometryInstance-a24fc358.js +0 -1
- package/dist/Workers/GeometryInstance-ed6965ba.js +0 -1
- package/dist/Workers/GeometryPipeline-0c08714b.js +0 -1
- package/dist/Workers/GeometryPipeline-160871a5.js +0 -1
- package/dist/Workers/GeometryPipeline-1f7508a2.js +0 -1
- package/dist/Workers/GeometryPipeline-21c7c817.js +0 -1
- package/dist/Workers/GeometryPipeline-2e63b615.js +0 -1
- package/dist/Workers/GeometryPipeline-57087f49.js +0 -1
- package/dist/Workers/GeometryPipeline-64734a0f.js +0 -1
- package/dist/Workers/GeometryPipeline-6f352065.js +0 -1
- package/dist/Workers/GeometryPipeline-fef2cc93.js +0 -1
- package/dist/Workers/IntersectionTests-12a15587.js +0 -1
- package/dist/Workers/IntersectionTests-318fd637.js +0 -1
- package/dist/Workers/IntersectionTests-46ce3a3a.js +0 -1
- package/dist/Workers/IntersectionTests-ac09ddc2.js +0 -1
- package/dist/Workers/IntersectionTests-ce427234.js +0 -1
- package/dist/Workers/IntersectionTests-ed46e10e.js +0 -1
- package/dist/Workers/IntersectionTests-f3d5850d.js +0 -1
- package/dist/Workers/IntersectionTests-f5c29800.js +0 -1
- package/dist/Workers/IntersectionTests-f6c80ab5.js +0 -1
- package/dist/Workers/OrientedBoundingBox-155b5606.js +0 -1
- package/dist/Workers/OrientedBoundingBox-33a0a521.js +0 -1
- package/dist/Workers/OrientedBoundingBox-528af689.js +0 -1
- package/dist/Workers/OrientedBoundingBox-6ff47a8a.js +0 -1
- package/dist/Workers/OrientedBoundingBox-83b01426.js +0 -1
- package/dist/Workers/OrientedBoundingBox-a6a4c32b.js +0 -1
- package/dist/Workers/OrientedBoundingBox-bd219df7.js +0 -1
- package/dist/Workers/OrientedBoundingBox-d8d60f95.js +0 -1
- package/dist/Workers/OrientedBoundingBox-f9919823.js +0 -1
- package/dist/Workers/Plane-07db2b77.js +0 -1
- package/dist/Workers/Plane-0f30f65b.js +0 -1
- package/dist/Workers/Plane-8d6fa990.js +0 -1
- package/dist/Workers/Plane-91027bbd.js +0 -1
- package/dist/Workers/Plane-9e807de8.js +0 -1
- package/dist/Workers/Plane-d53c8e90.js +0 -1
- package/dist/Workers/Plane-ee0aa150.js +0 -1
- package/dist/Workers/Plane-f4840d15.js +0 -1
- package/dist/Workers/Plane-fa12edbb.js +0 -1
- package/dist/Workers/PolygonGeometryLibrary-1b173d8c.js +0 -1
- package/dist/Workers/PolygonGeometryLibrary-1c2452bf.js +0 -1
- package/dist/Workers/PolygonGeometryLibrary-2394a24c.js +0 -1
- package/dist/Workers/PolygonGeometryLibrary-3a7fcee1.js +0 -1
- package/dist/Workers/PolygonGeometryLibrary-814d3108.js +0 -1
- package/dist/Workers/PolygonGeometryLibrary-8ed54fa5.js +0 -1
- package/dist/Workers/PolygonGeometryLibrary-8f1626d5.js +0 -1
- package/dist/Workers/PolygonGeometryLibrary-e7ef9273.js +0 -1
- package/dist/Workers/PolygonGeometryLibrary-edec67a0.js +0 -1
- package/dist/Workers/PolygonPipeline-1d8700a4.js +0 -1
- package/dist/Workers/PolygonPipeline-37a33a39.js +0 -1
- package/dist/Workers/PolygonPipeline-3925588d.js +0 -1
- package/dist/Workers/PolygonPipeline-5983aa11.js +0 -1
- package/dist/Workers/PolygonPipeline-74b9dcb6.js +0 -1
- package/dist/Workers/PolygonPipeline-7b19eef3.js +0 -1
- package/dist/Workers/PolygonPipeline-7c54e19e.js +0 -1
- package/dist/Workers/PolygonPipeline-c4284eb2.js +0 -1
- package/dist/Workers/PolygonPipeline-c8c3d457.js +0 -1
- package/dist/Workers/PolylinePipeline-36bb5be5.js +0 -1
- package/dist/Workers/PolylinePipeline-5f01f4e3.js +0 -1
- package/dist/Workers/PolylinePipeline-6484d4ee.js +0 -1
- package/dist/Workers/PolylinePipeline-8831ea08.js +0 -1
- package/dist/Workers/PolylinePipeline-90d28432.js +0 -1
- package/dist/Workers/PolylinePipeline-971ba240.js +0 -1
- package/dist/Workers/PolylinePipeline-9b4a6834.js +0 -1
- package/dist/Workers/PolylinePipeline-d59947c4.js +0 -1
- package/dist/Workers/PolylinePipeline-dbe39542.js +0 -1
- package/dist/Workers/PolylineVolumeGeometryLibrary-18fa5257.js +0 -1
- package/dist/Workers/PolylineVolumeGeometryLibrary-5cce30e5.js +0 -1
- package/dist/Workers/PolylineVolumeGeometryLibrary-7347f6ba.js +0 -1
- package/dist/Workers/PolylineVolumeGeometryLibrary-81481506.js +0 -1
- package/dist/Workers/PolylineVolumeGeometryLibrary-b532118b.js +0 -1
- package/dist/Workers/PolylineVolumeGeometryLibrary-dcb7f513.js +0 -1
- package/dist/Workers/PolylineVolumeGeometryLibrary-e2e6c33b.js +0 -1
- package/dist/Workers/PolylineVolumeGeometryLibrary-e435332a.js +0 -1
- package/dist/Workers/PolylineVolumeGeometryLibrary-f59e9faa.js +0 -1
- package/dist/Workers/PrimitivePipeline-35ff0c65.js +0 -1
- package/dist/Workers/PrimitivePipeline-757ec521.js +0 -1
- package/dist/Workers/PrimitivePipeline-805c9b16.js +0 -1
- package/dist/Workers/PrimitivePipeline-928d43fe.js +0 -1
- package/dist/Workers/PrimitivePipeline-929842fb.js +0 -1
- package/dist/Workers/PrimitivePipeline-9deb0937.js +0 -1
- package/dist/Workers/PrimitivePipeline-a63836f9.js +0 -1
- package/dist/Workers/PrimitivePipeline-d376903b.js +0 -1
- package/dist/Workers/PrimitivePipeline-dcf6bdc3.js +0 -1
- package/dist/Workers/RectangleGeometryLibrary-1ea04494.js +0 -1
- package/dist/Workers/RectangleGeometryLibrary-2c3c1c71.js +0 -1
- package/dist/Workers/RectangleGeometryLibrary-44075333.js +0 -1
- package/dist/Workers/RectangleGeometryLibrary-61f60679.js +0 -1
- package/dist/Workers/RectangleGeometryLibrary-89d8ce03.js +0 -1
- package/dist/Workers/RectangleGeometryLibrary-9e402320.js +0 -1
- package/dist/Workers/RectangleGeometryLibrary-ae3770f2.js +0 -1
- package/dist/Workers/RectangleGeometryLibrary-af611323.js +0 -1
- package/dist/Workers/RectangleGeometryLibrary-b15d6d79.js +0 -1
- package/dist/Workers/TerrainEncoding-0c1d54fd.js +0 -1
- package/dist/Workers/TerrainEncoding-161cf654.js +0 -1
- package/dist/Workers/TerrainEncoding-390964a7.js +0 -1
- package/dist/Workers/TerrainEncoding-4f6e002f.js +0 -1
- package/dist/Workers/TerrainEncoding-652abf1d.js +0 -1
- package/dist/Workers/TerrainEncoding-6f894d6e.js +0 -1
- package/dist/Workers/TerrainEncoding-a621a0f9.js +0 -1
- package/dist/Workers/TerrainEncoding-ca220d73.js +0 -1
- package/dist/Workers/TerrainEncoding-e8b346f1.js +0 -1
- package/dist/Workers/Transforms-1b5921a3.js +0 -1
- package/dist/Workers/Transforms-1fa85493.js +0 -1
- package/dist/Workers/Transforms-5a0f5c0d.js +0 -1
- package/dist/Workers/Transforms-713e2e92.js +0 -1
- package/dist/Workers/Transforms-75c1d9a1.js +0 -1
- package/dist/Workers/Transforms-8c8e0c6f.js +0 -1
- package/dist/Workers/Transforms-b0beda9b.js +0 -1
- package/dist/Workers/Transforms-badb9ae9.js +0 -1
- package/dist/Workers/Transforms-ce97037a.js +0 -1
- package/dist/Workers/WallGeometryLibrary-2ee708d4.js +0 -1
- package/dist/Workers/WallGeometryLibrary-3a0c8447.js +0 -1
- package/dist/Workers/WallGeometryLibrary-40d299b6.js +0 -1
- package/dist/Workers/WallGeometryLibrary-5386b8d1.js +0 -1
- package/dist/Workers/WallGeometryLibrary-62af8286.js +0 -1
- package/dist/Workers/WallGeometryLibrary-769cd0fb.js +0 -1
- package/dist/Workers/WallGeometryLibrary-950a2a48.js +0 -1
- package/dist/Workers/WallGeometryLibrary-a24bff99.js +0 -1
- package/dist/Workers/WallGeometryLibrary-ff52859c.js +0 -1
- package/dist/Workers/WebMercatorProjection-e6de5e67.js +0 -1
- /package/dist/Workers/{Color-6861a390.js → Color-b92c4c84.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
define(["exports","./AttributeCompression-b9605c73","./Cartesian2-c1eb9da0","./Check-f996273c","./when-ae2e0b60","./Math-5bbcea10","./Transforms-5a0f5c0d","./ComponentDatatype-e44126e4","./EncodedCartesian3-6f721b97","./GeometryAttribute-f0467ee1","./IndexDatatype-516320ea","./IntersectionTests-f6c80ab5","./Plane-07db2b77"],function(t,A,R,r,V,D,M,w,v,G,S,U,Y){"use strict";var Z=new R.Cartesian3,H=new R.Cartesian3,W=new R.Cartesian3;var C={calculateACMR:function(e){var t=(e=V.defaultValue(e,V.defaultValue.EMPTY_OBJECT)).indices,r=e.maximumIndex,a=V.defaultValue(e.cacheSize,24),i=t.length;if(!V.defined(r))for(var r=0,n=0,s=t[n];n<i;)r<s&&(r=s),s=t[++n];for(var o=[],u=0;u<r+1;u++)o[u]=0;for(var p=a+1,d=0;d<i;++d)p-o[t[d]]>a&&(o[t[d]]=p,++p);return(p-a+1)/(i/3)}},e=(C.tipsify=function(e){var t=(e=V.defaultValue(e,V.defaultValue.EMPTY_OBJECT)).indices,r=e.maximumIndex,a=V.defaultValue(e.cacheSize,24);function i(e,t,r,a,i,n,s){for(var o,u=-1,p=-1,d=0;d<r.length;){var l=r[d];a[l].numLiveTriangles&&(o=0,p<(o=i-a[l].timeStamp+2*a[l].numLiveTriangles<=t?i-a[l].timeStamp:o)||-1===p)&&(p=o,u=l),++d}if(-1!==u)return u;for(var y=a,f=n,m=s;1<=f.length;){var c=f[f.length-1];if(f.splice(f.length-1,1),0<y[c].numLiveTriangles)return c}for(;v<m;){if(0<y[v].numLiveTriangles)return++v-1;++v}return-1}var e=t.length,n=0,s=t[P=0],o=e;if(V.defined(r))n=r+1;else{for(;P<o;)n<s&&(n=s),s=t[++P];if(-1===n)return 0;++n}for(var u=[],p=0;p<n;p++)u[p]={numLiveTriangles:0,timeStamp:0,vertexTriangles:[]};for(var d=P=0;P<o;)u[t[P]].vertexTriangles.push(d),++u[t[P]].numLiveTriangles,u[t[P+1]].vertexTriangles.push(d),++u[t[P+1]].numLiveTriangles,u[t[P+2]].vertexTriangles.push(d),++u[t[P+2]].numLiveTriangles,++d,P+=3;var l,y=0,f=a+1,v=1,m=[],c=[],C=0,h=[],b=e/3,g=[];for(p=0;p<b;p++)g[p]=!1;for(;-1!==y;){for(var A,m=[],T=(A=u[y]).vertexTriangles.length,x=0;x<T;++x)if(!g[d=A.vertexTriangles[x]]){g[d]=!0;for(var P=d+d+d,w=0;w<3;++w)l=t[P],m.push(l),c.push(l),h[C]=l,++C,--(l=u[l]).numLiveTriangles,f-l.timeStamp>a&&(l.timeStamp=f,++f),++P}y=i(0,a,m,u,f,c,n)}return h},{});function s(e,t,r,a,i){e[t++]=r,e[t++]=a,e[t++]=a,e[t++]=i,e[t++]=i,e[t]=r}function g(e){var t,r,a={};for(t in e)e.hasOwnProperty(t)&&V.defined(e[t])&&V.defined(e[t].values)&&(r=e[t],a[t]=new G.GeometryAttribute({componentDatatype:r.componentDatatype,componentsPerAttribute:r.componentsPerAttribute,normalize:r.normalize,values:[]}));return a}e.toWireframe=function(e){var t=e.indices;if(V.defined(t)){switch(e.primitiveType){case G.PrimitiveType.TRIANGLES:e.indices=function(e){for(var t=e.length,r=S.IndexDatatype.createTypedArray(t,t/3*6),a=0,i=0;i<t;i+=3,a+=6)s(r,a,e[i],e[i+1],e[i+2]);return r}(t);break;case G.PrimitiveType.TRIANGLE_STRIP:e.indices=function(e){var t=e.length;if(3<=t){for(var r=S.IndexDatatype.createTypedArray(t,6*(t-2)),a=(s(r,0,e[0],e[1],e[2]),6),i=3;i<t;++i,a+=6)s(r,a,e[i-1],e[i],e[i-2]);return r}return new Uint16Array}(t);break;case G.PrimitiveType.TRIANGLE_FAN:e.indices=function(e){if(0<e.length){for(var t=e.length-1,r=S.IndexDatatype.createTypedArray(t,6*(t-1)),a=e[0],i=0,n=1;n<t;++n,i+=6)s(r,i,a,e[n],e[n+1]);return r}return new Uint16Array}(t)}e.primitiveType=G.PrimitiveType.LINES}return e},e.createLineSegmentsForVectors=function(e,t,r){t=V.defaultValue(t,"normal"),r=V.defaultValue(r,1e4);for(var a,i=e.attributes.position.values,n=e.attributes[t].values,s=i.length,o=new Float64Array(2*s),u=0,p=0;p<s;p+=3)o[u++]=i[p],o[u++]=i[p+1],o[u++]=i[p+2],o[u++]=i[p]+n[p]*r,o[u++]=i[p+1]+n[p+1]*r,o[u++]=i[p+2]+n[p+2]*r;t=e.boundingSphere;return V.defined(t)&&(a=new M.BoundingSphere(t.center,t.radius+r)),new G.Geometry({attributes:{position:new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:o})},primitiveType:G.PrimitiveType.LINES,boundingSphere:a})},e.createAttributeLocations=function(e){for(var t,r=["position","positionHigh","positionLow","position3DHigh","position3DLow","position2DHigh","position2DLow","pickColor","normal","st","tangent","bitangent","extrudeDirection","compressedAttributes"],a=e.attributes,i={},n=0,s=r.length,o=0;o<s;++o){var u=r[o];V.defined(a[u])&&(i[u]=n++)}for(t in a)a.hasOwnProperty(t)&&!V.defined(i[t])&&(i[t]=n++);return i},e.reorderForPreVertexCache=function(e){var t=G.Geometry.computeNumberOfVertices(e),r=e.indices;if(V.defined(r)){for(var a=new Int32Array(t),i=0;i<t;i++)a[i]=-1;for(var n,s=r,o=s.length,u=S.IndexDatatype.createTypedArray(t,o),p=0,d=0,l=0;p<o;)-1!==(n=a[s[p]])?u[d]=n:(a[s[p]]=l,u[d]=l,++l),++p,++d;e.indices=u;var y,f=e.attributes;for(y in f)if(f.hasOwnProperty(y)&&V.defined(f[y])&&V.defined(f[y].values)){for(var m=f[y],c=m.values,v=0,C=m.componentsPerAttribute,h=w.ComponentDatatype.createTypedArray(m.componentDatatype,l*C);v<t;){var b=a[v];if(-1!==b)for(var g=0;g<C;g++)h[C*b+g]=c[C*v+g];++v}m.values=h}}return e},e.reorderForPostVertexCache=function(e,t){var r=e.indices;if(e.primitiveType===G.PrimitiveType.TRIANGLES&&V.defined(r)){for(var a=r.length,i=0,n=0;n<a;n++)r[n]>i&&(i=r[n]);e.indices=C.tipsify({indices:r,maximumIndex:i,cacheSize:t})}return e},e.fitToUnsignedShortIndices=function(e){var t=[],r=G.Geometry.computeNumberOfVertices(e);if(V.defined(e.indices)&&r>=D.CesiumMath.SIXTY_FOUR_KILOBYTES){var a,i=[],n=[],s=0,o=g(e.attributes),u=e.indices,p=u.length;e.primitiveType===G.PrimitiveType.TRIANGLES?a=3:e.primitiveType===G.PrimitiveType.LINES?a=2:e.primitiveType===G.PrimitiveType.POINTS&&(a=1);for(var d=0;d<p;d+=a){for(var l=0;l<a;++l){var y=u[d+l],f=i[y];if(!V.defined(f)){f=s++,i[y]=f,b=h=m=C=v=c=void 0;var m,c=o,v=e.attributes,C=y;for(m in v)if(v.hasOwnProperty(m)&&V.defined(v[m])&&V.defined(v[m].values))for(var h=v[m],b=0;b<h.componentsPerAttribute;++b)c[m].values.push(h.values[C*h.componentsPerAttribute+b])}n.push(f)}s+a>=D.CesiumMath.SIXTY_FOUR_KILOBYTES&&(t.push(new G.Geometry({attributes:o,indices:n,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV})),i=[],n=[],s=0,o=g(e.attributes))}0!==n.length&&t.push(new G.Geometry({attributes:o,indices:n,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV}))}else t.push(e);return t};var h=new R.Cartesian3,b=new R.Cartographic,d=(e.projectTo2D=function(e,t,r,a,i){for(var n=e.attributes[t],s=(i=V.defined(i)?i:new M.GeographicProjection).ellipsoid,o=n.values,u=new Float64Array(o.length),p=0,d=0;d<o.length;d+=3){var l=R.Cartesian3.fromArray(o,d,h),l=s.cartesianToCartographic(l,b),l=i.project(l,h);u[p++]=l.x,u[p++]=l.y,u[p++]=l.z}return e.attributes[r]=n,e.attributes[a]=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:u}),delete e.attributes[t],e},{high:0,low:0}),n=(e.encodeAttribute=function(e,t,r,a){for(var i=e.attributes[t],n=i.values,s=n.length,o=new Float32Array(s),u=new Float32Array(s),p=0;p<s;++p)v.EncodedCartesian3.encode(n[p],d),o[p]=d.high,u[p]=d.low;i=i.componentsPerAttribute;return e.attributes[r]=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.FLOAT,componentsPerAttribute:i,values:o}),e.attributes[a]=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.FLOAT,componentsPerAttribute:i,values:u}),delete e.attributes[t],e},new R.Cartesian3);function a(e,t){if(V.defined(t))for(var r=t.values,a=r.length,i=0;i<a;i+=3)R.Cartesian3.unpack(r,i,n),M.Matrix4.multiplyByPoint(e,n,n),R.Cartesian3.pack(n,r,i)}function i(e,t){if(V.defined(t))for(var r=t.values,a=r.length,i=0;i<a;i+=3)R.Cartesian3.unpack(r,i,n),M.Matrix3.multiplyByVector(e,n,n),n=R.Cartesian3.normalize(n,n),R.Cartesian3.pack(n,r,i)}var o=new M.Matrix4,u=new M.Matrix3;e.transformToWorldCoordinates=function(e){var t,r=e.modelMatrix;return M.Matrix4.equals(r,M.Matrix4.IDENTITY)||(a(r,(t=e.geometry.attributes).position),a(r,t.prevPosition),a(r,t.nextPosition),(V.defined(t.normal)||V.defined(t.tangent)||V.defined(t.bitangent))&&(M.Matrix4.inverse(r,o),M.Matrix4.transpose(o,o),M.Matrix4.getMatrix3(o,u),i(u,t.normal),i(u,t.tangent),i(u,t.bitangent)),t=e.geometry.boundingSphere,V.defined(t)&&(e.geometry.boundingSphere=M.BoundingSphere.transform(t,r,t)),e.modelMatrix=M.Matrix4.clone(M.Matrix4.IDENTITY)),e};var X=new R.Cartesian3;function j(e,t){var r,a,i,n,s,o,u=e.length,p=(e[0].modelMatrix,V.defined(e[0][t].indices)),d=e[0][t].primitiveType,l=function(e,t){var r,a=e.length,i={},n=e[0][t].attributes;for(r in n)if(n.hasOwnProperty(r)&&V.defined(n[r])&&V.defined(n[r].values)){for(var s=n[r],o=s.values.length,u=!0,p=1;p<a;++p){var d=e[p][t].attributes[r];if(!V.defined(d)||s.componentDatatype!==d.componentDatatype||s.componentsPerAttribute!==d.componentsPerAttribute||s.normalize!==d.normalize){u=!1;break}o+=d.values.length}u&&(i[r]=new G.GeometryAttribute({componentDatatype:s.componentDatatype,componentsPerAttribute:s.componentsPerAttribute,normalize:s.normalize,values:w.ComponentDatatype.createTypedArray(s.componentDatatype,o)}))}return i}(e,t);for(r in l)if(l.hasOwnProperty(r))for(i=l[r].values,f=b=0;f<u;++f)for(s=(n=e[f][t].attributes[r].values).length,a=0;a<s;++a)i[b++]=n[a];if(p){for(var y=0,f=0;f<u;++f)y+=e[f][t].indices.length;var p=G.Geometry.computeNumberOfVertices(new G.Geometry({attributes:l,primitiveType:G.PrimitiveType.POINTS})),m=S.IndexDatatype.createTypedArray(p,y),c=0,v=0;for(f=0;f<u;++f){for(var C=e[f][t].indices,h=C.length,b=0;b<h;++b)m[c++]=v+C[b];v+=G.Geometry.computeNumberOfVertices(e[f][t])}o=m}var g=new R.Cartesian3,A=0;for(f=0;f<u;++f){if(T=e[f][t].boundingSphere,!V.defined(T)){g=void 0;break}R.Cartesian3.add(T.center,g,g)}if(V.defined(g))for(R.Cartesian3.divideByScalar(g,u,g),f=0;f<u;++f){var T=e[f][t].boundingSphere,x=R.Cartesian3.magnitude(R.Cartesian3.subtract(T.center,g,X))+T.radius;A<x&&(A=x)}return new G.Geometry({attributes:l,indices:o,primitiveType:d,boundingSphere:V.defined(g)?new M.BoundingSphere(g,A):void 0})}e.combineInstances=function(e){for(var t=[],r=[],a=e.length,i=0;i<a;++i){var n=e[i];V.defined(n.geometry)?t.push(n):V.defined(n.westHemisphereGeometry)&&V.defined(n.eastHemisphereGeometry)&&r.push(n)}var s=[];return 0<t.length&&s.push(j(t,"geometry")),0<r.length&&(s.push(j(r,"westHemisphereGeometry")),s.push(j(r,"eastHemisphereGeometry"))),s};var T=new R.Cartesian3,x=new R.Cartesian3,P=new R.Cartesian3,I=new R.Cartesian3,J=(e.computeNormal=function(e){for(var t=e.indices,r=e.attributes,a=r.position.values,i=r.position.values.length/3,n=t.length,s=new Array(i),o=new Array(n/3),u=new Array(n),p=0;p<i;p++)s[p]={indexOffset:0,count:0,currentCount:0};var d=0;for(p=0;p<n;p+=3){var l=t[p],y=t[p+1],f=t[p+2],m=3*l,c=3*y,v=3*f;x.x=a[m],x.y=a[1+m],x.z=a[2+m],P.x=a[c],P.y=a[1+c],P.z=a[2+c],I.x=a[v],I.y=a[1+v],I.z=a[2+v],s[l].count++,s[y].count++,s[f].count++,R.Cartesian3.subtract(P,x,P),R.Cartesian3.subtract(I,x,I),o[d]=R.Cartesian3.cross(P,I,new R.Cartesian3),d++}var C,h=0;for(p=0;p<i;p++)s[p].indexOffset+=h,h+=s[p].count;for(p=d=0;p<n;p+=3)u[(C=s[t[p]]).indexOffset+C.currentCount]=d,C.currentCount++,u[(C=s[t[p+1]]).indexOffset+C.currentCount]=d,C.currentCount++,u[(C=s[t[p+2]]).indexOffset+C.currentCount]=d,C.currentCount++,d++;var b=new Float32Array(3*i);for(p=0;p<i;p++){var g=3*p;if(C=s[p],R.Cartesian3.clone(R.Cartesian3.ZERO,T),0<C.count){for(d=0;d<C.count;d++)R.Cartesian3.add(T,o[u[C.indexOffset+d]],T);R.Cartesian3.equalsEpsilon(R.Cartesian3.ZERO,T,D.CesiumMath.EPSILON10)&&R.Cartesian3.clone(o[u[C.indexOffset]],T)}R.Cartesian3.equalsEpsilon(R.Cartesian3.ZERO,T,D.CesiumMath.EPSILON10)&&(T.z=1),R.Cartesian3.normalize(T,T),b[g]=T.x,b[1+g]=T.y,b[2+g]=T.z}return e.attributes.normal=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:b}),e},new R.Cartesian3),K=new R.Cartesian3,Q=new R.Cartesian3,O=(e.computeTangentAndBitangent=function(e){e.attributes;for(var t=e.indices,r=e.attributes.position.values,a=e.attributes.normal.values,i=e.attributes.st.values,n=e.attributes.position.values.length/3,s=t.length,o=new Array(3*n),u=0;u<o.length;u++)o[u]=0;for(u=0;u<s;u+=3){var p,d=t[u],l=t[u+1],y=t[u+2],f=3*l,m=3*y,c=2*d,l=2*l,y=2*y,d=r[p=3*d],v=r[p+1],C=r[p+2],h=i[c],c=i[1+c],b=i[1+l]-c,c=i[1+y]-c,l=1/((i[l]-h)*c-(i[y]-h)*b),y=(c*(r[f]-d)-b*(r[m]-d))*l,h=(c*(r[f+1]-v)-b*(r[m+1]-v))*l,d=(c*(r[f+2]-C)-b*(r[m+2]-C))*l;o[p]+=y,o[p+1]+=h,o[p+2]+=d,o[f]+=y,o[f+1]+=h,o[f+2]+=d,o[m]+=y,o[m+1]+=h,o[m+2]+=d}var g=new Float32Array(3*n),A=new Float32Array(3*n);for(u=0;u<n;u++){f=(p=3*u)+1,m=p+2;var T=R.Cartesian3.fromArray(a,p,J),x=R.Cartesian3.fromArray(o,p,Q),P=R.Cartesian3.dot(T,x);R.Cartesian3.multiplyByScalar(T,P,K),R.Cartesian3.normalize(R.Cartesian3.subtract(x,K,x),x),g[p]=x.x,g[f]=x.y,g[m]=x.z,R.Cartesian3.normalize(R.Cartesian3.cross(T,x,x),x),A[p]=x.x,A[f]=x.y,A[m]=x.z}return e.attributes.tangent=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:g}),e.attributes.bitangent=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:A}),e},new R.Cartesian2),E=new R.Cartesian3,$=new R.Cartesian3,ee=new R.Cartesian3,N=new R.Cartesian2;function te(e){switch(e.primitiveType){case G.PrimitiveType.TRIANGLE_FAN:for(var t=e,r=G.Geometry.computeNumberOfVertices(t),a=S.IndexDatatype.createTypedArray(r,3*(r-2)),i=(a[0]=1,a[1]=0,a[2]=2,3),n=3;n<r;++n)a[i++]=n-1,a[i++]=0,a[i++]=n;return t.indices=a,t.primitiveType=G.PrimitiveType.TRIANGLES,t;case G.PrimitiveType.TRIANGLE_STRIP:for(var t=e,s=G.Geometry.computeNumberOfVertices(t),o=S.IndexDatatype.createTypedArray(s,3*(s-2)),u=(o[0]=0,o[1]=1,o[2]=2,3<s&&(o[3]=0,o[4]=2,o[5]=3),6),p=3;p<s-1;p+=2)o[u++]=p,o[u++]=p-1,o[u++]=p+1,p+2<s&&(o[u++]=p,o[u++]=p+1,o[u++]=p+2);return t.indices=o,t.primitiveType=G.PrimitiveType.TRIANGLES,t;case G.PrimitiveType.TRIANGLES:var d=e;if(!V.defined(d.indices)){for(var l=G.Geometry.computeNumberOfVertices(d),y=S.IndexDatatype.createTypedArray(l,l),f=0;f<l;++f)y[f]=f;d.indices=y}return d;case G.PrimitiveType.LINE_STRIP:for(var d=e,m=G.Geometry.computeNumberOfVertices(d),c=S.IndexDatatype.createTypedArray(m,2*(m-1)),v=(c[0]=0,c[1]=1,2),C=2;C<m;++C)c[v++]=C-1,c[v++]=C;return d.indices=c,d.primitiveType=G.PrimitiveType.LINES,d;case G.PrimitiveType.LINE_LOOP:for(var h=e,b=G.Geometry.computeNumberOfVertices(h),g=S.IndexDatatype.createTypedArray(b,2*b),A=(g[0]=0,g[1]=1,2),T=2;T<b;++T)g[A++]=T-1,g[A++]=T;return g[A++]=b-1,g[A]=0,h.indices=g,h.primitiveType=G.PrimitiveType.LINES,h;case G.PrimitiveType.LINES:h=e;if(!V.defined(h.indices)){for(var x=G.Geometry.computeNumberOfVertices(h),P=S.IndexDatatype.createTypedArray(x,x),w=0;w<x;++w)P[w]=w;h.indices=P}return h}}function p(e,t){Math.abs(e.y)<D.CesiumMath.EPSILON6&&(e.y=t?-D.CesiumMath.EPSILON6:D.CesiumMath.EPSILON6)}e.compressVertices=function(e){var t=e.attributes.extrudeDirection;if(V.defined(t)){for(var r=t.values,a=r.length/3,i=new Float32Array(2*a),n=0,s=0;s<a;++s)R.Cartesian3.fromArray(r,3*s,E),R.Cartesian3.equals(E,R.Cartesian3.ZERO)?n+=2:(N=A.AttributeCompression.octEncodeInRange(E,65535,N),i[n++]=N.x,i[n++]=N.y);e.attributes.compressedAttributes=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:i}),delete e.attributes.extrudeDirection}else{var t=e.attributes.normal,o=e.attributes.st,u=V.defined(t),p=V.defined(o);if(u||p){var d,l,y,f,m=e.attributes.tangent,c=e.attributes.bitangent,v=V.defined(m),C=V.defined(c);u&&(d=t.values),p&&(l=o.values),v&&(y=m.values),C&&(f=c.values);var t=a=(u?d:l).length/(u?3:2),o=p&&u?2:1,h=(t*=o+=v||C?1:0,new Float32Array(t)),b=0;for(s=0;s<a;++s){p&&(R.Cartesian2.fromArray(l,2*s,O),h[b++]=A.AttributeCompression.compressTextureCoordinates(O));var g=3*s;u&&V.defined(y)&&V.defined(f)?(R.Cartesian3.fromArray(d,g,E),R.Cartesian3.fromArray(y,g,$),R.Cartesian3.fromArray(f,g,ee),A.AttributeCompression.octPack(E,$,ee,O),h[b++]=O.x,h[b++]=O.y):(u&&(R.Cartesian3.fromArray(d,g,E),h[b++]=A.AttributeCompression.octEncodeFloat(E)),v&&(R.Cartesian3.fromArray(y,g,E),h[b++]=A.AttributeCompression.octEncodeFloat(E)),C&&(R.Cartesian3.fromArray(f,g,E),h[b++]=A.AttributeCompression.octEncodeFloat(E)))}e.attributes.compressedAttributes=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.FLOAT,componentsPerAttribute:o,values:h}),u&&delete e.attributes.normal,p&&delete e.attributes.st,C&&delete e.attributes.bitangent,v&&delete e.attributes.tangent}}return e};var re=new R.Cartesian3;function l(e,t,r,a){R.Cartesian3.add(e,R.Cartesian3.multiplyByScalar(R.Cartesian3.subtract(t,e,re),e.y/(e.y-t.y),re),r),R.Cartesian3.clone(r,a),p(r,!0),p(a,!1)}var y=new R.Cartesian3,f=new R.Cartesian3,m=new R.Cartesian3,c=new R.Cartesian3,ae={positions:new Array(7),indices:new Array(9)};function ie(e,t,r){var a,i,n,s,o,u;if(!(0<=e.x||0<=t.x||0<=r.x))return s=t,o=r,0!==(a=e).y&&0!==s.y&&0!==o.y?(p(a,a.y<0),p(s,s.y<0),p(o,o.y<0)):(u=Math.abs(a.y),n=Math.abs(s.y),i=Math.abs(o.y),p(a,u=(n<u?i<u?D.CesiumMath.sign(a.y):D.CesiumMath.sign(o.y):i<n?D.CesiumMath.sign(s.y):D.CesiumMath.sign(o.y))<0),p(s,u),p(o,u)),a=e.y<0,i=t.y<0,n=r.y<0,s=0,o=ae.indices,1==(s=(s+=a?1:0)+(i?1:0)+(n?1:0))?(o[1]=3,o[2]=4,o[5]=6,o[7]=6,o[8]=5,a?(l(e,t,y,m),l(e,r,f,c),o[0]=0,o[3]=1,o[4]=2,o[6]=1):i?(l(t,r,y,m),l(t,e,f,c),o[0]=1,o[3]=2,o[4]=0,o[6]=2):n&&(l(r,e,y,m),l(r,t,f,c),o[0]=2,o[3]=0,o[4]=1,o[6]=0)):2==s&&(o[2]=4,o[4]=4,o[5]=3,o[7]=5,o[8]=6,a?i?n||(l(r,e,y,m),l(r,t,f,c),o[0]=0,o[1]=1,o[3]=0,o[6]=2):(l(t,r,y,m),l(t,e,f,c),o[0]=2,o[1]=0,o[3]=2,o[6]=1):(l(e,t,y,m),l(e,r,f,c),o[0]=1,o[1]=2,o[3]=1,o[6]=0)),(u=ae.positions)[0]=e,u[1]=t,u[2]=r,u.length=3,1!=s&&2!=s||(u[3]=y,u[4]=f,u[5]=m,u[6]=c,u.length=7),ae}function ne(e,t){var r=e.attributes;if(0!==r.position.values.length){for(var a in r)r.hasOwnProperty(a)&&V.defined(r[a])&&V.defined(r[a].values)&&((a=r[a]).values=w.ComponentDatatype.createTypedArray(a.componentDatatype,a.values));var i=G.Geometry.computeNumberOfVertices(e);return e.indices=S.IndexDatatype.createTypedArray(i,e.indices),t&&(e.boundingSphere=M.BoundingSphere.fromVertices(r.position.values)),e}}function F(e){var t,r,a=e.attributes,i={};for(t in a)a.hasOwnProperty(t)&&V.defined(a[t])&&V.defined(a[t].values)&&(r=a[t],i[t]=new G.GeometryAttribute({componentDatatype:r.componentDatatype,componentsPerAttribute:r.componentsPerAttribute,normalize:r.normalize,values:[]}));return new G.Geometry({attributes:i,indices:[],primitiveType:e.primitiveType})}function se(e,t,r){var a=V.defined(e.geometry.boundingSphere);t=ne(t,a),r=ne(r,a),V.defined(r)&&!V.defined(t)?e.geometry=r:!V.defined(r)&&V.defined(t)?e.geometry=t:(e.westHemisphereGeometry=t,e.eastHemisphereGeometry=r,e.geometry=void 0)}function oe(u,p){var d=new u,l=new u,y=new u;return function(e,t,r,a,i,n,s,o){e=u.fromArray(i,e*p,d),t=u.fromArray(i,t*p,l),i=u.fromArray(i,r*p,y),u.multiplyByScalar(e,a.x,e),u.multiplyByScalar(t,a.y,t),u.multiplyByScalar(i,a.z,i),r=u.add(e,t,e);u.add(r,i,r),o&&u.normalize(r,r),u.pack(r,n,s*p)}}var ue=oe(M.Cartesian4,4),L=oe(R.Cartesian3,3),pe=oe(R.Cartesian2,2),de=function(e,t,r,a,i,n,s){e=i[e]*a.x,t=i[t]*a.y,i=i[r]*a.z;n[s]=e+t+i>D.CesiumMath.EPSILON6?1:0},z=new R.Cartesian3,le=new R.Cartesian3,ye=new R.Cartesian3,fe=new R.Cartesian3;function B(e,t,r,a,i,n,s,o,u,p,d,l,y,f,m,c){if(V.defined(n)||V.defined(s)||V.defined(o)||V.defined(u)||V.defined(p)||0!==f){var v,C=function(e,t,r,a,i){var n,s,o,u,p,d,l,y;if(V.defined(i)||(i=new R.Cartesian3),V.defined(t.z)){if(R.Cartesian3.equalsEpsilon(e,t,D.CesiumMath.EPSILON14))return R.Cartesian3.clone(R.Cartesian3.UNIT_X,i);if(R.Cartesian3.equalsEpsilon(e,r,D.CesiumMath.EPSILON14))return R.Cartesian3.clone(R.Cartesian3.UNIT_Y,i);if(R.Cartesian3.equalsEpsilon(e,a,D.CesiumMath.EPSILON14))return R.Cartesian3.clone(R.Cartesian3.UNIT_Z,i);n=R.Cartesian3.subtract(r,t,Z),s=R.Cartesian3.subtract(a,t,H),o=R.Cartesian3.subtract(e,t,W),u=R.Cartesian3.dot(n,n),p=R.Cartesian3.dot(n,s),d=R.Cartesian3.dot(n,o),l=R.Cartesian3.dot(s,s),y=R.Cartesian3.dot(s,o)}else{if(R.Cartesian2.equalsEpsilon(e,t,D.CesiumMath.EPSILON14))return R.Cartesian3.clone(R.Cartesian3.UNIT_X,i);if(R.Cartesian2.equalsEpsilon(e,r,D.CesiumMath.EPSILON14))return R.Cartesian3.clone(R.Cartesian3.UNIT_Y,i);if(R.Cartesian2.equalsEpsilon(e,a,D.CesiumMath.EPSILON14))return R.Cartesian3.clone(R.Cartesian3.UNIT_Z,i);n=R.Cartesian2.subtract(r,t,Z),s=R.Cartesian2.subtract(a,t,H),o=R.Cartesian2.subtract(e,t,W),u=R.Cartesian2.dot(n,n),p=R.Cartesian2.dot(n,s),d=R.Cartesian2.dot(n,o),l=R.Cartesian2.dot(s,s),y=R.Cartesian2.dot(s,o)}if(i.y=l*d-p*y,i.z=u*y-p*d,0!=(r=u*l-p*p))return i.y/=r,i.z/=r,i.x=1-i.y-i.z,i}(a,R.Cartesian3.fromArray(i,3*e,z),R.Cartesian3.fromArray(i,3*t,le),R.Cartesian3.fromArray(i,3*r,ye),fe);if(V.defined(C))if(V.defined(n)&&L(e,t,r,C,n,l.normal.values,c,!0),V.defined(p)&&(a=R.Cartesian3.fromArray(p,3*e,z),i=R.Cartesian3.fromArray(p,3*t,le),n=R.Cartesian3.fromArray(p,3*r,ye),R.Cartesian3.multiplyByScalar(a,C.x,a),R.Cartesian3.multiplyByScalar(i,C.y,i),R.Cartesian3.multiplyByScalar(n,C.z,n),R.Cartesian3.equals(a,R.Cartesian3.ZERO)&&R.Cartesian3.equals(i,R.Cartesian3.ZERO)&&R.Cartesian3.equals(n,R.Cartesian3.ZERO)?((v=z).x=0,v.y=0,v.z=0):(v=R.Cartesian3.add(a,i,a),R.Cartesian3.add(v,n,v),R.Cartesian3.normalize(v,v)),R.Cartesian3.pack(v,l.extrudeDirection.values,3*c)),V.defined(d)&&de(e,t,r,C,d,l.applyOffset.values,c),V.defined(s)&&L(e,t,r,C,s,l.tangent.values,c,!0),V.defined(o)&&L(e,t,r,C,o,l.bitangent.values,c,!0),V.defined(u)&&pe(e,t,r,C,u,l.st.values,c),0<f)for(var h=0;h<f;h++){var b=y[h],g=(E=O=I=S=w=P=x=T=A=g=void 0,e),A=t,T=r,x=C,P=c,w=m[b],S=l[b],I=w.componentsPerAttribute,O=w.values,E=S.values;switch(I){case 4:ue(g,A,T,x,O,E,P,!1);break;case 3:L(g,A,T,x,O,E,P,!1);break;case 2:pe(g,A,T,x,O,E,P,!1);break;default:E[P]=O[g]*x.x+O[A]*x.y+O[T]*x.z}}}}function k(e,t,r,a,i,n){var s=e.position.values.length/3;return-1!==i?-1===(i=r[a=a[i]])?(r[a]=s,e.position.values.push(n.x,n.y,n.z),t.push(s),s):(t.push(i),i):(e.position.values.push(n.x,n.y,n.z),t.push(s),s)}var me={position:!0,normal:!0,bitangent:!0,tangent:!0,st:!0,extrudeDirection:!0,applyOffset:!0};function ce(e){var t,r=e.geometry,a=r.attributes,i=a.position.values,n=V.defined(a.normal)?a.normal.values:void 0,s=V.defined(a.bitangent)?a.bitangent.values:void 0,o=V.defined(a.tangent)?a.tangent.values:void 0,u=V.defined(a.st)?a.st.values:void 0,p=V.defined(a.extrudeDirection)?a.extrudeDirection.values:void 0,d=V.defined(a.applyOffset)?a.applyOffset.values:void 0,l=r.indices,y=[];for(t in a)a.hasOwnProperty(t)&&!me[t]&&V.defined(a[t])&&y.push(t);var f,m,c=y.length,v=F(r),C=F(r),h=[],b=(h.length=i.length/3,[]);for(b.length=i.length/3,A=0;A<h.length;++A)b[A]=h[A]=-1;for(var g=l.length,A=0;A<g;A+=3){var T=l[A],x=l[A+1],P=l[A+2],w=R.Cartesian3.fromArray(i,3*T),S=R.Cartesian3.fromArray(i,3*x),I=R.Cartesian3.fromArray(i,3*P),O=ie(w,S,I);if(V.defined(O)&&3<O.positions.length)for(var E=O.positions,N=O.indices,L=N.length,z=0;z<L;++z){var D=N[z],M=E[D],G=M.y<0?(f=C.attributes,m=C.indices,h):(f=v.attributes,m=v.indices,b);B(T,x,P,M,i,n,o,s,u,p,d,f,y,c,a,k(f,m,G,l,D<3?A+D:-1,M))}else V.defined(O)&&(w=O.positions[0],S=O.positions[1],I=O.positions[2]),G=w.y<0?(f=C.attributes,m=C.indices,h):(f=v.attributes,m=v.indices,b),B(T,x,P,w,i,n,o,s,u,p,d,f,y,c,a,k(f,m,G,l,A,w)),B(T,x,P,S,i,n,o,s,u,p,d,f,y,c,a,k(f,m,G,l,A+1,S)),B(T,x,P,I,i,n,o,s,u,p,d,f,y,c,a,k(f,m,G,l,A+2,I))}se(e,C,v)}var ve=Y.Plane.fromPointNormal(R.Cartesian3.ZERO,R.Cartesian3.UNIT_Y),Ce=new R.Cartesian3,he=new R.Cartesian3;function _(e,t,r,a,i,n,s){V.defined(s)&&(a=R.Cartesian3.fromArray(a,3*e,z),R.Cartesian3.equalsEpsilon(a,r,D.CesiumMath.EPSILON10)?n.applyOffset.values[i]=s[e]:n.applyOffset.values[i]=s[t])}function be(e){var t,r=e.geometry,a=r.attributes,i=a.position.values,n=V.defined(a.applyOffset)?a.applyOffset.values:void 0,s=r.indices,o=F(r),u=F(r),p=s.length,d=[],l=(d.length=i.length/3,[]);for(l.length=i.length/3,t=0;t<d.length;++t)l[t]=d[t]=-1;for(t=0;t<p;t+=2){var y,f,m,c,v=s[t],C=s[t+1],h=R.Cartesian3.fromArray(i,3*v,z),b=R.Cartesian3.fromArray(i,3*C,le),g=(Math.abs(h.y)<D.CesiumMath.EPSILON6&&(h.y<0?h.y=-D.CesiumMath.EPSILON6:h.y=D.CesiumMath.EPSILON6),Math.abs(b.y)<D.CesiumMath.EPSILON6&&(b.y<0?b.y=-D.CesiumMath.EPSILON6:b.y=D.CesiumMath.EPSILON6),o.attributes),A=o.indices,T=l,x=u.attributes,P=u.indices,w=d,S=U.IntersectionTests.lineSegmentPlane(h,b,ve,ye);V.defined(S)?(y=R.Cartesian3.multiplyByScalar(R.Cartesian3.UNIT_Y,5*D.CesiumMath.EPSILON9,Ce),h.y<0&&(R.Cartesian3.negate(y,y),g=u.attributes,A=u.indices,T=d,x=o.attributes,P=o.indices,w=l),f=R.Cartesian3.add(S,y,he),_(v,C,h,i,k(g,A,T,s,t,h),g,n),_(v,C,f,i,k(g,A,T,s,-1,f),g,n),R.Cartesian3.negate(y,y),R.Cartesian3.add(S,y,f),_(v,C,f,i,k(x,P,w,s,-1,f),x,n),_(v,C,b,i,k(x,P,w,s,t+1,b),x,n)):(A=h.y<0?(m=u.attributes,c=u.indices,d):(m=o.attributes,c=o.indices,l),_(v,C,h,i,k(m,c,A,s,t,h),m,n),_(v,C,b,i,k(m,c,A,s,t+1,b),m,n))}se(e,u,o)}var ge=new R.Cartesian2,Ae=new R.Cartesian2,Te=new R.Cartesian3,xe=new R.Cartesian3,Pe=new R.Cartesian3,we=new R.Cartesian3,Se=new R.Cartesian3,Ie=new R.Cartesian3,Oe=new M.Cartesian4;function Ee(e){for(var e=e.attributes,t=e.position.values,r=e.prevPosition.values,a=e.nextPosition.values,i=t.length,n=0;n<i;n+=3){var s,o=R.Cartesian3.unpack(t,n,Te);0<o.x||(s=R.Cartesian3.unpack(r,n,xe),(o.y<0&&0<s.y||0<o.y&&s.y<0)&&(0<n-3?(r[n]=t[n-3],r[n+1]=t[n-2],r[n+2]=t[n-1]):R.Cartesian3.pack(o,r,n)),s=R.Cartesian3.unpack(a,n,Pe),(o.y<0&&0<s.y||0<o.y&&s.y<0)&&(n+3<i?(a[n]=t[n+3],a[n+1]=t[n+4],a[n+2]=t[n+5]):R.Cartesian3.pack(o,a,n)))}}var Ne=5*D.CesiumMath.EPSILON9,q=D.CesiumMath.EPSILON6;e.splitLongitude=function(e){var t=e.geometry,r=t.boundingSphere;if(V.defined(r)&&(0<r.center.x-r.radius||M.BoundingSphere.intersectPlane(r,Y.Plane.ORIGIN_ZX_PLANE)!==M.Intersect.INTERSECTING))return e;if(t.geometryType!==G.GeometryType.NONE)switch(t.geometryType){case G.GeometryType.POLYLINES:for(var a=e,i=a.geometry,n=i.attributes,s=n.position.values,o=n.prevPosition.values,u=n.nextPosition.values,p=n.expandAndWidth.values,d=V.defined(n.st)?n.st.values:void 0,l=V.defined(n.color)?n.color.values:void 0,y=F(i),f=F(i),m=!1,c=s.length/3,v=0;v<c;v+=4){var C=v,h=v+2,b=R.Cartesian3.fromArray(s,3*C,Te),g=R.Cartesian3.fromArray(s,3*h,xe);if(Math.abs(b.y)<q)for(b.y=q*(g.y<0?-1:1),s[3*v+1]=b.y,s[3*(v+1)+1]=b.y,L=3*C;L<3*C+12;L+=3)o[L]=s[3*v],o[L+1]=s[3*v+1],o[L+2]=s[3*v+2];if(Math.abs(g.y)<q)for(g.y=q*(b.y<0?-1:1),s[3*(v+2)+1]=g.y,s[3*(v+3)+1]=g.y,L=3*C;L<3*C+12;L+=3)u[L]=s[3*(v+2)],u[L+1]=s[3*(v+2)+1],u[L+2]=s[3*(v+2)+2];var A=y.attributes,T=y.indices,x=f.attributes,P=f.indices,w=U.IntersectionTests.lineSegmentPlane(b,g,ve,we);if(V.defined(w)){var m=!0,S=R.Cartesian3.multiplyByScalar(R.Cartesian3.UNIT_Y,Ne,Se),I=(b.y<0&&(R.Cartesian3.negate(S,S),A=f.attributes,T=f.indices,x=y.attributes,P=y.indices),R.Cartesian3.add(w,S,Ie)),S=(A.position.values.push(b.x,b.y,b.z,b.x,b.y,b.z),A.position.values.push(I.x,I.y,I.z),A.position.values.push(I.x,I.y,I.z),A.prevPosition.values.push(o[3*C],o[3*C+1],o[3*C+2]),A.prevPosition.values.push(o[3*C+3],o[3*C+4],o[3*C+5]),A.prevPosition.values.push(b.x,b.y,b.z,b.x,b.y,b.z),A.nextPosition.values.push(I.x,I.y,I.z),A.nextPosition.values.push(I.x,I.y,I.z),A.nextPosition.values.push(I.x,I.y,I.z),A.nextPosition.values.push(I.x,I.y,I.z),R.Cartesian3.negate(S,S),R.Cartesian3.add(w,S,I),x.position.values.push(I.x,I.y,I.z),x.position.values.push(I.x,I.y,I.z),x.position.values.push(g.x,g.y,g.z,g.x,g.y,g.z),x.prevPosition.values.push(I.x,I.y,I.z),x.prevPosition.values.push(I.x,I.y,I.z),x.prevPosition.values.push(I.x,I.y,I.z),x.prevPosition.values.push(I.x,I.y,I.z),x.nextPosition.values.push(g.x,g.y,g.z,g.x,g.y,g.z),x.nextPosition.values.push(u[3*h],u[3*h+1],u[3*h+2]),x.nextPosition.values.push(u[3*h+3],u[3*h+4],u[3*h+5]),R.Cartesian2.fromArray(p,2*C,ge)),I=Math.abs(S.y),S=(A.expandAndWidth.values.push(-1,I,1,I),A.expandAndWidth.values.push(-1,-I,1,-I),x.expandAndWidth.values.push(-1,I,1,I),x.expandAndWidth.values.push(-1,-I,1,-I),R.Cartesian3.magnitudeSquared(R.Cartesian3.subtract(w,b,Pe)));if(S/=R.Cartesian3.magnitudeSquared(R.Cartesian3.subtract(g,b,Pe)),V.defined(l)){for(var I=M.Cartesian4.fromArray(l,4*C,Oe),w=M.Cartesian4.fromArray(l,4*h,Oe),O=D.CesiumMath.lerp(I.x,w.x,S),E=D.CesiumMath.lerp(I.y,w.y,S),N=D.CesiumMath.lerp(I.z,w.z,S),I=D.CesiumMath.lerp(I.w,w.w,S),L=4*C;L<4*C+8;++L)A.color.values.push(l[L]);for(A.color.values.push(O,E,N,I),A.color.values.push(O,E,N,I),x.color.values.push(O,E,N,I),x.color.values.push(O,E,N,I),L=4*h;L<4*h+8;++L)x.color.values.push(l[L])}if(V.defined(d)){w=R.Cartesian2.fromArray(d,2*C,ge),O=R.Cartesian2.fromArray(d,2*(v+3),Ae),E=D.CesiumMath.lerp(w.x,O.x,S);for(L=2*C;L<2*C+4;++L)A.st.values.push(d[L]);for(A.st.values.push(E,w.y),A.st.values.push(E,O.y),x.st.values.push(E,w.y),x.st.values.push(E,O.y),L=2*h;L<2*h+4;++L)x.st.values.push(d[L])}N=A.position.values.length/3-4,T.push(N,N+2,N+1),T.push(N+1,N+2,N+3),N=x.position.values.length/3-4,P.push(N,N+2,N+1),P.push(N+1,N+2,N+3)}else{var z,I=(b.y<0?(z=f.attributes,f):(z=y.attributes,y)).indices;for(z.position.values.push(b.x,b.y,b.z),z.position.values.push(b.x,b.y,b.z),z.position.values.push(g.x,g.y,g.z),z.position.values.push(g.x,g.y,g.z),L=3*v;L<3*v+12;++L)z.prevPosition.values.push(o[L]),z.nextPosition.values.push(u[L]);for(L=2*v;L<2*v+8;++L)z.expandAndWidth.values.push(p[L]),V.defined(d)&&z.st.values.push(d[L]);if(V.defined(l))for(L=4*v;L<4*v+16;++L)z.color.values.push(l[L]);N=z.position.values.length/3-4,I.push(N,N+2,N+1),I.push(N+1,N+2,N+3)}}m&&(Ee(f),Ee(y)),se(a,f,y);break;case G.GeometryType.TRIANGLES:ce(e);break;case G.GeometryType.LINES:be(e)}else te(t),t.primitiveType===G.PrimitiveType.TRIANGLES?ce(e):t.primitiveType===G.PrimitiveType.LINES&&be(e);return e},t.GeometryPipeline=e});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
define(["exports","./AttributeCompression-b9605c73","./Cartesian2-c1eb9da0","./Check-f996273c","./when-ae2e0b60","./Math-5bbcea10","./Transforms-1fa85493","./ComponentDatatype-e44126e4","./EncodedCartesian3-6f721b97","./GeometryAttribute-9cc31675","./IndexDatatype-516320ea","./IntersectionTests-318fd637","./Plane-fa12edbb"],function(t,A,R,r,V,D,M,w,v,G,S,U,Y){"use strict";var Z=new R.Cartesian3,H=new R.Cartesian3,W=new R.Cartesian3;var C={calculateACMR:function(e){var t=(e=V.defaultValue(e,V.defaultValue.EMPTY_OBJECT)).indices,r=e.maximumIndex,a=V.defaultValue(e.cacheSize,24),i=t.length;if(!V.defined(r))for(var r=0,n=0,s=t[n];n<i;)r<s&&(r=s),s=t[++n];for(var o=[],u=0;u<r+1;u++)o[u]=0;for(var p=a+1,d=0;d<i;++d)p-o[t[d]]>a&&(o[t[d]]=p,++p);return(p-a+1)/(i/3)}},e=(C.tipsify=function(e){var t=(e=V.defaultValue(e,V.defaultValue.EMPTY_OBJECT)).indices,r=e.maximumIndex,a=V.defaultValue(e.cacheSize,24);function i(e,t,r,a,i,n,s){for(var o,u=-1,p=-1,d=0;d<r.length;){var l=r[d];a[l].numLiveTriangles&&(o=0,p<(o=i-a[l].timeStamp+2*a[l].numLiveTriangles<=t?i-a[l].timeStamp:o)||-1===p)&&(p=o,u=l),++d}if(-1!==u)return u;for(var y=a,f=n,m=s;1<=f.length;){var c=f[f.length-1];if(f.splice(f.length-1,1),0<y[c].numLiveTriangles)return c}for(;v<m;){if(0<y[v].numLiveTriangles)return++v-1;++v}return-1}var e=t.length,n=0,s=t[P=0],o=e;if(V.defined(r))n=r+1;else{for(;P<o;)n<s&&(n=s),s=t[++P];if(-1===n)return 0;++n}for(var u=[],p=0;p<n;p++)u[p]={numLiveTriangles:0,timeStamp:0,vertexTriangles:[]};for(var d=P=0;P<o;)u[t[P]].vertexTriangles.push(d),++u[t[P]].numLiveTriangles,u[t[P+1]].vertexTriangles.push(d),++u[t[P+1]].numLiveTriangles,u[t[P+2]].vertexTriangles.push(d),++u[t[P+2]].numLiveTriangles,++d,P+=3;var l,y=0,f=a+1,v=1,m=[],c=[],C=0,h=[],b=e/3,g=[];for(p=0;p<b;p++)g[p]=!1;for(;-1!==y;){for(var A,m=[],T=(A=u[y]).vertexTriangles.length,x=0;x<T;++x)if(!g[d=A.vertexTriangles[x]]){g[d]=!0;for(var P=d+d+d,w=0;w<3;++w)l=t[P],m.push(l),c.push(l),h[C]=l,++C,--(l=u[l]).numLiveTriangles,f-l.timeStamp>a&&(l.timeStamp=f,++f),++P}y=i(0,a,m,u,f,c,n)}return h},{});function s(e,t,r,a,i){e[t++]=r,e[t++]=a,e[t++]=a,e[t++]=i,e[t++]=i,e[t]=r}function g(e){var t,r,a={};for(t in e)e.hasOwnProperty(t)&&V.defined(e[t])&&V.defined(e[t].values)&&(r=e[t],a[t]=new G.GeometryAttribute({componentDatatype:r.componentDatatype,componentsPerAttribute:r.componentsPerAttribute,normalize:r.normalize,values:[]}));return a}e.toWireframe=function(e){var t=e.indices;if(V.defined(t)){switch(e.primitiveType){case G.PrimitiveType.TRIANGLES:e.indices=function(e){for(var t=e.length,r=S.IndexDatatype.createTypedArray(t,t/3*6),a=0,i=0;i<t;i+=3,a+=6)s(r,a,e[i],e[i+1],e[i+2]);return r}(t);break;case G.PrimitiveType.TRIANGLE_STRIP:e.indices=function(e){var t=e.length;if(3<=t){for(var r=S.IndexDatatype.createTypedArray(t,6*(t-2)),a=(s(r,0,e[0],e[1],e[2]),6),i=3;i<t;++i,a+=6)s(r,a,e[i-1],e[i],e[i-2]);return r}return new Uint16Array}(t);break;case G.PrimitiveType.TRIANGLE_FAN:e.indices=function(e){if(0<e.length){for(var t=e.length-1,r=S.IndexDatatype.createTypedArray(t,6*(t-1)),a=e[0],i=0,n=1;n<t;++n,i+=6)s(r,i,a,e[n],e[n+1]);return r}return new Uint16Array}(t)}e.primitiveType=G.PrimitiveType.LINES}return e},e.createLineSegmentsForVectors=function(e,t,r){t=V.defaultValue(t,"normal"),r=V.defaultValue(r,1e4);for(var a,i=e.attributes.position.values,n=e.attributes[t].values,s=i.length,o=new Float64Array(2*s),u=0,p=0;p<s;p+=3)o[u++]=i[p],o[u++]=i[p+1],o[u++]=i[p+2],o[u++]=i[p]+n[p]*r,o[u++]=i[p+1]+n[p+1]*r,o[u++]=i[p+2]+n[p+2]*r;t=e.boundingSphere;return V.defined(t)&&(a=new M.BoundingSphere(t.center,t.radius+r)),new G.Geometry({attributes:{position:new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:o})},primitiveType:G.PrimitiveType.LINES,boundingSphere:a})},e.createAttributeLocations=function(e){for(var t,r=["position","positionHigh","positionLow","position3DHigh","position3DLow","position2DHigh","position2DLow","pickColor","normal","st","tangent","bitangent","extrudeDirection","compressedAttributes"],a=e.attributes,i={},n=0,s=r.length,o=0;o<s;++o){var u=r[o];V.defined(a[u])&&(i[u]=n++)}for(t in a)a.hasOwnProperty(t)&&!V.defined(i[t])&&(i[t]=n++);return i},e.reorderForPreVertexCache=function(e){var t=G.Geometry.computeNumberOfVertices(e),r=e.indices;if(V.defined(r)){for(var a=new Int32Array(t),i=0;i<t;i++)a[i]=-1;for(var n,s=r,o=s.length,u=S.IndexDatatype.createTypedArray(t,o),p=0,d=0,l=0;p<o;)-1!==(n=a[s[p]])?u[d]=n:(a[s[p]]=l,u[d]=l,++l),++p,++d;e.indices=u;var y,f=e.attributes;for(y in f)if(f.hasOwnProperty(y)&&V.defined(f[y])&&V.defined(f[y].values)){for(var m=f[y],c=m.values,v=0,C=m.componentsPerAttribute,h=w.ComponentDatatype.createTypedArray(m.componentDatatype,l*C);v<t;){var b=a[v];if(-1!==b)for(var g=0;g<C;g++)h[C*b+g]=c[C*v+g];++v}m.values=h}}return e},e.reorderForPostVertexCache=function(e,t){var r=e.indices;if(e.primitiveType===G.PrimitiveType.TRIANGLES&&V.defined(r)){for(var a=r.length,i=0,n=0;n<a;n++)r[n]>i&&(i=r[n]);e.indices=C.tipsify({indices:r,maximumIndex:i,cacheSize:t})}return e},e.fitToUnsignedShortIndices=function(e){var t=[],r=G.Geometry.computeNumberOfVertices(e);if(V.defined(e.indices)&&r>=D.CesiumMath.SIXTY_FOUR_KILOBYTES){var a,i=[],n=[],s=0,o=g(e.attributes),u=e.indices,p=u.length;e.primitiveType===G.PrimitiveType.TRIANGLES?a=3:e.primitiveType===G.PrimitiveType.LINES?a=2:e.primitiveType===G.PrimitiveType.POINTS&&(a=1);for(var d=0;d<p;d+=a){for(var l=0;l<a;++l){var y=u[d+l],f=i[y];if(!V.defined(f)){f=s++,i[y]=f,b=h=m=C=v=c=void 0;var m,c=o,v=e.attributes,C=y;for(m in v)if(v.hasOwnProperty(m)&&V.defined(v[m])&&V.defined(v[m].values))for(var h=v[m],b=0;b<h.componentsPerAttribute;++b)c[m].values.push(h.values[C*h.componentsPerAttribute+b])}n.push(f)}s+a>=D.CesiumMath.SIXTY_FOUR_KILOBYTES&&(t.push(new G.Geometry({attributes:o,indices:n,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV})),i=[],n=[],s=0,o=g(e.attributes))}0!==n.length&&t.push(new G.Geometry({attributes:o,indices:n,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV}))}else t.push(e);return t};var h=new R.Cartesian3,b=new R.Cartographic,d=(e.projectTo2D=function(e,t,r,a,i){for(var n=e.attributes[t],s=(i=V.defined(i)?i:new M.GeographicProjection).ellipsoid,o=n.values,u=new Float64Array(o.length),p=0,d=0;d<o.length;d+=3){var l=R.Cartesian3.fromArray(o,d,h),l=s.cartesianToCartographic(l,b),l=i.project(l,h);u[p++]=l.x,u[p++]=l.y,u[p++]=l.z}return e.attributes[r]=n,e.attributes[a]=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:u}),delete e.attributes[t],e},{high:0,low:0}),n=(e.encodeAttribute=function(e,t,r,a){for(var i=e.attributes[t],n=i.values,s=n.length,o=new Float32Array(s),u=new Float32Array(s),p=0;p<s;++p)v.EncodedCartesian3.encode(n[p],d),o[p]=d.high,u[p]=d.low;i=i.componentsPerAttribute;return e.attributes[r]=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.FLOAT,componentsPerAttribute:i,values:o}),e.attributes[a]=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.FLOAT,componentsPerAttribute:i,values:u}),delete e.attributes[t],e},new R.Cartesian3);function a(e,t){if(V.defined(t))for(var r=t.values,a=r.length,i=0;i<a;i+=3)R.Cartesian3.unpack(r,i,n),M.Matrix4.multiplyByPoint(e,n,n),R.Cartesian3.pack(n,r,i)}function i(e,t){if(V.defined(t))for(var r=t.values,a=r.length,i=0;i<a;i+=3)R.Cartesian3.unpack(r,i,n),M.Matrix3.multiplyByVector(e,n,n),n=R.Cartesian3.normalize(n,n),R.Cartesian3.pack(n,r,i)}var o=new M.Matrix4,u=new M.Matrix3;e.transformToWorldCoordinates=function(e){var t,r=e.modelMatrix;return M.Matrix4.equals(r,M.Matrix4.IDENTITY)||(a(r,(t=e.geometry.attributes).position),a(r,t.prevPosition),a(r,t.nextPosition),(V.defined(t.normal)||V.defined(t.tangent)||V.defined(t.bitangent))&&(M.Matrix4.inverse(r,o),M.Matrix4.transpose(o,o),M.Matrix4.getMatrix3(o,u),i(u,t.normal),i(u,t.tangent),i(u,t.bitangent)),t=e.geometry.boundingSphere,V.defined(t)&&(e.geometry.boundingSphere=M.BoundingSphere.transform(t,r,t)),e.modelMatrix=M.Matrix4.clone(M.Matrix4.IDENTITY)),e};var X=new R.Cartesian3;function j(e,t){var r,a,i,n,s,o,u=e.length,p=(e[0].modelMatrix,V.defined(e[0][t].indices)),d=e[0][t].primitiveType,l=function(e,t){var r,a=e.length,i={},n=e[0][t].attributes;for(r in n)if(n.hasOwnProperty(r)&&V.defined(n[r])&&V.defined(n[r].values)){for(var s=n[r],o=s.values.length,u=!0,p=1;p<a;++p){var d=e[p][t].attributes[r];if(!V.defined(d)||s.componentDatatype!==d.componentDatatype||s.componentsPerAttribute!==d.componentsPerAttribute||s.normalize!==d.normalize){u=!1;break}o+=d.values.length}u&&(i[r]=new G.GeometryAttribute({componentDatatype:s.componentDatatype,componentsPerAttribute:s.componentsPerAttribute,normalize:s.normalize,values:w.ComponentDatatype.createTypedArray(s.componentDatatype,o)}))}return i}(e,t);for(r in l)if(l.hasOwnProperty(r))for(i=l[r].values,f=b=0;f<u;++f)for(s=(n=e[f][t].attributes[r].values).length,a=0;a<s;++a)i[b++]=n[a];if(p){for(var y=0,f=0;f<u;++f)y+=e[f][t].indices.length;var p=G.Geometry.computeNumberOfVertices(new G.Geometry({attributes:l,primitiveType:G.PrimitiveType.POINTS})),m=S.IndexDatatype.createTypedArray(p,y),c=0,v=0;for(f=0;f<u;++f){for(var C=e[f][t].indices,h=C.length,b=0;b<h;++b)m[c++]=v+C[b];v+=G.Geometry.computeNumberOfVertices(e[f][t])}o=m}var g=new R.Cartesian3,A=0;for(f=0;f<u;++f){if(T=e[f][t].boundingSphere,!V.defined(T)){g=void 0;break}R.Cartesian3.add(T.center,g,g)}if(V.defined(g))for(R.Cartesian3.divideByScalar(g,u,g),f=0;f<u;++f){var T=e[f][t].boundingSphere,x=R.Cartesian3.magnitude(R.Cartesian3.subtract(T.center,g,X))+T.radius;A<x&&(A=x)}return new G.Geometry({attributes:l,indices:o,primitiveType:d,boundingSphere:V.defined(g)?new M.BoundingSphere(g,A):void 0})}e.combineInstances=function(e){for(var t=[],r=[],a=e.length,i=0;i<a;++i){var n=e[i];V.defined(n.geometry)?t.push(n):V.defined(n.westHemisphereGeometry)&&V.defined(n.eastHemisphereGeometry)&&r.push(n)}var s=[];return 0<t.length&&s.push(j(t,"geometry")),0<r.length&&(s.push(j(r,"westHemisphereGeometry")),s.push(j(r,"eastHemisphereGeometry"))),s};var T=new R.Cartesian3,x=new R.Cartesian3,P=new R.Cartesian3,I=new R.Cartesian3,J=(e.computeNormal=function(e){for(var t=e.indices,r=e.attributes,a=r.position.values,i=r.position.values.length/3,n=t.length,s=new Array(i),o=new Array(n/3),u=new Array(n),p=0;p<i;p++)s[p]={indexOffset:0,count:0,currentCount:0};var d=0;for(p=0;p<n;p+=3){var l=t[p],y=t[p+1],f=t[p+2],m=3*l,c=3*y,v=3*f;x.x=a[m],x.y=a[1+m],x.z=a[2+m],P.x=a[c],P.y=a[1+c],P.z=a[2+c],I.x=a[v],I.y=a[1+v],I.z=a[2+v],s[l].count++,s[y].count++,s[f].count++,R.Cartesian3.subtract(P,x,P),R.Cartesian3.subtract(I,x,I),o[d]=R.Cartesian3.cross(P,I,new R.Cartesian3),d++}var C,h=0;for(p=0;p<i;p++)s[p].indexOffset+=h,h+=s[p].count;for(p=d=0;p<n;p+=3)u[(C=s[t[p]]).indexOffset+C.currentCount]=d,C.currentCount++,u[(C=s[t[p+1]]).indexOffset+C.currentCount]=d,C.currentCount++,u[(C=s[t[p+2]]).indexOffset+C.currentCount]=d,C.currentCount++,d++;var b=new Float32Array(3*i);for(p=0;p<i;p++){var g=3*p;if(C=s[p],R.Cartesian3.clone(R.Cartesian3.ZERO,T),0<C.count){for(d=0;d<C.count;d++)R.Cartesian3.add(T,o[u[C.indexOffset+d]],T);R.Cartesian3.equalsEpsilon(R.Cartesian3.ZERO,T,D.CesiumMath.EPSILON10)&&R.Cartesian3.clone(o[u[C.indexOffset]],T)}R.Cartesian3.equalsEpsilon(R.Cartesian3.ZERO,T,D.CesiumMath.EPSILON10)&&(T.z=1),R.Cartesian3.normalize(T,T),b[g]=T.x,b[1+g]=T.y,b[2+g]=T.z}return e.attributes.normal=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:b}),e},new R.Cartesian3),K=new R.Cartesian3,Q=new R.Cartesian3,O=(e.computeTangentAndBitangent=function(e){e.attributes;for(var t=e.indices,r=e.attributes.position.values,a=e.attributes.normal.values,i=e.attributes.st.values,n=e.attributes.position.values.length/3,s=t.length,o=new Array(3*n),u=0;u<o.length;u++)o[u]=0;for(u=0;u<s;u+=3){var p,d=t[u],l=t[u+1],y=t[u+2],f=3*l,m=3*y,c=2*d,l=2*l,y=2*y,d=r[p=3*d],v=r[p+1],C=r[p+2],h=i[c],c=i[1+c],b=i[1+l]-c,c=i[1+y]-c,l=1/((i[l]-h)*c-(i[y]-h)*b),y=(c*(r[f]-d)-b*(r[m]-d))*l,h=(c*(r[f+1]-v)-b*(r[m+1]-v))*l,d=(c*(r[f+2]-C)-b*(r[m+2]-C))*l;o[p]+=y,o[p+1]+=h,o[p+2]+=d,o[f]+=y,o[f+1]+=h,o[f+2]+=d,o[m]+=y,o[m+1]+=h,o[m+2]+=d}var g=new Float32Array(3*n),A=new Float32Array(3*n);for(u=0;u<n;u++){f=(p=3*u)+1,m=p+2;var T=R.Cartesian3.fromArray(a,p,J),x=R.Cartesian3.fromArray(o,p,Q),P=R.Cartesian3.dot(T,x);R.Cartesian3.multiplyByScalar(T,P,K),R.Cartesian3.normalize(R.Cartesian3.subtract(x,K,x),x),g[p]=x.x,g[f]=x.y,g[m]=x.z,R.Cartesian3.normalize(R.Cartesian3.cross(T,x,x),x),A[p]=x.x,A[f]=x.y,A[m]=x.z}return e.attributes.tangent=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:g}),e.attributes.bitangent=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:A}),e},new R.Cartesian2),E=new R.Cartesian3,$=new R.Cartesian3,ee=new R.Cartesian3,N=new R.Cartesian2;function te(e){switch(e.primitiveType){case G.PrimitiveType.TRIANGLE_FAN:for(var t=e,r=G.Geometry.computeNumberOfVertices(t),a=S.IndexDatatype.createTypedArray(r,3*(r-2)),i=(a[0]=1,a[1]=0,a[2]=2,3),n=3;n<r;++n)a[i++]=n-1,a[i++]=0,a[i++]=n;return t.indices=a,t.primitiveType=G.PrimitiveType.TRIANGLES,t;case G.PrimitiveType.TRIANGLE_STRIP:for(var t=e,s=G.Geometry.computeNumberOfVertices(t),o=S.IndexDatatype.createTypedArray(s,3*(s-2)),u=(o[0]=0,o[1]=1,o[2]=2,3<s&&(o[3]=0,o[4]=2,o[5]=3),6),p=3;p<s-1;p+=2)o[u++]=p,o[u++]=p-1,o[u++]=p+1,p+2<s&&(o[u++]=p,o[u++]=p+1,o[u++]=p+2);return t.indices=o,t.primitiveType=G.PrimitiveType.TRIANGLES,t;case G.PrimitiveType.TRIANGLES:var d=e;if(!V.defined(d.indices)){for(var l=G.Geometry.computeNumberOfVertices(d),y=S.IndexDatatype.createTypedArray(l,l),f=0;f<l;++f)y[f]=f;d.indices=y}return d;case G.PrimitiveType.LINE_STRIP:for(var d=e,m=G.Geometry.computeNumberOfVertices(d),c=S.IndexDatatype.createTypedArray(m,2*(m-1)),v=(c[0]=0,c[1]=1,2),C=2;C<m;++C)c[v++]=C-1,c[v++]=C;return d.indices=c,d.primitiveType=G.PrimitiveType.LINES,d;case G.PrimitiveType.LINE_LOOP:for(var h=e,b=G.Geometry.computeNumberOfVertices(h),g=S.IndexDatatype.createTypedArray(b,2*b),A=(g[0]=0,g[1]=1,2),T=2;T<b;++T)g[A++]=T-1,g[A++]=T;return g[A++]=b-1,g[A]=0,h.indices=g,h.primitiveType=G.PrimitiveType.LINES,h;case G.PrimitiveType.LINES:h=e;if(!V.defined(h.indices)){for(var x=G.Geometry.computeNumberOfVertices(h),P=S.IndexDatatype.createTypedArray(x,x),w=0;w<x;++w)P[w]=w;h.indices=P}return h}}function p(e,t){Math.abs(e.y)<D.CesiumMath.EPSILON6&&(e.y=t?-D.CesiumMath.EPSILON6:D.CesiumMath.EPSILON6)}e.compressVertices=function(e){var t=e.attributes.extrudeDirection;if(V.defined(t)){for(var r=t.values,a=r.length/3,i=new Float32Array(2*a),n=0,s=0;s<a;++s)R.Cartesian3.fromArray(r,3*s,E),R.Cartesian3.equals(E,R.Cartesian3.ZERO)?n+=2:(N=A.AttributeCompression.octEncodeInRange(E,65535,N),i[n++]=N.x,i[n++]=N.y);e.attributes.compressedAttributes=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:i}),delete e.attributes.extrudeDirection}else{var t=e.attributes.normal,o=e.attributes.st,u=V.defined(t),p=V.defined(o);if(u||p){var d,l,y,f,m=e.attributes.tangent,c=e.attributes.bitangent,v=V.defined(m),C=V.defined(c);u&&(d=t.values),p&&(l=o.values),v&&(y=m.values),C&&(f=c.values);var t=a=(u?d:l).length/(u?3:2),o=p&&u?2:1,h=(t*=o+=v||C?1:0,new Float32Array(t)),b=0;for(s=0;s<a;++s){p&&(R.Cartesian2.fromArray(l,2*s,O),h[b++]=A.AttributeCompression.compressTextureCoordinates(O));var g=3*s;u&&V.defined(y)&&V.defined(f)?(R.Cartesian3.fromArray(d,g,E),R.Cartesian3.fromArray(y,g,$),R.Cartesian3.fromArray(f,g,ee),A.AttributeCompression.octPack(E,$,ee,O),h[b++]=O.x,h[b++]=O.y):(u&&(R.Cartesian3.fromArray(d,g,E),h[b++]=A.AttributeCompression.octEncodeFloat(E)),v&&(R.Cartesian3.fromArray(y,g,E),h[b++]=A.AttributeCompression.octEncodeFloat(E)),C&&(R.Cartesian3.fromArray(f,g,E),h[b++]=A.AttributeCompression.octEncodeFloat(E)))}e.attributes.compressedAttributes=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.FLOAT,componentsPerAttribute:o,values:h}),u&&delete e.attributes.normal,p&&delete e.attributes.st,C&&delete e.attributes.bitangent,v&&delete e.attributes.tangent}}return e};var re=new R.Cartesian3;function l(e,t,r,a){R.Cartesian3.add(e,R.Cartesian3.multiplyByScalar(R.Cartesian3.subtract(t,e,re),e.y/(e.y-t.y),re),r),R.Cartesian3.clone(r,a),p(r,!0),p(a,!1)}var y=new R.Cartesian3,f=new R.Cartesian3,m=new R.Cartesian3,c=new R.Cartesian3,ae={positions:new Array(7),indices:new Array(9)};function ie(e,t,r){var a,i,n,s,o,u;if(!(0<=e.x||0<=t.x||0<=r.x))return s=t,o=r,0!==(a=e).y&&0!==s.y&&0!==o.y?(p(a,a.y<0),p(s,s.y<0),p(o,o.y<0)):(u=Math.abs(a.y),n=Math.abs(s.y),i=Math.abs(o.y),p(a,u=(n<u?i<u?D.CesiumMath.sign(a.y):D.CesiumMath.sign(o.y):i<n?D.CesiumMath.sign(s.y):D.CesiumMath.sign(o.y))<0),p(s,u),p(o,u)),a=e.y<0,i=t.y<0,n=r.y<0,s=0,o=ae.indices,1==(s=(s+=a?1:0)+(i?1:0)+(n?1:0))?(o[1]=3,o[2]=4,o[5]=6,o[7]=6,o[8]=5,a?(l(e,t,y,m),l(e,r,f,c),o[0]=0,o[3]=1,o[4]=2,o[6]=1):i?(l(t,r,y,m),l(t,e,f,c),o[0]=1,o[3]=2,o[4]=0,o[6]=2):n&&(l(r,e,y,m),l(r,t,f,c),o[0]=2,o[3]=0,o[4]=1,o[6]=0)):2==s&&(o[2]=4,o[4]=4,o[5]=3,o[7]=5,o[8]=6,a?i?n||(l(r,e,y,m),l(r,t,f,c),o[0]=0,o[1]=1,o[3]=0,o[6]=2):(l(t,r,y,m),l(t,e,f,c),o[0]=2,o[1]=0,o[3]=2,o[6]=1):(l(e,t,y,m),l(e,r,f,c),o[0]=1,o[1]=2,o[3]=1,o[6]=0)),(u=ae.positions)[0]=e,u[1]=t,u[2]=r,u.length=3,1!=s&&2!=s||(u[3]=y,u[4]=f,u[5]=m,u[6]=c,u.length=7),ae}function ne(e,t){var r=e.attributes;if(0!==r.position.values.length){for(var a in r)r.hasOwnProperty(a)&&V.defined(r[a])&&V.defined(r[a].values)&&((a=r[a]).values=w.ComponentDatatype.createTypedArray(a.componentDatatype,a.values));var i=G.Geometry.computeNumberOfVertices(e);return e.indices=S.IndexDatatype.createTypedArray(i,e.indices),t&&(e.boundingSphere=M.BoundingSphere.fromVertices(r.position.values)),e}}function F(e){var t,r,a=e.attributes,i={};for(t in a)a.hasOwnProperty(t)&&V.defined(a[t])&&V.defined(a[t].values)&&(r=a[t],i[t]=new G.GeometryAttribute({componentDatatype:r.componentDatatype,componentsPerAttribute:r.componentsPerAttribute,normalize:r.normalize,values:[]}));return new G.Geometry({attributes:i,indices:[],primitiveType:e.primitiveType})}function se(e,t,r){var a=V.defined(e.geometry.boundingSphere);t=ne(t,a),r=ne(r,a),V.defined(r)&&!V.defined(t)?e.geometry=r:!V.defined(r)&&V.defined(t)?e.geometry=t:(e.westHemisphereGeometry=t,e.eastHemisphereGeometry=r,e.geometry=void 0)}function oe(u,p){var d=new u,l=new u,y=new u;return function(e,t,r,a,i,n,s,o){e=u.fromArray(i,e*p,d),t=u.fromArray(i,t*p,l),i=u.fromArray(i,r*p,y),u.multiplyByScalar(e,a.x,e),u.multiplyByScalar(t,a.y,t),u.multiplyByScalar(i,a.z,i),r=u.add(e,t,e);u.add(r,i,r),o&&u.normalize(r,r),u.pack(r,n,s*p)}}var ue=oe(M.Cartesian4,4),L=oe(R.Cartesian3,3),pe=oe(R.Cartesian2,2),de=function(e,t,r,a,i,n,s){e=i[e]*a.x,t=i[t]*a.y,i=i[r]*a.z;n[s]=e+t+i>D.CesiumMath.EPSILON6?1:0},z=new R.Cartesian3,le=new R.Cartesian3,ye=new R.Cartesian3,fe=new R.Cartesian3;function B(e,t,r,a,i,n,s,o,u,p,d,l,y,f,m,c){if(V.defined(n)||V.defined(s)||V.defined(o)||V.defined(u)||V.defined(p)||0!==f){var v,C=function(e,t,r,a,i){var n,s,o,u,p,d,l,y;if(V.defined(i)||(i=new R.Cartesian3),V.defined(t.z)){if(R.Cartesian3.equalsEpsilon(e,t,D.CesiumMath.EPSILON14))return R.Cartesian3.clone(R.Cartesian3.UNIT_X,i);if(R.Cartesian3.equalsEpsilon(e,r,D.CesiumMath.EPSILON14))return R.Cartesian3.clone(R.Cartesian3.UNIT_Y,i);if(R.Cartesian3.equalsEpsilon(e,a,D.CesiumMath.EPSILON14))return R.Cartesian3.clone(R.Cartesian3.UNIT_Z,i);n=R.Cartesian3.subtract(r,t,Z),s=R.Cartesian3.subtract(a,t,H),o=R.Cartesian3.subtract(e,t,W),u=R.Cartesian3.dot(n,n),p=R.Cartesian3.dot(n,s),d=R.Cartesian3.dot(n,o),l=R.Cartesian3.dot(s,s),y=R.Cartesian3.dot(s,o)}else{if(R.Cartesian2.equalsEpsilon(e,t,D.CesiumMath.EPSILON14))return R.Cartesian3.clone(R.Cartesian3.UNIT_X,i);if(R.Cartesian2.equalsEpsilon(e,r,D.CesiumMath.EPSILON14))return R.Cartesian3.clone(R.Cartesian3.UNIT_Y,i);if(R.Cartesian2.equalsEpsilon(e,a,D.CesiumMath.EPSILON14))return R.Cartesian3.clone(R.Cartesian3.UNIT_Z,i);n=R.Cartesian2.subtract(r,t,Z),s=R.Cartesian2.subtract(a,t,H),o=R.Cartesian2.subtract(e,t,W),u=R.Cartesian2.dot(n,n),p=R.Cartesian2.dot(n,s),d=R.Cartesian2.dot(n,o),l=R.Cartesian2.dot(s,s),y=R.Cartesian2.dot(s,o)}if(i.y=l*d-p*y,i.z=u*y-p*d,0!=(r=u*l-p*p))return i.y/=r,i.z/=r,i.x=1-i.y-i.z,i}(a,R.Cartesian3.fromArray(i,3*e,z),R.Cartesian3.fromArray(i,3*t,le),R.Cartesian3.fromArray(i,3*r,ye),fe);if(V.defined(C))if(V.defined(n)&&L(e,t,r,C,n,l.normal.values,c,!0),V.defined(p)&&(a=R.Cartesian3.fromArray(p,3*e,z),i=R.Cartesian3.fromArray(p,3*t,le),n=R.Cartesian3.fromArray(p,3*r,ye),R.Cartesian3.multiplyByScalar(a,C.x,a),R.Cartesian3.multiplyByScalar(i,C.y,i),R.Cartesian3.multiplyByScalar(n,C.z,n),R.Cartesian3.equals(a,R.Cartesian3.ZERO)&&R.Cartesian3.equals(i,R.Cartesian3.ZERO)&&R.Cartesian3.equals(n,R.Cartesian3.ZERO)?((v=z).x=0,v.y=0,v.z=0):(v=R.Cartesian3.add(a,i,a),R.Cartesian3.add(v,n,v),R.Cartesian3.normalize(v,v)),R.Cartesian3.pack(v,l.extrudeDirection.values,3*c)),V.defined(d)&&de(e,t,r,C,d,l.applyOffset.values,c),V.defined(s)&&L(e,t,r,C,s,l.tangent.values,c,!0),V.defined(o)&&L(e,t,r,C,o,l.bitangent.values,c,!0),V.defined(u)&&pe(e,t,r,C,u,l.st.values,c),0<f)for(var h=0;h<f;h++){var b=y[h],g=(E=O=I=S=w=P=x=T=A=g=void 0,e),A=t,T=r,x=C,P=c,w=m[b],S=l[b],I=w.componentsPerAttribute,O=w.values,E=S.values;switch(I){case 4:ue(g,A,T,x,O,E,P,!1);break;case 3:L(g,A,T,x,O,E,P,!1);break;case 2:pe(g,A,T,x,O,E,P,!1);break;default:E[P]=O[g]*x.x+O[A]*x.y+O[T]*x.z}}}}function k(e,t,r,a,i,n){var s=e.position.values.length/3;return-1!==i?-1===(i=r[a=a[i]])?(r[a]=s,e.position.values.push(n.x,n.y,n.z),t.push(s),s):(t.push(i),i):(e.position.values.push(n.x,n.y,n.z),t.push(s),s)}var me={position:!0,normal:!0,bitangent:!0,tangent:!0,st:!0,extrudeDirection:!0,applyOffset:!0};function ce(e){var t,r=e.geometry,a=r.attributes,i=a.position.values,n=V.defined(a.normal)?a.normal.values:void 0,s=V.defined(a.bitangent)?a.bitangent.values:void 0,o=V.defined(a.tangent)?a.tangent.values:void 0,u=V.defined(a.st)?a.st.values:void 0,p=V.defined(a.extrudeDirection)?a.extrudeDirection.values:void 0,d=V.defined(a.applyOffset)?a.applyOffset.values:void 0,l=r.indices,y=[];for(t in a)a.hasOwnProperty(t)&&!me[t]&&V.defined(a[t])&&y.push(t);var f,m,c=y.length,v=F(r),C=F(r),h=[],b=(h.length=i.length/3,[]);for(b.length=i.length/3,A=0;A<h.length;++A)b[A]=h[A]=-1;for(var g=l.length,A=0;A<g;A+=3){var T=l[A],x=l[A+1],P=l[A+2],w=R.Cartesian3.fromArray(i,3*T),S=R.Cartesian3.fromArray(i,3*x),I=R.Cartesian3.fromArray(i,3*P),O=ie(w,S,I);if(V.defined(O)&&3<O.positions.length)for(var E=O.positions,N=O.indices,L=N.length,z=0;z<L;++z){var D=N[z],M=E[D],G=M.y<0?(f=C.attributes,m=C.indices,h):(f=v.attributes,m=v.indices,b);B(T,x,P,M,i,n,o,s,u,p,d,f,y,c,a,k(f,m,G,l,D<3?A+D:-1,M))}else V.defined(O)&&(w=O.positions[0],S=O.positions[1],I=O.positions[2]),G=w.y<0?(f=C.attributes,m=C.indices,h):(f=v.attributes,m=v.indices,b),B(T,x,P,w,i,n,o,s,u,p,d,f,y,c,a,k(f,m,G,l,A,w)),B(T,x,P,S,i,n,o,s,u,p,d,f,y,c,a,k(f,m,G,l,A+1,S)),B(T,x,P,I,i,n,o,s,u,p,d,f,y,c,a,k(f,m,G,l,A+2,I))}se(e,C,v)}var ve=Y.Plane.fromPointNormal(R.Cartesian3.ZERO,R.Cartesian3.UNIT_Y),Ce=new R.Cartesian3,he=new R.Cartesian3;function _(e,t,r,a,i,n,s){V.defined(s)&&(a=R.Cartesian3.fromArray(a,3*e,z),R.Cartesian3.equalsEpsilon(a,r,D.CesiumMath.EPSILON10)?n.applyOffset.values[i]=s[e]:n.applyOffset.values[i]=s[t])}function be(e){var t,r=e.geometry,a=r.attributes,i=a.position.values,n=V.defined(a.applyOffset)?a.applyOffset.values:void 0,s=r.indices,o=F(r),u=F(r),p=s.length,d=[],l=(d.length=i.length/3,[]);for(l.length=i.length/3,t=0;t<d.length;++t)l[t]=d[t]=-1;for(t=0;t<p;t+=2){var y,f,m,c,v=s[t],C=s[t+1],h=R.Cartesian3.fromArray(i,3*v,z),b=R.Cartesian3.fromArray(i,3*C,le),g=(Math.abs(h.y)<D.CesiumMath.EPSILON6&&(h.y<0?h.y=-D.CesiumMath.EPSILON6:h.y=D.CesiumMath.EPSILON6),Math.abs(b.y)<D.CesiumMath.EPSILON6&&(b.y<0?b.y=-D.CesiumMath.EPSILON6:b.y=D.CesiumMath.EPSILON6),o.attributes),A=o.indices,T=l,x=u.attributes,P=u.indices,w=d,S=U.IntersectionTests.lineSegmentPlane(h,b,ve,ye);V.defined(S)?(y=R.Cartesian3.multiplyByScalar(R.Cartesian3.UNIT_Y,5*D.CesiumMath.EPSILON9,Ce),h.y<0&&(R.Cartesian3.negate(y,y),g=u.attributes,A=u.indices,T=d,x=o.attributes,P=o.indices,w=l),f=R.Cartesian3.add(S,y,he),_(v,C,h,i,k(g,A,T,s,t,h),g,n),_(v,C,f,i,k(g,A,T,s,-1,f),g,n),R.Cartesian3.negate(y,y),R.Cartesian3.add(S,y,f),_(v,C,f,i,k(x,P,w,s,-1,f),x,n),_(v,C,b,i,k(x,P,w,s,t+1,b),x,n)):(A=h.y<0?(m=u.attributes,c=u.indices,d):(m=o.attributes,c=o.indices,l),_(v,C,h,i,k(m,c,A,s,t,h),m,n),_(v,C,b,i,k(m,c,A,s,t+1,b),m,n))}se(e,u,o)}var ge=new R.Cartesian2,Ae=new R.Cartesian2,Te=new R.Cartesian3,xe=new R.Cartesian3,Pe=new R.Cartesian3,we=new R.Cartesian3,Se=new R.Cartesian3,Ie=new R.Cartesian3,Oe=new M.Cartesian4;function Ee(e){for(var e=e.attributes,t=e.position.values,r=e.prevPosition.values,a=e.nextPosition.values,i=t.length,n=0;n<i;n+=3){var s,o=R.Cartesian3.unpack(t,n,Te);0<o.x||(s=R.Cartesian3.unpack(r,n,xe),(o.y<0&&0<s.y||0<o.y&&s.y<0)&&(0<n-3?(r[n]=t[n-3],r[n+1]=t[n-2],r[n+2]=t[n-1]):R.Cartesian3.pack(o,r,n)),s=R.Cartesian3.unpack(a,n,Pe),(o.y<0&&0<s.y||0<o.y&&s.y<0)&&(n+3<i?(a[n]=t[n+3],a[n+1]=t[n+4],a[n+2]=t[n+5]):R.Cartesian3.pack(o,a,n)))}}var Ne=5*D.CesiumMath.EPSILON9,q=D.CesiumMath.EPSILON6;e.splitLongitude=function(e){var t=e.geometry,r=t.boundingSphere;if(V.defined(r)&&(0<r.center.x-r.radius||M.BoundingSphere.intersectPlane(r,Y.Plane.ORIGIN_ZX_PLANE)!==M.Intersect.INTERSECTING))return e;if(t.geometryType!==G.GeometryType.NONE)switch(t.geometryType){case G.GeometryType.POLYLINES:for(var a=e,i=a.geometry,n=i.attributes,s=n.position.values,o=n.prevPosition.values,u=n.nextPosition.values,p=n.expandAndWidth.values,d=V.defined(n.st)?n.st.values:void 0,l=V.defined(n.color)?n.color.values:void 0,y=F(i),f=F(i),m=!1,c=s.length/3,v=0;v<c;v+=4){var C=v,h=v+2,b=R.Cartesian3.fromArray(s,3*C,Te),g=R.Cartesian3.fromArray(s,3*h,xe);if(Math.abs(b.y)<q)for(b.y=q*(g.y<0?-1:1),s[3*v+1]=b.y,s[3*(v+1)+1]=b.y,L=3*C;L<3*C+12;L+=3)o[L]=s[3*v],o[L+1]=s[3*v+1],o[L+2]=s[3*v+2];if(Math.abs(g.y)<q)for(g.y=q*(b.y<0?-1:1),s[3*(v+2)+1]=g.y,s[3*(v+3)+1]=g.y,L=3*C;L<3*C+12;L+=3)u[L]=s[3*(v+2)],u[L+1]=s[3*(v+2)+1],u[L+2]=s[3*(v+2)+2];var A=y.attributes,T=y.indices,x=f.attributes,P=f.indices,w=U.IntersectionTests.lineSegmentPlane(b,g,ve,we);if(V.defined(w)){var m=!0,S=R.Cartesian3.multiplyByScalar(R.Cartesian3.UNIT_Y,Ne,Se),I=(b.y<0&&(R.Cartesian3.negate(S,S),A=f.attributes,T=f.indices,x=y.attributes,P=y.indices),R.Cartesian3.add(w,S,Ie)),S=(A.position.values.push(b.x,b.y,b.z,b.x,b.y,b.z),A.position.values.push(I.x,I.y,I.z),A.position.values.push(I.x,I.y,I.z),A.prevPosition.values.push(o[3*C],o[3*C+1],o[3*C+2]),A.prevPosition.values.push(o[3*C+3],o[3*C+4],o[3*C+5]),A.prevPosition.values.push(b.x,b.y,b.z,b.x,b.y,b.z),A.nextPosition.values.push(I.x,I.y,I.z),A.nextPosition.values.push(I.x,I.y,I.z),A.nextPosition.values.push(I.x,I.y,I.z),A.nextPosition.values.push(I.x,I.y,I.z),R.Cartesian3.negate(S,S),R.Cartesian3.add(w,S,I),x.position.values.push(I.x,I.y,I.z),x.position.values.push(I.x,I.y,I.z),x.position.values.push(g.x,g.y,g.z,g.x,g.y,g.z),x.prevPosition.values.push(I.x,I.y,I.z),x.prevPosition.values.push(I.x,I.y,I.z),x.prevPosition.values.push(I.x,I.y,I.z),x.prevPosition.values.push(I.x,I.y,I.z),x.nextPosition.values.push(g.x,g.y,g.z,g.x,g.y,g.z),x.nextPosition.values.push(u[3*h],u[3*h+1],u[3*h+2]),x.nextPosition.values.push(u[3*h+3],u[3*h+4],u[3*h+5]),R.Cartesian2.fromArray(p,2*C,ge)),I=Math.abs(S.y),S=(A.expandAndWidth.values.push(-1,I,1,I),A.expandAndWidth.values.push(-1,-I,1,-I),x.expandAndWidth.values.push(-1,I,1,I),x.expandAndWidth.values.push(-1,-I,1,-I),R.Cartesian3.magnitudeSquared(R.Cartesian3.subtract(w,b,Pe)));if(S/=R.Cartesian3.magnitudeSquared(R.Cartesian3.subtract(g,b,Pe)),V.defined(l)){for(var I=M.Cartesian4.fromArray(l,4*C,Oe),w=M.Cartesian4.fromArray(l,4*h,Oe),O=D.CesiumMath.lerp(I.x,w.x,S),E=D.CesiumMath.lerp(I.y,w.y,S),N=D.CesiumMath.lerp(I.z,w.z,S),I=D.CesiumMath.lerp(I.w,w.w,S),L=4*C;L<4*C+8;++L)A.color.values.push(l[L]);for(A.color.values.push(O,E,N,I),A.color.values.push(O,E,N,I),x.color.values.push(O,E,N,I),x.color.values.push(O,E,N,I),L=4*h;L<4*h+8;++L)x.color.values.push(l[L])}if(V.defined(d)){w=R.Cartesian2.fromArray(d,2*C,ge),O=R.Cartesian2.fromArray(d,2*(v+3),Ae),E=D.CesiumMath.lerp(w.x,O.x,S);for(L=2*C;L<2*C+4;++L)A.st.values.push(d[L]);for(A.st.values.push(E,w.y),A.st.values.push(E,O.y),x.st.values.push(E,w.y),x.st.values.push(E,O.y),L=2*h;L<2*h+4;++L)x.st.values.push(d[L])}N=A.position.values.length/3-4,T.push(N,N+2,N+1),T.push(N+1,N+2,N+3),N=x.position.values.length/3-4,P.push(N,N+2,N+1),P.push(N+1,N+2,N+3)}else{var z,I=(b.y<0?(z=f.attributes,f):(z=y.attributes,y)).indices;for(z.position.values.push(b.x,b.y,b.z),z.position.values.push(b.x,b.y,b.z),z.position.values.push(g.x,g.y,g.z),z.position.values.push(g.x,g.y,g.z),L=3*v;L<3*v+12;++L)z.prevPosition.values.push(o[L]),z.nextPosition.values.push(u[L]);for(L=2*v;L<2*v+8;++L)z.expandAndWidth.values.push(p[L]),V.defined(d)&&z.st.values.push(d[L]);if(V.defined(l))for(L=4*v;L<4*v+16;++L)z.color.values.push(l[L]);N=z.position.values.length/3-4,I.push(N,N+2,N+1),I.push(N+1,N+2,N+3)}}m&&(Ee(f),Ee(y)),se(a,f,y);break;case G.GeometryType.TRIANGLES:ce(e);break;case G.GeometryType.LINES:be(e)}else te(t),t.primitiveType===G.PrimitiveType.TRIANGLES?ce(e):t.primitiveType===G.PrimitiveType.LINES&&be(e);return e},t.GeometryPipeline=e});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
define(["exports","./AttributeCompression-b9605c73","./Cartesian2-c1eb9da0","./Check-f996273c","./when-ae2e0b60","./Math-5bbcea10","./Transforms-b0beda9b","./ComponentDatatype-e44126e4","./EncodedCartesian3-6f721b97","./GeometryAttribute-9509a6ac","./IndexDatatype-516320ea","./IntersectionTests-12a15587","./Plane-9e807de8"],function(t,A,R,a,V,D,M,w,v,G,S,U,Y){"use strict";var Z=new R.Cartesian3,H=new R.Cartesian3,W=new R.Cartesian3;var C={calculateACMR:function(e){var t=(e=V.defaultValue(e,V.defaultValue.EMPTY_OBJECT)).indices,a=e.maximumIndex,r=V.defaultValue(e.cacheSize,24),i=t.length;if(!V.defined(a))for(var a=0,n=0,s=t[n];n<i;)a<s&&(a=s),s=t[++n];for(var o=[],u=0;u<a+1;u++)o[u]=0;for(var p=r+1,d=0;d<i;++d)p-o[t[d]]>r&&(o[t[d]]=p,++p);return(p-r+1)/(i/3)}},e=(C.tipsify=function(e){var t=(e=V.defaultValue(e,V.defaultValue.EMPTY_OBJECT)).indices,a=e.maximumIndex,r=V.defaultValue(e.cacheSize,24);function i(e,t,a,r,i,n,s){for(var o,u=-1,p=-1,d=0;d<a.length;){var l=a[d];r[l].numLiveTriangles&&(o=0,p<(o=i-r[l].timeStamp+2*r[l].numLiveTriangles<=t?i-r[l].timeStamp:o)||-1===p)&&(p=o,u=l),++d}if(-1!==u)return u;for(var y=r,f=n,m=s;1<=f.length;){var c=f[f.length-1];if(f.splice(f.length-1,1),0<y[c].numLiveTriangles)return c}for(;v<m;){if(0<y[v].numLiveTriangles)return++v-1;++v}return-1}var e=t.length,n=0,s=t[P=0],o=e;if(V.defined(a))n=a+1;else{for(;P<o;)n<s&&(n=s),s=t[++P];if(-1===n)return 0;++n}for(var u=[],p=0;p<n;p++)u[p]={numLiveTriangles:0,timeStamp:0,vertexTriangles:[]};for(var d=P=0;P<o;)u[t[P]].vertexTriangles.push(d),++u[t[P]].numLiveTriangles,u[t[P+1]].vertexTriangles.push(d),++u[t[P+1]].numLiveTriangles,u[t[P+2]].vertexTriangles.push(d),++u[t[P+2]].numLiveTriangles,++d,P+=3;var l,y=0,f=r+1,v=1,m=[],c=[],C=0,h=[],b=e/3,g=[];for(p=0;p<b;p++)g[p]=!1;for(;-1!==y;){for(var A,m=[],T=(A=u[y]).vertexTriangles.length,x=0;x<T;++x)if(!g[d=A.vertexTriangles[x]]){g[d]=!0;for(var P=d+d+d,w=0;w<3;++w)l=t[P],m.push(l),c.push(l),h[C]=l,++C,--(l=u[l]).numLiveTriangles,f-l.timeStamp>r&&(l.timeStamp=f,++f),++P}y=i(0,r,m,u,f,c,n)}return h},{});function s(e,t,a,r,i){e[t++]=a,e[t++]=r,e[t++]=r,e[t++]=i,e[t++]=i,e[t]=a}function g(e){var t,a,r={};for(t in e)e.hasOwnProperty(t)&&V.defined(e[t])&&V.defined(e[t].values)&&(a=e[t],r[t]=new G.GeometryAttribute({componentDatatype:a.componentDatatype,componentsPerAttribute:a.componentsPerAttribute,normalize:a.normalize,values:[]}));return r}e.toWireframe=function(e){var t=e.indices;if(V.defined(t)){switch(e.primitiveType){case G.PrimitiveType.TRIANGLES:e.indices=function(e){for(var t=e.length,a=S.IndexDatatype.createTypedArray(t,t/3*6),r=0,i=0;i<t;i+=3,r+=6)s(a,r,e[i],e[i+1],e[i+2]);return a}(t);break;case G.PrimitiveType.TRIANGLE_STRIP:e.indices=function(e){var t=e.length;if(3<=t){for(var a=S.IndexDatatype.createTypedArray(t,6*(t-2)),r=(s(a,0,e[0],e[1],e[2]),6),i=3;i<t;++i,r+=6)s(a,r,e[i-1],e[i],e[i-2]);return a}return new Uint16Array}(t);break;case G.PrimitiveType.TRIANGLE_FAN:e.indices=function(e){if(0<e.length){for(var t=e.length-1,a=S.IndexDatatype.createTypedArray(t,6*(t-1)),r=e[0],i=0,n=1;n<t;++n,i+=6)s(a,i,r,e[n],e[n+1]);return a}return new Uint16Array}(t)}e.primitiveType=G.PrimitiveType.LINES}return e},e.createLineSegmentsForVectors=function(e,t,a){t=V.defaultValue(t,"normal"),a=V.defaultValue(a,1e4);for(var r,i=e.attributes.position.values,n=e.attributes[t].values,s=i.length,o=new Float64Array(2*s),u=0,p=0;p<s;p+=3)o[u++]=i[p],o[u++]=i[p+1],o[u++]=i[p+2],o[u++]=i[p]+n[p]*a,o[u++]=i[p+1]+n[p+1]*a,o[u++]=i[p+2]+n[p+2]*a;t=e.boundingSphere;return V.defined(t)&&(r=new M.BoundingSphere(t.center,t.radius+a)),new G.Geometry({attributes:{position:new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:o})},primitiveType:G.PrimitiveType.LINES,boundingSphere:r})},e.createAttributeLocations=function(e){for(var t,a=["position","positionHigh","positionLow","position3DHigh","position3DLow","position2DHigh","position2DLow","pickColor","normal","st","tangent","bitangent","extrudeDirection","compressedAttributes"],r=e.attributes,i={},n=0,s=a.length,o=0;o<s;++o){var u=a[o];V.defined(r[u])&&(i[u]=n++)}for(t in r)r.hasOwnProperty(t)&&!V.defined(i[t])&&(i[t]=n++);return i},e.reorderForPreVertexCache=function(e){var t=G.Geometry.computeNumberOfVertices(e),a=e.indices;if(V.defined(a)){for(var r=new Int32Array(t),i=0;i<t;i++)r[i]=-1;for(var n,s=a,o=s.length,u=S.IndexDatatype.createTypedArray(t,o),p=0,d=0,l=0;p<o;)-1!==(n=r[s[p]])?u[d]=n:(r[s[p]]=l,u[d]=l,++l),++p,++d;e.indices=u;var y,f=e.attributes;for(y in f)if(f.hasOwnProperty(y)&&V.defined(f[y])&&V.defined(f[y].values)){for(var m=f[y],c=m.values,v=0,C=m.componentsPerAttribute,h=w.ComponentDatatype.createTypedArray(m.componentDatatype,l*C);v<t;){var b=r[v];if(-1!==b)for(var g=0;g<C;g++)h[C*b+g]=c[C*v+g];++v}m.values=h}}return e},e.reorderForPostVertexCache=function(e,t){var a=e.indices;if(e.primitiveType===G.PrimitiveType.TRIANGLES&&V.defined(a)){for(var r=a.length,i=0,n=0;n<r;n++)a[n]>i&&(i=a[n]);e.indices=C.tipsify({indices:a,maximumIndex:i,cacheSize:t})}return e},e.fitToUnsignedShortIndices=function(e){var t=[],a=G.Geometry.computeNumberOfVertices(e);if(V.defined(e.indices)&&a>=D.CesiumMath.SIXTY_FOUR_KILOBYTES){var r,i=[],n=[],s=0,o=g(e.attributes),u=e.indices,p=u.length;e.primitiveType===G.PrimitiveType.TRIANGLES?r=3:e.primitiveType===G.PrimitiveType.LINES?r=2:e.primitiveType===G.PrimitiveType.POINTS&&(r=1);for(var d=0;d<p;d+=r){for(var l=0;l<r;++l){var y=u[d+l],f=i[y];if(!V.defined(f)){f=s++,i[y]=f,b=h=m=C=v=c=void 0;var m,c=o,v=e.attributes,C=y;for(m in v)if(v.hasOwnProperty(m)&&V.defined(v[m])&&V.defined(v[m].values))for(var h=v[m],b=0;b<h.componentsPerAttribute;++b)c[m].values.push(h.values[C*h.componentsPerAttribute+b])}n.push(f)}s+r>=D.CesiumMath.SIXTY_FOUR_KILOBYTES&&(t.push(new G.Geometry({attributes:o,indices:n,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV})),i=[],n=[],s=0,o=g(e.attributes))}0!==n.length&&t.push(new G.Geometry({attributes:o,indices:n,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV}))}else t.push(e);return t};var h=new R.Cartesian3,b=new R.Cartographic,d=(e.projectTo2D=function(e,t,a,r,i){for(var n=e.attributes[t],s=(i=V.defined(i)?i:new M.GeographicProjection).ellipsoid,o=n.values,u=new Float64Array(o.length),p=0,d=0;d<o.length;d+=3){var l=R.Cartesian3.fromArray(o,d,h),l=s.cartesianToCartographic(l,b),l=i.project(l,h);u[p++]=l.x,u[p++]=l.y,u[p++]=l.z}return e.attributes[a]=n,e.attributes[r]=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:u}),delete e.attributes[t],e},{high:0,low:0}),n=(e.encodeAttribute=function(e,t,a,r){for(var i=e.attributes[t],n=i.values,s=n.length,o=new Float32Array(s),u=new Float32Array(s),p=0;p<s;++p)v.EncodedCartesian3.encode(n[p],d),o[p]=d.high,u[p]=d.low;i=i.componentsPerAttribute;return e.attributes[a]=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.FLOAT,componentsPerAttribute:i,values:o}),e.attributes[r]=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.FLOAT,componentsPerAttribute:i,values:u}),delete e.attributes[t],e},new R.Cartesian3);function r(e,t){if(V.defined(t))for(var a=t.values,r=a.length,i=0;i<r;i+=3)R.Cartesian3.unpack(a,i,n),M.Matrix4.multiplyByPoint(e,n,n),R.Cartesian3.pack(n,a,i)}function i(e,t){if(V.defined(t))for(var a=t.values,r=a.length,i=0;i<r;i+=3)R.Cartesian3.unpack(a,i,n),M.Matrix3.multiplyByVector(e,n,n),n=R.Cartesian3.normalize(n,n),R.Cartesian3.pack(n,a,i)}var o=new M.Matrix4,u=new M.Matrix3;e.transformToWorldCoordinates=function(e){var t,a=e.modelMatrix;return M.Matrix4.equals(a,M.Matrix4.IDENTITY)||(r(a,(t=e.geometry.attributes).position),r(a,t.prevPosition),r(a,t.nextPosition),(V.defined(t.normal)||V.defined(t.tangent)||V.defined(t.bitangent))&&(M.Matrix4.inverse(a,o),M.Matrix4.transpose(o,o),M.Matrix4.getMatrix3(o,u),i(u,t.normal),i(u,t.tangent),i(u,t.bitangent)),t=e.geometry.boundingSphere,V.defined(t)&&(e.geometry.boundingSphere=M.BoundingSphere.transform(t,a,t)),e.modelMatrix=M.Matrix4.clone(M.Matrix4.IDENTITY)),e};var X=new R.Cartesian3;function j(e,t){var a,r,i,n,s,o,u=e.length,p=(e[0].modelMatrix,V.defined(e[0][t].indices)),d=e[0][t].primitiveType,l=function(e,t){var a,r=e.length,i={},n=e[0][t].attributes;for(a in n)if(n.hasOwnProperty(a)&&V.defined(n[a])&&V.defined(n[a].values)){for(var s=n[a],o=s.values.length,u=!0,p=1;p<r;++p){var d=e[p][t].attributes[a];if(!V.defined(d)||s.componentDatatype!==d.componentDatatype||s.componentsPerAttribute!==d.componentsPerAttribute||s.normalize!==d.normalize){u=!1;break}o+=d.values.length}u&&(i[a]=new G.GeometryAttribute({componentDatatype:s.componentDatatype,componentsPerAttribute:s.componentsPerAttribute,normalize:s.normalize,values:w.ComponentDatatype.createTypedArray(s.componentDatatype,o)}))}return i}(e,t);for(a in l)if(l.hasOwnProperty(a))for(i=l[a].values,f=b=0;f<u;++f)for(s=(n=e[f][t].attributes[a].values).length,r=0;r<s;++r)i[b++]=n[r];if(p){for(var y=0,f=0;f<u;++f)y+=e[f][t].indices.length;var p=G.Geometry.computeNumberOfVertices(new G.Geometry({attributes:l,primitiveType:G.PrimitiveType.POINTS})),m=S.IndexDatatype.createTypedArray(p,y),c=0,v=0;for(f=0;f<u;++f){for(var C=e[f][t].indices,h=C.length,b=0;b<h;++b)m[c++]=v+C[b];v+=G.Geometry.computeNumberOfVertices(e[f][t])}o=m}var g=new R.Cartesian3,A=0;for(f=0;f<u;++f){if(T=e[f][t].boundingSphere,!V.defined(T)){g=void 0;break}R.Cartesian3.add(T.center,g,g)}if(V.defined(g))for(R.Cartesian3.divideByScalar(g,u,g),f=0;f<u;++f){var T=e[f][t].boundingSphere,x=R.Cartesian3.magnitude(R.Cartesian3.subtract(T.center,g,X))+T.radius;A<x&&(A=x)}return new G.Geometry({attributes:l,indices:o,primitiveType:d,boundingSphere:V.defined(g)?new M.BoundingSphere(g,A):void 0})}e.combineInstances=function(e){for(var t=[],a=[],r=e.length,i=0;i<r;++i){var n=e[i];V.defined(n.geometry)?t.push(n):V.defined(n.westHemisphereGeometry)&&V.defined(n.eastHemisphereGeometry)&&a.push(n)}var s=[];return 0<t.length&&s.push(j(t,"geometry")),0<a.length&&(s.push(j(a,"westHemisphereGeometry")),s.push(j(a,"eastHemisphereGeometry"))),s};var T=new R.Cartesian3,x=new R.Cartesian3,P=new R.Cartesian3,I=new R.Cartesian3,J=(e.computeNormal=function(e){for(var t=e.indices,a=e.attributes,r=a.position.values,i=a.position.values.length/3,n=t.length,s=new Array(i),o=new Array(n/3),u=new Array(n),p=0;p<i;p++)s[p]={indexOffset:0,count:0,currentCount:0};var d=0;for(p=0;p<n;p+=3){var l=t[p],y=t[p+1],f=t[p+2],m=3*l,c=3*y,v=3*f;x.x=r[m],x.y=r[1+m],x.z=r[2+m],P.x=r[c],P.y=r[1+c],P.z=r[2+c],I.x=r[v],I.y=r[1+v],I.z=r[2+v],s[l].count++,s[y].count++,s[f].count++,R.Cartesian3.subtract(P,x,P),R.Cartesian3.subtract(I,x,I),o[d]=R.Cartesian3.cross(P,I,new R.Cartesian3),d++}var C,h=0;for(p=0;p<i;p++)s[p].indexOffset+=h,h+=s[p].count;for(p=d=0;p<n;p+=3)u[(C=s[t[p]]).indexOffset+C.currentCount]=d,C.currentCount++,u[(C=s[t[p+1]]).indexOffset+C.currentCount]=d,C.currentCount++,u[(C=s[t[p+2]]).indexOffset+C.currentCount]=d,C.currentCount++,d++;var b=new Float32Array(3*i);for(p=0;p<i;p++){var g=3*p;if(C=s[p],R.Cartesian3.clone(R.Cartesian3.ZERO,T),0<C.count){for(d=0;d<C.count;d++)R.Cartesian3.add(T,o[u[C.indexOffset+d]],T);R.Cartesian3.equalsEpsilon(R.Cartesian3.ZERO,T,D.CesiumMath.EPSILON10)&&R.Cartesian3.clone(o[u[C.indexOffset]],T)}R.Cartesian3.equalsEpsilon(R.Cartesian3.ZERO,T,D.CesiumMath.EPSILON10)&&(T.z=1),R.Cartesian3.normalize(T,T),b[g]=T.x,b[1+g]=T.y,b[2+g]=T.z}return e.attributes.normal=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:b}),e},new R.Cartesian3),K=new R.Cartesian3,Q=new R.Cartesian3,O=(e.computeTangentAndBitangent=function(e){e.attributes;for(var t=e.indices,a=e.attributes.position.values,r=e.attributes.normal.values,i=e.attributes.st.values,n=e.attributes.position.values.length/3,s=t.length,o=new Array(3*n),u=0;u<o.length;u++)o[u]=0;for(u=0;u<s;u+=3){var p,d=t[u],l=t[u+1],y=t[u+2],f=3*l,m=3*y,c=2*d,l=2*l,y=2*y,d=a[p=3*d],v=a[p+1],C=a[p+2],h=i[c],c=i[1+c],b=i[1+l]-c,c=i[1+y]-c,l=1/((i[l]-h)*c-(i[y]-h)*b),y=(c*(a[f]-d)-b*(a[m]-d))*l,h=(c*(a[f+1]-v)-b*(a[m+1]-v))*l,d=(c*(a[f+2]-C)-b*(a[m+2]-C))*l;o[p]+=y,o[p+1]+=h,o[p+2]+=d,o[f]+=y,o[f+1]+=h,o[f+2]+=d,o[m]+=y,o[m+1]+=h,o[m+2]+=d}var g=new Float32Array(3*n),A=new Float32Array(3*n);for(u=0;u<n;u++){f=(p=3*u)+1,m=p+2;var T=R.Cartesian3.fromArray(r,p,J),x=R.Cartesian3.fromArray(o,p,Q),P=R.Cartesian3.dot(T,x);R.Cartesian3.multiplyByScalar(T,P,K),R.Cartesian3.normalize(R.Cartesian3.subtract(x,K,x),x),g[p]=x.x,g[f]=x.y,g[m]=x.z,R.Cartesian3.normalize(R.Cartesian3.cross(T,x,x),x),A[p]=x.x,A[f]=x.y,A[m]=x.z}return e.attributes.tangent=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:g}),e.attributes.bitangent=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:A}),e},new R.Cartesian2),E=new R.Cartesian3,$=new R.Cartesian3,ee=new R.Cartesian3,N=new R.Cartesian2;function te(e){switch(e.primitiveType){case G.PrimitiveType.TRIANGLE_FAN:for(var t=e,a=G.Geometry.computeNumberOfVertices(t),r=S.IndexDatatype.createTypedArray(a,3*(a-2)),i=(r[0]=1,r[1]=0,r[2]=2,3),n=3;n<a;++n)r[i++]=n-1,r[i++]=0,r[i++]=n;return t.indices=r,t.primitiveType=G.PrimitiveType.TRIANGLES,t;case G.PrimitiveType.TRIANGLE_STRIP:for(var t=e,s=G.Geometry.computeNumberOfVertices(t),o=S.IndexDatatype.createTypedArray(s,3*(s-2)),u=(o[0]=0,o[1]=1,o[2]=2,3<s&&(o[3]=0,o[4]=2,o[5]=3),6),p=3;p<s-1;p+=2)o[u++]=p,o[u++]=p-1,o[u++]=p+1,p+2<s&&(o[u++]=p,o[u++]=p+1,o[u++]=p+2);return t.indices=o,t.primitiveType=G.PrimitiveType.TRIANGLES,t;case G.PrimitiveType.TRIANGLES:var d=e;if(!V.defined(d.indices)){for(var l=G.Geometry.computeNumberOfVertices(d),y=S.IndexDatatype.createTypedArray(l,l),f=0;f<l;++f)y[f]=f;d.indices=y}return d;case G.PrimitiveType.LINE_STRIP:for(var d=e,m=G.Geometry.computeNumberOfVertices(d),c=S.IndexDatatype.createTypedArray(m,2*(m-1)),v=(c[0]=0,c[1]=1,2),C=2;C<m;++C)c[v++]=C-1,c[v++]=C;return d.indices=c,d.primitiveType=G.PrimitiveType.LINES,d;case G.PrimitiveType.LINE_LOOP:for(var h=e,b=G.Geometry.computeNumberOfVertices(h),g=S.IndexDatatype.createTypedArray(b,2*b),A=(g[0]=0,g[1]=1,2),T=2;T<b;++T)g[A++]=T-1,g[A++]=T;return g[A++]=b-1,g[A]=0,h.indices=g,h.primitiveType=G.PrimitiveType.LINES,h;case G.PrimitiveType.LINES:h=e;if(!V.defined(h.indices)){for(var x=G.Geometry.computeNumberOfVertices(h),P=S.IndexDatatype.createTypedArray(x,x),w=0;w<x;++w)P[w]=w;h.indices=P}return h}}function p(e,t){Math.abs(e.y)<D.CesiumMath.EPSILON6&&(e.y=t?-D.CesiumMath.EPSILON6:D.CesiumMath.EPSILON6)}e.compressVertices=function(e){var t=e.attributes.extrudeDirection;if(V.defined(t)){for(var a=t.values,r=a.length/3,i=new Float32Array(2*r),n=0,s=0;s<r;++s)R.Cartesian3.fromArray(a,3*s,E),R.Cartesian3.equals(E,R.Cartesian3.ZERO)?n+=2:(N=A.AttributeCompression.octEncodeInRange(E,65535,N),i[n++]=N.x,i[n++]=N.y);e.attributes.compressedAttributes=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:i}),delete e.attributes.extrudeDirection}else{var t=e.attributes.normal,o=e.attributes.st,u=V.defined(t),p=V.defined(o);if(u||p){var d,l,y,f,m=e.attributes.tangent,c=e.attributes.bitangent,v=V.defined(m),C=V.defined(c);u&&(d=t.values),p&&(l=o.values),v&&(y=m.values),C&&(f=c.values);var t=r=(u?d:l).length/(u?3:2),o=p&&u?2:1,h=(t*=o+=v||C?1:0,new Float32Array(t)),b=0;for(s=0;s<r;++s){p&&(R.Cartesian2.fromArray(l,2*s,O),h[b++]=A.AttributeCompression.compressTextureCoordinates(O));var g=3*s;u&&V.defined(y)&&V.defined(f)?(R.Cartesian3.fromArray(d,g,E),R.Cartesian3.fromArray(y,g,$),R.Cartesian3.fromArray(f,g,ee),A.AttributeCompression.octPack(E,$,ee,O),h[b++]=O.x,h[b++]=O.y):(u&&(R.Cartesian3.fromArray(d,g,E),h[b++]=A.AttributeCompression.octEncodeFloat(E)),v&&(R.Cartesian3.fromArray(y,g,E),h[b++]=A.AttributeCompression.octEncodeFloat(E)),C&&(R.Cartesian3.fromArray(f,g,E),h[b++]=A.AttributeCompression.octEncodeFloat(E)))}e.attributes.compressedAttributes=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.FLOAT,componentsPerAttribute:o,values:h}),u&&delete e.attributes.normal,p&&delete e.attributes.st,C&&delete e.attributes.bitangent,v&&delete e.attributes.tangent}}return e};var ae=new R.Cartesian3;function l(e,t,a,r){R.Cartesian3.add(e,R.Cartesian3.multiplyByScalar(R.Cartesian3.subtract(t,e,ae),e.y/(e.y-t.y),ae),a),R.Cartesian3.clone(a,r),p(a,!0),p(r,!1)}var y=new R.Cartesian3,f=new R.Cartesian3,m=new R.Cartesian3,c=new R.Cartesian3,re={positions:new Array(7),indices:new Array(9)};function ie(e,t,a){var r,i,n,s,o,u;if(!(0<=e.x||0<=t.x||0<=a.x))return s=t,o=a,0!==(r=e).y&&0!==s.y&&0!==o.y?(p(r,r.y<0),p(s,s.y<0),p(o,o.y<0)):(u=Math.abs(r.y),n=Math.abs(s.y),i=Math.abs(o.y),p(r,u=(n<u?i<u?D.CesiumMath.sign(r.y):D.CesiumMath.sign(o.y):i<n?D.CesiumMath.sign(s.y):D.CesiumMath.sign(o.y))<0),p(s,u),p(o,u)),r=e.y<0,i=t.y<0,n=a.y<0,s=0,o=re.indices,1==(s=(s+=r?1:0)+(i?1:0)+(n?1:0))?(o[1]=3,o[2]=4,o[5]=6,o[7]=6,o[8]=5,r?(l(e,t,y,m),l(e,a,f,c),o[0]=0,o[3]=1,o[4]=2,o[6]=1):i?(l(t,a,y,m),l(t,e,f,c),o[0]=1,o[3]=2,o[4]=0,o[6]=2):n&&(l(a,e,y,m),l(a,t,f,c),o[0]=2,o[3]=0,o[4]=1,o[6]=0)):2==s&&(o[2]=4,o[4]=4,o[5]=3,o[7]=5,o[8]=6,r?i?n||(l(a,e,y,m),l(a,t,f,c),o[0]=0,o[1]=1,o[3]=0,o[6]=2):(l(t,a,y,m),l(t,e,f,c),o[0]=2,o[1]=0,o[3]=2,o[6]=1):(l(e,t,y,m),l(e,a,f,c),o[0]=1,o[1]=2,o[3]=1,o[6]=0)),(u=re.positions)[0]=e,u[1]=t,u[2]=a,u.length=3,1!=s&&2!=s||(u[3]=y,u[4]=f,u[5]=m,u[6]=c,u.length=7),re}function ne(e,t){var a=e.attributes;if(0!==a.position.values.length){for(var r in a)a.hasOwnProperty(r)&&V.defined(a[r])&&V.defined(a[r].values)&&((r=a[r]).values=w.ComponentDatatype.createTypedArray(r.componentDatatype,r.values));var i=G.Geometry.computeNumberOfVertices(e);return e.indices=S.IndexDatatype.createTypedArray(i,e.indices),t&&(e.boundingSphere=M.BoundingSphere.fromVertices(a.position.values)),e}}function F(e){var t,a,r=e.attributes,i={};for(t in r)r.hasOwnProperty(t)&&V.defined(r[t])&&V.defined(r[t].values)&&(a=r[t],i[t]=new G.GeometryAttribute({componentDatatype:a.componentDatatype,componentsPerAttribute:a.componentsPerAttribute,normalize:a.normalize,values:[]}));return new G.Geometry({attributes:i,indices:[],primitiveType:e.primitiveType})}function se(e,t,a){var r=V.defined(e.geometry.boundingSphere);t=ne(t,r),a=ne(a,r),V.defined(a)&&!V.defined(t)?e.geometry=a:!V.defined(a)&&V.defined(t)?e.geometry=t:(e.westHemisphereGeometry=t,e.eastHemisphereGeometry=a,e.geometry=void 0)}function oe(u,p){var d=new u,l=new u,y=new u;return function(e,t,a,r,i,n,s,o){e=u.fromArray(i,e*p,d),t=u.fromArray(i,t*p,l),i=u.fromArray(i,a*p,y),u.multiplyByScalar(e,r.x,e),u.multiplyByScalar(t,r.y,t),u.multiplyByScalar(i,r.z,i),a=u.add(e,t,e);u.add(a,i,a),o&&u.normalize(a,a),u.pack(a,n,s*p)}}var ue=oe(M.Cartesian4,4),L=oe(R.Cartesian3,3),pe=oe(R.Cartesian2,2),de=function(e,t,a,r,i,n,s){e=i[e]*r.x,t=i[t]*r.y,i=i[a]*r.z;n[s]=e+t+i>D.CesiumMath.EPSILON6?1:0},z=new R.Cartesian3,le=new R.Cartesian3,ye=new R.Cartesian3,fe=new R.Cartesian3;function B(e,t,a,r,i,n,s,o,u,p,d,l,y,f,m,c){if(V.defined(n)||V.defined(s)||V.defined(o)||V.defined(u)||V.defined(p)||0!==f){var v,C=function(e,t,a,r,i){var n,s,o,u,p,d,l,y;if(V.defined(i)||(i=new R.Cartesian3),V.defined(t.z)){if(R.Cartesian3.equalsEpsilon(e,t,D.CesiumMath.EPSILON14))return R.Cartesian3.clone(R.Cartesian3.UNIT_X,i);if(R.Cartesian3.equalsEpsilon(e,a,D.CesiumMath.EPSILON14))return R.Cartesian3.clone(R.Cartesian3.UNIT_Y,i);if(R.Cartesian3.equalsEpsilon(e,r,D.CesiumMath.EPSILON14))return R.Cartesian3.clone(R.Cartesian3.UNIT_Z,i);n=R.Cartesian3.subtract(a,t,Z),s=R.Cartesian3.subtract(r,t,H),o=R.Cartesian3.subtract(e,t,W),u=R.Cartesian3.dot(n,n),p=R.Cartesian3.dot(n,s),d=R.Cartesian3.dot(n,o),l=R.Cartesian3.dot(s,s),y=R.Cartesian3.dot(s,o)}else{if(R.Cartesian2.equalsEpsilon(e,t,D.CesiumMath.EPSILON14))return R.Cartesian3.clone(R.Cartesian3.UNIT_X,i);if(R.Cartesian2.equalsEpsilon(e,a,D.CesiumMath.EPSILON14))return R.Cartesian3.clone(R.Cartesian3.UNIT_Y,i);if(R.Cartesian2.equalsEpsilon(e,r,D.CesiumMath.EPSILON14))return R.Cartesian3.clone(R.Cartesian3.UNIT_Z,i);n=R.Cartesian2.subtract(a,t,Z),s=R.Cartesian2.subtract(r,t,H),o=R.Cartesian2.subtract(e,t,W),u=R.Cartesian2.dot(n,n),p=R.Cartesian2.dot(n,s),d=R.Cartesian2.dot(n,o),l=R.Cartesian2.dot(s,s),y=R.Cartesian2.dot(s,o)}if(i.y=l*d-p*y,i.z=u*y-p*d,0!=(a=u*l-p*p))return i.y/=a,i.z/=a,i.x=1-i.y-i.z,i}(r,R.Cartesian3.fromArray(i,3*e,z),R.Cartesian3.fromArray(i,3*t,le),R.Cartesian3.fromArray(i,3*a,ye),fe);if(V.defined(C))if(V.defined(n)&&L(e,t,a,C,n,l.normal.values,c,!0),V.defined(p)&&(r=R.Cartesian3.fromArray(p,3*e,z),i=R.Cartesian3.fromArray(p,3*t,le),n=R.Cartesian3.fromArray(p,3*a,ye),R.Cartesian3.multiplyByScalar(r,C.x,r),R.Cartesian3.multiplyByScalar(i,C.y,i),R.Cartesian3.multiplyByScalar(n,C.z,n),R.Cartesian3.equals(r,R.Cartesian3.ZERO)&&R.Cartesian3.equals(i,R.Cartesian3.ZERO)&&R.Cartesian3.equals(n,R.Cartesian3.ZERO)?((v=z).x=0,v.y=0,v.z=0):(v=R.Cartesian3.add(r,i,r),R.Cartesian3.add(v,n,v),R.Cartesian3.normalize(v,v)),R.Cartesian3.pack(v,l.extrudeDirection.values,3*c)),V.defined(d)&&de(e,t,a,C,d,l.applyOffset.values,c),V.defined(s)&&L(e,t,a,C,s,l.tangent.values,c,!0),V.defined(o)&&L(e,t,a,C,o,l.bitangent.values,c,!0),V.defined(u)&&pe(e,t,a,C,u,l.st.values,c),0<f)for(var h=0;h<f;h++){var b=y[h],g=(E=O=I=S=w=P=x=T=A=g=void 0,e),A=t,T=a,x=C,P=c,w=m[b],S=l[b],I=w.componentsPerAttribute,O=w.values,E=S.values;switch(I){case 4:ue(g,A,T,x,O,E,P,!1);break;case 3:L(g,A,T,x,O,E,P,!1);break;case 2:pe(g,A,T,x,O,E,P,!1);break;default:E[P]=O[g]*x.x+O[A]*x.y+O[T]*x.z}}}}function k(e,t,a,r,i,n){var s=e.position.values.length/3;return-1!==i?-1===(i=a[r=r[i]])?(a[r]=s,e.position.values.push(n.x,n.y,n.z),t.push(s),s):(t.push(i),i):(e.position.values.push(n.x,n.y,n.z),t.push(s),s)}var me={position:!0,normal:!0,bitangent:!0,tangent:!0,st:!0,extrudeDirection:!0,applyOffset:!0};function ce(e){var t,a=e.geometry,r=a.attributes,i=r.position.values,n=V.defined(r.normal)?r.normal.values:void 0,s=V.defined(r.bitangent)?r.bitangent.values:void 0,o=V.defined(r.tangent)?r.tangent.values:void 0,u=V.defined(r.st)?r.st.values:void 0,p=V.defined(r.extrudeDirection)?r.extrudeDirection.values:void 0,d=V.defined(r.applyOffset)?r.applyOffset.values:void 0,l=a.indices,y=[];for(t in r)r.hasOwnProperty(t)&&!me[t]&&V.defined(r[t])&&y.push(t);var f,m,c=y.length,v=F(a),C=F(a),h=[],b=(h.length=i.length/3,[]);for(b.length=i.length/3,A=0;A<h.length;++A)b[A]=h[A]=-1;for(var g=l.length,A=0;A<g;A+=3){var T=l[A],x=l[A+1],P=l[A+2],w=R.Cartesian3.fromArray(i,3*T),S=R.Cartesian3.fromArray(i,3*x),I=R.Cartesian3.fromArray(i,3*P),O=ie(w,S,I);if(V.defined(O)&&3<O.positions.length)for(var E=O.positions,N=O.indices,L=N.length,z=0;z<L;++z){var D=N[z],M=E[D],G=M.y<0?(f=C.attributes,m=C.indices,h):(f=v.attributes,m=v.indices,b);B(T,x,P,M,i,n,o,s,u,p,d,f,y,c,r,k(f,m,G,l,D<3?A+D:-1,M))}else V.defined(O)&&(w=O.positions[0],S=O.positions[1],I=O.positions[2]),G=w.y<0?(f=C.attributes,m=C.indices,h):(f=v.attributes,m=v.indices,b),B(T,x,P,w,i,n,o,s,u,p,d,f,y,c,r,k(f,m,G,l,A,w)),B(T,x,P,S,i,n,o,s,u,p,d,f,y,c,r,k(f,m,G,l,A+1,S)),B(T,x,P,I,i,n,o,s,u,p,d,f,y,c,r,k(f,m,G,l,A+2,I))}se(e,C,v)}var ve=Y.Plane.fromPointNormal(R.Cartesian3.ZERO,R.Cartesian3.UNIT_Y),Ce=new R.Cartesian3,he=new R.Cartesian3;function _(e,t,a,r,i,n,s){V.defined(s)&&(r=R.Cartesian3.fromArray(r,3*e,z),R.Cartesian3.equalsEpsilon(r,a,D.CesiumMath.EPSILON10)?n.applyOffset.values[i]=s[e]:n.applyOffset.values[i]=s[t])}function be(e){var t,a=e.geometry,r=a.attributes,i=r.position.values,n=V.defined(r.applyOffset)?r.applyOffset.values:void 0,s=a.indices,o=F(a),u=F(a),p=s.length,d=[],l=(d.length=i.length/3,[]);for(l.length=i.length/3,t=0;t<d.length;++t)l[t]=d[t]=-1;for(t=0;t<p;t+=2){var y,f,m,c,v=s[t],C=s[t+1],h=R.Cartesian3.fromArray(i,3*v,z),b=R.Cartesian3.fromArray(i,3*C,le),g=(Math.abs(h.y)<D.CesiumMath.EPSILON6&&(h.y<0?h.y=-D.CesiumMath.EPSILON6:h.y=D.CesiumMath.EPSILON6),Math.abs(b.y)<D.CesiumMath.EPSILON6&&(b.y<0?b.y=-D.CesiumMath.EPSILON6:b.y=D.CesiumMath.EPSILON6),o.attributes),A=o.indices,T=l,x=u.attributes,P=u.indices,w=d,S=U.IntersectionTests.lineSegmentPlane(h,b,ve,ye);V.defined(S)?(y=R.Cartesian3.multiplyByScalar(R.Cartesian3.UNIT_Y,5*D.CesiumMath.EPSILON9,Ce),h.y<0&&(R.Cartesian3.negate(y,y),g=u.attributes,A=u.indices,T=d,x=o.attributes,P=o.indices,w=l),f=R.Cartesian3.add(S,y,he),_(v,C,h,i,k(g,A,T,s,t,h),g,n),_(v,C,f,i,k(g,A,T,s,-1,f),g,n),R.Cartesian3.negate(y,y),R.Cartesian3.add(S,y,f),_(v,C,f,i,k(x,P,w,s,-1,f),x,n),_(v,C,b,i,k(x,P,w,s,t+1,b),x,n)):(A=h.y<0?(m=u.attributes,c=u.indices,d):(m=o.attributes,c=o.indices,l),_(v,C,h,i,k(m,c,A,s,t,h),m,n),_(v,C,b,i,k(m,c,A,s,t+1,b),m,n))}se(e,u,o)}var ge=new R.Cartesian2,Ae=new R.Cartesian2,Te=new R.Cartesian3,xe=new R.Cartesian3,Pe=new R.Cartesian3,we=new R.Cartesian3,Se=new R.Cartesian3,Ie=new R.Cartesian3,Oe=new M.Cartesian4;function Ee(e){for(var e=e.attributes,t=e.position.values,a=e.prevPosition.values,r=e.nextPosition.values,i=t.length,n=0;n<i;n+=3){var s,o=R.Cartesian3.unpack(t,n,Te);0<o.x||(s=R.Cartesian3.unpack(a,n,xe),(o.y<0&&0<s.y||0<o.y&&s.y<0)&&(0<n-3?(a[n]=t[n-3],a[n+1]=t[n-2],a[n+2]=t[n-1]):R.Cartesian3.pack(o,a,n)),s=R.Cartesian3.unpack(r,n,Pe),(o.y<0&&0<s.y||0<o.y&&s.y<0)&&(n+3<i?(r[n]=t[n+3],r[n+1]=t[n+4],r[n+2]=t[n+5]):R.Cartesian3.pack(o,r,n)))}}var Ne=5*D.CesiumMath.EPSILON9,q=D.CesiumMath.EPSILON6;e.splitLongitude=function(e){var t=e.geometry,a=t.boundingSphere;if(V.defined(a)&&(0<a.center.x-a.radius||M.BoundingSphere.intersectPlane(a,Y.Plane.ORIGIN_ZX_PLANE)!==M.Intersect.INTERSECTING))return e;if(t.geometryType!==G.GeometryType.NONE)switch(t.geometryType){case G.GeometryType.POLYLINES:for(var r=e,i=r.geometry,n=i.attributes,s=n.position.values,o=n.prevPosition.values,u=n.nextPosition.values,p=n.expandAndWidth.values,d=V.defined(n.st)?n.st.values:void 0,l=V.defined(n.color)?n.color.values:void 0,y=F(i),f=F(i),m=!1,c=s.length/3,v=0;v<c;v+=4){var C=v,h=v+2,b=R.Cartesian3.fromArray(s,3*C,Te),g=R.Cartesian3.fromArray(s,3*h,xe);if(Math.abs(b.y)<q)for(b.y=q*(g.y<0?-1:1),s[3*v+1]=b.y,s[3*(v+1)+1]=b.y,L=3*C;L<3*C+12;L+=3)o[L]=s[3*v],o[L+1]=s[3*v+1],o[L+2]=s[3*v+2];if(Math.abs(g.y)<q)for(g.y=q*(b.y<0?-1:1),s[3*(v+2)+1]=g.y,s[3*(v+3)+1]=g.y,L=3*C;L<3*C+12;L+=3)u[L]=s[3*(v+2)],u[L+1]=s[3*(v+2)+1],u[L+2]=s[3*(v+2)+2];var A=y.attributes,T=y.indices,x=f.attributes,P=f.indices,w=U.IntersectionTests.lineSegmentPlane(b,g,ve,we);if(V.defined(w)){var m=!0,S=R.Cartesian3.multiplyByScalar(R.Cartesian3.UNIT_Y,Ne,Se),I=(b.y<0&&(R.Cartesian3.negate(S,S),A=f.attributes,T=f.indices,x=y.attributes,P=y.indices),R.Cartesian3.add(w,S,Ie)),S=(A.position.values.push(b.x,b.y,b.z,b.x,b.y,b.z),A.position.values.push(I.x,I.y,I.z),A.position.values.push(I.x,I.y,I.z),A.prevPosition.values.push(o[3*C],o[3*C+1],o[3*C+2]),A.prevPosition.values.push(o[3*C+3],o[3*C+4],o[3*C+5]),A.prevPosition.values.push(b.x,b.y,b.z,b.x,b.y,b.z),A.nextPosition.values.push(I.x,I.y,I.z),A.nextPosition.values.push(I.x,I.y,I.z),A.nextPosition.values.push(I.x,I.y,I.z),A.nextPosition.values.push(I.x,I.y,I.z),R.Cartesian3.negate(S,S),R.Cartesian3.add(w,S,I),x.position.values.push(I.x,I.y,I.z),x.position.values.push(I.x,I.y,I.z),x.position.values.push(g.x,g.y,g.z,g.x,g.y,g.z),x.prevPosition.values.push(I.x,I.y,I.z),x.prevPosition.values.push(I.x,I.y,I.z),x.prevPosition.values.push(I.x,I.y,I.z),x.prevPosition.values.push(I.x,I.y,I.z),x.nextPosition.values.push(g.x,g.y,g.z,g.x,g.y,g.z),x.nextPosition.values.push(u[3*h],u[3*h+1],u[3*h+2]),x.nextPosition.values.push(u[3*h+3],u[3*h+4],u[3*h+5]),R.Cartesian2.fromArray(p,2*C,ge)),I=Math.abs(S.y),S=(A.expandAndWidth.values.push(-1,I,1,I),A.expandAndWidth.values.push(-1,-I,1,-I),x.expandAndWidth.values.push(-1,I,1,I),x.expandAndWidth.values.push(-1,-I,1,-I),R.Cartesian3.magnitudeSquared(R.Cartesian3.subtract(w,b,Pe)));if(S/=R.Cartesian3.magnitudeSquared(R.Cartesian3.subtract(g,b,Pe)),V.defined(l)){for(var I=M.Cartesian4.fromArray(l,4*C,Oe),w=M.Cartesian4.fromArray(l,4*h,Oe),O=D.CesiumMath.lerp(I.x,w.x,S),E=D.CesiumMath.lerp(I.y,w.y,S),N=D.CesiumMath.lerp(I.z,w.z,S),I=D.CesiumMath.lerp(I.w,w.w,S),L=4*C;L<4*C+8;++L)A.color.values.push(l[L]);for(A.color.values.push(O,E,N,I),A.color.values.push(O,E,N,I),x.color.values.push(O,E,N,I),x.color.values.push(O,E,N,I),L=4*h;L<4*h+8;++L)x.color.values.push(l[L])}if(V.defined(d)){w=R.Cartesian2.fromArray(d,2*C,ge),O=R.Cartesian2.fromArray(d,2*(v+3),Ae),E=D.CesiumMath.lerp(w.x,O.x,S);for(L=2*C;L<2*C+4;++L)A.st.values.push(d[L]);for(A.st.values.push(E,w.y),A.st.values.push(E,O.y),x.st.values.push(E,w.y),x.st.values.push(E,O.y),L=2*h;L<2*h+4;++L)x.st.values.push(d[L])}N=A.position.values.length/3-4,T.push(N,N+2,N+1),T.push(N+1,N+2,N+3),N=x.position.values.length/3-4,P.push(N,N+2,N+1),P.push(N+1,N+2,N+3)}else{var z,I=(b.y<0?(z=f.attributes,f):(z=y.attributes,y)).indices;for(z.position.values.push(b.x,b.y,b.z),z.position.values.push(b.x,b.y,b.z),z.position.values.push(g.x,g.y,g.z),z.position.values.push(g.x,g.y,g.z),L=3*v;L<3*v+12;++L)z.prevPosition.values.push(o[L]),z.nextPosition.values.push(u[L]);for(L=2*v;L<2*v+8;++L)z.expandAndWidth.values.push(p[L]),V.defined(d)&&z.st.values.push(d[L]);if(V.defined(l))for(L=4*v;L<4*v+16;++L)z.color.values.push(l[L]);N=z.position.values.length/3-4,I.push(N,N+2,N+1),I.push(N+1,N+2,N+3)}}m&&(Ee(f),Ee(y)),se(r,f,y);break;case G.GeometryType.TRIANGLES:ce(e);break;case G.GeometryType.LINES:be(e)}else te(t),t.primitiveType===G.PrimitiveType.TRIANGLES?ce(e):t.primitiveType===G.PrimitiveType.LINES&&be(e);return e},t.GeometryPipeline=e});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
define(["exports","./AttributeCompression-b9605c73","./Cartesian2-c1eb9da0","./Check-f996273c","./when-ae2e0b60","./Math-5bbcea10","./Transforms-badb9ae9","./ComponentDatatype-e44126e4","./EncodedCartesian3-6f721b97","./GeometryAttribute-a5b580d6","./IndexDatatype-516320ea","./IntersectionTests-f5c29800","./Plane-8d6fa990"],function(t,A,R,a,V,D,M,w,v,G,S,U,Y){"use strict";var Z=new R.Cartesian3,H=new R.Cartesian3,W=new R.Cartesian3;var C={calculateACMR:function(e){var t=(e=V.defaultValue(e,V.defaultValue.EMPTY_OBJECT)).indices,a=e.maximumIndex,r=V.defaultValue(e.cacheSize,24),i=t.length;if(!V.defined(a))for(var a=0,n=0,s=t[n];n<i;)a<s&&(a=s),s=t[++n];for(var o=[],u=0;u<a+1;u++)o[u]=0;for(var p=r+1,d=0;d<i;++d)p-o[t[d]]>r&&(o[t[d]]=p,++p);return(p-r+1)/(i/3)}},e=(C.tipsify=function(e){var t=(e=V.defaultValue(e,V.defaultValue.EMPTY_OBJECT)).indices,a=e.maximumIndex,r=V.defaultValue(e.cacheSize,24);function i(e,t,a,r,i,n,s){for(var o,u=-1,p=-1,d=0;d<a.length;){var l=a[d];r[l].numLiveTriangles&&(o=0,p<(o=i-r[l].timeStamp+2*r[l].numLiveTriangles<=t?i-r[l].timeStamp:o)||-1===p)&&(p=o,u=l),++d}if(-1!==u)return u;for(var y=r,f=n,m=s;1<=f.length;){var c=f[f.length-1];if(f.splice(f.length-1,1),0<y[c].numLiveTriangles)return c}for(;v<m;){if(0<y[v].numLiveTriangles)return++v-1;++v}return-1}var e=t.length,n=0,s=t[P=0],o=e;if(V.defined(a))n=a+1;else{for(;P<o;)n<s&&(n=s),s=t[++P];if(-1===n)return 0;++n}for(var u=[],p=0;p<n;p++)u[p]={numLiveTriangles:0,timeStamp:0,vertexTriangles:[]};for(var d=P=0;P<o;)u[t[P]].vertexTriangles.push(d),++u[t[P]].numLiveTriangles,u[t[P+1]].vertexTriangles.push(d),++u[t[P+1]].numLiveTriangles,u[t[P+2]].vertexTriangles.push(d),++u[t[P+2]].numLiveTriangles,++d,P+=3;var l,y=0,f=r+1,v=1,m=[],c=[],C=0,h=[],b=e/3,g=[];for(p=0;p<b;p++)g[p]=!1;for(;-1!==y;){for(var A,m=[],T=(A=u[y]).vertexTriangles.length,x=0;x<T;++x)if(!g[d=A.vertexTriangles[x]]){g[d]=!0;for(var P=d+d+d,w=0;w<3;++w)l=t[P],m.push(l),c.push(l),h[C]=l,++C,--(l=u[l]).numLiveTriangles,f-l.timeStamp>r&&(l.timeStamp=f,++f),++P}y=i(0,r,m,u,f,c,n)}return h},{});function s(e,t,a,r,i){e[t++]=a,e[t++]=r,e[t++]=r,e[t++]=i,e[t++]=i,e[t]=a}function g(e){var t,a,r={};for(t in e)e.hasOwnProperty(t)&&V.defined(e[t])&&V.defined(e[t].values)&&(a=e[t],r[t]=new G.GeometryAttribute({componentDatatype:a.componentDatatype,componentsPerAttribute:a.componentsPerAttribute,normalize:a.normalize,values:[]}));return r}e.toWireframe=function(e){var t=e.indices;if(V.defined(t)){switch(e.primitiveType){case G.PrimitiveType.TRIANGLES:e.indices=function(e){for(var t=e.length,a=S.IndexDatatype.createTypedArray(t,t/3*6),r=0,i=0;i<t;i+=3,r+=6)s(a,r,e[i],e[i+1],e[i+2]);return a}(t);break;case G.PrimitiveType.TRIANGLE_STRIP:e.indices=function(e){var t=e.length;if(3<=t){for(var a=S.IndexDatatype.createTypedArray(t,6*(t-2)),r=(s(a,0,e[0],e[1],e[2]),6),i=3;i<t;++i,r+=6)s(a,r,e[i-1],e[i],e[i-2]);return a}return new Uint16Array}(t);break;case G.PrimitiveType.TRIANGLE_FAN:e.indices=function(e){if(0<e.length){for(var t=e.length-1,a=S.IndexDatatype.createTypedArray(t,6*(t-1)),r=e[0],i=0,n=1;n<t;++n,i+=6)s(a,i,r,e[n],e[n+1]);return a}return new Uint16Array}(t)}e.primitiveType=G.PrimitiveType.LINES}return e},e.createLineSegmentsForVectors=function(e,t,a){t=V.defaultValue(t,"normal"),a=V.defaultValue(a,1e4);for(var r,i=e.attributes.position.values,n=e.attributes[t].values,s=i.length,o=new Float64Array(2*s),u=0,p=0;p<s;p+=3)o[u++]=i[p],o[u++]=i[p+1],o[u++]=i[p+2],o[u++]=i[p]+n[p]*a,o[u++]=i[p+1]+n[p+1]*a,o[u++]=i[p+2]+n[p+2]*a;t=e.boundingSphere;return V.defined(t)&&(r=new M.BoundingSphere(t.center,t.radius+a)),new G.Geometry({attributes:{position:new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:o})},primitiveType:G.PrimitiveType.LINES,boundingSphere:r})},e.createAttributeLocations=function(e){for(var t,a=["position","positionHigh","positionLow","position3DHigh","position3DLow","position2DHigh","position2DLow","pickColor","normal","st","tangent","bitangent","extrudeDirection","compressedAttributes"],r=e.attributes,i={},n=0,s=a.length,o=0;o<s;++o){var u=a[o];V.defined(r[u])&&(i[u]=n++)}for(t in r)r.hasOwnProperty(t)&&!V.defined(i[t])&&(i[t]=n++);return i},e.reorderForPreVertexCache=function(e){var t=G.Geometry.computeNumberOfVertices(e),a=e.indices;if(V.defined(a)){for(var r=new Int32Array(t),i=0;i<t;i++)r[i]=-1;for(var n,s=a,o=s.length,u=S.IndexDatatype.createTypedArray(t,o),p=0,d=0,l=0;p<o;)-1!==(n=r[s[p]])?u[d]=n:(r[s[p]]=l,u[d]=l,++l),++p,++d;e.indices=u;var y,f=e.attributes;for(y in f)if(f.hasOwnProperty(y)&&V.defined(f[y])&&V.defined(f[y].values)){for(var m=f[y],c=m.values,v=0,C=m.componentsPerAttribute,h=w.ComponentDatatype.createTypedArray(m.componentDatatype,l*C);v<t;){var b=r[v];if(-1!==b)for(var g=0;g<C;g++)h[C*b+g]=c[C*v+g];++v}m.values=h}}return e},e.reorderForPostVertexCache=function(e,t){var a=e.indices;if(e.primitiveType===G.PrimitiveType.TRIANGLES&&V.defined(a)){for(var r=a.length,i=0,n=0;n<r;n++)a[n]>i&&(i=a[n]);e.indices=C.tipsify({indices:a,maximumIndex:i,cacheSize:t})}return e},e.fitToUnsignedShortIndices=function(e){var t=[],a=G.Geometry.computeNumberOfVertices(e);if(V.defined(e.indices)&&a>=D.CesiumMath.SIXTY_FOUR_KILOBYTES){var r,i=[],n=[],s=0,o=g(e.attributes),u=e.indices,p=u.length;e.primitiveType===G.PrimitiveType.TRIANGLES?r=3:e.primitiveType===G.PrimitiveType.LINES?r=2:e.primitiveType===G.PrimitiveType.POINTS&&(r=1);for(var d=0;d<p;d+=r){for(var l=0;l<r;++l){var y=u[d+l],f=i[y];if(!V.defined(f)){f=s++,i[y]=f,b=h=m=C=v=c=void 0;var m,c=o,v=e.attributes,C=y;for(m in v)if(v.hasOwnProperty(m)&&V.defined(v[m])&&V.defined(v[m].values))for(var h=v[m],b=0;b<h.componentsPerAttribute;++b)c[m].values.push(h.values[C*h.componentsPerAttribute+b])}n.push(f)}s+r>=D.CesiumMath.SIXTY_FOUR_KILOBYTES&&(t.push(new G.Geometry({attributes:o,indices:n,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV})),i=[],n=[],s=0,o=g(e.attributes))}0!==n.length&&t.push(new G.Geometry({attributes:o,indices:n,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV}))}else t.push(e);return t};var h=new R.Cartesian3,b=new R.Cartographic,d=(e.projectTo2D=function(e,t,a,r,i){for(var n=e.attributes[t],s=(i=V.defined(i)?i:new M.GeographicProjection).ellipsoid,o=n.values,u=new Float64Array(o.length),p=0,d=0;d<o.length;d+=3){var l=R.Cartesian3.fromArray(o,d,h),l=s.cartesianToCartographic(l,b),l=i.project(l,h);u[p++]=l.x,u[p++]=l.y,u[p++]=l.z}return e.attributes[a]=n,e.attributes[r]=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.DOUBLE,componentsPerAttribute:3,values:u}),delete e.attributes[t],e},{high:0,low:0}),n=(e.encodeAttribute=function(e,t,a,r){for(var i=e.attributes[t],n=i.values,s=n.length,o=new Float32Array(s),u=new Float32Array(s),p=0;p<s;++p)v.EncodedCartesian3.encode(n[p],d),o[p]=d.high,u[p]=d.low;i=i.componentsPerAttribute;return e.attributes[a]=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.FLOAT,componentsPerAttribute:i,values:o}),e.attributes[r]=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.FLOAT,componentsPerAttribute:i,values:u}),delete e.attributes[t],e},new R.Cartesian3);function r(e,t){if(V.defined(t))for(var a=t.values,r=a.length,i=0;i<r;i+=3)R.Cartesian3.unpack(a,i,n),M.Matrix4.multiplyByPoint(e,n,n),R.Cartesian3.pack(n,a,i)}function i(e,t){if(V.defined(t))for(var a=t.values,r=a.length,i=0;i<r;i+=3)R.Cartesian3.unpack(a,i,n),M.Matrix3.multiplyByVector(e,n,n),n=R.Cartesian3.normalize(n,n),R.Cartesian3.pack(n,a,i)}var o=new M.Matrix4,u=new M.Matrix3;e.transformToWorldCoordinates=function(e){var t,a=e.modelMatrix;return M.Matrix4.equals(a,M.Matrix4.IDENTITY)||(r(a,(t=e.geometry.attributes).position),r(a,t.prevPosition),r(a,t.nextPosition),(V.defined(t.normal)||V.defined(t.tangent)||V.defined(t.bitangent))&&(M.Matrix4.inverse(a,o),M.Matrix4.transpose(o,o),M.Matrix4.getMatrix3(o,u),i(u,t.normal),i(u,t.tangent),i(u,t.bitangent)),t=e.geometry.boundingSphere,V.defined(t)&&(e.geometry.boundingSphere=M.BoundingSphere.transform(t,a,t)),e.modelMatrix=M.Matrix4.clone(M.Matrix4.IDENTITY)),e};var X=new R.Cartesian3;function j(e,t){var a,r,i,n,s,o,u=e.length,p=(e[0].modelMatrix,V.defined(e[0][t].indices)),d=e[0][t].primitiveType,l=function(e,t){var a,r=e.length,i={},n=e[0][t].attributes;for(a in n)if(n.hasOwnProperty(a)&&V.defined(n[a])&&V.defined(n[a].values)){for(var s=n[a],o=s.values.length,u=!0,p=1;p<r;++p){var d=e[p][t].attributes[a];if(!V.defined(d)||s.componentDatatype!==d.componentDatatype||s.componentsPerAttribute!==d.componentsPerAttribute||s.normalize!==d.normalize){u=!1;break}o+=d.values.length}u&&(i[a]=new G.GeometryAttribute({componentDatatype:s.componentDatatype,componentsPerAttribute:s.componentsPerAttribute,normalize:s.normalize,values:w.ComponentDatatype.createTypedArray(s.componentDatatype,o)}))}return i}(e,t);for(a in l)if(l.hasOwnProperty(a))for(i=l[a].values,f=b=0;f<u;++f)for(s=(n=e[f][t].attributes[a].values).length,r=0;r<s;++r)i[b++]=n[r];if(p){for(var y=0,f=0;f<u;++f)y+=e[f][t].indices.length;var p=G.Geometry.computeNumberOfVertices(new G.Geometry({attributes:l,primitiveType:G.PrimitiveType.POINTS})),m=S.IndexDatatype.createTypedArray(p,y),c=0,v=0;for(f=0;f<u;++f){for(var C=e[f][t].indices,h=C.length,b=0;b<h;++b)m[c++]=v+C[b];v+=G.Geometry.computeNumberOfVertices(e[f][t])}o=m}var g=new R.Cartesian3,A=0;for(f=0;f<u;++f){if(T=e[f][t].boundingSphere,!V.defined(T)){g=void 0;break}R.Cartesian3.add(T.center,g,g)}if(V.defined(g))for(R.Cartesian3.divideByScalar(g,u,g),f=0;f<u;++f){var T=e[f][t].boundingSphere,x=R.Cartesian3.magnitude(R.Cartesian3.subtract(T.center,g,X))+T.radius;A<x&&(A=x)}return new G.Geometry({attributes:l,indices:o,primitiveType:d,boundingSphere:V.defined(g)?new M.BoundingSphere(g,A):void 0})}e.combineInstances=function(e){for(var t=[],a=[],r=e.length,i=0;i<r;++i){var n=e[i];V.defined(n.geometry)?t.push(n):V.defined(n.westHemisphereGeometry)&&V.defined(n.eastHemisphereGeometry)&&a.push(n)}var s=[];return 0<t.length&&s.push(j(t,"geometry")),0<a.length&&(s.push(j(a,"westHemisphereGeometry")),s.push(j(a,"eastHemisphereGeometry"))),s};var T=new R.Cartesian3,x=new R.Cartesian3,P=new R.Cartesian3,I=new R.Cartesian3,J=(e.computeNormal=function(e){for(var t=e.indices,a=e.attributes,r=a.position.values,i=a.position.values.length/3,n=t.length,s=new Array(i),o=new Array(n/3),u=new Array(n),p=0;p<i;p++)s[p]={indexOffset:0,count:0,currentCount:0};var d=0;for(p=0;p<n;p+=3){var l=t[p],y=t[p+1],f=t[p+2],m=3*l,c=3*y,v=3*f;x.x=r[m],x.y=r[1+m],x.z=r[2+m],P.x=r[c],P.y=r[1+c],P.z=r[2+c],I.x=r[v],I.y=r[1+v],I.z=r[2+v],s[l].count++,s[y].count++,s[f].count++,R.Cartesian3.subtract(P,x,P),R.Cartesian3.subtract(I,x,I),o[d]=R.Cartesian3.cross(P,I,new R.Cartesian3),d++}var C,h=0;for(p=0;p<i;p++)s[p].indexOffset+=h,h+=s[p].count;for(p=d=0;p<n;p+=3)u[(C=s[t[p]]).indexOffset+C.currentCount]=d,C.currentCount++,u[(C=s[t[p+1]]).indexOffset+C.currentCount]=d,C.currentCount++,u[(C=s[t[p+2]]).indexOffset+C.currentCount]=d,C.currentCount++,d++;var b=new Float32Array(3*i);for(p=0;p<i;p++){var g=3*p;if(C=s[p],R.Cartesian3.clone(R.Cartesian3.ZERO,T),0<C.count){for(d=0;d<C.count;d++)R.Cartesian3.add(T,o[u[C.indexOffset+d]],T);R.Cartesian3.equalsEpsilon(R.Cartesian3.ZERO,T,D.CesiumMath.EPSILON10)&&R.Cartesian3.clone(o[u[C.indexOffset]],T)}R.Cartesian3.equalsEpsilon(R.Cartesian3.ZERO,T,D.CesiumMath.EPSILON10)&&(T.z=1),R.Cartesian3.normalize(T,T),b[g]=T.x,b[1+g]=T.y,b[2+g]=T.z}return e.attributes.normal=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:b}),e},new R.Cartesian3),K=new R.Cartesian3,Q=new R.Cartesian3,O=(e.computeTangentAndBitangent=function(e){e.attributes;for(var t=e.indices,a=e.attributes.position.values,r=e.attributes.normal.values,i=e.attributes.st.values,n=e.attributes.position.values.length/3,s=t.length,o=new Array(3*n),u=0;u<o.length;u++)o[u]=0;for(u=0;u<s;u+=3){var p,d=t[u],l=t[u+1],y=t[u+2],f=3*l,m=3*y,c=2*d,l=2*l,y=2*y,d=a[p=3*d],v=a[p+1],C=a[p+2],h=i[c],c=i[1+c],b=i[1+l]-c,c=i[1+y]-c,l=1/((i[l]-h)*c-(i[y]-h)*b),y=(c*(a[f]-d)-b*(a[m]-d))*l,h=(c*(a[f+1]-v)-b*(a[m+1]-v))*l,d=(c*(a[f+2]-C)-b*(a[m+2]-C))*l;o[p]+=y,o[p+1]+=h,o[p+2]+=d,o[f]+=y,o[f+1]+=h,o[f+2]+=d,o[m]+=y,o[m+1]+=h,o[m+2]+=d}var g=new Float32Array(3*n),A=new Float32Array(3*n);for(u=0;u<n;u++){f=(p=3*u)+1,m=p+2;var T=R.Cartesian3.fromArray(r,p,J),x=R.Cartesian3.fromArray(o,p,Q),P=R.Cartesian3.dot(T,x);R.Cartesian3.multiplyByScalar(T,P,K),R.Cartesian3.normalize(R.Cartesian3.subtract(x,K,x),x),g[p]=x.x,g[f]=x.y,g[m]=x.z,R.Cartesian3.normalize(R.Cartesian3.cross(T,x,x),x),A[p]=x.x,A[f]=x.y,A[m]=x.z}return e.attributes.tangent=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:g}),e.attributes.bitangent=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.FLOAT,componentsPerAttribute:3,values:A}),e},new R.Cartesian2),E=new R.Cartesian3,$=new R.Cartesian3,ee=new R.Cartesian3,N=new R.Cartesian2;function te(e){switch(e.primitiveType){case G.PrimitiveType.TRIANGLE_FAN:for(var t=e,a=G.Geometry.computeNumberOfVertices(t),r=S.IndexDatatype.createTypedArray(a,3*(a-2)),i=(r[0]=1,r[1]=0,r[2]=2,3),n=3;n<a;++n)r[i++]=n-1,r[i++]=0,r[i++]=n;return t.indices=r,t.primitiveType=G.PrimitiveType.TRIANGLES,t;case G.PrimitiveType.TRIANGLE_STRIP:for(var t=e,s=G.Geometry.computeNumberOfVertices(t),o=S.IndexDatatype.createTypedArray(s,3*(s-2)),u=(o[0]=0,o[1]=1,o[2]=2,3<s&&(o[3]=0,o[4]=2,o[5]=3),6),p=3;p<s-1;p+=2)o[u++]=p,o[u++]=p-1,o[u++]=p+1,p+2<s&&(o[u++]=p,o[u++]=p+1,o[u++]=p+2);return t.indices=o,t.primitiveType=G.PrimitiveType.TRIANGLES,t;case G.PrimitiveType.TRIANGLES:var d=e;if(!V.defined(d.indices)){for(var l=G.Geometry.computeNumberOfVertices(d),y=S.IndexDatatype.createTypedArray(l,l),f=0;f<l;++f)y[f]=f;d.indices=y}return d;case G.PrimitiveType.LINE_STRIP:for(var d=e,m=G.Geometry.computeNumberOfVertices(d),c=S.IndexDatatype.createTypedArray(m,2*(m-1)),v=(c[0]=0,c[1]=1,2),C=2;C<m;++C)c[v++]=C-1,c[v++]=C;return d.indices=c,d.primitiveType=G.PrimitiveType.LINES,d;case G.PrimitiveType.LINE_LOOP:for(var h=e,b=G.Geometry.computeNumberOfVertices(h),g=S.IndexDatatype.createTypedArray(b,2*b),A=(g[0]=0,g[1]=1,2),T=2;T<b;++T)g[A++]=T-1,g[A++]=T;return g[A++]=b-1,g[A]=0,h.indices=g,h.primitiveType=G.PrimitiveType.LINES,h;case G.PrimitiveType.LINES:h=e;if(!V.defined(h.indices)){for(var x=G.Geometry.computeNumberOfVertices(h),P=S.IndexDatatype.createTypedArray(x,x),w=0;w<x;++w)P[w]=w;h.indices=P}return h}}function p(e,t){Math.abs(e.y)<D.CesiumMath.EPSILON6&&(e.y=t?-D.CesiumMath.EPSILON6:D.CesiumMath.EPSILON6)}e.compressVertices=function(e){var t=e.attributes.extrudeDirection;if(V.defined(t)){for(var a=t.values,r=a.length/3,i=new Float32Array(2*r),n=0,s=0;s<r;++s)R.Cartesian3.fromArray(a,3*s,E),R.Cartesian3.equals(E,R.Cartesian3.ZERO)?n+=2:(N=A.AttributeCompression.octEncodeInRange(E,65535,N),i[n++]=N.x,i[n++]=N.y);e.attributes.compressedAttributes=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.FLOAT,componentsPerAttribute:2,values:i}),delete e.attributes.extrudeDirection}else{var t=e.attributes.normal,o=e.attributes.st,u=V.defined(t),p=V.defined(o);if(u||p){var d,l,y,f,m=e.attributes.tangent,c=e.attributes.bitangent,v=V.defined(m),C=V.defined(c);u&&(d=t.values),p&&(l=o.values),v&&(y=m.values),C&&(f=c.values);var t=r=(u?d:l).length/(u?3:2),o=p&&u?2:1,h=(t*=o+=v||C?1:0,new Float32Array(t)),b=0;for(s=0;s<r;++s){p&&(R.Cartesian2.fromArray(l,2*s,O),h[b++]=A.AttributeCompression.compressTextureCoordinates(O));var g=3*s;u&&V.defined(y)&&V.defined(f)?(R.Cartesian3.fromArray(d,g,E),R.Cartesian3.fromArray(y,g,$),R.Cartesian3.fromArray(f,g,ee),A.AttributeCompression.octPack(E,$,ee,O),h[b++]=O.x,h[b++]=O.y):(u&&(R.Cartesian3.fromArray(d,g,E),h[b++]=A.AttributeCompression.octEncodeFloat(E)),v&&(R.Cartesian3.fromArray(y,g,E),h[b++]=A.AttributeCompression.octEncodeFloat(E)),C&&(R.Cartesian3.fromArray(f,g,E),h[b++]=A.AttributeCompression.octEncodeFloat(E)))}e.attributes.compressedAttributes=new G.GeometryAttribute({componentDatatype:w.ComponentDatatype.FLOAT,componentsPerAttribute:o,values:h}),u&&delete e.attributes.normal,p&&delete e.attributes.st,C&&delete e.attributes.bitangent,v&&delete e.attributes.tangent}}return e};var ae=new R.Cartesian3;function l(e,t,a,r){R.Cartesian3.add(e,R.Cartesian3.multiplyByScalar(R.Cartesian3.subtract(t,e,ae),e.y/(e.y-t.y),ae),a),R.Cartesian3.clone(a,r),p(a,!0),p(r,!1)}var y=new R.Cartesian3,f=new R.Cartesian3,m=new R.Cartesian3,c=new R.Cartesian3,re={positions:new Array(7),indices:new Array(9)};function ie(e,t,a){var r,i,n,s,o,u;if(!(0<=e.x||0<=t.x||0<=a.x))return s=t,o=a,0!==(r=e).y&&0!==s.y&&0!==o.y?(p(r,r.y<0),p(s,s.y<0),p(o,o.y<0)):(u=Math.abs(r.y),n=Math.abs(s.y),i=Math.abs(o.y),p(r,u=(n<u?i<u?D.CesiumMath.sign(r.y):D.CesiumMath.sign(o.y):i<n?D.CesiumMath.sign(s.y):D.CesiumMath.sign(o.y))<0),p(s,u),p(o,u)),r=e.y<0,i=t.y<0,n=a.y<0,s=0,o=re.indices,1==(s=(s+=r?1:0)+(i?1:0)+(n?1:0))?(o[1]=3,o[2]=4,o[5]=6,o[7]=6,o[8]=5,r?(l(e,t,y,m),l(e,a,f,c),o[0]=0,o[3]=1,o[4]=2,o[6]=1):i?(l(t,a,y,m),l(t,e,f,c),o[0]=1,o[3]=2,o[4]=0,o[6]=2):n&&(l(a,e,y,m),l(a,t,f,c),o[0]=2,o[3]=0,o[4]=1,o[6]=0)):2==s&&(o[2]=4,o[4]=4,o[5]=3,o[7]=5,o[8]=6,r?i?n||(l(a,e,y,m),l(a,t,f,c),o[0]=0,o[1]=1,o[3]=0,o[6]=2):(l(t,a,y,m),l(t,e,f,c),o[0]=2,o[1]=0,o[3]=2,o[6]=1):(l(e,t,y,m),l(e,a,f,c),o[0]=1,o[1]=2,o[3]=1,o[6]=0)),(u=re.positions)[0]=e,u[1]=t,u[2]=a,u.length=3,1!=s&&2!=s||(u[3]=y,u[4]=f,u[5]=m,u[6]=c,u.length=7),re}function ne(e,t){var a=e.attributes;if(0!==a.position.values.length){for(var r in a)a.hasOwnProperty(r)&&V.defined(a[r])&&V.defined(a[r].values)&&((r=a[r]).values=w.ComponentDatatype.createTypedArray(r.componentDatatype,r.values));var i=G.Geometry.computeNumberOfVertices(e);return e.indices=S.IndexDatatype.createTypedArray(i,e.indices),t&&(e.boundingSphere=M.BoundingSphere.fromVertices(a.position.values)),e}}function F(e){var t,a,r=e.attributes,i={};for(t in r)r.hasOwnProperty(t)&&V.defined(r[t])&&V.defined(r[t].values)&&(a=r[t],i[t]=new G.GeometryAttribute({componentDatatype:a.componentDatatype,componentsPerAttribute:a.componentsPerAttribute,normalize:a.normalize,values:[]}));return new G.Geometry({attributes:i,indices:[],primitiveType:e.primitiveType})}function se(e,t,a){var r=V.defined(e.geometry.boundingSphere);t=ne(t,r),a=ne(a,r),V.defined(a)&&!V.defined(t)?e.geometry=a:!V.defined(a)&&V.defined(t)?e.geometry=t:(e.westHemisphereGeometry=t,e.eastHemisphereGeometry=a,e.geometry=void 0)}function oe(u,p){var d=new u,l=new u,y=new u;return function(e,t,a,r,i,n,s,o){e=u.fromArray(i,e*p,d),t=u.fromArray(i,t*p,l),i=u.fromArray(i,a*p,y),u.multiplyByScalar(e,r.x,e),u.multiplyByScalar(t,r.y,t),u.multiplyByScalar(i,r.z,i),a=u.add(e,t,e);u.add(a,i,a),o&&u.normalize(a,a),u.pack(a,n,s*p)}}var ue=oe(M.Cartesian4,4),L=oe(R.Cartesian3,3),pe=oe(R.Cartesian2,2),de=function(e,t,a,r,i,n,s){e=i[e]*r.x,t=i[t]*r.y,i=i[a]*r.z;n[s]=e+t+i>D.CesiumMath.EPSILON6?1:0},z=new R.Cartesian3,le=new R.Cartesian3,ye=new R.Cartesian3,fe=new R.Cartesian3;function B(e,t,a,r,i,n,s,o,u,p,d,l,y,f,m,c){if(V.defined(n)||V.defined(s)||V.defined(o)||V.defined(u)||V.defined(p)||0!==f){var v,C=function(e,t,a,r,i){var n,s,o,u,p,d,l,y;if(V.defined(i)||(i=new R.Cartesian3),V.defined(t.z)){if(R.Cartesian3.equalsEpsilon(e,t,D.CesiumMath.EPSILON14))return R.Cartesian3.clone(R.Cartesian3.UNIT_X,i);if(R.Cartesian3.equalsEpsilon(e,a,D.CesiumMath.EPSILON14))return R.Cartesian3.clone(R.Cartesian3.UNIT_Y,i);if(R.Cartesian3.equalsEpsilon(e,r,D.CesiumMath.EPSILON14))return R.Cartesian3.clone(R.Cartesian3.UNIT_Z,i);n=R.Cartesian3.subtract(a,t,Z),s=R.Cartesian3.subtract(r,t,H),o=R.Cartesian3.subtract(e,t,W),u=R.Cartesian3.dot(n,n),p=R.Cartesian3.dot(n,s),d=R.Cartesian3.dot(n,o),l=R.Cartesian3.dot(s,s),y=R.Cartesian3.dot(s,o)}else{if(R.Cartesian2.equalsEpsilon(e,t,D.CesiumMath.EPSILON14))return R.Cartesian3.clone(R.Cartesian3.UNIT_X,i);if(R.Cartesian2.equalsEpsilon(e,a,D.CesiumMath.EPSILON14))return R.Cartesian3.clone(R.Cartesian3.UNIT_Y,i);if(R.Cartesian2.equalsEpsilon(e,r,D.CesiumMath.EPSILON14))return R.Cartesian3.clone(R.Cartesian3.UNIT_Z,i);n=R.Cartesian2.subtract(a,t,Z),s=R.Cartesian2.subtract(r,t,H),o=R.Cartesian2.subtract(e,t,W),u=R.Cartesian2.dot(n,n),p=R.Cartesian2.dot(n,s),d=R.Cartesian2.dot(n,o),l=R.Cartesian2.dot(s,s),y=R.Cartesian2.dot(s,o)}if(i.y=l*d-p*y,i.z=u*y-p*d,0!=(a=u*l-p*p))return i.y/=a,i.z/=a,i.x=1-i.y-i.z,i}(r,R.Cartesian3.fromArray(i,3*e,z),R.Cartesian3.fromArray(i,3*t,le),R.Cartesian3.fromArray(i,3*a,ye),fe);if(V.defined(C))if(V.defined(n)&&L(e,t,a,C,n,l.normal.values,c,!0),V.defined(p)&&(r=R.Cartesian3.fromArray(p,3*e,z),i=R.Cartesian3.fromArray(p,3*t,le),n=R.Cartesian3.fromArray(p,3*a,ye),R.Cartesian3.multiplyByScalar(r,C.x,r),R.Cartesian3.multiplyByScalar(i,C.y,i),R.Cartesian3.multiplyByScalar(n,C.z,n),R.Cartesian3.equals(r,R.Cartesian3.ZERO)&&R.Cartesian3.equals(i,R.Cartesian3.ZERO)&&R.Cartesian3.equals(n,R.Cartesian3.ZERO)?((v=z).x=0,v.y=0,v.z=0):(v=R.Cartesian3.add(r,i,r),R.Cartesian3.add(v,n,v),R.Cartesian3.normalize(v,v)),R.Cartesian3.pack(v,l.extrudeDirection.values,3*c)),V.defined(d)&&de(e,t,a,C,d,l.applyOffset.values,c),V.defined(s)&&L(e,t,a,C,s,l.tangent.values,c,!0),V.defined(o)&&L(e,t,a,C,o,l.bitangent.values,c,!0),V.defined(u)&&pe(e,t,a,C,u,l.st.values,c),0<f)for(var h=0;h<f;h++){var b=y[h],g=(E=O=I=S=w=P=x=T=A=g=void 0,e),A=t,T=a,x=C,P=c,w=m[b],S=l[b],I=w.componentsPerAttribute,O=w.values,E=S.values;switch(I){case 4:ue(g,A,T,x,O,E,P,!1);break;case 3:L(g,A,T,x,O,E,P,!1);break;case 2:pe(g,A,T,x,O,E,P,!1);break;default:E[P]=O[g]*x.x+O[A]*x.y+O[T]*x.z}}}}function k(e,t,a,r,i,n){var s=e.position.values.length/3;return-1!==i?-1===(i=a[r=r[i]])?(a[r]=s,e.position.values.push(n.x,n.y,n.z),t.push(s),s):(t.push(i),i):(e.position.values.push(n.x,n.y,n.z),t.push(s),s)}var me={position:!0,normal:!0,bitangent:!0,tangent:!0,st:!0,extrudeDirection:!0,applyOffset:!0};function ce(e){var t,a=e.geometry,r=a.attributes,i=r.position.values,n=V.defined(r.normal)?r.normal.values:void 0,s=V.defined(r.bitangent)?r.bitangent.values:void 0,o=V.defined(r.tangent)?r.tangent.values:void 0,u=V.defined(r.st)?r.st.values:void 0,p=V.defined(r.extrudeDirection)?r.extrudeDirection.values:void 0,d=V.defined(r.applyOffset)?r.applyOffset.values:void 0,l=a.indices,y=[];for(t in r)r.hasOwnProperty(t)&&!me[t]&&V.defined(r[t])&&y.push(t);var f,m,c=y.length,v=F(a),C=F(a),h=[],b=(h.length=i.length/3,[]);for(b.length=i.length/3,A=0;A<h.length;++A)b[A]=h[A]=-1;for(var g=l.length,A=0;A<g;A+=3){var T=l[A],x=l[A+1],P=l[A+2],w=R.Cartesian3.fromArray(i,3*T),S=R.Cartesian3.fromArray(i,3*x),I=R.Cartesian3.fromArray(i,3*P),O=ie(w,S,I);if(V.defined(O)&&3<O.positions.length)for(var E=O.positions,N=O.indices,L=N.length,z=0;z<L;++z){var D=N[z],M=E[D],G=M.y<0?(f=C.attributes,m=C.indices,h):(f=v.attributes,m=v.indices,b);B(T,x,P,M,i,n,o,s,u,p,d,f,y,c,r,k(f,m,G,l,D<3?A+D:-1,M))}else V.defined(O)&&(w=O.positions[0],S=O.positions[1],I=O.positions[2]),G=w.y<0?(f=C.attributes,m=C.indices,h):(f=v.attributes,m=v.indices,b),B(T,x,P,w,i,n,o,s,u,p,d,f,y,c,r,k(f,m,G,l,A,w)),B(T,x,P,S,i,n,o,s,u,p,d,f,y,c,r,k(f,m,G,l,A+1,S)),B(T,x,P,I,i,n,o,s,u,p,d,f,y,c,r,k(f,m,G,l,A+2,I))}se(e,C,v)}var ve=Y.Plane.fromPointNormal(R.Cartesian3.ZERO,R.Cartesian3.UNIT_Y),Ce=new R.Cartesian3,he=new R.Cartesian3;function _(e,t,a,r,i,n,s){V.defined(s)&&(r=R.Cartesian3.fromArray(r,3*e,z),R.Cartesian3.equalsEpsilon(r,a,D.CesiumMath.EPSILON10)?n.applyOffset.values[i]=s[e]:n.applyOffset.values[i]=s[t])}function be(e){var t,a=e.geometry,r=a.attributes,i=r.position.values,n=V.defined(r.applyOffset)?r.applyOffset.values:void 0,s=a.indices,o=F(a),u=F(a),p=s.length,d=[],l=(d.length=i.length/3,[]);for(l.length=i.length/3,t=0;t<d.length;++t)l[t]=d[t]=-1;for(t=0;t<p;t+=2){var y,f,m,c,v=s[t],C=s[t+1],h=R.Cartesian3.fromArray(i,3*v,z),b=R.Cartesian3.fromArray(i,3*C,le),g=(Math.abs(h.y)<D.CesiumMath.EPSILON6&&(h.y<0?h.y=-D.CesiumMath.EPSILON6:h.y=D.CesiumMath.EPSILON6),Math.abs(b.y)<D.CesiumMath.EPSILON6&&(b.y<0?b.y=-D.CesiumMath.EPSILON6:b.y=D.CesiumMath.EPSILON6),o.attributes),A=o.indices,T=l,x=u.attributes,P=u.indices,w=d,S=U.IntersectionTests.lineSegmentPlane(h,b,ve,ye);V.defined(S)?(y=R.Cartesian3.multiplyByScalar(R.Cartesian3.UNIT_Y,5*D.CesiumMath.EPSILON9,Ce),h.y<0&&(R.Cartesian3.negate(y,y),g=u.attributes,A=u.indices,T=d,x=o.attributes,P=o.indices,w=l),f=R.Cartesian3.add(S,y,he),_(v,C,h,i,k(g,A,T,s,t,h),g,n),_(v,C,f,i,k(g,A,T,s,-1,f),g,n),R.Cartesian3.negate(y,y),R.Cartesian3.add(S,y,f),_(v,C,f,i,k(x,P,w,s,-1,f),x,n),_(v,C,b,i,k(x,P,w,s,t+1,b),x,n)):(A=h.y<0?(m=u.attributes,c=u.indices,d):(m=o.attributes,c=o.indices,l),_(v,C,h,i,k(m,c,A,s,t,h),m,n),_(v,C,b,i,k(m,c,A,s,t+1,b),m,n))}se(e,u,o)}var ge=new R.Cartesian2,Ae=new R.Cartesian2,Te=new R.Cartesian3,xe=new R.Cartesian3,Pe=new R.Cartesian3,we=new R.Cartesian3,Se=new R.Cartesian3,Ie=new R.Cartesian3,Oe=new M.Cartesian4;function Ee(e){for(var e=e.attributes,t=e.position.values,a=e.prevPosition.values,r=e.nextPosition.values,i=t.length,n=0;n<i;n+=3){var s,o=R.Cartesian3.unpack(t,n,Te);0<o.x||(s=R.Cartesian3.unpack(a,n,xe),(o.y<0&&0<s.y||0<o.y&&s.y<0)&&(0<n-3?(a[n]=t[n-3],a[n+1]=t[n-2],a[n+2]=t[n-1]):R.Cartesian3.pack(o,a,n)),s=R.Cartesian3.unpack(r,n,Pe),(o.y<0&&0<s.y||0<o.y&&s.y<0)&&(n+3<i?(r[n]=t[n+3],r[n+1]=t[n+4],r[n+2]=t[n+5]):R.Cartesian3.pack(o,r,n)))}}var Ne=5*D.CesiumMath.EPSILON9,q=D.CesiumMath.EPSILON6;e.splitLongitude=function(e){var t=e.geometry,a=t.boundingSphere;if(V.defined(a)&&(0<a.center.x-a.radius||M.BoundingSphere.intersectPlane(a,Y.Plane.ORIGIN_ZX_PLANE)!==M.Intersect.INTERSECTING))return e;if(t.geometryType!==G.GeometryType.NONE)switch(t.geometryType){case G.GeometryType.POLYLINES:for(var r=e,i=r.geometry,n=i.attributes,s=n.position.values,o=n.prevPosition.values,u=n.nextPosition.values,p=n.expandAndWidth.values,d=V.defined(n.st)?n.st.values:void 0,l=V.defined(n.color)?n.color.values:void 0,y=F(i),f=F(i),m=!1,c=s.length/3,v=0;v<c;v+=4){var C=v,h=v+2,b=R.Cartesian3.fromArray(s,3*C,Te),g=R.Cartesian3.fromArray(s,3*h,xe);if(Math.abs(b.y)<q)for(b.y=q*(g.y<0?-1:1),s[3*v+1]=b.y,s[3*(v+1)+1]=b.y,L=3*C;L<3*C+12;L+=3)o[L]=s[3*v],o[L+1]=s[3*v+1],o[L+2]=s[3*v+2];if(Math.abs(g.y)<q)for(g.y=q*(b.y<0?-1:1),s[3*(v+2)+1]=g.y,s[3*(v+3)+1]=g.y,L=3*C;L<3*C+12;L+=3)u[L]=s[3*(v+2)],u[L+1]=s[3*(v+2)+1],u[L+2]=s[3*(v+2)+2];var A=y.attributes,T=y.indices,x=f.attributes,P=f.indices,w=U.IntersectionTests.lineSegmentPlane(b,g,ve,we);if(V.defined(w)){var m=!0,S=R.Cartesian3.multiplyByScalar(R.Cartesian3.UNIT_Y,Ne,Se),I=(b.y<0&&(R.Cartesian3.negate(S,S),A=f.attributes,T=f.indices,x=y.attributes,P=y.indices),R.Cartesian3.add(w,S,Ie)),S=(A.position.values.push(b.x,b.y,b.z,b.x,b.y,b.z),A.position.values.push(I.x,I.y,I.z),A.position.values.push(I.x,I.y,I.z),A.prevPosition.values.push(o[3*C],o[3*C+1],o[3*C+2]),A.prevPosition.values.push(o[3*C+3],o[3*C+4],o[3*C+5]),A.prevPosition.values.push(b.x,b.y,b.z,b.x,b.y,b.z),A.nextPosition.values.push(I.x,I.y,I.z),A.nextPosition.values.push(I.x,I.y,I.z),A.nextPosition.values.push(I.x,I.y,I.z),A.nextPosition.values.push(I.x,I.y,I.z),R.Cartesian3.negate(S,S),R.Cartesian3.add(w,S,I),x.position.values.push(I.x,I.y,I.z),x.position.values.push(I.x,I.y,I.z),x.position.values.push(g.x,g.y,g.z,g.x,g.y,g.z),x.prevPosition.values.push(I.x,I.y,I.z),x.prevPosition.values.push(I.x,I.y,I.z),x.prevPosition.values.push(I.x,I.y,I.z),x.prevPosition.values.push(I.x,I.y,I.z),x.nextPosition.values.push(g.x,g.y,g.z,g.x,g.y,g.z),x.nextPosition.values.push(u[3*h],u[3*h+1],u[3*h+2]),x.nextPosition.values.push(u[3*h+3],u[3*h+4],u[3*h+5]),R.Cartesian2.fromArray(p,2*C,ge)),I=Math.abs(S.y),S=(A.expandAndWidth.values.push(-1,I,1,I),A.expandAndWidth.values.push(-1,-I,1,-I),x.expandAndWidth.values.push(-1,I,1,I),x.expandAndWidth.values.push(-1,-I,1,-I),R.Cartesian3.magnitudeSquared(R.Cartesian3.subtract(w,b,Pe)));if(S/=R.Cartesian3.magnitudeSquared(R.Cartesian3.subtract(g,b,Pe)),V.defined(l)){for(var I=M.Cartesian4.fromArray(l,4*C,Oe),w=M.Cartesian4.fromArray(l,4*h,Oe),O=D.CesiumMath.lerp(I.x,w.x,S),E=D.CesiumMath.lerp(I.y,w.y,S),N=D.CesiumMath.lerp(I.z,w.z,S),I=D.CesiumMath.lerp(I.w,w.w,S),L=4*C;L<4*C+8;++L)A.color.values.push(l[L]);for(A.color.values.push(O,E,N,I),A.color.values.push(O,E,N,I),x.color.values.push(O,E,N,I),x.color.values.push(O,E,N,I),L=4*h;L<4*h+8;++L)x.color.values.push(l[L])}if(V.defined(d)){w=R.Cartesian2.fromArray(d,2*C,ge),O=R.Cartesian2.fromArray(d,2*(v+3),Ae),E=D.CesiumMath.lerp(w.x,O.x,S);for(L=2*C;L<2*C+4;++L)A.st.values.push(d[L]);for(A.st.values.push(E,w.y),A.st.values.push(E,O.y),x.st.values.push(E,w.y),x.st.values.push(E,O.y),L=2*h;L<2*h+4;++L)x.st.values.push(d[L])}N=A.position.values.length/3-4,T.push(N,N+2,N+1),T.push(N+1,N+2,N+3),N=x.position.values.length/3-4,P.push(N,N+2,N+1),P.push(N+1,N+2,N+3)}else{var z,I=(b.y<0?(z=f.attributes,f):(z=y.attributes,y)).indices;for(z.position.values.push(b.x,b.y,b.z),z.position.values.push(b.x,b.y,b.z),z.position.values.push(g.x,g.y,g.z),z.position.values.push(g.x,g.y,g.z),L=3*v;L<3*v+12;++L)z.prevPosition.values.push(o[L]),z.nextPosition.values.push(u[L]);for(L=2*v;L<2*v+8;++L)z.expandAndWidth.values.push(p[L]),V.defined(d)&&z.st.values.push(d[L]);if(V.defined(l))for(L=4*v;L<4*v+16;++L)z.color.values.push(l[L]);N=z.position.values.length/3-4,I.push(N,N+2,N+1),I.push(N+1,N+2,N+3)}}m&&(Ee(f),Ee(y)),se(r,f,y);break;case G.GeometryType.TRIANGLES:ce(e);break;case G.GeometryType.LINES:be(e)}else te(t),t.primitiveType===G.PrimitiveType.TRIANGLES?ce(e):t.primitiveType===G.PrimitiveType.LINES&&be(e);return e},t.GeometryPipeline=e});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
define(["exports","./Cartesian2-c1eb9da0","./when-ae2e0b60","./Check-f996273c","./Transforms-b0beda9b","./Math-5bbcea10"],function(a,w,f,t,R,v){"use strict";var S={};function s(a,t,e){var n=a+t;return v.CesiumMath.sign(a)!==v.CesiumMath.sign(t)&&Math.abs(n/Math.max(Math.abs(a),Math.abs(t)))<e?0:n}S.computeDiscriminant=function(a,t,e){return t*t-4*a*e},S.computeRealRoots=function(a,t,e){var n,r,i;return 0===a?0===t?[]:[-e/t]:0===t?0===e||(r=Math.abs(e))<(i=Math.abs(a))&&r/i<v.CesiumMath.EPSILON14?[0,0]:i<r&&i/r<v.CesiumMath.EPSILON14||(n=-e/a)<0?[]:[-(i=Math.sqrt(n)),i]:0===e?(n=-t/a)<0?[n,0]:[0,n]:(r=s(t*t,-(4*a*e),v.CesiumMath.EPSILON14))<0?[]:(i=-.5*s(t,v.CesiumMath.sign(t)*Math.sqrt(r),v.CesiumMath.EPSILON14),0<t?[i/a,e/i]:[e/i,i/a])};var d={};function o(a,t,e,n){var r,i,s,o,u,t=t/3,e=e/3,C=a*e,c=t*n,l=t*t,h=e*e,M=a*e-l,m=a*n-t*e,d=t*n-h,f=4*M*d-m*m;return f<0?(u=(u=(r=(o=-((i=C*h<=l*c?-2*t*(s=M)+(o=a)*m:-(o=n)*m+2*e*(s=d))<0?-1:1)*Math.abs(o)*Math.sqrt(-f))-i)/2)<0?-Math.pow(-u,1/3):Math.pow(u,1/3),o=r===o?-u:-s/u,i=s<=0?u+o:-i/(u*u+o*o+s),C*h<=l*c?[(i-t)/a]:[-n/(i+e)]):(o=-2*t*(u=M)+a*m,C=-n*m+2*e*(s=d),h=Math.sqrt(f),l=Math.sqrt(3)/2,c=Math.abs(Math.atan2(a*h,-o)/3),o=(d=2*t<(r=(i=2*Math.sqrt(-u))*(M=Math.cos(c)))+(m=i*(-M/2-l*Math.sin(c)))?r-t:m-t)/(f=a),c=Math.abs(Math.atan2(n*h,-C)/3),h=(u=-n)/(a=(r=(i=2*Math.sqrt(-s))*(M=Math.cos(c)))+(m=i*(-M/2-l*Math.sin(c)))<2*e?r+e:m+e),o<=(n=(e*(C=-d*a-f*u)-t*(d*u))/(-t*C+e*(f*a)))?o<=h?n<=h?[o,n,h]:[o,h,n]:[h,o,n]:o<=h?[n,o,h]:n<=h?[n,h,o]:[h,n,o])}d.computeDiscriminant=function(a,t,e,n){var r=t*t,i=e*e;return 18*a*t*e*n+r*i-27*(a*a)*(n*n)-4*(a*i*e+r*t*n)},d.computeRealRoots=function(a,t,e,n){var r,i,s;return 0===a?S.computeRealRoots(t,e,n):0===t?0===e?0===n?[0,0,0]:[s=(i=-n/a)<0?-Math.pow(-i,1/3):Math.pow(i,1/3),s,s]:0===n?0===(r=S.computeRealRoots(a,0,e)).Length?[0]:[r[0],0,r[1]]:o(a,0,e,n):0===e?0===n?(i=-t/a)<0?[i,0,0]:[0,0,i]:o(a,t,0,n):0===n?0===(r=S.computeRealRoots(a,t,e)).length?[0]:r[1]<=0?[r[0],r[1],0]:0<=r[0]?[0,r[0],r[1]]:[r[0],0,r[1]]:o(a,t,e,n)};var O={};function C(a,t,e,n){var r=a*a,i=t-3*r/8,s=e-t*a/2+r*a/8,n=n-e*a/4+t*r/16-3*r*r/256,e=d.computeRealRoots(1,2*i,i*i-4*n,-s*s);if(0<e.length){t=-a/4,r=e[e.length-1];if(Math.abs(r)<v.CesiumMath.EPSILON14){var a=S.computeRealRoots(1,i,n);if(2===a.length){var o,u,e=a[0],n=a[1];if(0<=e&&0<=n)return a=Math.sqrt(e),[t-(u=Math.sqrt(n)),t-a,t+a,t+u];if(0<=e&&n<0)return[t-(o=Math.sqrt(e)),t+o];if(e<0&&0<=n)return[t-(o=Math.sqrt(n)),t+o]}return[]}if(0<r)return u=(i+r+s/(a=Math.sqrt(r)))/2,e=S.computeRealRoots(1,a,(i+r-s/a)/2),n=S.computeRealRoots(1,-a,u),0!==e.length?(e[0]+=t,e[1]+=t,0!==n.length?(n[0]+=t,n[1]+=t,e[1]<=n[0]?[e[0],e[1],n[0],n[1]]:n[1]<=e[0]?[n[0],n[1],e[0],e[1]]:e[0]>=n[0]&&e[1]<=n[1]?[n[0],e[0],e[1],n[1]]:n[0]>=e[0]&&n[1]<=e[1]?[e[0],n[0],n[1],e[1]]:e[0]>n[0]&&e[0]<n[1]?[n[0],e[0],n[1],e[1]]:[e[0],n[0],e[1],n[1]]):e):0!==n.length?(n[0]+=t,n[1]+=t,n):[]}return[]}function c(a,t,e,n){var r=a*a,i=d.computeRealRoots(1,-2*t,e*a+t*t-4*n,r*n-e*t*a+e*e);if(0<i.length){var s,o,u,C,c,i=i[0],t=t-i,l=t*t,h=a/2,t=t/2,M=l-4*n,l=l+4*Math.abs(n),m=r-4*i,r=r+4*Math.abs(i),r=(m=i<0||M*r<m*l?(s=(r=Math.sqrt(m))/2,0===r?0:(a*t-e)/r):(s=0===(l=Math.sqrt(M))?0:(a*t-e)/l,l/2),0==h&&0===s?u=o=0:v.CesiumMath.sign(h)===v.CesiumMath.sign(s)?u=i/(o=h+s):o=i/(u=h-s),0==t&&0===m?c=C=0:v.CesiumMath.sign(t)===v.CesiumMath.sign(m)?c=n/(C=t+m):C=n/(c=t-m),S.computeRealRoots(1,o,C)),M=S.computeRealRoots(1,u,c);if(0!==r.length)return 0!==M.length?r[1]<=M[0]?[r[0],r[1],M[0],M[1]]:M[1]<=r[0]?[M[0],M[1],r[0],r[1]]:r[0]>=M[0]&&r[1]<=M[1]?[M[0],r[0],r[1],M[1]]:M[0]>=r[0]&&M[1]<=r[1]?[r[0],M[0],M[1],r[1]]:r[0]>M[0]&&r[0]<M[1]?[M[0],r[0],M[1],r[1]]:[r[0],M[0],r[1],M[1]]:r;if(0!==M.length)return M}return[]}function e(a,t){t=w.Cartesian3.clone(f.defaultValue(t,w.Cartesian3.ZERO)),w.Cartesian3.equals(t,w.Cartesian3.ZERO)||w.Cartesian3.normalize(t,t),this.origin=w.Cartesian3.clone(f.defaultValue(a,w.Cartesian3.ZERO)),this.direction=t}O.computeDiscriminant=function(a,t,e,n,r){var i=a*a,s=t*t,o=s*t,u=e*e,C=u*e,c=n*n,l=c*n,h=r*r;return s*u*c-4*o*l-4*a*C*c+18*a*t*e*l-27*i*c*c+256*(i*a)*(h*r)+r*(18*o*e*n-4*s*C+16*a*u*u-80*a*t*u*n-6*a*s*c+144*i*e*c)+h*(144*a*s*e-27*s*s-128*i*u-192*i*t*n)},O.computeRealRoots=function(a,t,e,n,r){if(Math.abs(a)<v.CesiumMath.EPSILON15)return d.computeRealRoots(t,e,n,r);var i=t/a,s=e/a,o=n/a,u=r/a,t=i<0?1:0;switch(t=(t=(t+=s<0?1+t:t)+(o<0?1+t:t))+(u<0?1+t:t)){case 0:return C(i,s,o,u);case 1:case 2:return c(i,s,o,u);case 3:case 4:return C(i,s,o,u);case 5:return c(i,s,o,u);case 6:case 7:return C(i,s,o,u);case 8:return c(i,s,o,u);case 9:case 10:return C(i,s,o,u);case 11:return c(i,s,o,u);case 12:case 13:case 14:case 15:return C(i,s,o,u);default:return}},e.clone=function(a,t){if(f.defined(a))return f.defined(t)?(t.origin=w.Cartesian3.clone(a.origin),t.direction=w.Cartesian3.clone(a.direction),t):new e(a.origin,a.direction)},e.getPoint=function(a,t,e){return f.defined(e)||(e=new w.Cartesian3),e=w.Cartesian3.multiplyByScalar(a.direction,t,e),w.Cartesian3.add(a.origin,e,e)};var l={rayPlane:function(a,t,e){f.defined(e)||(e=new w.Cartesian3);var n=a.origin,a=a.direction,r=t.normal,i=w.Cartesian3.dot(r,a);if(!(Math.abs(i)<v.CesiumMath.EPSILON15)){t=(-t.distance-w.Cartesian3.dot(r,n))/i;if(!(t<0))return e=w.Cartesian3.multiplyByScalar(a,t,e),w.Cartesian3.add(n,e,e)}}},M=new w.Cartesian3,m=new w.Cartesian3,g=new w.Cartesian3,p=new w.Cartesian3,x=new w.Cartesian3,u=(l.rayTriangleParametric=function(a,t,e,n,r){r=f.defaultValue(r,!1);var i,s,o,u=a.origin,a=a.direction,e=w.Cartesian3.subtract(e,t,M),n=w.Cartesian3.subtract(n,t,m),C=w.Cartesian3.cross(a,n,g),c=w.Cartesian3.dot(e,C);if(r){if(c<v.CesiumMath.EPSILON6)return;if(h=w.Cartesian3.subtract(u,t,p),(l=w.Cartesian3.dot(h,C))<0||c<l)return;if(i=w.Cartesian3.cross(h,e,x),(s=w.Cartesian3.dot(a,i))<0||c<l+s)return;o=w.Cartesian3.dot(n,i)/c}else{if(Math.abs(c)<v.CesiumMath.EPSILON6)return;var l,r=1/c,h=w.Cartesian3.subtract(u,t,p);if((l=w.Cartesian3.dot(h,C)*r)<0||1<l)return;if(i=w.Cartesian3.cross(h,e,x),(s=w.Cartesian3.dot(a,i)*r)<0||1<l+s)return;o=w.Cartesian3.dot(n,i)*r}return o},l.rayTriangle=function(a,t,e,n,r,i){t=l.rayTriangleParametric(a,t,e,n,r);if(f.defined(t)&&!(t<0))return f.defined(i)||(i=new w.Cartesian3),w.Cartesian3.multiplyByScalar(a.direction,t,i),w.Cartesian3.add(a.origin,i,i)},new e);l.lineSegmentTriangle=function(a,t,e,n,r,i,s){var o=u,e=(w.Cartesian3.clone(a,o.origin),w.Cartesian3.subtract(t,a,o.direction),w.Cartesian3.normalize(o.direction,o.direction),l.rayTriangleParametric(o,e,n,r,i));if(!(!f.defined(e)||e<0||e>w.Cartesian3.distance(a,t)))return f.defined(s)||(s=new w.Cartesian3),w.Cartesian3.multiplyByScalar(o.direction,e,s),w.Cartesian3.add(o.origin,s,s)};var i={root0:0,root1:0};function h(a,t,e){f.defined(e)||(e=new R.Interval);var n=a.origin,a=a.direction,r=t.center,t=t.radius*t.radius,n=w.Cartesian3.subtract(n,r,g),r=function(a,t,e,n){var r,i,e=t*t-4*a*e;if(!(e<0))return 0<e?(i=1/(2*a),(r=(-t+(e=Math.sqrt(e)))*i)<(e=(-t-e)*i)?(n.root0=r,n.root1=e):(n.root0=e,n.root1=r),n):0!=(i=-t/(2*a))?(n.root0=n.root1=i,n):void 0}(w.Cartesian3.dot(a,a),2*w.Cartesian3.dot(a,n),w.Cartesian3.magnitudeSquared(n)-t,i);if(f.defined(r))return e.start=r.root0,e.stop=r.root1,e}l.raySphere=function(a,t,e){if(e=h(a,t,e),f.defined(e)&&!(e.stop<0))return e.start=Math.max(e.start,0),e};var y=new e,b=(l.lineSegmentSphere=function(a,t,e,n){var r=y,t=(w.Cartesian3.clone(a,r.origin),w.Cartesian3.subtract(t,a,r.direction)),a=w.Cartesian3.magnitude(t);if(w.Cartesian3.normalize(t,t),n=h(r,e,n),!(!f.defined(n)||n.stop<0||n.start>a))return n.start=Math.max(n.start,0),n.stop=Math.min(n.stop,a),n},new w.Cartesian3),P=new w.Cartesian3;function N(a,t,e){var n=a+t;return v.CesiumMath.sign(a)!==v.CesiumMath.sign(t)&&Math.abs(n/Math.max(Math.abs(a),Math.abs(t)))<e?0:n}l.rayEllipsoid=function(a,t){var e,n,r,i,s,o,u,t=t.oneOverRadii,C=w.Cartesian3.multiplyComponents(t,a.origin,b),t=w.Cartesian3.multiplyComponents(t,a.direction,P),a=w.Cartesian3.magnitudeSquared(C),C=w.Cartesian3.dot(C,t);return 1<a?0<=C||(e=a-1,(o=C*C)<(r=(n=w.Cartesian3.magnitudeSquared(t))*e))?void 0:r<o?(i=C*C-r,(o=(s=-C+Math.sqrt(i))/n)<(u=e/s)?new R.Interval(o,u):{start:u,stop:o}):(u=Math.sqrt(e/n),new R.Interval(u,u)):a<1?(e=a-1,i=C*C-(r=(n=w.Cartesian3.magnitudeSquared(t))*e),s=-C+Math.sqrt(i),new R.Interval(0,s/n)):C<0?(n=w.Cartesian3.magnitudeSquared(t),new R.Interval(0,-C/n)):void 0};var q=new w.Cartesian3,L=new w.Cartesian3,I=new w.Cartesian3,E=new w.Cartesian3,z=new w.Cartesian3,T=new R.Matrix3,U=new R.Matrix3,Z=new R.Matrix3,A=new R.Matrix3,D=new R.Matrix3,W=new R.Matrix3,B=new R.Matrix3,V=new w.Cartesian3,k=new w.Cartesian3,F=new w.Cartographic,G=(l.grazingAltitudeLocation=function(a,t){var e=a.origin,n=a.direction;if(!w.Cartesian3.equals(e,w.Cartesian3.ZERO)){var r=t.geodeticSurfaceNormal(e,q);if(0<=w.Cartesian3.dot(n,r))return e}var r=f.defined(this.rayEllipsoid(a,t)),a=t.transformPositionToScaledSpace(n,q),i=w.Cartesian3.normalize(a,a),a=w.Cartesian3.mostOrthogonalAxis(a,E),a=w.Cartesian3.normalize(w.Cartesian3.cross(a,i,L),L),s=w.Cartesian3.normalize(w.Cartesian3.cross(i,a,I),I),o=T,i=(o[0]=i.x,o[1]=i.y,o[2]=i.z,o[3]=a.x,o[4]=a.y,o[5]=a.z,o[6]=s.x,o[7]=s.y,o[8]=s.z,R.Matrix3.transpose(o,U)),u=R.Matrix3.fromScale(t.radii,Z),a=R.Matrix3.fromScale(t.oneOverRadii,A),s=D,i=(s[0]=0,s[1]=-n.z,s[2]=n.y,s[3]=n.z,s[4]=0,s[5]=-n.x,s[6]=-n.y,s[7]=n.x,s[8]=0,R.Matrix3.multiply(R.Matrix3.multiply(i,a,W),s,W)),a=R.Matrix3.multiply(R.Matrix3.multiply(i,u,B),o,B),s=R.Matrix3.multiplyByVector(i,e,z),C=function(a,t,e,n,r){var i,s=n*n,o=r*r,u=(a[R.Matrix3.COLUMN1ROW1]-a[R.Matrix3.COLUMN2ROW2])*o,C=r*(n*N(a[R.Matrix3.COLUMN1ROW0],a[R.Matrix3.COLUMN0ROW1],v.CesiumMath.EPSILON15)+t.y),c=a[R.Matrix3.COLUMN0ROW0]*s+a[R.Matrix3.COLUMN2ROW2]*o+n*t.x+e,l=o*N(a[R.Matrix3.COLUMN2ROW1],a[R.Matrix3.COLUMN1ROW2],v.CesiumMath.EPSILON15),h=r*(n*N(a[R.Matrix3.COLUMN2ROW0],a[R.Matrix3.COLUMN0ROW2])+t.z),M=[];if(0==h&&0==l)0!==(i=S.computeRealRoots(u,C,c)).length&&(s=i[0],e=Math.sqrt(Math.max(1-s*s,0)),M.push(new w.Cartesian3(n,r*s,r*-e)),M.push(new w.Cartesian3(n,r*s,r*e)),2===i.length)&&(o=i[1],a=Math.sqrt(Math.max(1-o*o,0)),M.push(new w.Cartesian3(n,r*o,r*-a)),M.push(new w.Cartesian3(n,r*o,r*a)));else{t=h*h,s=l*l,e=h*l,o=u*u+s,a=2*(C*u+e),s=2*c*u+C*C-s+t,e=2*(c*C-e),t=c*c-t;if(0!=o||0!=a||0!=s||0!=e){var m=(i=O.computeRealRoots(o,a,s,e,t)).length;if(0!==m)for(var d=0;d<m;++d){var f=i[d],g=f*f,p=Math.max(1-g,0),p=Math.sqrt(p),g=v.CesiumMath.sign(u)===v.CesiumMath.sign(c)?N(u*g+c,C*f,v.CesiumMath.EPSILON12):v.CesiumMath.sign(c)===v.CesiumMath.sign(C*f)?N(u*g,C*f+c,v.CesiumMath.EPSILON12):N(u*g+C*f,c,v.CesiumMath.EPSILON12),g=g*N(l*f,h,v.CesiumMath.EPSILON15);g<0?M.push(new w.Cartesian3(n,r*f,r*p)):0<g?M.push(new w.Cartesian3(n,r*f,r*-p)):0!==p?(M.push(new w.Cartesian3(n,r*f,r*-p)),M.push(new w.Cartesian3(n,r*f,r*p)),++d):M.push(new w.Cartesian3(n,r*f,r*p))}}}return M}(a,w.Cartesian3.negate(s,q),0,0,1),c=C.length;if(0<c){for(var l=w.Cartesian3.clone(w.Cartesian3.ZERO,k),h=Number.NEGATIVE_INFINITY,M=0;M<c;++M){var m=R.Matrix3.multiplyByVector(u,R.Matrix3.multiplyByVector(o,C[M],V),V),d=w.Cartesian3.normalize(w.Cartesian3.subtract(m,e,E),E),d=w.Cartesian3.dot(d,n);h<d&&(h=d,l=w.Cartesian3.clone(m,l))}i=t.cartesianToCartographic(l,F),h=v.CesiumMath.clamp(h,0,1),a=w.Cartesian3.magnitude(w.Cartesian3.subtract(l,e,E))*Math.sqrt(1-h*h);return i.height=r?-a:a,t.cartographicToCartesian(i,new w.Cartesian3)}},new w.Cartesian3);l.lineSegmentPlane=function(a,t,e,n){f.defined(n)||(n=new w.Cartesian3);var t=w.Cartesian3.subtract(t,a,G),r=e.normal,i=w.Cartesian3.dot(r,t);if(!(Math.abs(i)<v.CesiumMath.EPSILON6)){r=w.Cartesian3.dot(r,a),e=-(e.distance+r)/i;if(!(e<0||1<e))return w.Cartesian3.multiplyByScalar(t,e,n),w.Cartesian3.add(a,n,n),n}},l.trianglePlaneIntersection=function(a,t,e,n){var r,i,s=n.normal,o=n.distance,u=w.Cartesian3.dot(s,a)+o<0,C=w.Cartesian3.dot(s,t)+o<0,s=w.Cartesian3.dot(s,e)+o<0,o=0;if(1!=(o=(o+=u?1:0)+(C?1:0)+(s?1:0))&&2!=o||(r=new w.Cartesian3,i=new w.Cartesian3),1==o){if(u)return l.lineSegmentPlane(a,t,n,r),l.lineSegmentPlane(a,e,n,i),{positions:[a,t,e,r,i],indices:[0,3,4,1,2,4,1,4,3]};if(C)return l.lineSegmentPlane(t,e,n,r),l.lineSegmentPlane(t,a,n,i),{positions:[a,t,e,r,i],indices:[1,3,4,2,0,4,2,4,3]};if(s)return l.lineSegmentPlane(e,a,n,r),l.lineSegmentPlane(e,t,n,i),{positions:[a,t,e,r,i],indices:[2,3,4,0,1,4,0,4,3]}}else if(2==o){if(!u)return l.lineSegmentPlane(t,a,n,r),l.lineSegmentPlane(e,a,n,i),{positions:[a,t,e,r,i],indices:[1,2,4,1,4,3,0,3,4]};if(!C)return l.lineSegmentPlane(e,t,n,r),l.lineSegmentPlane(a,t,n,i),{positions:[a,t,e,r,i],indices:[2,0,4,2,4,3,1,3,4]};if(!s)return l.lineSegmentPlane(a,e,n,r),l.lineSegmentPlane(t,e,n,i),{positions:[a,t,e,r,i],indices:[0,1,4,0,4,3,2,3,4]}}},a.IntersectionTests=l,a.Ray=e});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
define(["exports","./Cartesian2-c1eb9da0","./when-ae2e0b60","./Check-f996273c","./Transforms-1fa85493","./Math-5bbcea10"],function(a,w,f,t,R,v){"use strict";var S={};function s(a,t,e){var n=a+t;return v.CesiumMath.sign(a)!==v.CesiumMath.sign(t)&&Math.abs(n/Math.max(Math.abs(a),Math.abs(t)))<e?0:n}S.computeDiscriminant=function(a,t,e){return t*t-4*a*e},S.computeRealRoots=function(a,t,e){var n,r,i;return 0===a?0===t?[]:[-e/t]:0===t?0===e||(r=Math.abs(e))<(i=Math.abs(a))&&r/i<v.CesiumMath.EPSILON14?[0,0]:i<r&&i/r<v.CesiumMath.EPSILON14||(n=-e/a)<0?[]:[-(i=Math.sqrt(n)),i]:0===e?(n=-t/a)<0?[n,0]:[0,n]:(r=s(t*t,-(4*a*e),v.CesiumMath.EPSILON14))<0?[]:(i=-.5*s(t,v.CesiumMath.sign(t)*Math.sqrt(r),v.CesiumMath.EPSILON14),0<t?[i/a,e/i]:[e/i,i/a])};var d={};function o(a,t,e,n){var r,i,s,o,u,t=t/3,e=e/3,C=a*e,c=t*n,l=t*t,h=e*e,M=a*e-l,m=a*n-t*e,d=t*n-h,f=4*M*d-m*m;return f<0?(u=(u=(r=(o=-((i=C*h<=l*c?-2*t*(s=M)+(o=a)*m:-(o=n)*m+2*e*(s=d))<0?-1:1)*Math.abs(o)*Math.sqrt(-f))-i)/2)<0?-Math.pow(-u,1/3):Math.pow(u,1/3),o=r===o?-u:-s/u,i=s<=0?u+o:-i/(u*u+o*o+s),C*h<=l*c?[(i-t)/a]:[-n/(i+e)]):(o=-2*t*(u=M)+a*m,C=-n*m+2*e*(s=d),h=Math.sqrt(f),l=Math.sqrt(3)/2,c=Math.abs(Math.atan2(a*h,-o)/3),o=(d=2*t<(r=(i=2*Math.sqrt(-u))*(M=Math.cos(c)))+(m=i*(-M/2-l*Math.sin(c)))?r-t:m-t)/(f=a),c=Math.abs(Math.atan2(n*h,-C)/3),h=(u=-n)/(a=(r=(i=2*Math.sqrt(-s))*(M=Math.cos(c)))+(m=i*(-M/2-l*Math.sin(c)))<2*e?r+e:m+e),o<=(n=(e*(C=-d*a-f*u)-t*(d*u))/(-t*C+e*(f*a)))?o<=h?n<=h?[o,n,h]:[o,h,n]:[h,o,n]:o<=h?[n,o,h]:n<=h?[n,h,o]:[h,n,o])}d.computeDiscriminant=function(a,t,e,n){var r=t*t,i=e*e;return 18*a*t*e*n+r*i-27*(a*a)*(n*n)-4*(a*i*e+r*t*n)},d.computeRealRoots=function(a,t,e,n){var r,i,s;return 0===a?S.computeRealRoots(t,e,n):0===t?0===e?0===n?[0,0,0]:[s=(i=-n/a)<0?-Math.pow(-i,1/3):Math.pow(i,1/3),s,s]:0===n?0===(r=S.computeRealRoots(a,0,e)).Length?[0]:[r[0],0,r[1]]:o(a,0,e,n):0===e?0===n?(i=-t/a)<0?[i,0,0]:[0,0,i]:o(a,t,0,n):0===n?0===(r=S.computeRealRoots(a,t,e)).length?[0]:r[1]<=0?[r[0],r[1],0]:0<=r[0]?[0,r[0],r[1]]:[r[0],0,r[1]]:o(a,t,e,n)};var O={};function C(a,t,e,n){var r=a*a,i=t-3*r/8,s=e-t*a/2+r*a/8,n=n-e*a/4+t*r/16-3*r*r/256,e=d.computeRealRoots(1,2*i,i*i-4*n,-s*s);if(0<e.length){t=-a/4,r=e[e.length-1];if(Math.abs(r)<v.CesiumMath.EPSILON14){var a=S.computeRealRoots(1,i,n);if(2===a.length){var o,u,e=a[0],n=a[1];if(0<=e&&0<=n)return a=Math.sqrt(e),[t-(u=Math.sqrt(n)),t-a,t+a,t+u];if(0<=e&&n<0)return[t-(o=Math.sqrt(e)),t+o];if(e<0&&0<=n)return[t-(o=Math.sqrt(n)),t+o]}return[]}if(0<r)return u=(i+r+s/(a=Math.sqrt(r)))/2,e=S.computeRealRoots(1,a,(i+r-s/a)/2),n=S.computeRealRoots(1,-a,u),0!==e.length?(e[0]+=t,e[1]+=t,0!==n.length?(n[0]+=t,n[1]+=t,e[1]<=n[0]?[e[0],e[1],n[0],n[1]]:n[1]<=e[0]?[n[0],n[1],e[0],e[1]]:e[0]>=n[0]&&e[1]<=n[1]?[n[0],e[0],e[1],n[1]]:n[0]>=e[0]&&n[1]<=e[1]?[e[0],n[0],n[1],e[1]]:e[0]>n[0]&&e[0]<n[1]?[n[0],e[0],n[1],e[1]]:[e[0],n[0],e[1],n[1]]):e):0!==n.length?(n[0]+=t,n[1]+=t,n):[]}return[]}function c(a,t,e,n){var r=a*a,i=d.computeRealRoots(1,-2*t,e*a+t*t-4*n,r*n-e*t*a+e*e);if(0<i.length){var s,o,u,C,c,i=i[0],t=t-i,l=t*t,h=a/2,t=t/2,M=l-4*n,l=l+4*Math.abs(n),m=r-4*i,r=r+4*Math.abs(i),r=(m=i<0||M*r<m*l?(s=(r=Math.sqrt(m))/2,0===r?0:(a*t-e)/r):(s=0===(l=Math.sqrt(M))?0:(a*t-e)/l,l/2),0==h&&0===s?u=o=0:v.CesiumMath.sign(h)===v.CesiumMath.sign(s)?u=i/(o=h+s):o=i/(u=h-s),0==t&&0===m?c=C=0:v.CesiumMath.sign(t)===v.CesiumMath.sign(m)?c=n/(C=t+m):C=n/(c=t-m),S.computeRealRoots(1,o,C)),M=S.computeRealRoots(1,u,c);if(0!==r.length)return 0!==M.length?r[1]<=M[0]?[r[0],r[1],M[0],M[1]]:M[1]<=r[0]?[M[0],M[1],r[0],r[1]]:r[0]>=M[0]&&r[1]<=M[1]?[M[0],r[0],r[1],M[1]]:M[0]>=r[0]&&M[1]<=r[1]?[r[0],M[0],M[1],r[1]]:r[0]>M[0]&&r[0]<M[1]?[M[0],r[0],M[1],r[1]]:[r[0],M[0],r[1],M[1]]:r;if(0!==M.length)return M}return[]}function e(a,t){t=w.Cartesian3.clone(f.defaultValue(t,w.Cartesian3.ZERO)),w.Cartesian3.equals(t,w.Cartesian3.ZERO)||w.Cartesian3.normalize(t,t),this.origin=w.Cartesian3.clone(f.defaultValue(a,w.Cartesian3.ZERO)),this.direction=t}O.computeDiscriminant=function(a,t,e,n,r){var i=a*a,s=t*t,o=s*t,u=e*e,C=u*e,c=n*n,l=c*n,h=r*r;return s*u*c-4*o*l-4*a*C*c+18*a*t*e*l-27*i*c*c+256*(i*a)*(h*r)+r*(18*o*e*n-4*s*C+16*a*u*u-80*a*t*u*n-6*a*s*c+144*i*e*c)+h*(144*a*s*e-27*s*s-128*i*u-192*i*t*n)},O.computeRealRoots=function(a,t,e,n,r){if(Math.abs(a)<v.CesiumMath.EPSILON15)return d.computeRealRoots(t,e,n,r);var i=t/a,s=e/a,o=n/a,u=r/a,t=i<0?1:0;switch(t=(t=(t+=s<0?1+t:t)+(o<0?1+t:t))+(u<0?1+t:t)){case 0:return C(i,s,o,u);case 1:case 2:return c(i,s,o,u);case 3:case 4:return C(i,s,o,u);case 5:return c(i,s,o,u);case 6:case 7:return C(i,s,o,u);case 8:return c(i,s,o,u);case 9:case 10:return C(i,s,o,u);case 11:return c(i,s,o,u);case 12:case 13:case 14:case 15:return C(i,s,o,u);default:return}},e.clone=function(a,t){if(f.defined(a))return f.defined(t)?(t.origin=w.Cartesian3.clone(a.origin),t.direction=w.Cartesian3.clone(a.direction),t):new e(a.origin,a.direction)},e.getPoint=function(a,t,e){return f.defined(e)||(e=new w.Cartesian3),e=w.Cartesian3.multiplyByScalar(a.direction,t,e),w.Cartesian3.add(a.origin,e,e)};var l={rayPlane:function(a,t,e){f.defined(e)||(e=new w.Cartesian3);var n=a.origin,a=a.direction,r=t.normal,i=w.Cartesian3.dot(r,a);if(!(Math.abs(i)<v.CesiumMath.EPSILON15)){t=(-t.distance-w.Cartesian3.dot(r,n))/i;if(!(t<0))return e=w.Cartesian3.multiplyByScalar(a,t,e),w.Cartesian3.add(n,e,e)}}},M=new w.Cartesian3,m=new w.Cartesian3,g=new w.Cartesian3,p=new w.Cartesian3,x=new w.Cartesian3,u=(l.rayTriangleParametric=function(a,t,e,n,r){r=f.defaultValue(r,!1);var i,s,o,u=a.origin,a=a.direction,e=w.Cartesian3.subtract(e,t,M),n=w.Cartesian3.subtract(n,t,m),C=w.Cartesian3.cross(a,n,g),c=w.Cartesian3.dot(e,C);if(r){if(c<v.CesiumMath.EPSILON6)return;if(h=w.Cartesian3.subtract(u,t,p),(l=w.Cartesian3.dot(h,C))<0||c<l)return;if(i=w.Cartesian3.cross(h,e,x),(s=w.Cartesian3.dot(a,i))<0||c<l+s)return;o=w.Cartesian3.dot(n,i)/c}else{if(Math.abs(c)<v.CesiumMath.EPSILON6)return;var l,r=1/c,h=w.Cartesian3.subtract(u,t,p);if((l=w.Cartesian3.dot(h,C)*r)<0||1<l)return;if(i=w.Cartesian3.cross(h,e,x),(s=w.Cartesian3.dot(a,i)*r)<0||1<l+s)return;o=w.Cartesian3.dot(n,i)*r}return o},l.rayTriangle=function(a,t,e,n,r,i){t=l.rayTriangleParametric(a,t,e,n,r);if(f.defined(t)&&!(t<0))return f.defined(i)||(i=new w.Cartesian3),w.Cartesian3.multiplyByScalar(a.direction,t,i),w.Cartesian3.add(a.origin,i,i)},new e);l.lineSegmentTriangle=function(a,t,e,n,r,i,s){var o=u,e=(w.Cartesian3.clone(a,o.origin),w.Cartesian3.subtract(t,a,o.direction),w.Cartesian3.normalize(o.direction,o.direction),l.rayTriangleParametric(o,e,n,r,i));if(!(!f.defined(e)||e<0||e>w.Cartesian3.distance(a,t)))return f.defined(s)||(s=new w.Cartesian3),w.Cartesian3.multiplyByScalar(o.direction,e,s),w.Cartesian3.add(o.origin,s,s)};var i={root0:0,root1:0};function h(a,t,e){f.defined(e)||(e=new R.Interval);var n=a.origin,a=a.direction,r=t.center,t=t.radius*t.radius,n=w.Cartesian3.subtract(n,r,g),r=function(a,t,e,n){var r,i,e=t*t-4*a*e;if(!(e<0))return 0<e?(i=1/(2*a),(r=(-t+(e=Math.sqrt(e)))*i)<(e=(-t-e)*i)?(n.root0=r,n.root1=e):(n.root0=e,n.root1=r),n):0!=(i=-t/(2*a))?(n.root0=n.root1=i,n):void 0}(w.Cartesian3.dot(a,a),2*w.Cartesian3.dot(a,n),w.Cartesian3.magnitudeSquared(n)-t,i);if(f.defined(r))return e.start=r.root0,e.stop=r.root1,e}l.raySphere=function(a,t,e){if(e=h(a,t,e),f.defined(e)&&!(e.stop<0))return e.start=Math.max(e.start,0),e};var y=new e,P=(l.lineSegmentSphere=function(a,t,e,n){var r=y,t=(w.Cartesian3.clone(a,r.origin),w.Cartesian3.subtract(t,a,r.direction)),a=w.Cartesian3.magnitude(t);if(w.Cartesian3.normalize(t,t),n=h(r,e,n),!(!f.defined(n)||n.stop<0||n.start>a))return n.start=Math.max(n.start,0),n.stop=Math.min(n.stop,a),n},new w.Cartesian3),b=new w.Cartesian3;function N(a,t,e){var n=a+t;return v.CesiumMath.sign(a)!==v.CesiumMath.sign(t)&&Math.abs(n/Math.max(Math.abs(a),Math.abs(t)))<e?0:n}l.rayEllipsoid=function(a,t){var e,n,r,i,s,o,u,t=t.oneOverRadii,C=w.Cartesian3.multiplyComponents(t,a.origin,P),t=w.Cartesian3.multiplyComponents(t,a.direction,b),a=w.Cartesian3.magnitudeSquared(C),C=w.Cartesian3.dot(C,t);return 1<a?0<=C||(e=a-1,(o=C*C)<(r=(n=w.Cartesian3.magnitudeSquared(t))*e))?void 0:r<o?(i=C*C-r,(o=(s=-C+Math.sqrt(i))/n)<(u=e/s)?new R.Interval(o,u):{start:u,stop:o}):(u=Math.sqrt(e/n),new R.Interval(u,u)):a<1?(e=a-1,i=C*C-(r=(n=w.Cartesian3.magnitudeSquared(t))*e),s=-C+Math.sqrt(i),new R.Interval(0,s/n)):C<0?(n=w.Cartesian3.magnitudeSquared(t),new R.Interval(0,-C/n)):void 0};var q=new w.Cartesian3,L=new w.Cartesian3,I=new w.Cartesian3,E=new w.Cartesian3,z=new w.Cartesian3,T=new R.Matrix3,U=new R.Matrix3,Z=new R.Matrix3,A=new R.Matrix3,D=new R.Matrix3,W=new R.Matrix3,B=new R.Matrix3,V=new w.Cartesian3,k=new w.Cartesian3,F=new w.Cartographic,G=(l.grazingAltitudeLocation=function(a,t){var e=a.origin,n=a.direction;if(!w.Cartesian3.equals(e,w.Cartesian3.ZERO)){var r=t.geodeticSurfaceNormal(e,q);if(0<=w.Cartesian3.dot(n,r))return e}var r=f.defined(this.rayEllipsoid(a,t)),a=t.transformPositionToScaledSpace(n,q),i=w.Cartesian3.normalize(a,a),a=w.Cartesian3.mostOrthogonalAxis(a,E),a=w.Cartesian3.normalize(w.Cartesian3.cross(a,i,L),L),s=w.Cartesian3.normalize(w.Cartesian3.cross(i,a,I),I),o=T,i=(o[0]=i.x,o[1]=i.y,o[2]=i.z,o[3]=a.x,o[4]=a.y,o[5]=a.z,o[6]=s.x,o[7]=s.y,o[8]=s.z,R.Matrix3.transpose(o,U)),u=R.Matrix3.fromScale(t.radii,Z),a=R.Matrix3.fromScale(t.oneOverRadii,A),s=D,i=(s[0]=0,s[1]=-n.z,s[2]=n.y,s[3]=n.z,s[4]=0,s[5]=-n.x,s[6]=-n.y,s[7]=n.x,s[8]=0,R.Matrix3.multiply(R.Matrix3.multiply(i,a,W),s,W)),a=R.Matrix3.multiply(R.Matrix3.multiply(i,u,B),o,B),s=R.Matrix3.multiplyByVector(i,e,z),C=function(a,t,e,n,r){var i,s=n*n,o=r*r,u=(a[R.Matrix3.COLUMN1ROW1]-a[R.Matrix3.COLUMN2ROW2])*o,C=r*(n*N(a[R.Matrix3.COLUMN1ROW0],a[R.Matrix3.COLUMN0ROW1],v.CesiumMath.EPSILON15)+t.y),c=a[R.Matrix3.COLUMN0ROW0]*s+a[R.Matrix3.COLUMN2ROW2]*o+n*t.x+e,l=o*N(a[R.Matrix3.COLUMN2ROW1],a[R.Matrix3.COLUMN1ROW2],v.CesiumMath.EPSILON15),h=r*(n*N(a[R.Matrix3.COLUMN2ROW0],a[R.Matrix3.COLUMN0ROW2])+t.z),M=[];if(0==h&&0==l)0!==(i=S.computeRealRoots(u,C,c)).length&&(s=i[0],e=Math.sqrt(Math.max(1-s*s,0)),M.push(new w.Cartesian3(n,r*s,r*-e)),M.push(new w.Cartesian3(n,r*s,r*e)),2===i.length)&&(o=i[1],a=Math.sqrt(Math.max(1-o*o,0)),M.push(new w.Cartesian3(n,r*o,r*-a)),M.push(new w.Cartesian3(n,r*o,r*a)));else{t=h*h,s=l*l,e=h*l,o=u*u+s,a=2*(C*u+e),s=2*c*u+C*C-s+t,e=2*(c*C-e),t=c*c-t;if(0!=o||0!=a||0!=s||0!=e){var m=(i=O.computeRealRoots(o,a,s,e,t)).length;if(0!==m)for(var d=0;d<m;++d){var f=i[d],g=f*f,p=Math.max(1-g,0),p=Math.sqrt(p),g=v.CesiumMath.sign(u)===v.CesiumMath.sign(c)?N(u*g+c,C*f,v.CesiumMath.EPSILON12):v.CesiumMath.sign(c)===v.CesiumMath.sign(C*f)?N(u*g,C*f+c,v.CesiumMath.EPSILON12):N(u*g+C*f,c,v.CesiumMath.EPSILON12),g=g*N(l*f,h,v.CesiumMath.EPSILON15);g<0?M.push(new w.Cartesian3(n,r*f,r*p)):0<g?M.push(new w.Cartesian3(n,r*f,r*-p)):0!==p?(M.push(new w.Cartesian3(n,r*f,r*-p)),M.push(new w.Cartesian3(n,r*f,r*p)),++d):M.push(new w.Cartesian3(n,r*f,r*p))}}}return M}(a,w.Cartesian3.negate(s,q),0,0,1),c=C.length;if(0<c){for(var l=w.Cartesian3.clone(w.Cartesian3.ZERO,k),h=Number.NEGATIVE_INFINITY,M=0;M<c;++M){var m=R.Matrix3.multiplyByVector(u,R.Matrix3.multiplyByVector(o,C[M],V),V),d=w.Cartesian3.normalize(w.Cartesian3.subtract(m,e,E),E),d=w.Cartesian3.dot(d,n);h<d&&(h=d,l=w.Cartesian3.clone(m,l))}i=t.cartesianToCartographic(l,F),h=v.CesiumMath.clamp(h,0,1),a=w.Cartesian3.magnitude(w.Cartesian3.subtract(l,e,E))*Math.sqrt(1-h*h);return i.height=r?-a:a,t.cartographicToCartesian(i,new w.Cartesian3)}},new w.Cartesian3);l.lineSegmentPlane=function(a,t,e,n){f.defined(n)||(n=new w.Cartesian3);var t=w.Cartesian3.subtract(t,a,G),r=e.normal,i=w.Cartesian3.dot(r,t);if(!(Math.abs(i)<v.CesiumMath.EPSILON6)){r=w.Cartesian3.dot(r,a),e=-(e.distance+r)/i;if(!(e<0||1<e))return w.Cartesian3.multiplyByScalar(t,e,n),w.Cartesian3.add(a,n,n),n}},l.trianglePlaneIntersection=function(a,t,e,n){var r,i,s=n.normal,o=n.distance,u=w.Cartesian3.dot(s,a)+o<0,C=w.Cartesian3.dot(s,t)+o<0,s=w.Cartesian3.dot(s,e)+o<0,o=0;if(1!=(o=(o+=u?1:0)+(C?1:0)+(s?1:0))&&2!=o||(r=new w.Cartesian3,i=new w.Cartesian3),1==o){if(u)return l.lineSegmentPlane(a,t,n,r),l.lineSegmentPlane(a,e,n,i),{positions:[a,t,e,r,i],indices:[0,3,4,1,2,4,1,4,3]};if(C)return l.lineSegmentPlane(t,e,n,r),l.lineSegmentPlane(t,a,n,i),{positions:[a,t,e,r,i],indices:[1,3,4,2,0,4,2,4,3]};if(s)return l.lineSegmentPlane(e,a,n,r),l.lineSegmentPlane(e,t,n,i),{positions:[a,t,e,r,i],indices:[2,3,4,0,1,4,0,4,3]}}else if(2==o){if(!u)return l.lineSegmentPlane(t,a,n,r),l.lineSegmentPlane(e,a,n,i),{positions:[a,t,e,r,i],indices:[1,2,4,1,4,3,0,3,4]};if(!C)return l.lineSegmentPlane(e,t,n,r),l.lineSegmentPlane(a,t,n,i),{positions:[a,t,e,r,i],indices:[2,0,4,2,4,3,1,3,4]};if(!s)return l.lineSegmentPlane(a,e,n,r),l.lineSegmentPlane(t,e,n,i),{positions:[a,t,e,r,i],indices:[0,1,4,0,4,3,2,3,4]}}},a.IntersectionTests=l,a.Ray=e});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
define(["exports","./Cartesian2-c1eb9da0","./when-ae2e0b60","./Check-f996273c","./Transforms-8c8e0c6f","./Math-5bbcea10"],function(a,w,f,t,R,v){"use strict";var S={};function s(a,t,e){var n=a+t;return v.CesiumMath.sign(a)!==v.CesiumMath.sign(t)&&Math.abs(n/Math.max(Math.abs(a),Math.abs(t)))<e?0:n}S.computeDiscriminant=function(a,t,e){return t*t-4*a*e},S.computeRealRoots=function(a,t,e){var n,r,i;return 0===a?0===t?[]:[-e/t]:0===t?0===e||(r=Math.abs(e))<(i=Math.abs(a))&&r/i<v.CesiumMath.EPSILON14?[0,0]:i<r&&i/r<v.CesiumMath.EPSILON14||(n=-e/a)<0?[]:[-(i=Math.sqrt(n)),i]:0===e?(n=-t/a)<0?[n,0]:[0,n]:(r=s(t*t,-(4*a*e),v.CesiumMath.EPSILON14))<0?[]:(i=-.5*s(t,v.CesiumMath.sign(t)*Math.sqrt(r),v.CesiumMath.EPSILON14),0<t?[i/a,e/i]:[e/i,i/a])};var d={};function o(a,t,e,n){var r,i,s,o,u,t=t/3,e=e/3,C=a*e,c=t*n,l=t*t,h=e*e,M=a*e-l,m=a*n-t*e,d=t*n-h,f=4*M*d-m*m;return f<0?(u=(u=(r=(o=-((i=C*h<=l*c?-2*t*(s=M)+(o=a)*m:-(o=n)*m+2*e*(s=d))<0?-1:1)*Math.abs(o)*Math.sqrt(-f))-i)/2)<0?-Math.pow(-u,1/3):Math.pow(u,1/3),o=r===o?-u:-s/u,i=s<=0?u+o:-i/(u*u+o*o+s),C*h<=l*c?[(i-t)/a]:[-n/(i+e)]):(o=-2*t*(u=M)+a*m,C=-n*m+2*e*(s=d),h=Math.sqrt(f),l=Math.sqrt(3)/2,c=Math.abs(Math.atan2(a*h,-o)/3),o=(d=2*t<(r=(i=2*Math.sqrt(-u))*(M=Math.cos(c)))+(m=i*(-M/2-l*Math.sin(c)))?r-t:m-t)/(f=a),c=Math.abs(Math.atan2(n*h,-C)/3),h=(u=-n)/(a=(r=(i=2*Math.sqrt(-s))*(M=Math.cos(c)))+(m=i*(-M/2-l*Math.sin(c)))<2*e?r+e:m+e),o<=(n=(e*(C=-d*a-f*u)-t*(d*u))/(-t*C+e*(f*a)))?o<=h?n<=h?[o,n,h]:[o,h,n]:[h,o,n]:o<=h?[n,o,h]:n<=h?[n,h,o]:[h,n,o])}d.computeDiscriminant=function(a,t,e,n){var r=t*t,i=e*e;return 18*a*t*e*n+r*i-27*(a*a)*(n*n)-4*(a*i*e+r*t*n)},d.computeRealRoots=function(a,t,e,n){var r,i,s;return 0===a?S.computeRealRoots(t,e,n):0===t?0===e?0===n?[0,0,0]:[s=(i=-n/a)<0?-Math.pow(-i,1/3):Math.pow(i,1/3),s,s]:0===n?0===(r=S.computeRealRoots(a,0,e)).Length?[0]:[r[0],0,r[1]]:o(a,0,e,n):0===e?0===n?(i=-t/a)<0?[i,0,0]:[0,0,i]:o(a,t,0,n):0===n?0===(r=S.computeRealRoots(a,t,e)).length?[0]:r[1]<=0?[r[0],r[1],0]:0<=r[0]?[0,r[0],r[1]]:[r[0],0,r[1]]:o(a,t,e,n)};var O={};function C(a,t,e,n){var r=a*a,i=t-3*r/8,s=e-t*a/2+r*a/8,n=n-e*a/4+t*r/16-3*r*r/256,e=d.computeRealRoots(1,2*i,i*i-4*n,-s*s);if(0<e.length){t=-a/4,r=e[e.length-1];if(Math.abs(r)<v.CesiumMath.EPSILON14){var a=S.computeRealRoots(1,i,n);if(2===a.length){var o,u,e=a[0],n=a[1];if(0<=e&&0<=n)return a=Math.sqrt(e),[t-(u=Math.sqrt(n)),t-a,t+a,t+u];if(0<=e&&n<0)return[t-(o=Math.sqrt(e)),t+o];if(e<0&&0<=n)return[t-(o=Math.sqrt(n)),t+o]}return[]}if(0<r)return u=(i+r+s/(a=Math.sqrt(r)))/2,e=S.computeRealRoots(1,a,(i+r-s/a)/2),n=S.computeRealRoots(1,-a,u),0!==e.length?(e[0]+=t,e[1]+=t,0!==n.length?(n[0]+=t,n[1]+=t,e[1]<=n[0]?[e[0],e[1],n[0],n[1]]:n[1]<=e[0]?[n[0],n[1],e[0],e[1]]:e[0]>=n[0]&&e[1]<=n[1]?[n[0],e[0],e[1],n[1]]:n[0]>=e[0]&&n[1]<=e[1]?[e[0],n[0],n[1],e[1]]:e[0]>n[0]&&e[0]<n[1]?[n[0],e[0],n[1],e[1]]:[e[0],n[0],e[1],n[1]]):e):0!==n.length?(n[0]+=t,n[1]+=t,n):[]}return[]}function c(a,t,e,n){var r=a*a,i=d.computeRealRoots(1,-2*t,e*a+t*t-4*n,r*n-e*t*a+e*e);if(0<i.length){var s,o,u,C,c,i=i[0],t=t-i,l=t*t,h=a/2,t=t/2,M=l-4*n,l=l+4*Math.abs(n),m=r-4*i,r=r+4*Math.abs(i),r=(m=i<0||M*r<m*l?(s=(r=Math.sqrt(m))/2,0===r?0:(a*t-e)/r):(s=0===(l=Math.sqrt(M))?0:(a*t-e)/l,l/2),0==h&&0===s?u=o=0:v.CesiumMath.sign(h)===v.CesiumMath.sign(s)?u=i/(o=h+s):o=i/(u=h-s),0==t&&0===m?c=C=0:v.CesiumMath.sign(t)===v.CesiumMath.sign(m)?c=n/(C=t+m):C=n/(c=t-m),S.computeRealRoots(1,o,C)),M=S.computeRealRoots(1,u,c);if(0!==r.length)return 0!==M.length?r[1]<=M[0]?[r[0],r[1],M[0],M[1]]:M[1]<=r[0]?[M[0],M[1],r[0],r[1]]:r[0]>=M[0]&&r[1]<=M[1]?[M[0],r[0],r[1],M[1]]:M[0]>=r[0]&&M[1]<=r[1]?[r[0],M[0],M[1],r[1]]:r[0]>M[0]&&r[0]<M[1]?[M[0],r[0],M[1],r[1]]:[r[0],M[0],r[1],M[1]]:r;if(0!==M.length)return M}return[]}function e(a,t){t=w.Cartesian3.clone(f.defaultValue(t,w.Cartesian3.ZERO)),w.Cartesian3.equals(t,w.Cartesian3.ZERO)||w.Cartesian3.normalize(t,t),this.origin=w.Cartesian3.clone(f.defaultValue(a,w.Cartesian3.ZERO)),this.direction=t}O.computeDiscriminant=function(a,t,e,n,r){var i=a*a,s=t*t,o=s*t,u=e*e,C=u*e,c=n*n,l=c*n,h=r*r;return s*u*c-4*o*l-4*a*C*c+18*a*t*e*l-27*i*c*c+256*(i*a)*(h*r)+r*(18*o*e*n-4*s*C+16*a*u*u-80*a*t*u*n-6*a*s*c+144*i*e*c)+h*(144*a*s*e-27*s*s-128*i*u-192*i*t*n)},O.computeRealRoots=function(a,t,e,n,r){if(Math.abs(a)<v.CesiumMath.EPSILON15)return d.computeRealRoots(t,e,n,r);var i=t/a,s=e/a,o=n/a,u=r/a,t=i<0?1:0;switch(t=(t=(t+=s<0?1+t:t)+(o<0?1+t:t))+(u<0?1+t:t)){case 0:return C(i,s,o,u);case 1:case 2:return c(i,s,o,u);case 3:case 4:return C(i,s,o,u);case 5:return c(i,s,o,u);case 6:case 7:return C(i,s,o,u);case 8:return c(i,s,o,u);case 9:case 10:return C(i,s,o,u);case 11:return c(i,s,o,u);case 12:case 13:case 14:case 15:return C(i,s,o,u);default:return}},e.clone=function(a,t){if(f.defined(a))return f.defined(t)?(t.origin=w.Cartesian3.clone(a.origin),t.direction=w.Cartesian3.clone(a.direction),t):new e(a.origin,a.direction)},e.getPoint=function(a,t,e){return f.defined(e)||(e=new w.Cartesian3),e=w.Cartesian3.multiplyByScalar(a.direction,t,e),w.Cartesian3.add(a.origin,e,e)};var l={rayPlane:function(a,t,e){f.defined(e)||(e=new w.Cartesian3);var n=a.origin,a=a.direction,r=t.normal,i=w.Cartesian3.dot(r,a);if(!(Math.abs(i)<v.CesiumMath.EPSILON15)){t=(-t.distance-w.Cartesian3.dot(r,n))/i;if(!(t<0))return e=w.Cartesian3.multiplyByScalar(a,t,e),w.Cartesian3.add(n,e,e)}}},M=new w.Cartesian3,m=new w.Cartesian3,g=new w.Cartesian3,p=new w.Cartesian3,x=new w.Cartesian3,u=(l.rayTriangleParametric=function(a,t,e,n,r){r=f.defaultValue(r,!1);var i,s,o,u=a.origin,a=a.direction,e=w.Cartesian3.subtract(e,t,M),n=w.Cartesian3.subtract(n,t,m),C=w.Cartesian3.cross(a,n,g),c=w.Cartesian3.dot(e,C);if(r){if(c<v.CesiumMath.EPSILON6)return;if(h=w.Cartesian3.subtract(u,t,p),(l=w.Cartesian3.dot(h,C))<0||c<l)return;if(i=w.Cartesian3.cross(h,e,x),(s=w.Cartesian3.dot(a,i))<0||c<l+s)return;o=w.Cartesian3.dot(n,i)/c}else{if(Math.abs(c)<v.CesiumMath.EPSILON6)return;var l,r=1/c,h=w.Cartesian3.subtract(u,t,p);if((l=w.Cartesian3.dot(h,C)*r)<0||1<l)return;if(i=w.Cartesian3.cross(h,e,x),(s=w.Cartesian3.dot(a,i)*r)<0||1<l+s)return;o=w.Cartesian3.dot(n,i)*r}return o},l.rayTriangle=function(a,t,e,n,r,i){t=l.rayTriangleParametric(a,t,e,n,r);if(f.defined(t)&&!(t<0))return f.defined(i)||(i=new w.Cartesian3),w.Cartesian3.multiplyByScalar(a.direction,t,i),w.Cartesian3.add(a.origin,i,i)},new e);l.lineSegmentTriangle=function(a,t,e,n,r,i,s){var o=u,e=(w.Cartesian3.clone(a,o.origin),w.Cartesian3.subtract(t,a,o.direction),w.Cartesian3.normalize(o.direction,o.direction),l.rayTriangleParametric(o,e,n,r,i));if(!(!f.defined(e)||e<0||e>w.Cartesian3.distance(a,t)))return f.defined(s)||(s=new w.Cartesian3),w.Cartesian3.multiplyByScalar(o.direction,e,s),w.Cartesian3.add(o.origin,s,s)};var i={root0:0,root1:0};function h(a,t,e){f.defined(e)||(e=new R.Interval);var n=a.origin,a=a.direction,r=t.center,t=t.radius*t.radius,n=w.Cartesian3.subtract(n,r,g),r=function(a,t,e,n){var r,i,e=t*t-4*a*e;if(!(e<0))return 0<e?(i=1/(2*a),(r=(-t+(e=Math.sqrt(e)))*i)<(e=(-t-e)*i)?(n.root0=r,n.root1=e):(n.root0=e,n.root1=r),n):0!=(i=-t/(2*a))?(n.root0=n.root1=i,n):void 0}(w.Cartesian3.dot(a,a),2*w.Cartesian3.dot(a,n),w.Cartesian3.magnitudeSquared(n)-t,i);if(f.defined(r))return e.start=r.root0,e.stop=r.root1,e}l.raySphere=function(a,t,e){if(e=h(a,t,e),f.defined(e)&&!(e.stop<0))return e.start=Math.max(e.start,0),e};var y=new e,P=(l.lineSegmentSphere=function(a,t,e,n){var r=y,t=(w.Cartesian3.clone(a,r.origin),w.Cartesian3.subtract(t,a,r.direction)),a=w.Cartesian3.magnitude(t);if(w.Cartesian3.normalize(t,t),n=h(r,e,n),!(!f.defined(n)||n.stop<0||n.start>a))return n.start=Math.max(n.start,0),n.stop=Math.min(n.stop,a),n},new w.Cartesian3),b=new w.Cartesian3;function N(a,t,e){var n=a+t;return v.CesiumMath.sign(a)!==v.CesiumMath.sign(t)&&Math.abs(n/Math.max(Math.abs(a),Math.abs(t)))<e?0:n}l.rayEllipsoid=function(a,t){var e,n,r,i,s,o,u,t=t.oneOverRadii,C=w.Cartesian3.multiplyComponents(t,a.origin,P),t=w.Cartesian3.multiplyComponents(t,a.direction,b),a=w.Cartesian3.magnitudeSquared(C),C=w.Cartesian3.dot(C,t);return 1<a?0<=C||(e=a-1,(o=C*C)<(r=(n=w.Cartesian3.magnitudeSquared(t))*e))?void 0:r<o?(i=C*C-r,(o=(s=-C+Math.sqrt(i))/n)<(u=e/s)?new R.Interval(o,u):{start:u,stop:o}):(u=Math.sqrt(e/n),new R.Interval(u,u)):a<1?(e=a-1,i=C*C-(r=(n=w.Cartesian3.magnitudeSquared(t))*e),s=-C+Math.sqrt(i),new R.Interval(0,s/n)):C<0?(n=w.Cartesian3.magnitudeSquared(t),new R.Interval(0,-C/n)):void 0};var q=new w.Cartesian3,L=new w.Cartesian3,I=new w.Cartesian3,E=new w.Cartesian3,z=new w.Cartesian3,T=new R.Matrix3,U=new R.Matrix3,Z=new R.Matrix3,A=new R.Matrix3,D=new R.Matrix3,W=new R.Matrix3,B=new R.Matrix3,V=new w.Cartesian3,k=new w.Cartesian3,F=new w.Cartographic,G=(l.grazingAltitudeLocation=function(a,t){var e=a.origin,n=a.direction;if(!w.Cartesian3.equals(e,w.Cartesian3.ZERO)){var r=t.geodeticSurfaceNormal(e,q);if(0<=w.Cartesian3.dot(n,r))return e}var r=f.defined(this.rayEllipsoid(a,t)),a=t.transformPositionToScaledSpace(n,q),i=w.Cartesian3.normalize(a,a),a=w.Cartesian3.mostOrthogonalAxis(a,E),a=w.Cartesian3.normalize(w.Cartesian3.cross(a,i,L),L),s=w.Cartesian3.normalize(w.Cartesian3.cross(i,a,I),I),o=T,i=(o[0]=i.x,o[1]=i.y,o[2]=i.z,o[3]=a.x,o[4]=a.y,o[5]=a.z,o[6]=s.x,o[7]=s.y,o[8]=s.z,R.Matrix3.transpose(o,U)),u=R.Matrix3.fromScale(t.radii,Z),a=R.Matrix3.fromScale(t.oneOverRadii,A),s=D,i=(s[0]=0,s[1]=-n.z,s[2]=n.y,s[3]=n.z,s[4]=0,s[5]=-n.x,s[6]=-n.y,s[7]=n.x,s[8]=0,R.Matrix3.multiply(R.Matrix3.multiply(i,a,W),s,W)),a=R.Matrix3.multiply(R.Matrix3.multiply(i,u,B),o,B),s=R.Matrix3.multiplyByVector(i,e,z),C=function(a,t,e,n,r){var i,s=n*n,o=r*r,u=(a[R.Matrix3.COLUMN1ROW1]-a[R.Matrix3.COLUMN2ROW2])*o,C=r*(n*N(a[R.Matrix3.COLUMN1ROW0],a[R.Matrix3.COLUMN0ROW1],v.CesiumMath.EPSILON15)+t.y),c=a[R.Matrix3.COLUMN0ROW0]*s+a[R.Matrix3.COLUMN2ROW2]*o+n*t.x+e,l=o*N(a[R.Matrix3.COLUMN2ROW1],a[R.Matrix3.COLUMN1ROW2],v.CesiumMath.EPSILON15),h=r*(n*N(a[R.Matrix3.COLUMN2ROW0],a[R.Matrix3.COLUMN0ROW2])+t.z),M=[];if(0==h&&0==l)0!==(i=S.computeRealRoots(u,C,c)).length&&(s=i[0],e=Math.sqrt(Math.max(1-s*s,0)),M.push(new w.Cartesian3(n,r*s,r*-e)),M.push(new w.Cartesian3(n,r*s,r*e)),2===i.length)&&(o=i[1],a=Math.sqrt(Math.max(1-o*o,0)),M.push(new w.Cartesian3(n,r*o,r*-a)),M.push(new w.Cartesian3(n,r*o,r*a)));else{t=h*h,s=l*l,e=h*l,o=u*u+s,a=2*(C*u+e),s=2*c*u+C*C-s+t,e=2*(c*C-e),t=c*c-t;if(0!=o||0!=a||0!=s||0!=e){var m=(i=O.computeRealRoots(o,a,s,e,t)).length;if(0!==m)for(var d=0;d<m;++d){var f=i[d],g=f*f,p=Math.max(1-g,0),p=Math.sqrt(p),g=v.CesiumMath.sign(u)===v.CesiumMath.sign(c)?N(u*g+c,C*f,v.CesiumMath.EPSILON12):v.CesiumMath.sign(c)===v.CesiumMath.sign(C*f)?N(u*g,C*f+c,v.CesiumMath.EPSILON12):N(u*g+C*f,c,v.CesiumMath.EPSILON12),g=g*N(l*f,h,v.CesiumMath.EPSILON15);g<0?M.push(new w.Cartesian3(n,r*f,r*p)):0<g?M.push(new w.Cartesian3(n,r*f,r*-p)):0!==p?(M.push(new w.Cartesian3(n,r*f,r*-p)),M.push(new w.Cartesian3(n,r*f,r*p)),++d):M.push(new w.Cartesian3(n,r*f,r*p))}}}return M}(a,w.Cartesian3.negate(s,q),0,0,1),c=C.length;if(0<c){for(var l=w.Cartesian3.clone(w.Cartesian3.ZERO,k),h=Number.NEGATIVE_INFINITY,M=0;M<c;++M){var m=R.Matrix3.multiplyByVector(u,R.Matrix3.multiplyByVector(o,C[M],V),V),d=w.Cartesian3.normalize(w.Cartesian3.subtract(m,e,E),E),d=w.Cartesian3.dot(d,n);h<d&&(h=d,l=w.Cartesian3.clone(m,l))}i=t.cartesianToCartographic(l,F),h=v.CesiumMath.clamp(h,0,1),a=w.Cartesian3.magnitude(w.Cartesian3.subtract(l,e,E))*Math.sqrt(1-h*h);return i.height=r?-a:a,t.cartographicToCartesian(i,new w.Cartesian3)}},new w.Cartesian3);l.lineSegmentPlane=function(a,t,e,n){f.defined(n)||(n=new w.Cartesian3);var t=w.Cartesian3.subtract(t,a,G),r=e.normal,i=w.Cartesian3.dot(r,t);if(!(Math.abs(i)<v.CesiumMath.EPSILON6)){r=w.Cartesian3.dot(r,a),e=-(e.distance+r)/i;if(!(e<0||1<e))return w.Cartesian3.multiplyByScalar(t,e,n),w.Cartesian3.add(a,n,n),n}},l.trianglePlaneIntersection=function(a,t,e,n){var r,i,s=n.normal,o=n.distance,u=w.Cartesian3.dot(s,a)+o<0,C=w.Cartesian3.dot(s,t)+o<0,s=w.Cartesian3.dot(s,e)+o<0,o=0;if(1!=(o=(o+=u?1:0)+(C?1:0)+(s?1:0))&&2!=o||(r=new w.Cartesian3,i=new w.Cartesian3),1==o){if(u)return l.lineSegmentPlane(a,t,n,r),l.lineSegmentPlane(a,e,n,i),{positions:[a,t,e,r,i],indices:[0,3,4,1,2,4,1,4,3]};if(C)return l.lineSegmentPlane(t,e,n,r),l.lineSegmentPlane(t,a,n,i),{positions:[a,t,e,r,i],indices:[1,3,4,2,0,4,2,4,3]};if(s)return l.lineSegmentPlane(e,a,n,r),l.lineSegmentPlane(e,t,n,i),{positions:[a,t,e,r,i],indices:[2,3,4,0,1,4,0,4,3]}}else if(2==o){if(!u)return l.lineSegmentPlane(t,a,n,r),l.lineSegmentPlane(e,a,n,i),{positions:[a,t,e,r,i],indices:[1,2,4,1,4,3,0,3,4]};if(!C)return l.lineSegmentPlane(e,t,n,r),l.lineSegmentPlane(a,t,n,i),{positions:[a,t,e,r,i],indices:[2,0,4,2,4,3,1,3,4]};if(!s)return l.lineSegmentPlane(a,e,n,r),l.lineSegmentPlane(t,e,n,i),{positions:[a,t,e,r,i],indices:[0,1,4,0,4,3,2,3,4]}}},a.IntersectionTests=l,a.Ray=e});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
define(["exports","./Cartesian2-c1eb9da0","./when-ae2e0b60","./Check-f996273c","./Transforms-75c1d9a1","./Math-5bbcea10"],function(a,w,f,t,R,v){"use strict";var S={};function s(a,t,e){var n=a+t;return v.CesiumMath.sign(a)!==v.CesiumMath.sign(t)&&Math.abs(n/Math.max(Math.abs(a),Math.abs(t)))<e?0:n}S.computeDiscriminant=function(a,t,e){return t*t-4*a*e},S.computeRealRoots=function(a,t,e){var n,r,i;return 0===a?0===t?[]:[-e/t]:0===t?0===e||(r=Math.abs(e))<(i=Math.abs(a))&&r/i<v.CesiumMath.EPSILON14?[0,0]:i<r&&i/r<v.CesiumMath.EPSILON14||(n=-e/a)<0?[]:[-(i=Math.sqrt(n)),i]:0===e?(n=-t/a)<0?[n,0]:[0,n]:(r=s(t*t,-(4*a*e),v.CesiumMath.EPSILON14))<0?[]:(i=-.5*s(t,v.CesiumMath.sign(t)*Math.sqrt(r),v.CesiumMath.EPSILON14),0<t?[i/a,e/i]:[e/i,i/a])};var d={};function o(a,t,e,n){var r,i,s,o,u,t=t/3,e=e/3,C=a*e,c=t*n,l=t*t,h=e*e,M=a*e-l,m=a*n-t*e,d=t*n-h,f=4*M*d-m*m;return f<0?(u=(u=(r=(o=-((i=C*h<=l*c?-2*t*(s=M)+(o=a)*m:-(o=n)*m+2*e*(s=d))<0?-1:1)*Math.abs(o)*Math.sqrt(-f))-i)/2)<0?-Math.pow(-u,1/3):Math.pow(u,1/3),o=r===o?-u:-s/u,i=s<=0?u+o:-i/(u*u+o*o+s),C*h<=l*c?[(i-t)/a]:[-n/(i+e)]):(o=-2*t*(u=M)+a*m,C=-n*m+2*e*(s=d),h=Math.sqrt(f),l=Math.sqrt(3)/2,c=Math.abs(Math.atan2(a*h,-o)/3),o=(d=2*t<(r=(i=2*Math.sqrt(-u))*(M=Math.cos(c)))+(m=i*(-M/2-l*Math.sin(c)))?r-t:m-t)/(f=a),c=Math.abs(Math.atan2(n*h,-C)/3),h=(u=-n)/(a=(r=(i=2*Math.sqrt(-s))*(M=Math.cos(c)))+(m=i*(-M/2-l*Math.sin(c)))<2*e?r+e:m+e),o<=(n=(e*(C=-d*a-f*u)-t*(d*u))/(-t*C+e*(f*a)))?o<=h?n<=h?[o,n,h]:[o,h,n]:[h,o,n]:o<=h?[n,o,h]:n<=h?[n,h,o]:[h,n,o])}d.computeDiscriminant=function(a,t,e,n){var r=t*t,i=e*e;return 18*a*t*e*n+r*i-27*(a*a)*(n*n)-4*(a*i*e+r*t*n)},d.computeRealRoots=function(a,t,e,n){var r,i,s;return 0===a?S.computeRealRoots(t,e,n):0===t?0===e?0===n?[0,0,0]:[s=(i=-n/a)<0?-Math.pow(-i,1/3):Math.pow(i,1/3),s,s]:0===n?0===(r=S.computeRealRoots(a,0,e)).Length?[0]:[r[0],0,r[1]]:o(a,0,e,n):0===e?0===n?(i=-t/a)<0?[i,0,0]:[0,0,i]:o(a,t,0,n):0===n?0===(r=S.computeRealRoots(a,t,e)).length?[0]:r[1]<=0?[r[0],r[1],0]:0<=r[0]?[0,r[0],r[1]]:[r[0],0,r[1]]:o(a,t,e,n)};var O={};function C(a,t,e,n){var r=a*a,i=t-3*r/8,s=e-t*a/2+r*a/8,n=n-e*a/4+t*r/16-3*r*r/256,e=d.computeRealRoots(1,2*i,i*i-4*n,-s*s);if(0<e.length){t=-a/4,r=e[e.length-1];if(Math.abs(r)<v.CesiumMath.EPSILON14){var a=S.computeRealRoots(1,i,n);if(2===a.length){var o,u,e=a[0],n=a[1];if(0<=e&&0<=n)return a=Math.sqrt(e),[t-(u=Math.sqrt(n)),t-a,t+a,t+u];if(0<=e&&n<0)return[t-(o=Math.sqrt(e)),t+o];if(e<0&&0<=n)return[t-(o=Math.sqrt(n)),t+o]}return[]}if(0<r)return u=(i+r+s/(a=Math.sqrt(r)))/2,e=S.computeRealRoots(1,a,(i+r-s/a)/2),n=S.computeRealRoots(1,-a,u),0!==e.length?(e[0]+=t,e[1]+=t,0!==n.length?(n[0]+=t,n[1]+=t,e[1]<=n[0]?[e[0],e[1],n[0],n[1]]:n[1]<=e[0]?[n[0],n[1],e[0],e[1]]:e[0]>=n[0]&&e[1]<=n[1]?[n[0],e[0],e[1],n[1]]:n[0]>=e[0]&&n[1]<=e[1]?[e[0],n[0],n[1],e[1]]:e[0]>n[0]&&e[0]<n[1]?[n[0],e[0],n[1],e[1]]:[e[0],n[0],e[1],n[1]]):e):0!==n.length?(n[0]+=t,n[1]+=t,n):[]}return[]}function c(a,t,e,n){var r=a*a,i=d.computeRealRoots(1,-2*t,e*a+t*t-4*n,r*n-e*t*a+e*e);if(0<i.length){var s,o,u,C,c,i=i[0],t=t-i,l=t*t,h=a/2,t=t/2,M=l-4*n,l=l+4*Math.abs(n),m=r-4*i,r=r+4*Math.abs(i),r=(m=i<0||M*r<m*l?(s=(r=Math.sqrt(m))/2,0===r?0:(a*t-e)/r):(s=0===(l=Math.sqrt(M))?0:(a*t-e)/l,l/2),0==h&&0===s?u=o=0:v.CesiumMath.sign(h)===v.CesiumMath.sign(s)?u=i/(o=h+s):o=i/(u=h-s),0==t&&0===m?c=C=0:v.CesiumMath.sign(t)===v.CesiumMath.sign(m)?c=n/(C=t+m):C=n/(c=t-m),S.computeRealRoots(1,o,C)),M=S.computeRealRoots(1,u,c);if(0!==r.length)return 0!==M.length?r[1]<=M[0]?[r[0],r[1],M[0],M[1]]:M[1]<=r[0]?[M[0],M[1],r[0],r[1]]:r[0]>=M[0]&&r[1]<=M[1]?[M[0],r[0],r[1],M[1]]:M[0]>=r[0]&&M[1]<=r[1]?[r[0],M[0],M[1],r[1]]:r[0]>M[0]&&r[0]<M[1]?[M[0],r[0],M[1],r[1]]:[r[0],M[0],r[1],M[1]]:r;if(0!==M.length)return M}return[]}function e(a,t){t=w.Cartesian3.clone(f.defaultValue(t,w.Cartesian3.ZERO)),w.Cartesian3.equals(t,w.Cartesian3.ZERO)||w.Cartesian3.normalize(t,t),this.origin=w.Cartesian3.clone(f.defaultValue(a,w.Cartesian3.ZERO)),this.direction=t}O.computeDiscriminant=function(a,t,e,n,r){var i=a*a,s=t*t,o=s*t,u=e*e,C=u*e,c=n*n,l=c*n,h=r*r;return s*u*c-4*o*l-4*a*C*c+18*a*t*e*l-27*i*c*c+256*(i*a)*(h*r)+r*(18*o*e*n-4*s*C+16*a*u*u-80*a*t*u*n-6*a*s*c+144*i*e*c)+h*(144*a*s*e-27*s*s-128*i*u-192*i*t*n)},O.computeRealRoots=function(a,t,e,n,r){if(Math.abs(a)<v.CesiumMath.EPSILON15)return d.computeRealRoots(t,e,n,r);var i=t/a,s=e/a,o=n/a,u=r/a,t=i<0?1:0;switch(t=(t=(t+=s<0?1+t:t)+(o<0?1+t:t))+(u<0?1+t:t)){case 0:return C(i,s,o,u);case 1:case 2:return c(i,s,o,u);case 3:case 4:return C(i,s,o,u);case 5:return c(i,s,o,u);case 6:case 7:return C(i,s,o,u);case 8:return c(i,s,o,u);case 9:case 10:return C(i,s,o,u);case 11:return c(i,s,o,u);case 12:case 13:case 14:case 15:return C(i,s,o,u);default:return}},e.clone=function(a,t){if(f.defined(a))return f.defined(t)?(t.origin=w.Cartesian3.clone(a.origin),t.direction=w.Cartesian3.clone(a.direction),t):new e(a.origin,a.direction)},e.getPoint=function(a,t,e){return f.defined(e)||(e=new w.Cartesian3),e=w.Cartesian3.multiplyByScalar(a.direction,t,e),w.Cartesian3.add(a.origin,e,e)};var l={rayPlane:function(a,t,e){f.defined(e)||(e=new w.Cartesian3);var n=a.origin,a=a.direction,r=t.normal,i=w.Cartesian3.dot(r,a);if(!(Math.abs(i)<v.CesiumMath.EPSILON15)){t=(-t.distance-w.Cartesian3.dot(r,n))/i;if(!(t<0))return e=w.Cartesian3.multiplyByScalar(a,t,e),w.Cartesian3.add(n,e,e)}}},M=new w.Cartesian3,m=new w.Cartesian3,g=new w.Cartesian3,p=new w.Cartesian3,x=new w.Cartesian3,u=(l.rayTriangleParametric=function(a,t,e,n,r){r=f.defaultValue(r,!1);var i,s,o,u=a.origin,a=a.direction,e=w.Cartesian3.subtract(e,t,M),n=w.Cartesian3.subtract(n,t,m),C=w.Cartesian3.cross(a,n,g),c=w.Cartesian3.dot(e,C);if(r){if(c<v.CesiumMath.EPSILON6)return;if(h=w.Cartesian3.subtract(u,t,p),(l=w.Cartesian3.dot(h,C))<0||c<l)return;if(i=w.Cartesian3.cross(h,e,x),(s=w.Cartesian3.dot(a,i))<0||c<l+s)return;o=w.Cartesian3.dot(n,i)/c}else{if(Math.abs(c)<v.CesiumMath.EPSILON6)return;var l,r=1/c,h=w.Cartesian3.subtract(u,t,p);if((l=w.Cartesian3.dot(h,C)*r)<0||1<l)return;if(i=w.Cartesian3.cross(h,e,x),(s=w.Cartesian3.dot(a,i)*r)<0||1<l+s)return;o=w.Cartesian3.dot(n,i)*r}return o},l.rayTriangle=function(a,t,e,n,r,i){t=l.rayTriangleParametric(a,t,e,n,r);if(f.defined(t)&&!(t<0))return f.defined(i)||(i=new w.Cartesian3),w.Cartesian3.multiplyByScalar(a.direction,t,i),w.Cartesian3.add(a.origin,i,i)},new e);l.lineSegmentTriangle=function(a,t,e,n,r,i,s){var o=u,e=(w.Cartesian3.clone(a,o.origin),w.Cartesian3.subtract(t,a,o.direction),w.Cartesian3.normalize(o.direction,o.direction),l.rayTriangleParametric(o,e,n,r,i));if(!(!f.defined(e)||e<0||e>w.Cartesian3.distance(a,t)))return f.defined(s)||(s=new w.Cartesian3),w.Cartesian3.multiplyByScalar(o.direction,e,s),w.Cartesian3.add(o.origin,s,s)};var i={root0:0,root1:0};function h(a,t,e){f.defined(e)||(e=new R.Interval);var n=a.origin,a=a.direction,r=t.center,t=t.radius*t.radius,n=w.Cartesian3.subtract(n,r,g),r=function(a,t,e,n){var r,i,e=t*t-4*a*e;if(!(e<0))return 0<e?(i=1/(2*a),(r=(-t+(e=Math.sqrt(e)))*i)<(e=(-t-e)*i)?(n.root0=r,n.root1=e):(n.root0=e,n.root1=r),n):0!=(i=-t/(2*a))?(n.root0=n.root1=i,n):void 0}(w.Cartesian3.dot(a,a),2*w.Cartesian3.dot(a,n),w.Cartesian3.magnitudeSquared(n)-t,i);if(f.defined(r))return e.start=r.root0,e.stop=r.root1,e}l.raySphere=function(a,t,e){if(e=h(a,t,e),f.defined(e)&&!(e.stop<0))return e.start=Math.max(e.start,0),e};var y=new e,P=(l.lineSegmentSphere=function(a,t,e,n){var r=y,t=(w.Cartesian3.clone(a,r.origin),w.Cartesian3.subtract(t,a,r.direction)),a=w.Cartesian3.magnitude(t);if(w.Cartesian3.normalize(t,t),n=h(r,e,n),!(!f.defined(n)||n.stop<0||n.start>a))return n.start=Math.max(n.start,0),n.stop=Math.min(n.stop,a),n},new w.Cartesian3),b=new w.Cartesian3;function N(a,t,e){var n=a+t;return v.CesiumMath.sign(a)!==v.CesiumMath.sign(t)&&Math.abs(n/Math.max(Math.abs(a),Math.abs(t)))<e?0:n}l.rayEllipsoid=function(a,t){var e,n,r,i,s,o,u,t=t.oneOverRadii,C=w.Cartesian3.multiplyComponents(t,a.origin,P),t=w.Cartesian3.multiplyComponents(t,a.direction,b),a=w.Cartesian3.magnitudeSquared(C),C=w.Cartesian3.dot(C,t);return 1<a?0<=C||(e=a-1,(o=C*C)<(r=(n=w.Cartesian3.magnitudeSquared(t))*e))?void 0:r<o?(i=C*C-r,(o=(s=-C+Math.sqrt(i))/n)<(u=e/s)?new R.Interval(o,u):{start:u,stop:o}):(u=Math.sqrt(e/n),new R.Interval(u,u)):a<1?(e=a-1,i=C*C-(r=(n=w.Cartesian3.magnitudeSquared(t))*e),s=-C+Math.sqrt(i),new R.Interval(0,s/n)):C<0?(n=w.Cartesian3.magnitudeSquared(t),new R.Interval(0,-C/n)):void 0};var q=new w.Cartesian3,L=new w.Cartesian3,I=new w.Cartesian3,E=new w.Cartesian3,z=new w.Cartesian3,T=new R.Matrix3,U=new R.Matrix3,Z=new R.Matrix3,A=new R.Matrix3,D=new R.Matrix3,W=new R.Matrix3,B=new R.Matrix3,V=new w.Cartesian3,k=new w.Cartesian3,F=new w.Cartographic,G=(l.grazingAltitudeLocation=function(a,t){var e=a.origin,n=a.direction;if(!w.Cartesian3.equals(e,w.Cartesian3.ZERO)){var r=t.geodeticSurfaceNormal(e,q);if(0<=w.Cartesian3.dot(n,r))return e}var r=f.defined(this.rayEllipsoid(a,t)),a=t.transformPositionToScaledSpace(n,q),i=w.Cartesian3.normalize(a,a),a=w.Cartesian3.mostOrthogonalAxis(a,E),a=w.Cartesian3.normalize(w.Cartesian3.cross(a,i,L),L),s=w.Cartesian3.normalize(w.Cartesian3.cross(i,a,I),I),o=T,i=(o[0]=i.x,o[1]=i.y,o[2]=i.z,o[3]=a.x,o[4]=a.y,o[5]=a.z,o[6]=s.x,o[7]=s.y,o[8]=s.z,R.Matrix3.transpose(o,U)),u=R.Matrix3.fromScale(t.radii,Z),a=R.Matrix3.fromScale(t.oneOverRadii,A),s=D,i=(s[0]=0,s[1]=-n.z,s[2]=n.y,s[3]=n.z,s[4]=0,s[5]=-n.x,s[6]=-n.y,s[7]=n.x,s[8]=0,R.Matrix3.multiply(R.Matrix3.multiply(i,a,W),s,W)),a=R.Matrix3.multiply(R.Matrix3.multiply(i,u,B),o,B),s=R.Matrix3.multiplyByVector(i,e,z),C=function(a,t,e,n,r){var i,s=n*n,o=r*r,u=(a[R.Matrix3.COLUMN1ROW1]-a[R.Matrix3.COLUMN2ROW2])*o,C=r*(n*N(a[R.Matrix3.COLUMN1ROW0],a[R.Matrix3.COLUMN0ROW1],v.CesiumMath.EPSILON15)+t.y),c=a[R.Matrix3.COLUMN0ROW0]*s+a[R.Matrix3.COLUMN2ROW2]*o+n*t.x+e,l=o*N(a[R.Matrix3.COLUMN2ROW1],a[R.Matrix3.COLUMN1ROW2],v.CesiumMath.EPSILON15),h=r*(n*N(a[R.Matrix3.COLUMN2ROW0],a[R.Matrix3.COLUMN0ROW2])+t.z),M=[];if(0==h&&0==l)0!==(i=S.computeRealRoots(u,C,c)).length&&(s=i[0],e=Math.sqrt(Math.max(1-s*s,0)),M.push(new w.Cartesian3(n,r*s,r*-e)),M.push(new w.Cartesian3(n,r*s,r*e)),2===i.length)&&(o=i[1],a=Math.sqrt(Math.max(1-o*o,0)),M.push(new w.Cartesian3(n,r*o,r*-a)),M.push(new w.Cartesian3(n,r*o,r*a)));else{t=h*h,s=l*l,e=h*l,o=u*u+s,a=2*(C*u+e),s=2*c*u+C*C-s+t,e=2*(c*C-e),t=c*c-t;if(0!=o||0!=a||0!=s||0!=e){var m=(i=O.computeRealRoots(o,a,s,e,t)).length;if(0!==m)for(var d=0;d<m;++d){var f=i[d],g=f*f,p=Math.max(1-g,0),p=Math.sqrt(p),g=v.CesiumMath.sign(u)===v.CesiumMath.sign(c)?N(u*g+c,C*f,v.CesiumMath.EPSILON12):v.CesiumMath.sign(c)===v.CesiumMath.sign(C*f)?N(u*g,C*f+c,v.CesiumMath.EPSILON12):N(u*g+C*f,c,v.CesiumMath.EPSILON12),g=g*N(l*f,h,v.CesiumMath.EPSILON15);g<0?M.push(new w.Cartesian3(n,r*f,r*p)):0<g?M.push(new w.Cartesian3(n,r*f,r*-p)):0!==p?(M.push(new w.Cartesian3(n,r*f,r*-p)),M.push(new w.Cartesian3(n,r*f,r*p)),++d):M.push(new w.Cartesian3(n,r*f,r*p))}}}return M}(a,w.Cartesian3.negate(s,q),0,0,1),c=C.length;if(0<c){for(var l=w.Cartesian3.clone(w.Cartesian3.ZERO,k),h=Number.NEGATIVE_INFINITY,M=0;M<c;++M){var m=R.Matrix3.multiplyByVector(u,R.Matrix3.multiplyByVector(o,C[M],V),V),d=w.Cartesian3.normalize(w.Cartesian3.subtract(m,e,E),E),d=w.Cartesian3.dot(d,n);h<d&&(h=d,l=w.Cartesian3.clone(m,l))}i=t.cartesianToCartographic(l,F),h=v.CesiumMath.clamp(h,0,1),a=w.Cartesian3.magnitude(w.Cartesian3.subtract(l,e,E))*Math.sqrt(1-h*h);return i.height=r?-a:a,t.cartographicToCartesian(i,new w.Cartesian3)}},new w.Cartesian3);l.lineSegmentPlane=function(a,t,e,n){f.defined(n)||(n=new w.Cartesian3);var t=w.Cartesian3.subtract(t,a,G),r=e.normal,i=w.Cartesian3.dot(r,t);if(!(Math.abs(i)<v.CesiumMath.EPSILON6)){r=w.Cartesian3.dot(r,a),e=-(e.distance+r)/i;if(!(e<0||1<e))return w.Cartesian3.multiplyByScalar(t,e,n),w.Cartesian3.add(a,n,n),n}},l.trianglePlaneIntersection=function(a,t,e,n){var r,i,s=n.normal,o=n.distance,u=w.Cartesian3.dot(s,a)+o<0,C=w.Cartesian3.dot(s,t)+o<0,s=w.Cartesian3.dot(s,e)+o<0,o=0;if(1!=(o=(o+=u?1:0)+(C?1:0)+(s?1:0))&&2!=o||(r=new w.Cartesian3,i=new w.Cartesian3),1==o){if(u)return l.lineSegmentPlane(a,t,n,r),l.lineSegmentPlane(a,e,n,i),{positions:[a,t,e,r,i],indices:[0,3,4,1,2,4,1,4,3]};if(C)return l.lineSegmentPlane(t,e,n,r),l.lineSegmentPlane(t,a,n,i),{positions:[a,t,e,r,i],indices:[1,3,4,2,0,4,2,4,3]};if(s)return l.lineSegmentPlane(e,a,n,r),l.lineSegmentPlane(e,t,n,i),{positions:[a,t,e,r,i],indices:[2,3,4,0,1,4,0,4,3]}}else if(2==o){if(!u)return l.lineSegmentPlane(t,a,n,r),l.lineSegmentPlane(e,a,n,i),{positions:[a,t,e,r,i],indices:[1,2,4,1,4,3,0,3,4]};if(!C)return l.lineSegmentPlane(e,t,n,r),l.lineSegmentPlane(a,t,n,i),{positions:[a,t,e,r,i],indices:[2,0,4,2,4,3,1,3,4]};if(!s)return l.lineSegmentPlane(a,e,n,r),l.lineSegmentPlane(t,e,n,i),{positions:[a,t,e,r,i],indices:[0,1,4,0,4,3,2,3,4]}}},a.IntersectionTests=l,a.Ray=e});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
define(["exports","./Cartesian2-38b35910","./when-ae2e0b60","./Check-f996273c","./Transforms-ce97037a","./Math-5bbcea10"],function(a,w,f,t,R,v){"use strict";var S={};function s(a,t,e){var n=a+t;return v.CesiumMath.sign(a)!==v.CesiumMath.sign(t)&&Math.abs(n/Math.max(Math.abs(a),Math.abs(t)))<e?0:n}S.computeDiscriminant=function(a,t,e){return t*t-4*a*e},S.computeRealRoots=function(a,t,e){var n,r,i;return 0===a?0===t?[]:[-e/t]:0===t?0===e||(r=Math.abs(e))<(i=Math.abs(a))&&r/i<v.CesiumMath.EPSILON14?[0,0]:i<r&&i/r<v.CesiumMath.EPSILON14||(n=-e/a)<0?[]:[-(i=Math.sqrt(n)),i]:0===e?(n=-t/a)<0?[n,0]:[0,n]:(r=s(t*t,-(4*a*e),v.CesiumMath.EPSILON14))<0?[]:(i=-.5*s(t,v.CesiumMath.sign(t)*Math.sqrt(r),v.CesiumMath.EPSILON14),0<t?[i/a,e/i]:[e/i,i/a])};var d={};function o(a,t,e,n){var r,i,s,o,u,t=t/3,e=e/3,C=a*e,c=t*n,l=t*t,h=e*e,M=a*e-l,m=a*n-t*e,d=t*n-h,f=4*M*d-m*m;return f<0?(u=(u=(r=(o=-((i=C*h<=l*c?-2*t*(s=M)+(o=a)*m:-(o=n)*m+2*e*(s=d))<0?-1:1)*Math.abs(o)*Math.sqrt(-f))-i)/2)<0?-Math.pow(-u,1/3):Math.pow(u,1/3),o=r===o?-u:-s/u,i=s<=0?u+o:-i/(u*u+o*o+s),C*h<=l*c?[(i-t)/a]:[-n/(i+e)]):(o=-2*t*(u=M)+a*m,C=-n*m+2*e*(s=d),h=Math.sqrt(f),l=Math.sqrt(3)/2,c=Math.abs(Math.atan2(a*h,-o)/3),o=(d=2*t<(r=(i=2*Math.sqrt(-u))*(M=Math.cos(c)))+(m=i*(-M/2-l*Math.sin(c)))?r-t:m-t)/(f=a),c=Math.abs(Math.atan2(n*h,-C)/3),h=(u=-n)/(a=(r=(i=2*Math.sqrt(-s))*(M=Math.cos(c)))+(m=i*(-M/2-l*Math.sin(c)))<2*e?r+e:m+e),o<=(n=(e*(C=-d*a-f*u)-t*(d*u))/(-t*C+e*(f*a)))?o<=h?n<=h?[o,n,h]:[o,h,n]:[h,o,n]:o<=h?[n,o,h]:n<=h?[n,h,o]:[h,n,o])}d.computeDiscriminant=function(a,t,e,n){var r=t*t,i=e*e;return 18*a*t*e*n+r*i-27*(a*a)*(n*n)-4*(a*i*e+r*t*n)},d.computeRealRoots=function(a,t,e,n){var r,i,s;return 0===a?S.computeRealRoots(t,e,n):0===t?0===e?0===n?[0,0,0]:[s=(i=-n/a)<0?-Math.pow(-i,1/3):Math.pow(i,1/3),s,s]:0===n?0===(r=S.computeRealRoots(a,0,e)).Length?[0]:[r[0],0,r[1]]:o(a,0,e,n):0===e?0===n?(i=-t/a)<0?[i,0,0]:[0,0,i]:o(a,t,0,n):0===n?0===(r=S.computeRealRoots(a,t,e)).length?[0]:r[1]<=0?[r[0],r[1],0]:0<=r[0]?[0,r[0],r[1]]:[r[0],0,r[1]]:o(a,t,e,n)};var O={};function C(a,t,e,n){var r=a*a,i=t-3*r/8,s=e-t*a/2+r*a/8,n=n-e*a/4+t*r/16-3*r*r/256,e=d.computeRealRoots(1,2*i,i*i-4*n,-s*s);if(0<e.length){t=-a/4,r=e[e.length-1];if(Math.abs(r)<v.CesiumMath.EPSILON14){var a=S.computeRealRoots(1,i,n);if(2===a.length){var o,u,e=a[0],n=a[1];if(0<=e&&0<=n)return a=Math.sqrt(e),[t-(u=Math.sqrt(n)),t-a,t+a,t+u];if(0<=e&&n<0)return[t-(o=Math.sqrt(e)),t+o];if(e<0&&0<=n)return[t-(o=Math.sqrt(n)),t+o]}return[]}if(0<r)return u=(i+r+s/(a=Math.sqrt(r)))/2,e=S.computeRealRoots(1,a,(i+r-s/a)/2),n=S.computeRealRoots(1,-a,u),0!==e.length?(e[0]+=t,e[1]+=t,0!==n.length?(n[0]+=t,n[1]+=t,e[1]<=n[0]?[e[0],e[1],n[0],n[1]]:n[1]<=e[0]?[n[0],n[1],e[0],e[1]]:e[0]>=n[0]&&e[1]<=n[1]?[n[0],e[0],e[1],n[1]]:n[0]>=e[0]&&n[1]<=e[1]?[e[0],n[0],n[1],e[1]]:e[0]>n[0]&&e[0]<n[1]?[n[0],e[0],n[1],e[1]]:[e[0],n[0],e[1],n[1]]):e):0!==n.length?(n[0]+=t,n[1]+=t,n):[]}return[]}function c(a,t,e,n){var r=a*a,i=d.computeRealRoots(1,-2*t,e*a+t*t-4*n,r*n-e*t*a+e*e);if(0<i.length){var s,o,u,C,c,i=i[0],t=t-i,l=t*t,h=a/2,t=t/2,M=l-4*n,l=l+4*Math.abs(n),m=r-4*i,r=r+4*Math.abs(i),r=(m=i<0||M*r<m*l?(s=(r=Math.sqrt(m))/2,0===r?0:(a*t-e)/r):(s=0===(l=Math.sqrt(M))?0:(a*t-e)/l,l/2),0==h&&0===s?u=o=0:v.CesiumMath.sign(h)===v.CesiumMath.sign(s)?u=i/(o=h+s):o=i/(u=h-s),0==t&&0===m?c=C=0:v.CesiumMath.sign(t)===v.CesiumMath.sign(m)?c=n/(C=t+m):C=n/(c=t-m),S.computeRealRoots(1,o,C)),M=S.computeRealRoots(1,u,c);if(0!==r.length)return 0!==M.length?r[1]<=M[0]?[r[0],r[1],M[0],M[1]]:M[1]<=r[0]?[M[0],M[1],r[0],r[1]]:r[0]>=M[0]&&r[1]<=M[1]?[M[0],r[0],r[1],M[1]]:M[0]>=r[0]&&M[1]<=r[1]?[r[0],M[0],M[1],r[1]]:r[0]>M[0]&&r[0]<M[1]?[M[0],r[0],M[1],r[1]]:[r[0],M[0],r[1],M[1]]:r;if(0!==M.length)return M}return[]}function e(a,t){t=w.Cartesian3.clone(f.defaultValue(t,w.Cartesian3.ZERO)),w.Cartesian3.equals(t,w.Cartesian3.ZERO)||w.Cartesian3.normalize(t,t),this.origin=w.Cartesian3.clone(f.defaultValue(a,w.Cartesian3.ZERO)),this.direction=t}O.computeDiscriminant=function(a,t,e,n,r){var i=a*a,s=t*t,o=s*t,u=e*e,C=u*e,c=n*n,l=c*n,h=r*r;return s*u*c-4*o*l-4*a*C*c+18*a*t*e*l-27*i*c*c+256*(i*a)*(h*r)+r*(18*o*e*n-4*s*C+16*a*u*u-80*a*t*u*n-6*a*s*c+144*i*e*c)+h*(144*a*s*e-27*s*s-128*i*u-192*i*t*n)},O.computeRealRoots=function(a,t,e,n,r){if(Math.abs(a)<v.CesiumMath.EPSILON15)return d.computeRealRoots(t,e,n,r);var i=t/a,s=e/a,o=n/a,u=r/a,t=i<0?1:0;switch(t=(t=(t+=s<0?1+t:t)+(o<0?1+t:t))+(u<0?1+t:t)){case 0:return C(i,s,o,u);case 1:case 2:return c(i,s,o,u);case 3:case 4:return C(i,s,o,u);case 5:return c(i,s,o,u);case 6:case 7:return C(i,s,o,u);case 8:return c(i,s,o,u);case 9:case 10:return C(i,s,o,u);case 11:return c(i,s,o,u);case 12:case 13:case 14:case 15:return C(i,s,o,u);default:return}},e.clone=function(a,t){if(f.defined(a))return f.defined(t)?(t.origin=w.Cartesian3.clone(a.origin),t.direction=w.Cartesian3.clone(a.direction),t):new e(a.origin,a.direction)},e.getPoint=function(a,t,e){return f.defined(e)||(e=new w.Cartesian3),e=w.Cartesian3.multiplyByScalar(a.direction,t,e),w.Cartesian3.add(a.origin,e,e)};var l={rayPlane:function(a,t,e){f.defined(e)||(e=new w.Cartesian3);var n=a.origin,a=a.direction,r=t.normal,i=w.Cartesian3.dot(r,a);if(!(Math.abs(i)<v.CesiumMath.EPSILON15)){t=(-t.distance-w.Cartesian3.dot(r,n))/i;if(!(t<0))return e=w.Cartesian3.multiplyByScalar(a,t,e),w.Cartesian3.add(n,e,e)}}},M=new w.Cartesian3,m=new w.Cartesian3,g=new w.Cartesian3,p=new w.Cartesian3,x=new w.Cartesian3,u=(l.rayTriangleParametric=function(a,t,e,n,r){r=f.defaultValue(r,!1);var i,s,o,u=a.origin,a=a.direction,e=w.Cartesian3.subtract(e,t,M),n=w.Cartesian3.subtract(n,t,m),C=w.Cartesian3.cross(a,n,g),c=w.Cartesian3.dot(e,C);if(r){if(c<v.CesiumMath.EPSILON6)return;if(h=w.Cartesian3.subtract(u,t,p),(l=w.Cartesian3.dot(h,C))<0||c<l)return;if(i=w.Cartesian3.cross(h,e,x),(s=w.Cartesian3.dot(a,i))<0||c<l+s)return;o=w.Cartesian3.dot(n,i)/c}else{if(Math.abs(c)<v.CesiumMath.EPSILON6)return;var l,r=1/c,h=w.Cartesian3.subtract(u,t,p);if((l=w.Cartesian3.dot(h,C)*r)<0||1<l)return;if(i=w.Cartesian3.cross(h,e,x),(s=w.Cartesian3.dot(a,i)*r)<0||1<l+s)return;o=w.Cartesian3.dot(n,i)*r}return o},l.rayTriangle=function(a,t,e,n,r,i){t=l.rayTriangleParametric(a,t,e,n,r);if(f.defined(t)&&!(t<0))return f.defined(i)||(i=new w.Cartesian3),w.Cartesian3.multiplyByScalar(a.direction,t,i),w.Cartesian3.add(a.origin,i,i)},new e);l.lineSegmentTriangle=function(a,t,e,n,r,i,s){var o=u,e=(w.Cartesian3.clone(a,o.origin),w.Cartesian3.subtract(t,a,o.direction),w.Cartesian3.normalize(o.direction,o.direction),l.rayTriangleParametric(o,e,n,r,i));if(!(!f.defined(e)||e<0||e>w.Cartesian3.distance(a,t)))return f.defined(s)||(s=new w.Cartesian3),w.Cartesian3.multiplyByScalar(o.direction,e,s),w.Cartesian3.add(o.origin,s,s)};var i={root0:0,root1:0};function h(a,t,e){f.defined(e)||(e=new R.Interval);var n=a.origin,a=a.direction,r=t.center,t=t.radius*t.radius,n=w.Cartesian3.subtract(n,r,g),r=function(a,t,e,n){var r,i,e=t*t-4*a*e;if(!(e<0))return 0<e?(i=1/(2*a),(r=(-t+(e=Math.sqrt(e)))*i)<(e=(-t-e)*i)?(n.root0=r,n.root1=e):(n.root0=e,n.root1=r),n):0!=(i=-t/(2*a))?(n.root0=n.root1=i,n):void 0}(w.Cartesian3.dot(a,a),2*w.Cartesian3.dot(a,n),w.Cartesian3.magnitudeSquared(n)-t,i);if(f.defined(r))return e.start=r.root0,e.stop=r.root1,e}l.raySphere=function(a,t,e){if(e=h(a,t,e),f.defined(e)&&!(e.stop<0))return e.start=Math.max(e.start,0),e};var y=new e,P=(l.lineSegmentSphere=function(a,t,e,n){var r=y,t=(w.Cartesian3.clone(a,r.origin),w.Cartesian3.subtract(t,a,r.direction)),a=w.Cartesian3.magnitude(t);if(w.Cartesian3.normalize(t,t),n=h(r,e,n),!(!f.defined(n)||n.stop<0||n.start>a))return n.start=Math.max(n.start,0),n.stop=Math.min(n.stop,a),n},new w.Cartesian3),b=new w.Cartesian3;function N(a,t,e){var n=a+t;return v.CesiumMath.sign(a)!==v.CesiumMath.sign(t)&&Math.abs(n/Math.max(Math.abs(a),Math.abs(t)))<e?0:n}l.rayEllipsoid=function(a,t){var e,n,r,i,s,o,u,t=t.oneOverRadii,C=w.Cartesian3.multiplyComponents(t,a.origin,P),t=w.Cartesian3.multiplyComponents(t,a.direction,b),a=w.Cartesian3.magnitudeSquared(C),C=w.Cartesian3.dot(C,t);return 1<a?0<=C||(e=a-1,(o=C*C)<(r=(n=w.Cartesian3.magnitudeSquared(t))*e))?void 0:r<o?(i=C*C-r,(o=(s=-C+Math.sqrt(i))/n)<(u=e/s)?new R.Interval(o,u):{start:u,stop:o}):(u=Math.sqrt(e/n),new R.Interval(u,u)):a<1?(e=a-1,i=C*C-(r=(n=w.Cartesian3.magnitudeSquared(t))*e),s=-C+Math.sqrt(i),new R.Interval(0,s/n)):C<0?(n=w.Cartesian3.magnitudeSquared(t),new R.Interval(0,-C/n)):void 0};var q=new w.Cartesian3,L=new w.Cartesian3,I=new w.Cartesian3,E=new w.Cartesian3,z=new w.Cartesian3,T=new R.Matrix3,U=new R.Matrix3,Z=new R.Matrix3,A=new R.Matrix3,D=new R.Matrix3,W=new R.Matrix3,B=new R.Matrix3,V=new w.Cartesian3,k=new w.Cartesian3,F=new w.Cartographic,G=(l.grazingAltitudeLocation=function(a,t){var e=a.origin,n=a.direction;if(!w.Cartesian3.equals(e,w.Cartesian3.ZERO)){var r=t.geodeticSurfaceNormal(e,q);if(0<=w.Cartesian3.dot(n,r))return e}var r=f.defined(this.rayEllipsoid(a,t)),a=t.transformPositionToScaledSpace(n,q),i=w.Cartesian3.normalize(a,a),a=w.Cartesian3.mostOrthogonalAxis(a,E),a=w.Cartesian3.normalize(w.Cartesian3.cross(a,i,L),L),s=w.Cartesian3.normalize(w.Cartesian3.cross(i,a,I),I),o=T,i=(o[0]=i.x,o[1]=i.y,o[2]=i.z,o[3]=a.x,o[4]=a.y,o[5]=a.z,o[6]=s.x,o[7]=s.y,o[8]=s.z,R.Matrix3.transpose(o,U)),u=R.Matrix3.fromScale(t.radii,Z),a=R.Matrix3.fromScale(t.oneOverRadii,A),s=D,i=(s[0]=0,s[1]=-n.z,s[2]=n.y,s[3]=n.z,s[4]=0,s[5]=-n.x,s[6]=-n.y,s[7]=n.x,s[8]=0,R.Matrix3.multiply(R.Matrix3.multiply(i,a,W),s,W)),a=R.Matrix3.multiply(R.Matrix3.multiply(i,u,B),o,B),s=R.Matrix3.multiplyByVector(i,e,z),C=function(a,t,e,n,r){var i,s=n*n,o=r*r,u=(a[R.Matrix3.COLUMN1ROW1]-a[R.Matrix3.COLUMN2ROW2])*o,C=r*(n*N(a[R.Matrix3.COLUMN1ROW0],a[R.Matrix3.COLUMN0ROW1],v.CesiumMath.EPSILON15)+t.y),c=a[R.Matrix3.COLUMN0ROW0]*s+a[R.Matrix3.COLUMN2ROW2]*o+n*t.x+e,l=o*N(a[R.Matrix3.COLUMN2ROW1],a[R.Matrix3.COLUMN1ROW2],v.CesiumMath.EPSILON15),h=r*(n*N(a[R.Matrix3.COLUMN2ROW0],a[R.Matrix3.COLUMN0ROW2])+t.z),M=[];if(0==h&&0==l)0!==(i=S.computeRealRoots(u,C,c)).length&&(s=i[0],e=Math.sqrt(Math.max(1-s*s,0)),M.push(new w.Cartesian3(n,r*s,r*-e)),M.push(new w.Cartesian3(n,r*s,r*e)),2===i.length)&&(o=i[1],a=Math.sqrt(Math.max(1-o*o,0)),M.push(new w.Cartesian3(n,r*o,r*-a)),M.push(new w.Cartesian3(n,r*o,r*a)));else{t=h*h,s=l*l,e=h*l,o=u*u+s,a=2*(C*u+e),s=2*c*u+C*C-s+t,e=2*(c*C-e),t=c*c-t;if(0!=o||0!=a||0!=s||0!=e){var m=(i=O.computeRealRoots(o,a,s,e,t)).length;if(0!==m)for(var d=0;d<m;++d){var f=i[d],g=f*f,p=Math.max(1-g,0),p=Math.sqrt(p),g=v.CesiumMath.sign(u)===v.CesiumMath.sign(c)?N(u*g+c,C*f,v.CesiumMath.EPSILON12):v.CesiumMath.sign(c)===v.CesiumMath.sign(C*f)?N(u*g,C*f+c,v.CesiumMath.EPSILON12):N(u*g+C*f,c,v.CesiumMath.EPSILON12),g=g*N(l*f,h,v.CesiumMath.EPSILON15);g<0?M.push(new w.Cartesian3(n,r*f,r*p)):0<g?M.push(new w.Cartesian3(n,r*f,r*-p)):0!==p?(M.push(new w.Cartesian3(n,r*f,r*-p)),M.push(new w.Cartesian3(n,r*f,r*p)),++d):M.push(new w.Cartesian3(n,r*f,r*p))}}}return M}(a,w.Cartesian3.negate(s,q),0,0,1),c=C.length;if(0<c){for(var l=w.Cartesian3.clone(w.Cartesian3.ZERO,k),h=Number.NEGATIVE_INFINITY,M=0;M<c;++M){var m=R.Matrix3.multiplyByVector(u,R.Matrix3.multiplyByVector(o,C[M],V),V),d=w.Cartesian3.normalize(w.Cartesian3.subtract(m,e,E),E),d=w.Cartesian3.dot(d,n);h<d&&(h=d,l=w.Cartesian3.clone(m,l))}i=t.cartesianToCartographic(l,F),h=v.CesiumMath.clamp(h,0,1),a=w.Cartesian3.magnitude(w.Cartesian3.subtract(l,e,E))*Math.sqrt(1-h*h);return i.height=r?-a:a,t.cartographicToCartesian(i,new w.Cartesian3)}},new w.Cartesian3);l.lineSegmentPlane=function(a,t,e,n){f.defined(n)||(n=new w.Cartesian3);var t=w.Cartesian3.subtract(t,a,G),r=e.normal,i=w.Cartesian3.dot(r,t);if(!(Math.abs(i)<v.CesiumMath.EPSILON6)){r=w.Cartesian3.dot(r,a),e=-(e.distance+r)/i;if(!(e<0||1<e))return w.Cartesian3.multiplyByScalar(t,e,n),w.Cartesian3.add(a,n,n),n}},l.trianglePlaneIntersection=function(a,t,e,n){var r,i,s=n.normal,o=n.distance,u=w.Cartesian3.dot(s,a)+o<0,C=w.Cartesian3.dot(s,t)+o<0,s=w.Cartesian3.dot(s,e)+o<0,o=0;if(1!=(o=(o+=u?1:0)+(C?1:0)+(s?1:0))&&2!=o||(r=new w.Cartesian3,i=new w.Cartesian3),1==o){if(u)return l.lineSegmentPlane(a,t,n,r),l.lineSegmentPlane(a,e,n,i),{positions:[a,t,e,r,i],indices:[0,3,4,1,2,4,1,4,3]};if(C)return l.lineSegmentPlane(t,e,n,r),l.lineSegmentPlane(t,a,n,i),{positions:[a,t,e,r,i],indices:[1,3,4,2,0,4,2,4,3]};if(s)return l.lineSegmentPlane(e,a,n,r),l.lineSegmentPlane(e,t,n,i),{positions:[a,t,e,r,i],indices:[2,3,4,0,1,4,0,4,3]}}else if(2==o){if(!u)return l.lineSegmentPlane(t,a,n,r),l.lineSegmentPlane(e,a,n,i),{positions:[a,t,e,r,i],indices:[1,2,4,1,4,3,0,3,4]};if(!C)return l.lineSegmentPlane(e,t,n,r),l.lineSegmentPlane(a,t,n,i),{positions:[a,t,e,r,i],indices:[2,0,4,2,4,3,1,3,4]};if(!s)return l.lineSegmentPlane(a,e,n,r),l.lineSegmentPlane(t,e,n,i),{positions:[a,t,e,r,i],indices:[0,1,4,0,4,3,2,3,4]}}},a.IntersectionTests=l,a.Ray=e});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
define(["exports","./Cartesian2-c1eb9da0","./when-ae2e0b60","./Check-f996273c","./Transforms-1b5921a3","./Math-5bbcea10"],function(a,w,f,t,R,v){"use strict";var S={};function s(a,t,e){var n=a+t;return v.CesiumMath.sign(a)!==v.CesiumMath.sign(t)&&Math.abs(n/Math.max(Math.abs(a),Math.abs(t)))<e?0:n}S.computeDiscriminant=function(a,t,e){return t*t-4*a*e},S.computeRealRoots=function(a,t,e){var n,r,i;return 0===a?0===t?[]:[-e/t]:0===t?0===e||(r=Math.abs(e))<(i=Math.abs(a))&&r/i<v.CesiumMath.EPSILON14?[0,0]:i<r&&i/r<v.CesiumMath.EPSILON14||(n=-e/a)<0?[]:[-(i=Math.sqrt(n)),i]:0===e?(n=-t/a)<0?[n,0]:[0,n]:(r=s(t*t,-(4*a*e),v.CesiumMath.EPSILON14))<0?[]:(i=-.5*s(t,v.CesiumMath.sign(t)*Math.sqrt(r),v.CesiumMath.EPSILON14),0<t?[i/a,e/i]:[e/i,i/a])};var d={};function o(a,t,e,n){var r,i,s,o,u,t=t/3,e=e/3,C=a*e,c=t*n,l=t*t,h=e*e,M=a*e-l,m=a*n-t*e,d=t*n-h,f=4*M*d-m*m;return f<0?(u=(u=(r=(o=-((i=C*h<=l*c?-2*t*(s=M)+(o=a)*m:-(o=n)*m+2*e*(s=d))<0?-1:1)*Math.abs(o)*Math.sqrt(-f))-i)/2)<0?-Math.pow(-u,1/3):Math.pow(u,1/3),o=r===o?-u:-s/u,i=s<=0?u+o:-i/(u*u+o*o+s),C*h<=l*c?[(i-t)/a]:[-n/(i+e)]):(o=-2*t*(u=M)+a*m,C=-n*m+2*e*(s=d),h=Math.sqrt(f),l=Math.sqrt(3)/2,c=Math.abs(Math.atan2(a*h,-o)/3),o=(d=2*t<(r=(i=2*Math.sqrt(-u))*(M=Math.cos(c)))+(m=i*(-M/2-l*Math.sin(c)))?r-t:m-t)/(f=a),c=Math.abs(Math.atan2(n*h,-C)/3),h=(u=-n)/(a=(r=(i=2*Math.sqrt(-s))*(M=Math.cos(c)))+(m=i*(-M/2-l*Math.sin(c)))<2*e?r+e:m+e),o<=(n=(e*(C=-d*a-f*u)-t*(d*u))/(-t*C+e*(f*a)))?o<=h?n<=h?[o,n,h]:[o,h,n]:[h,o,n]:o<=h?[n,o,h]:n<=h?[n,h,o]:[h,n,o])}d.computeDiscriminant=function(a,t,e,n){var r=t*t,i=e*e;return 18*a*t*e*n+r*i-27*(a*a)*(n*n)-4*(a*i*e+r*t*n)},d.computeRealRoots=function(a,t,e,n){var r,i,s;return 0===a?S.computeRealRoots(t,e,n):0===t?0===e?0===n?[0,0,0]:[s=(i=-n/a)<0?-Math.pow(-i,1/3):Math.pow(i,1/3),s,s]:0===n?0===(r=S.computeRealRoots(a,0,e)).Length?[0]:[r[0],0,r[1]]:o(a,0,e,n):0===e?0===n?(i=-t/a)<0?[i,0,0]:[0,0,i]:o(a,t,0,n):0===n?0===(r=S.computeRealRoots(a,t,e)).length?[0]:r[1]<=0?[r[0],r[1],0]:0<=r[0]?[0,r[0],r[1]]:[r[0],0,r[1]]:o(a,t,e,n)};var O={};function C(a,t,e,n){var r=a*a,i=t-3*r/8,s=e-t*a/2+r*a/8,n=n-e*a/4+t*r/16-3*r*r/256,e=d.computeRealRoots(1,2*i,i*i-4*n,-s*s);if(0<e.length){t=-a/4,r=e[e.length-1];if(Math.abs(r)<v.CesiumMath.EPSILON14){var a=S.computeRealRoots(1,i,n);if(2===a.length){var o,u,e=a[0],n=a[1];if(0<=e&&0<=n)return a=Math.sqrt(e),[t-(u=Math.sqrt(n)),t-a,t+a,t+u];if(0<=e&&n<0)return[t-(o=Math.sqrt(e)),t+o];if(e<0&&0<=n)return[t-(o=Math.sqrt(n)),t+o]}return[]}if(0<r)return u=(i+r+s/(a=Math.sqrt(r)))/2,e=S.computeRealRoots(1,a,(i+r-s/a)/2),n=S.computeRealRoots(1,-a,u),0!==e.length?(e[0]+=t,e[1]+=t,0!==n.length?(n[0]+=t,n[1]+=t,e[1]<=n[0]?[e[0],e[1],n[0],n[1]]:n[1]<=e[0]?[n[0],n[1],e[0],e[1]]:e[0]>=n[0]&&e[1]<=n[1]?[n[0],e[0],e[1],n[1]]:n[0]>=e[0]&&n[1]<=e[1]?[e[0],n[0],n[1],e[1]]:e[0]>n[0]&&e[0]<n[1]?[n[0],e[0],n[1],e[1]]:[e[0],n[0],e[1],n[1]]):e):0!==n.length?(n[0]+=t,n[1]+=t,n):[]}return[]}function c(a,t,e,n){var r=a*a,i=d.computeRealRoots(1,-2*t,e*a+t*t-4*n,r*n-e*t*a+e*e);if(0<i.length){var s,o,u,C,c,i=i[0],t=t-i,l=t*t,h=a/2,t=t/2,M=l-4*n,l=l+4*Math.abs(n),m=r-4*i,r=r+4*Math.abs(i),r=(m=i<0||M*r<m*l?(s=(r=Math.sqrt(m))/2,0===r?0:(a*t-e)/r):(s=0===(l=Math.sqrt(M))?0:(a*t-e)/l,l/2),0==h&&0===s?u=o=0:v.CesiumMath.sign(h)===v.CesiumMath.sign(s)?u=i/(o=h+s):o=i/(u=h-s),0==t&&0===m?c=C=0:v.CesiumMath.sign(t)===v.CesiumMath.sign(m)?c=n/(C=t+m):C=n/(c=t-m),S.computeRealRoots(1,o,C)),M=S.computeRealRoots(1,u,c);if(0!==r.length)return 0!==M.length?r[1]<=M[0]?[r[0],r[1],M[0],M[1]]:M[1]<=r[0]?[M[0],M[1],r[0],r[1]]:r[0]>=M[0]&&r[1]<=M[1]?[M[0],r[0],r[1],M[1]]:M[0]>=r[0]&&M[1]<=r[1]?[r[0],M[0],M[1],r[1]]:r[0]>M[0]&&r[0]<M[1]?[M[0],r[0],M[1],r[1]]:[r[0],M[0],r[1],M[1]]:r;if(0!==M.length)return M}return[]}function e(a,t){t=w.Cartesian3.clone(f.defaultValue(t,w.Cartesian3.ZERO)),w.Cartesian3.equals(t,w.Cartesian3.ZERO)||w.Cartesian3.normalize(t,t),this.origin=w.Cartesian3.clone(f.defaultValue(a,w.Cartesian3.ZERO)),this.direction=t}O.computeDiscriminant=function(a,t,e,n,r){var i=a*a,s=t*t,o=s*t,u=e*e,C=u*e,c=n*n,l=c*n,h=r*r;return s*u*c-4*o*l-4*a*C*c+18*a*t*e*l-27*i*c*c+256*(i*a)*(h*r)+r*(18*o*e*n-4*s*C+16*a*u*u-80*a*t*u*n-6*a*s*c+144*i*e*c)+h*(144*a*s*e-27*s*s-128*i*u-192*i*t*n)},O.computeRealRoots=function(a,t,e,n,r){if(Math.abs(a)<v.CesiumMath.EPSILON15)return d.computeRealRoots(t,e,n,r);var i=t/a,s=e/a,o=n/a,u=r/a,t=i<0?1:0;switch(t=(t=(t+=s<0?1+t:t)+(o<0?1+t:t))+(u<0?1+t:t)){case 0:return C(i,s,o,u);case 1:case 2:return c(i,s,o,u);case 3:case 4:return C(i,s,o,u);case 5:return c(i,s,o,u);case 6:case 7:return C(i,s,o,u);case 8:return c(i,s,o,u);case 9:case 10:return C(i,s,o,u);case 11:return c(i,s,o,u);case 12:case 13:case 14:case 15:return C(i,s,o,u);default:return}},e.clone=function(a,t){if(f.defined(a))return f.defined(t)?(t.origin=w.Cartesian3.clone(a.origin),t.direction=w.Cartesian3.clone(a.direction),t):new e(a.origin,a.direction)},e.getPoint=function(a,t,e){return f.defined(e)||(e=new w.Cartesian3),e=w.Cartesian3.multiplyByScalar(a.direction,t,e),w.Cartesian3.add(a.origin,e,e)};var l={rayPlane:function(a,t,e){f.defined(e)||(e=new w.Cartesian3);var n=a.origin,a=a.direction,r=t.normal,i=w.Cartesian3.dot(r,a);if(!(Math.abs(i)<v.CesiumMath.EPSILON15)){t=(-t.distance-w.Cartesian3.dot(r,n))/i;if(!(t<0))return e=w.Cartesian3.multiplyByScalar(a,t,e),w.Cartesian3.add(n,e,e)}}},M=new w.Cartesian3,m=new w.Cartesian3,g=new w.Cartesian3,p=new w.Cartesian3,x=new w.Cartesian3,u=(l.rayTriangleParametric=function(a,t,e,n,r){r=f.defaultValue(r,!1);var i,s,o,u=a.origin,a=a.direction,e=w.Cartesian3.subtract(e,t,M),n=w.Cartesian3.subtract(n,t,m),C=w.Cartesian3.cross(a,n,g),c=w.Cartesian3.dot(e,C);if(r){if(c<v.CesiumMath.EPSILON6)return;if(h=w.Cartesian3.subtract(u,t,p),(l=w.Cartesian3.dot(h,C))<0||c<l)return;if(i=w.Cartesian3.cross(h,e,x),(s=w.Cartesian3.dot(a,i))<0||c<l+s)return;o=w.Cartesian3.dot(n,i)/c}else{if(Math.abs(c)<v.CesiumMath.EPSILON6)return;var l,r=1/c,h=w.Cartesian3.subtract(u,t,p);if((l=w.Cartesian3.dot(h,C)*r)<0||1<l)return;if(i=w.Cartesian3.cross(h,e,x),(s=w.Cartesian3.dot(a,i)*r)<0||1<l+s)return;o=w.Cartesian3.dot(n,i)*r}return o},l.rayTriangle=function(a,t,e,n,r,i){t=l.rayTriangleParametric(a,t,e,n,r);if(f.defined(t)&&!(t<0))return f.defined(i)||(i=new w.Cartesian3),w.Cartesian3.multiplyByScalar(a.direction,t,i),w.Cartesian3.add(a.origin,i,i)},new e);l.lineSegmentTriangle=function(a,t,e,n,r,i,s){var o=u,e=(w.Cartesian3.clone(a,o.origin),w.Cartesian3.subtract(t,a,o.direction),w.Cartesian3.normalize(o.direction,o.direction),l.rayTriangleParametric(o,e,n,r,i));if(!(!f.defined(e)||e<0||e>w.Cartesian3.distance(a,t)))return f.defined(s)||(s=new w.Cartesian3),w.Cartesian3.multiplyByScalar(o.direction,e,s),w.Cartesian3.add(o.origin,s,s)};var i={root0:0,root1:0};function h(a,t,e){f.defined(e)||(e=new R.Interval);var n=a.origin,a=a.direction,r=t.center,t=t.radius*t.radius,n=w.Cartesian3.subtract(n,r,g),r=function(a,t,e,n){var r,i,e=t*t-4*a*e;if(!(e<0))return 0<e?(i=1/(2*a),(r=(-t+(e=Math.sqrt(e)))*i)<(e=(-t-e)*i)?(n.root0=r,n.root1=e):(n.root0=e,n.root1=r),n):0!=(i=-t/(2*a))?(n.root0=n.root1=i,n):void 0}(w.Cartesian3.dot(a,a),2*w.Cartesian3.dot(a,n),w.Cartesian3.magnitudeSquared(n)-t,i);if(f.defined(r))return e.start=r.root0,e.stop=r.root1,e}l.raySphere=function(a,t,e){if(e=h(a,t,e),f.defined(e)&&!(e.stop<0))return e.start=Math.max(e.start,0),e};var y=new e,P=(l.lineSegmentSphere=function(a,t,e,n){var r=y,t=(w.Cartesian3.clone(a,r.origin),w.Cartesian3.subtract(t,a,r.direction)),a=w.Cartesian3.magnitude(t);if(w.Cartesian3.normalize(t,t),n=h(r,e,n),!(!f.defined(n)||n.stop<0||n.start>a))return n.start=Math.max(n.start,0),n.stop=Math.min(n.stop,a),n},new w.Cartesian3),b=new w.Cartesian3;function N(a,t,e){var n=a+t;return v.CesiumMath.sign(a)!==v.CesiumMath.sign(t)&&Math.abs(n/Math.max(Math.abs(a),Math.abs(t)))<e?0:n}l.rayEllipsoid=function(a,t){var e,n,r,i,s,o,u,t=t.oneOverRadii,C=w.Cartesian3.multiplyComponents(t,a.origin,P),t=w.Cartesian3.multiplyComponents(t,a.direction,b),a=w.Cartesian3.magnitudeSquared(C),C=w.Cartesian3.dot(C,t);return 1<a?0<=C||(e=a-1,(o=C*C)<(r=(n=w.Cartesian3.magnitudeSquared(t))*e))?void 0:r<o?(i=C*C-r,(o=(s=-C+Math.sqrt(i))/n)<(u=e/s)?new R.Interval(o,u):{start:u,stop:o}):(u=Math.sqrt(e/n),new R.Interval(u,u)):a<1?(e=a-1,i=C*C-(r=(n=w.Cartesian3.magnitudeSquared(t))*e),s=-C+Math.sqrt(i),new R.Interval(0,s/n)):C<0?(n=w.Cartesian3.magnitudeSquared(t),new R.Interval(0,-C/n)):void 0};var q=new w.Cartesian3,L=new w.Cartesian3,I=new w.Cartesian3,E=new w.Cartesian3,z=new w.Cartesian3,T=new R.Matrix3,U=new R.Matrix3,Z=new R.Matrix3,A=new R.Matrix3,D=new R.Matrix3,W=new R.Matrix3,B=new R.Matrix3,V=new w.Cartesian3,k=new w.Cartesian3,F=new w.Cartographic,G=(l.grazingAltitudeLocation=function(a,t){var e=a.origin,n=a.direction;if(!w.Cartesian3.equals(e,w.Cartesian3.ZERO)){var r=t.geodeticSurfaceNormal(e,q);if(0<=w.Cartesian3.dot(n,r))return e}var r=f.defined(this.rayEllipsoid(a,t)),a=t.transformPositionToScaledSpace(n,q),i=w.Cartesian3.normalize(a,a),a=w.Cartesian3.mostOrthogonalAxis(a,E),a=w.Cartesian3.normalize(w.Cartesian3.cross(a,i,L),L),s=w.Cartesian3.normalize(w.Cartesian3.cross(i,a,I),I),o=T,i=(o[0]=i.x,o[1]=i.y,o[2]=i.z,o[3]=a.x,o[4]=a.y,o[5]=a.z,o[6]=s.x,o[7]=s.y,o[8]=s.z,R.Matrix3.transpose(o,U)),u=R.Matrix3.fromScale(t.radii,Z),a=R.Matrix3.fromScale(t.oneOverRadii,A),s=D,i=(s[0]=0,s[1]=-n.z,s[2]=n.y,s[3]=n.z,s[4]=0,s[5]=-n.x,s[6]=-n.y,s[7]=n.x,s[8]=0,R.Matrix3.multiply(R.Matrix3.multiply(i,a,W),s,W)),a=R.Matrix3.multiply(R.Matrix3.multiply(i,u,B),o,B),s=R.Matrix3.multiplyByVector(i,e,z),C=function(a,t,e,n,r){var i,s=n*n,o=r*r,u=(a[R.Matrix3.COLUMN1ROW1]-a[R.Matrix3.COLUMN2ROW2])*o,C=r*(n*N(a[R.Matrix3.COLUMN1ROW0],a[R.Matrix3.COLUMN0ROW1],v.CesiumMath.EPSILON15)+t.y),c=a[R.Matrix3.COLUMN0ROW0]*s+a[R.Matrix3.COLUMN2ROW2]*o+n*t.x+e,l=o*N(a[R.Matrix3.COLUMN2ROW1],a[R.Matrix3.COLUMN1ROW2],v.CesiumMath.EPSILON15),h=r*(n*N(a[R.Matrix3.COLUMN2ROW0],a[R.Matrix3.COLUMN0ROW2])+t.z),M=[];if(0==h&&0==l)0!==(i=S.computeRealRoots(u,C,c)).length&&(s=i[0],e=Math.sqrt(Math.max(1-s*s,0)),M.push(new w.Cartesian3(n,r*s,r*-e)),M.push(new w.Cartesian3(n,r*s,r*e)),2===i.length)&&(o=i[1],a=Math.sqrt(Math.max(1-o*o,0)),M.push(new w.Cartesian3(n,r*o,r*-a)),M.push(new w.Cartesian3(n,r*o,r*a)));else{t=h*h,s=l*l,e=h*l,o=u*u+s,a=2*(C*u+e),s=2*c*u+C*C-s+t,e=2*(c*C-e),t=c*c-t;if(0!=o||0!=a||0!=s||0!=e){var m=(i=O.computeRealRoots(o,a,s,e,t)).length;if(0!==m)for(var d=0;d<m;++d){var f=i[d],g=f*f,p=Math.max(1-g,0),p=Math.sqrt(p),g=v.CesiumMath.sign(u)===v.CesiumMath.sign(c)?N(u*g+c,C*f,v.CesiumMath.EPSILON12):v.CesiumMath.sign(c)===v.CesiumMath.sign(C*f)?N(u*g,C*f+c,v.CesiumMath.EPSILON12):N(u*g+C*f,c,v.CesiumMath.EPSILON12),g=g*N(l*f,h,v.CesiumMath.EPSILON15);g<0?M.push(new w.Cartesian3(n,r*f,r*p)):0<g?M.push(new w.Cartesian3(n,r*f,r*-p)):0!==p?(M.push(new w.Cartesian3(n,r*f,r*-p)),M.push(new w.Cartesian3(n,r*f,r*p)),++d):M.push(new w.Cartesian3(n,r*f,r*p))}}}return M}(a,w.Cartesian3.negate(s,q),0,0,1),c=C.length;if(0<c){for(var l=w.Cartesian3.clone(w.Cartesian3.ZERO,k),h=Number.NEGATIVE_INFINITY,M=0;M<c;++M){var m=R.Matrix3.multiplyByVector(u,R.Matrix3.multiplyByVector(o,C[M],V),V),d=w.Cartesian3.normalize(w.Cartesian3.subtract(m,e,E),E),d=w.Cartesian3.dot(d,n);h<d&&(h=d,l=w.Cartesian3.clone(m,l))}i=t.cartesianToCartographic(l,F),h=v.CesiumMath.clamp(h,0,1),a=w.Cartesian3.magnitude(w.Cartesian3.subtract(l,e,E))*Math.sqrt(1-h*h);return i.height=r?-a:a,t.cartographicToCartesian(i,new w.Cartesian3)}},new w.Cartesian3);l.lineSegmentPlane=function(a,t,e,n){f.defined(n)||(n=new w.Cartesian3);var t=w.Cartesian3.subtract(t,a,G),r=e.normal,i=w.Cartesian3.dot(r,t);if(!(Math.abs(i)<v.CesiumMath.EPSILON6)){r=w.Cartesian3.dot(r,a),e=-(e.distance+r)/i;if(!(e<0||1<e))return w.Cartesian3.multiplyByScalar(t,e,n),w.Cartesian3.add(a,n,n),n}},l.trianglePlaneIntersection=function(a,t,e,n){var r,i,s=n.normal,o=n.distance,u=w.Cartesian3.dot(s,a)+o<0,C=w.Cartesian3.dot(s,t)+o<0,s=w.Cartesian3.dot(s,e)+o<0,o=0;if(1!=(o=(o+=u?1:0)+(C?1:0)+(s?1:0))&&2!=o||(r=new w.Cartesian3,i=new w.Cartesian3),1==o){if(u)return l.lineSegmentPlane(a,t,n,r),l.lineSegmentPlane(a,e,n,i),{positions:[a,t,e,r,i],indices:[0,3,4,1,2,4,1,4,3]};if(C)return l.lineSegmentPlane(t,e,n,r),l.lineSegmentPlane(t,a,n,i),{positions:[a,t,e,r,i],indices:[1,3,4,2,0,4,2,4,3]};if(s)return l.lineSegmentPlane(e,a,n,r),l.lineSegmentPlane(e,t,n,i),{positions:[a,t,e,r,i],indices:[2,3,4,0,1,4,0,4,3]}}else if(2==o){if(!u)return l.lineSegmentPlane(t,a,n,r),l.lineSegmentPlane(e,a,n,i),{positions:[a,t,e,r,i],indices:[1,2,4,1,4,3,0,3,4]};if(!C)return l.lineSegmentPlane(e,t,n,r),l.lineSegmentPlane(a,t,n,i),{positions:[a,t,e,r,i],indices:[2,0,4,2,4,3,1,3,4]};if(!s)return l.lineSegmentPlane(a,e,n,r),l.lineSegmentPlane(t,e,n,i),{positions:[a,t,e,r,i],indices:[0,1,4,0,4,3,2,3,4]}}},a.IntersectionTests=l,a.Ray=e});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
define(["exports","./Cartesian2-c1eb9da0","./when-ae2e0b60","./Check-f996273c","./Transforms-713e2e92","./Math-5bbcea10"],function(a,w,f,t,R,v){"use strict";var S={};function s(a,t,e){var n=a+t;return v.CesiumMath.sign(a)!==v.CesiumMath.sign(t)&&Math.abs(n/Math.max(Math.abs(a),Math.abs(t)))<e?0:n}S.computeDiscriminant=function(a,t,e){return t*t-4*a*e},S.computeRealRoots=function(a,t,e){var n,r,i;return 0===a?0===t?[]:[-e/t]:0===t?0===e||(r=Math.abs(e))<(i=Math.abs(a))&&r/i<v.CesiumMath.EPSILON14?[0,0]:i<r&&i/r<v.CesiumMath.EPSILON14||(n=-e/a)<0?[]:[-(i=Math.sqrt(n)),i]:0===e?(n=-t/a)<0?[n,0]:[0,n]:(r=s(t*t,-(4*a*e),v.CesiumMath.EPSILON14))<0?[]:(i=-.5*s(t,v.CesiumMath.sign(t)*Math.sqrt(r),v.CesiumMath.EPSILON14),0<t?[i/a,e/i]:[e/i,i/a])};var d={};function o(a,t,e,n){var r,i,s,o,u,t=t/3,e=e/3,C=a*e,c=t*n,l=t*t,h=e*e,M=a*e-l,m=a*n-t*e,d=t*n-h,f=4*M*d-m*m;return f<0?(u=(u=(r=(o=-((i=C*h<=l*c?-2*t*(s=M)+(o=a)*m:-(o=n)*m+2*e*(s=d))<0?-1:1)*Math.abs(o)*Math.sqrt(-f))-i)/2)<0?-Math.pow(-u,1/3):Math.pow(u,1/3),o=r===o?-u:-s/u,i=s<=0?u+o:-i/(u*u+o*o+s),C*h<=l*c?[(i-t)/a]:[-n/(i+e)]):(o=-2*t*(u=M)+a*m,C=-n*m+2*e*(s=d),h=Math.sqrt(f),l=Math.sqrt(3)/2,c=Math.abs(Math.atan2(a*h,-o)/3),o=(d=2*t<(r=(i=2*Math.sqrt(-u))*(M=Math.cos(c)))+(m=i*(-M/2-l*Math.sin(c)))?r-t:m-t)/(f=a),c=Math.abs(Math.atan2(n*h,-C)/3),h=(u=-n)/(a=(r=(i=2*Math.sqrt(-s))*(M=Math.cos(c)))+(m=i*(-M/2-l*Math.sin(c)))<2*e?r+e:m+e),o<=(n=(e*(C=-d*a-f*u)-t*(d*u))/(-t*C+e*(f*a)))?o<=h?n<=h?[o,n,h]:[o,h,n]:[h,o,n]:o<=h?[n,o,h]:n<=h?[n,h,o]:[h,n,o])}d.computeDiscriminant=function(a,t,e,n){var r=t*t,i=e*e;return 18*a*t*e*n+r*i-27*(a*a)*(n*n)-4*(a*i*e+r*t*n)},d.computeRealRoots=function(a,t,e,n){var r,i,s;return 0===a?S.computeRealRoots(t,e,n):0===t?0===e?0===n?[0,0,0]:[s=(i=-n/a)<0?-Math.pow(-i,1/3):Math.pow(i,1/3),s,s]:0===n?0===(r=S.computeRealRoots(a,0,e)).Length?[0]:[r[0],0,r[1]]:o(a,0,e,n):0===e?0===n?(i=-t/a)<0?[i,0,0]:[0,0,i]:o(a,t,0,n):0===n?0===(r=S.computeRealRoots(a,t,e)).length?[0]:r[1]<=0?[r[0],r[1],0]:0<=r[0]?[0,r[0],r[1]]:[r[0],0,r[1]]:o(a,t,e,n)};var O={};function C(a,t,e,n){var r=a*a,i=t-3*r/8,s=e-t*a/2+r*a/8,n=n-e*a/4+t*r/16-3*r*r/256,e=d.computeRealRoots(1,2*i,i*i-4*n,-s*s);if(0<e.length){t=-a/4,r=e[e.length-1];if(Math.abs(r)<v.CesiumMath.EPSILON14){var a=S.computeRealRoots(1,i,n);if(2===a.length){var o,u,e=a[0],n=a[1];if(0<=e&&0<=n)return a=Math.sqrt(e),[t-(u=Math.sqrt(n)),t-a,t+a,t+u];if(0<=e&&n<0)return[t-(o=Math.sqrt(e)),t+o];if(e<0&&0<=n)return[t-(o=Math.sqrt(n)),t+o]}return[]}if(0<r)return u=(i+r+s/(a=Math.sqrt(r)))/2,e=S.computeRealRoots(1,a,(i+r-s/a)/2),n=S.computeRealRoots(1,-a,u),0!==e.length?(e[0]+=t,e[1]+=t,0!==n.length?(n[0]+=t,n[1]+=t,e[1]<=n[0]?[e[0],e[1],n[0],n[1]]:n[1]<=e[0]?[n[0],n[1],e[0],e[1]]:e[0]>=n[0]&&e[1]<=n[1]?[n[0],e[0],e[1],n[1]]:n[0]>=e[0]&&n[1]<=e[1]?[e[0],n[0],n[1],e[1]]:e[0]>n[0]&&e[0]<n[1]?[n[0],e[0],n[1],e[1]]:[e[0],n[0],e[1],n[1]]):e):0!==n.length?(n[0]+=t,n[1]+=t,n):[]}return[]}function c(a,t,e,n){var r=a*a,i=d.computeRealRoots(1,-2*t,e*a+t*t-4*n,r*n-e*t*a+e*e);if(0<i.length){var s,o,u,C,c,i=i[0],t=t-i,l=t*t,h=a/2,t=t/2,M=l-4*n,l=l+4*Math.abs(n),m=r-4*i,r=r+4*Math.abs(i),r=(m=i<0||M*r<m*l?(s=(r=Math.sqrt(m))/2,0===r?0:(a*t-e)/r):(s=0===(l=Math.sqrt(M))?0:(a*t-e)/l,l/2),0==h&&0===s?u=o=0:v.CesiumMath.sign(h)===v.CesiumMath.sign(s)?u=i/(o=h+s):o=i/(u=h-s),0==t&&0===m?c=C=0:v.CesiumMath.sign(t)===v.CesiumMath.sign(m)?c=n/(C=t+m):C=n/(c=t-m),S.computeRealRoots(1,o,C)),M=S.computeRealRoots(1,u,c);if(0!==r.length)return 0!==M.length?r[1]<=M[0]?[r[0],r[1],M[0],M[1]]:M[1]<=r[0]?[M[0],M[1],r[0],r[1]]:r[0]>=M[0]&&r[1]<=M[1]?[M[0],r[0],r[1],M[1]]:M[0]>=r[0]&&M[1]<=r[1]?[r[0],M[0],M[1],r[1]]:r[0]>M[0]&&r[0]<M[1]?[M[0],r[0],M[1],r[1]]:[r[0],M[0],r[1],M[1]]:r;if(0!==M.length)return M}return[]}function e(a,t){t=w.Cartesian3.clone(f.defaultValue(t,w.Cartesian3.ZERO)),w.Cartesian3.equals(t,w.Cartesian3.ZERO)||w.Cartesian3.normalize(t,t),this.origin=w.Cartesian3.clone(f.defaultValue(a,w.Cartesian3.ZERO)),this.direction=t}O.computeDiscriminant=function(a,t,e,n,r){var i=a*a,s=t*t,o=s*t,u=e*e,C=u*e,c=n*n,l=c*n,h=r*r;return s*u*c-4*o*l-4*a*C*c+18*a*t*e*l-27*i*c*c+256*(i*a)*(h*r)+r*(18*o*e*n-4*s*C+16*a*u*u-80*a*t*u*n-6*a*s*c+144*i*e*c)+h*(144*a*s*e-27*s*s-128*i*u-192*i*t*n)},O.computeRealRoots=function(a,t,e,n,r){if(Math.abs(a)<v.CesiumMath.EPSILON15)return d.computeRealRoots(t,e,n,r);var i=t/a,s=e/a,o=n/a,u=r/a,t=i<0?1:0;switch(t=(t=(t+=s<0?1+t:t)+(o<0?1+t:t))+(u<0?1+t:t)){case 0:return C(i,s,o,u);case 1:case 2:return c(i,s,o,u);case 3:case 4:return C(i,s,o,u);case 5:return c(i,s,o,u);case 6:case 7:return C(i,s,o,u);case 8:return c(i,s,o,u);case 9:case 10:return C(i,s,o,u);case 11:return c(i,s,o,u);case 12:case 13:case 14:case 15:return C(i,s,o,u);default:return}},e.clone=function(a,t){if(f.defined(a))return f.defined(t)?(t.origin=w.Cartesian3.clone(a.origin),t.direction=w.Cartesian3.clone(a.direction),t):new e(a.origin,a.direction)},e.getPoint=function(a,t,e){return f.defined(e)||(e=new w.Cartesian3),e=w.Cartesian3.multiplyByScalar(a.direction,t,e),w.Cartesian3.add(a.origin,e,e)};var l={rayPlane:function(a,t,e){f.defined(e)||(e=new w.Cartesian3);var n=a.origin,a=a.direction,r=t.normal,i=w.Cartesian3.dot(r,a);if(!(Math.abs(i)<v.CesiumMath.EPSILON15)){t=(-t.distance-w.Cartesian3.dot(r,n))/i;if(!(t<0))return e=w.Cartesian3.multiplyByScalar(a,t,e),w.Cartesian3.add(n,e,e)}}},M=new w.Cartesian3,m=new w.Cartesian3,g=new w.Cartesian3,p=new w.Cartesian3,x=new w.Cartesian3,u=(l.rayTriangleParametric=function(a,t,e,n,r){r=f.defaultValue(r,!1);var i,s,o,u=a.origin,a=a.direction,e=w.Cartesian3.subtract(e,t,M),n=w.Cartesian3.subtract(n,t,m),C=w.Cartesian3.cross(a,n,g),c=w.Cartesian3.dot(e,C);if(r){if(c<v.CesiumMath.EPSILON6)return;if(h=w.Cartesian3.subtract(u,t,p),(l=w.Cartesian3.dot(h,C))<0||c<l)return;if(i=w.Cartesian3.cross(h,e,x),(s=w.Cartesian3.dot(a,i))<0||c<l+s)return;o=w.Cartesian3.dot(n,i)/c}else{if(Math.abs(c)<v.CesiumMath.EPSILON6)return;var l,r=1/c,h=w.Cartesian3.subtract(u,t,p);if((l=w.Cartesian3.dot(h,C)*r)<0||1<l)return;if(i=w.Cartesian3.cross(h,e,x),(s=w.Cartesian3.dot(a,i)*r)<0||1<l+s)return;o=w.Cartesian3.dot(n,i)*r}return o},l.rayTriangle=function(a,t,e,n,r,i){t=l.rayTriangleParametric(a,t,e,n,r);if(f.defined(t)&&!(t<0))return f.defined(i)||(i=new w.Cartesian3),w.Cartesian3.multiplyByScalar(a.direction,t,i),w.Cartesian3.add(a.origin,i,i)},new e);l.lineSegmentTriangle=function(a,t,e,n,r,i,s){var o=u,e=(w.Cartesian3.clone(a,o.origin),w.Cartesian3.subtract(t,a,o.direction),w.Cartesian3.normalize(o.direction,o.direction),l.rayTriangleParametric(o,e,n,r,i));if(!(!f.defined(e)||e<0||e>w.Cartesian3.distance(a,t)))return f.defined(s)||(s=new w.Cartesian3),w.Cartesian3.multiplyByScalar(o.direction,e,s),w.Cartesian3.add(o.origin,s,s)};var i={root0:0,root1:0};function h(a,t,e){f.defined(e)||(e=new R.Interval);var n=a.origin,a=a.direction,r=t.center,t=t.radius*t.radius,n=w.Cartesian3.subtract(n,r,g),r=function(a,t,e,n){var r,i,e=t*t-4*a*e;if(!(e<0))return 0<e?(i=1/(2*a),(r=(-t+(e=Math.sqrt(e)))*i)<(e=(-t-e)*i)?(n.root0=r,n.root1=e):(n.root0=e,n.root1=r),n):0!=(i=-t/(2*a))?(n.root0=n.root1=i,n):void 0}(w.Cartesian3.dot(a,a),2*w.Cartesian3.dot(a,n),w.Cartesian3.magnitudeSquared(n)-t,i);if(f.defined(r))return e.start=r.root0,e.stop=r.root1,e}l.raySphere=function(a,t,e){if(e=h(a,t,e),f.defined(e)&&!(e.stop<0))return e.start=Math.max(e.start,0),e};var y=new e,P=(l.lineSegmentSphere=function(a,t,e,n){var r=y,t=(w.Cartesian3.clone(a,r.origin),w.Cartesian3.subtract(t,a,r.direction)),a=w.Cartesian3.magnitude(t);if(w.Cartesian3.normalize(t,t),n=h(r,e,n),!(!f.defined(n)||n.stop<0||n.start>a))return n.start=Math.max(n.start,0),n.stop=Math.min(n.stop,a),n},new w.Cartesian3),b=new w.Cartesian3;function N(a,t,e){var n=a+t;return v.CesiumMath.sign(a)!==v.CesiumMath.sign(t)&&Math.abs(n/Math.max(Math.abs(a),Math.abs(t)))<e?0:n}l.rayEllipsoid=function(a,t){var e,n,r,i,s,o,u,t=t.oneOverRadii,C=w.Cartesian3.multiplyComponents(t,a.origin,P),t=w.Cartesian3.multiplyComponents(t,a.direction,b),a=w.Cartesian3.magnitudeSquared(C),C=w.Cartesian3.dot(C,t);return 1<a?0<=C||(e=a-1,(o=C*C)<(r=(n=w.Cartesian3.magnitudeSquared(t))*e))?void 0:r<o?(i=C*C-r,(o=(s=-C+Math.sqrt(i))/n)<(u=e/s)?new R.Interval(o,u):{start:u,stop:o}):(u=Math.sqrt(e/n),new R.Interval(u,u)):a<1?(e=a-1,i=C*C-(r=(n=w.Cartesian3.magnitudeSquared(t))*e),s=-C+Math.sqrt(i),new R.Interval(0,s/n)):C<0?(n=w.Cartesian3.magnitudeSquared(t),new R.Interval(0,-C/n)):void 0};var q=new w.Cartesian3,L=new w.Cartesian3,I=new w.Cartesian3,E=new w.Cartesian3,z=new w.Cartesian3,T=new R.Matrix3,U=new R.Matrix3,Z=new R.Matrix3,A=new R.Matrix3,D=new R.Matrix3,W=new R.Matrix3,B=new R.Matrix3,V=new w.Cartesian3,k=new w.Cartesian3,F=new w.Cartographic,G=(l.grazingAltitudeLocation=function(a,t){var e=a.origin,n=a.direction;if(!w.Cartesian3.equals(e,w.Cartesian3.ZERO)){var r=t.geodeticSurfaceNormal(e,q);if(0<=w.Cartesian3.dot(n,r))return e}var r=f.defined(this.rayEllipsoid(a,t)),a=t.transformPositionToScaledSpace(n,q),i=w.Cartesian3.normalize(a,a),a=w.Cartesian3.mostOrthogonalAxis(a,E),a=w.Cartesian3.normalize(w.Cartesian3.cross(a,i,L),L),s=w.Cartesian3.normalize(w.Cartesian3.cross(i,a,I),I),o=T,i=(o[0]=i.x,o[1]=i.y,o[2]=i.z,o[3]=a.x,o[4]=a.y,o[5]=a.z,o[6]=s.x,o[7]=s.y,o[8]=s.z,R.Matrix3.transpose(o,U)),u=R.Matrix3.fromScale(t.radii,Z),a=R.Matrix3.fromScale(t.oneOverRadii,A),s=D,i=(s[0]=0,s[1]=-n.z,s[2]=n.y,s[3]=n.z,s[4]=0,s[5]=-n.x,s[6]=-n.y,s[7]=n.x,s[8]=0,R.Matrix3.multiply(R.Matrix3.multiply(i,a,W),s,W)),a=R.Matrix3.multiply(R.Matrix3.multiply(i,u,B),o,B),s=R.Matrix3.multiplyByVector(i,e,z),C=function(a,t,e,n,r){var i,s=n*n,o=r*r,u=(a[R.Matrix3.COLUMN1ROW1]-a[R.Matrix3.COLUMN2ROW2])*o,C=r*(n*N(a[R.Matrix3.COLUMN1ROW0],a[R.Matrix3.COLUMN0ROW1],v.CesiumMath.EPSILON15)+t.y),c=a[R.Matrix3.COLUMN0ROW0]*s+a[R.Matrix3.COLUMN2ROW2]*o+n*t.x+e,l=o*N(a[R.Matrix3.COLUMN2ROW1],a[R.Matrix3.COLUMN1ROW2],v.CesiumMath.EPSILON15),h=r*(n*N(a[R.Matrix3.COLUMN2ROW0],a[R.Matrix3.COLUMN0ROW2])+t.z),M=[];if(0==h&&0==l)0!==(i=S.computeRealRoots(u,C,c)).length&&(s=i[0],e=Math.sqrt(Math.max(1-s*s,0)),M.push(new w.Cartesian3(n,r*s,r*-e)),M.push(new w.Cartesian3(n,r*s,r*e)),2===i.length)&&(o=i[1],a=Math.sqrt(Math.max(1-o*o,0)),M.push(new w.Cartesian3(n,r*o,r*-a)),M.push(new w.Cartesian3(n,r*o,r*a)));else{t=h*h,s=l*l,e=h*l,o=u*u+s,a=2*(C*u+e),s=2*c*u+C*C-s+t,e=2*(c*C-e),t=c*c-t;if(0!=o||0!=a||0!=s||0!=e){var m=(i=O.computeRealRoots(o,a,s,e,t)).length;if(0!==m)for(var d=0;d<m;++d){var f=i[d],g=f*f,p=Math.max(1-g,0),p=Math.sqrt(p),g=v.CesiumMath.sign(u)===v.CesiumMath.sign(c)?N(u*g+c,C*f,v.CesiumMath.EPSILON12):v.CesiumMath.sign(c)===v.CesiumMath.sign(C*f)?N(u*g,C*f+c,v.CesiumMath.EPSILON12):N(u*g+C*f,c,v.CesiumMath.EPSILON12),g=g*N(l*f,h,v.CesiumMath.EPSILON15);g<0?M.push(new w.Cartesian3(n,r*f,r*p)):0<g?M.push(new w.Cartesian3(n,r*f,r*-p)):0!==p?(M.push(new w.Cartesian3(n,r*f,r*-p)),M.push(new w.Cartesian3(n,r*f,r*p)),++d):M.push(new w.Cartesian3(n,r*f,r*p))}}}return M}(a,w.Cartesian3.negate(s,q),0,0,1),c=C.length;if(0<c){for(var l=w.Cartesian3.clone(w.Cartesian3.ZERO,k),h=Number.NEGATIVE_INFINITY,M=0;M<c;++M){var m=R.Matrix3.multiplyByVector(u,R.Matrix3.multiplyByVector(o,C[M],V),V),d=w.Cartesian3.normalize(w.Cartesian3.subtract(m,e,E),E),d=w.Cartesian3.dot(d,n);h<d&&(h=d,l=w.Cartesian3.clone(m,l))}i=t.cartesianToCartographic(l,F),h=v.CesiumMath.clamp(h,0,1),a=w.Cartesian3.magnitude(w.Cartesian3.subtract(l,e,E))*Math.sqrt(1-h*h);return i.height=r?-a:a,t.cartographicToCartesian(i,new w.Cartesian3)}},new w.Cartesian3);l.lineSegmentPlane=function(a,t,e,n){f.defined(n)||(n=new w.Cartesian3);var t=w.Cartesian3.subtract(t,a,G),r=e.normal,i=w.Cartesian3.dot(r,t);if(!(Math.abs(i)<v.CesiumMath.EPSILON6)){r=w.Cartesian3.dot(r,a),e=-(e.distance+r)/i;if(!(e<0||1<e))return w.Cartesian3.multiplyByScalar(t,e,n),w.Cartesian3.add(a,n,n),n}},l.trianglePlaneIntersection=function(a,t,e,n){var r,i,s=n.normal,o=n.distance,u=w.Cartesian3.dot(s,a)+o<0,C=w.Cartesian3.dot(s,t)+o<0,s=w.Cartesian3.dot(s,e)+o<0,o=0;if(1!=(o=(o+=u?1:0)+(C?1:0)+(s?1:0))&&2!=o||(r=new w.Cartesian3,i=new w.Cartesian3),1==o){if(u)return l.lineSegmentPlane(a,t,n,r),l.lineSegmentPlane(a,e,n,i),{positions:[a,t,e,r,i],indices:[0,3,4,1,2,4,1,4,3]};if(C)return l.lineSegmentPlane(t,e,n,r),l.lineSegmentPlane(t,a,n,i),{positions:[a,t,e,r,i],indices:[1,3,4,2,0,4,2,4,3]};if(s)return l.lineSegmentPlane(e,a,n,r),l.lineSegmentPlane(e,t,n,i),{positions:[a,t,e,r,i],indices:[2,3,4,0,1,4,0,4,3]}}else if(2==o){if(!u)return l.lineSegmentPlane(t,a,n,r),l.lineSegmentPlane(e,a,n,i),{positions:[a,t,e,r,i],indices:[1,2,4,1,4,3,0,3,4]};if(!C)return l.lineSegmentPlane(e,t,n,r),l.lineSegmentPlane(a,t,n,i),{positions:[a,t,e,r,i],indices:[2,0,4,2,4,3,1,3,4]};if(!s)return l.lineSegmentPlane(a,e,n,r),l.lineSegmentPlane(t,e,n,i),{positions:[a,t,e,r,i],indices:[0,1,4,0,4,3,2,3,4]}}},a.IntersectionTests=l,a.Ray=e});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
define(["exports","./Cartesian2-c1eb9da0","./when-ae2e0b60","./Check-f996273c","./Transforms-badb9ae9","./Math-5bbcea10"],function(a,w,f,t,R,v){"use strict";var S={};function s(a,t,e){var n=a+t;return v.CesiumMath.sign(a)!==v.CesiumMath.sign(t)&&Math.abs(n/Math.max(Math.abs(a),Math.abs(t)))<e?0:n}S.computeDiscriminant=function(a,t,e){return t*t-4*a*e},S.computeRealRoots=function(a,t,e){var n,r,i;return 0===a?0===t?[]:[-e/t]:0===t?0===e||(r=Math.abs(e))<(i=Math.abs(a))&&r/i<v.CesiumMath.EPSILON14?[0,0]:i<r&&i/r<v.CesiumMath.EPSILON14||(n=-e/a)<0?[]:[-(i=Math.sqrt(n)),i]:0===e?(n=-t/a)<0?[n,0]:[0,n]:(r=s(t*t,-(4*a*e),v.CesiumMath.EPSILON14))<0?[]:(i=-.5*s(t,v.CesiumMath.sign(t)*Math.sqrt(r),v.CesiumMath.EPSILON14),0<t?[i/a,e/i]:[e/i,i/a])};var d={};function o(a,t,e,n){var r,i,s,o,u,t=t/3,e=e/3,C=a*e,c=t*n,l=t*t,h=e*e,M=a*e-l,m=a*n-t*e,d=t*n-h,f=4*M*d-m*m;return f<0?(u=(u=(r=(o=-((i=C*h<=l*c?-2*t*(s=M)+(o=a)*m:-(o=n)*m+2*e*(s=d))<0?-1:1)*Math.abs(o)*Math.sqrt(-f))-i)/2)<0?-Math.pow(-u,1/3):Math.pow(u,1/3),o=r===o?-u:-s/u,i=s<=0?u+o:-i/(u*u+o*o+s),C*h<=l*c?[(i-t)/a]:[-n/(i+e)]):(o=-2*t*(u=M)+a*m,C=-n*m+2*e*(s=d),h=Math.sqrt(f),l=Math.sqrt(3)/2,c=Math.abs(Math.atan2(a*h,-o)/3),o=(d=2*t<(r=(i=2*Math.sqrt(-u))*(M=Math.cos(c)))+(m=i*(-M/2-l*Math.sin(c)))?r-t:m-t)/(f=a),c=Math.abs(Math.atan2(n*h,-C)/3),h=(u=-n)/(a=(r=(i=2*Math.sqrt(-s))*(M=Math.cos(c)))+(m=i*(-M/2-l*Math.sin(c)))<2*e?r+e:m+e),o<=(n=(e*(C=-d*a-f*u)-t*(d*u))/(-t*C+e*(f*a)))?o<=h?n<=h?[o,n,h]:[o,h,n]:[h,o,n]:o<=h?[n,o,h]:n<=h?[n,h,o]:[h,n,o])}d.computeDiscriminant=function(a,t,e,n){var r=t*t,i=e*e;return 18*a*t*e*n+r*i-27*(a*a)*(n*n)-4*(a*i*e+r*t*n)},d.computeRealRoots=function(a,t,e,n){var r,i,s;return 0===a?S.computeRealRoots(t,e,n):0===t?0===e?0===n?[0,0,0]:[s=(i=-n/a)<0?-Math.pow(-i,1/3):Math.pow(i,1/3),s,s]:0===n?0===(r=S.computeRealRoots(a,0,e)).Length?[0]:[r[0],0,r[1]]:o(a,0,e,n):0===e?0===n?(i=-t/a)<0?[i,0,0]:[0,0,i]:o(a,t,0,n):0===n?0===(r=S.computeRealRoots(a,t,e)).length?[0]:r[1]<=0?[r[0],r[1],0]:0<=r[0]?[0,r[0],r[1]]:[r[0],0,r[1]]:o(a,t,e,n)};var O={};function C(a,t,e,n){var r=a*a,i=t-3*r/8,s=e-t*a/2+r*a/8,n=n-e*a/4+t*r/16-3*r*r/256,e=d.computeRealRoots(1,2*i,i*i-4*n,-s*s);if(0<e.length){t=-a/4,r=e[e.length-1];if(Math.abs(r)<v.CesiumMath.EPSILON14){var a=S.computeRealRoots(1,i,n);if(2===a.length){var o,u,e=a[0],n=a[1];if(0<=e&&0<=n)return a=Math.sqrt(e),[t-(u=Math.sqrt(n)),t-a,t+a,t+u];if(0<=e&&n<0)return[t-(o=Math.sqrt(e)),t+o];if(e<0&&0<=n)return[t-(o=Math.sqrt(n)),t+o]}return[]}if(0<r)return u=(i+r+s/(a=Math.sqrt(r)))/2,e=S.computeRealRoots(1,a,(i+r-s/a)/2),n=S.computeRealRoots(1,-a,u),0!==e.length?(e[0]+=t,e[1]+=t,0!==n.length?(n[0]+=t,n[1]+=t,e[1]<=n[0]?[e[0],e[1],n[0],n[1]]:n[1]<=e[0]?[n[0],n[1],e[0],e[1]]:e[0]>=n[0]&&e[1]<=n[1]?[n[0],e[0],e[1],n[1]]:n[0]>=e[0]&&n[1]<=e[1]?[e[0],n[0],n[1],e[1]]:e[0]>n[0]&&e[0]<n[1]?[n[0],e[0],n[1],e[1]]:[e[0],n[0],e[1],n[1]]):e):0!==n.length?(n[0]+=t,n[1]+=t,n):[]}return[]}function c(a,t,e,n){var r=a*a,i=d.computeRealRoots(1,-2*t,e*a+t*t-4*n,r*n-e*t*a+e*e);if(0<i.length){var s,o,u,C,c,i=i[0],t=t-i,l=t*t,h=a/2,t=t/2,M=l-4*n,l=l+4*Math.abs(n),m=r-4*i,r=r+4*Math.abs(i),r=(m=i<0||M*r<m*l?(s=(r=Math.sqrt(m))/2,0===r?0:(a*t-e)/r):(s=0===(l=Math.sqrt(M))?0:(a*t-e)/l,l/2),0==h&&0===s?u=o=0:v.CesiumMath.sign(h)===v.CesiumMath.sign(s)?u=i/(o=h+s):o=i/(u=h-s),0==t&&0===m?c=C=0:v.CesiumMath.sign(t)===v.CesiumMath.sign(m)?c=n/(C=t+m):C=n/(c=t-m),S.computeRealRoots(1,o,C)),M=S.computeRealRoots(1,u,c);if(0!==r.length)return 0!==M.length?r[1]<=M[0]?[r[0],r[1],M[0],M[1]]:M[1]<=r[0]?[M[0],M[1],r[0],r[1]]:r[0]>=M[0]&&r[1]<=M[1]?[M[0],r[0],r[1],M[1]]:M[0]>=r[0]&&M[1]<=r[1]?[r[0],M[0],M[1],r[1]]:r[0]>M[0]&&r[0]<M[1]?[M[0],r[0],M[1],r[1]]:[r[0],M[0],r[1],M[1]]:r;if(0!==M.length)return M}return[]}function e(a,t){t=w.Cartesian3.clone(f.defaultValue(t,w.Cartesian3.ZERO)),w.Cartesian3.equals(t,w.Cartesian3.ZERO)||w.Cartesian3.normalize(t,t),this.origin=w.Cartesian3.clone(f.defaultValue(a,w.Cartesian3.ZERO)),this.direction=t}O.computeDiscriminant=function(a,t,e,n,r){var i=a*a,s=t*t,o=s*t,u=e*e,C=u*e,c=n*n,l=c*n,h=r*r;return s*u*c-4*o*l-4*a*C*c+18*a*t*e*l-27*i*c*c+256*(i*a)*(h*r)+r*(18*o*e*n-4*s*C+16*a*u*u-80*a*t*u*n-6*a*s*c+144*i*e*c)+h*(144*a*s*e-27*s*s-128*i*u-192*i*t*n)},O.computeRealRoots=function(a,t,e,n,r){if(Math.abs(a)<v.CesiumMath.EPSILON15)return d.computeRealRoots(t,e,n,r);var i=t/a,s=e/a,o=n/a,u=r/a,t=i<0?1:0;switch(t=(t=(t+=s<0?1+t:t)+(o<0?1+t:t))+(u<0?1+t:t)){case 0:return C(i,s,o,u);case 1:case 2:return c(i,s,o,u);case 3:case 4:return C(i,s,o,u);case 5:return c(i,s,o,u);case 6:case 7:return C(i,s,o,u);case 8:return c(i,s,o,u);case 9:case 10:return C(i,s,o,u);case 11:return c(i,s,o,u);case 12:case 13:case 14:case 15:return C(i,s,o,u);default:return}},e.clone=function(a,t){if(f.defined(a))return f.defined(t)?(t.origin=w.Cartesian3.clone(a.origin),t.direction=w.Cartesian3.clone(a.direction),t):new e(a.origin,a.direction)},e.getPoint=function(a,t,e){return f.defined(e)||(e=new w.Cartesian3),e=w.Cartesian3.multiplyByScalar(a.direction,t,e),w.Cartesian3.add(a.origin,e,e)};var l={rayPlane:function(a,t,e){f.defined(e)||(e=new w.Cartesian3);var n=a.origin,a=a.direction,r=t.normal,i=w.Cartesian3.dot(r,a);if(!(Math.abs(i)<v.CesiumMath.EPSILON15)){t=(-t.distance-w.Cartesian3.dot(r,n))/i;if(!(t<0))return e=w.Cartesian3.multiplyByScalar(a,t,e),w.Cartesian3.add(n,e,e)}}},M=new w.Cartesian3,m=new w.Cartesian3,g=new w.Cartesian3,p=new w.Cartesian3,x=new w.Cartesian3,u=(l.rayTriangleParametric=function(a,t,e,n,r){r=f.defaultValue(r,!1);var i,s,o,u=a.origin,a=a.direction,e=w.Cartesian3.subtract(e,t,M),n=w.Cartesian3.subtract(n,t,m),C=w.Cartesian3.cross(a,n,g),c=w.Cartesian3.dot(e,C);if(r){if(c<v.CesiumMath.EPSILON6)return;if(h=w.Cartesian3.subtract(u,t,p),(l=w.Cartesian3.dot(h,C))<0||c<l)return;if(i=w.Cartesian3.cross(h,e,x),(s=w.Cartesian3.dot(a,i))<0||c<l+s)return;o=w.Cartesian3.dot(n,i)/c}else{if(Math.abs(c)<v.CesiumMath.EPSILON6)return;var l,r=1/c,h=w.Cartesian3.subtract(u,t,p);if((l=w.Cartesian3.dot(h,C)*r)<0||1<l)return;if(i=w.Cartesian3.cross(h,e,x),(s=w.Cartesian3.dot(a,i)*r)<0||1<l+s)return;o=w.Cartesian3.dot(n,i)*r}return o},l.rayTriangle=function(a,t,e,n,r,i){t=l.rayTriangleParametric(a,t,e,n,r);if(f.defined(t)&&!(t<0))return f.defined(i)||(i=new w.Cartesian3),w.Cartesian3.multiplyByScalar(a.direction,t,i),w.Cartesian3.add(a.origin,i,i)},new e);l.lineSegmentTriangle=function(a,t,e,n,r,i,s){var o=u,e=(w.Cartesian3.clone(a,o.origin),w.Cartesian3.subtract(t,a,o.direction),w.Cartesian3.normalize(o.direction,o.direction),l.rayTriangleParametric(o,e,n,r,i));if(!(!f.defined(e)||e<0||e>w.Cartesian3.distance(a,t)))return f.defined(s)||(s=new w.Cartesian3),w.Cartesian3.multiplyByScalar(o.direction,e,s),w.Cartesian3.add(o.origin,s,s)};var i={root0:0,root1:0};function h(a,t,e){f.defined(e)||(e=new R.Interval);var n=a.origin,a=a.direction,r=t.center,t=t.radius*t.radius,n=w.Cartesian3.subtract(n,r,g),r=function(a,t,e,n){var r,i,e=t*t-4*a*e;if(!(e<0))return 0<e?(i=1/(2*a),(r=(-t+(e=Math.sqrt(e)))*i)<(e=(-t-e)*i)?(n.root0=r,n.root1=e):(n.root0=e,n.root1=r),n):0!=(i=-t/(2*a))?(n.root0=n.root1=i,n):void 0}(w.Cartesian3.dot(a,a),2*w.Cartesian3.dot(a,n),w.Cartesian3.magnitudeSquared(n)-t,i);if(f.defined(r))return e.start=r.root0,e.stop=r.root1,e}l.raySphere=function(a,t,e){if(e=h(a,t,e),f.defined(e)&&!(e.stop<0))return e.start=Math.max(e.start,0),e};var y=new e,P=(l.lineSegmentSphere=function(a,t,e,n){var r=y,t=(w.Cartesian3.clone(a,r.origin),w.Cartesian3.subtract(t,a,r.direction)),a=w.Cartesian3.magnitude(t);if(w.Cartesian3.normalize(t,t),n=h(r,e,n),!(!f.defined(n)||n.stop<0||n.start>a))return n.start=Math.max(n.start,0),n.stop=Math.min(n.stop,a),n},new w.Cartesian3),b=new w.Cartesian3;function N(a,t,e){var n=a+t;return v.CesiumMath.sign(a)!==v.CesiumMath.sign(t)&&Math.abs(n/Math.max(Math.abs(a),Math.abs(t)))<e?0:n}l.rayEllipsoid=function(a,t){var e,n,r,i,s,o,u,t=t.oneOverRadii,C=w.Cartesian3.multiplyComponents(t,a.origin,P),t=w.Cartesian3.multiplyComponents(t,a.direction,b),a=w.Cartesian3.magnitudeSquared(C),C=w.Cartesian3.dot(C,t);return 1<a?0<=C||(e=a-1,(o=C*C)<(r=(n=w.Cartesian3.magnitudeSquared(t))*e))?void 0:r<o?(i=C*C-r,(o=(s=-C+Math.sqrt(i))/n)<(u=e/s)?new R.Interval(o,u):{start:u,stop:o}):(u=Math.sqrt(e/n),new R.Interval(u,u)):a<1?(e=a-1,i=C*C-(r=(n=w.Cartesian3.magnitudeSquared(t))*e),s=-C+Math.sqrt(i),new R.Interval(0,s/n)):C<0?(n=w.Cartesian3.magnitudeSquared(t),new R.Interval(0,-C/n)):void 0};var q=new w.Cartesian3,L=new w.Cartesian3,I=new w.Cartesian3,E=new w.Cartesian3,z=new w.Cartesian3,T=new R.Matrix3,U=new R.Matrix3,Z=new R.Matrix3,A=new R.Matrix3,D=new R.Matrix3,W=new R.Matrix3,B=new R.Matrix3,V=new w.Cartesian3,k=new w.Cartesian3,F=new w.Cartographic,G=(l.grazingAltitudeLocation=function(a,t){var e=a.origin,n=a.direction;if(!w.Cartesian3.equals(e,w.Cartesian3.ZERO)){var r=t.geodeticSurfaceNormal(e,q);if(0<=w.Cartesian3.dot(n,r))return e}var r=f.defined(this.rayEllipsoid(a,t)),a=t.transformPositionToScaledSpace(n,q),i=w.Cartesian3.normalize(a,a),a=w.Cartesian3.mostOrthogonalAxis(a,E),a=w.Cartesian3.normalize(w.Cartesian3.cross(a,i,L),L),s=w.Cartesian3.normalize(w.Cartesian3.cross(i,a,I),I),o=T,i=(o[0]=i.x,o[1]=i.y,o[2]=i.z,o[3]=a.x,o[4]=a.y,o[5]=a.z,o[6]=s.x,o[7]=s.y,o[8]=s.z,R.Matrix3.transpose(o,U)),u=R.Matrix3.fromScale(t.radii,Z),a=R.Matrix3.fromScale(t.oneOverRadii,A),s=D,i=(s[0]=0,s[1]=-n.z,s[2]=n.y,s[3]=n.z,s[4]=0,s[5]=-n.x,s[6]=-n.y,s[7]=n.x,s[8]=0,R.Matrix3.multiply(R.Matrix3.multiply(i,a,W),s,W)),a=R.Matrix3.multiply(R.Matrix3.multiply(i,u,B),o,B),s=R.Matrix3.multiplyByVector(i,e,z),C=function(a,t,e,n,r){var i,s=n*n,o=r*r,u=(a[R.Matrix3.COLUMN1ROW1]-a[R.Matrix3.COLUMN2ROW2])*o,C=r*(n*N(a[R.Matrix3.COLUMN1ROW0],a[R.Matrix3.COLUMN0ROW1],v.CesiumMath.EPSILON15)+t.y),c=a[R.Matrix3.COLUMN0ROW0]*s+a[R.Matrix3.COLUMN2ROW2]*o+n*t.x+e,l=o*N(a[R.Matrix3.COLUMN2ROW1],a[R.Matrix3.COLUMN1ROW2],v.CesiumMath.EPSILON15),h=r*(n*N(a[R.Matrix3.COLUMN2ROW0],a[R.Matrix3.COLUMN0ROW2])+t.z),M=[];if(0==h&&0==l)0!==(i=S.computeRealRoots(u,C,c)).length&&(s=i[0],e=Math.sqrt(Math.max(1-s*s,0)),M.push(new w.Cartesian3(n,r*s,r*-e)),M.push(new w.Cartesian3(n,r*s,r*e)),2===i.length)&&(o=i[1],a=Math.sqrt(Math.max(1-o*o,0)),M.push(new w.Cartesian3(n,r*o,r*-a)),M.push(new w.Cartesian3(n,r*o,r*a)));else{t=h*h,s=l*l,e=h*l,o=u*u+s,a=2*(C*u+e),s=2*c*u+C*C-s+t,e=2*(c*C-e),t=c*c-t;if(0!=o||0!=a||0!=s||0!=e){var m=(i=O.computeRealRoots(o,a,s,e,t)).length;if(0!==m)for(var d=0;d<m;++d){var f=i[d],g=f*f,p=Math.max(1-g,0),p=Math.sqrt(p),g=v.CesiumMath.sign(u)===v.CesiumMath.sign(c)?N(u*g+c,C*f,v.CesiumMath.EPSILON12):v.CesiumMath.sign(c)===v.CesiumMath.sign(C*f)?N(u*g,C*f+c,v.CesiumMath.EPSILON12):N(u*g+C*f,c,v.CesiumMath.EPSILON12),g=g*N(l*f,h,v.CesiumMath.EPSILON15);g<0?M.push(new w.Cartesian3(n,r*f,r*p)):0<g?M.push(new w.Cartesian3(n,r*f,r*-p)):0!==p?(M.push(new w.Cartesian3(n,r*f,r*-p)),M.push(new w.Cartesian3(n,r*f,r*p)),++d):M.push(new w.Cartesian3(n,r*f,r*p))}}}return M}(a,w.Cartesian3.negate(s,q),0,0,1),c=C.length;if(0<c){for(var l=w.Cartesian3.clone(w.Cartesian3.ZERO,k),h=Number.NEGATIVE_INFINITY,M=0;M<c;++M){var m=R.Matrix3.multiplyByVector(u,R.Matrix3.multiplyByVector(o,C[M],V),V),d=w.Cartesian3.normalize(w.Cartesian3.subtract(m,e,E),E),d=w.Cartesian3.dot(d,n);h<d&&(h=d,l=w.Cartesian3.clone(m,l))}i=t.cartesianToCartographic(l,F),h=v.CesiumMath.clamp(h,0,1),a=w.Cartesian3.magnitude(w.Cartesian3.subtract(l,e,E))*Math.sqrt(1-h*h);return i.height=r?-a:a,t.cartographicToCartesian(i,new w.Cartesian3)}},new w.Cartesian3);l.lineSegmentPlane=function(a,t,e,n){f.defined(n)||(n=new w.Cartesian3);var t=w.Cartesian3.subtract(t,a,G),r=e.normal,i=w.Cartesian3.dot(r,t);if(!(Math.abs(i)<v.CesiumMath.EPSILON6)){r=w.Cartesian3.dot(r,a),e=-(e.distance+r)/i;if(!(e<0||1<e))return w.Cartesian3.multiplyByScalar(t,e,n),w.Cartesian3.add(a,n,n),n}},l.trianglePlaneIntersection=function(a,t,e,n){var r,i,s=n.normal,o=n.distance,u=w.Cartesian3.dot(s,a)+o<0,C=w.Cartesian3.dot(s,t)+o<0,s=w.Cartesian3.dot(s,e)+o<0,o=0;if(1!=(o=(o+=u?1:0)+(C?1:0)+(s?1:0))&&2!=o||(r=new w.Cartesian3,i=new w.Cartesian3),1==o){if(u)return l.lineSegmentPlane(a,t,n,r),l.lineSegmentPlane(a,e,n,i),{positions:[a,t,e,r,i],indices:[0,3,4,1,2,4,1,4,3]};if(C)return l.lineSegmentPlane(t,e,n,r),l.lineSegmentPlane(t,a,n,i),{positions:[a,t,e,r,i],indices:[1,3,4,2,0,4,2,4,3]};if(s)return l.lineSegmentPlane(e,a,n,r),l.lineSegmentPlane(e,t,n,i),{positions:[a,t,e,r,i],indices:[2,3,4,0,1,4,0,4,3]}}else if(2==o){if(!u)return l.lineSegmentPlane(t,a,n,r),l.lineSegmentPlane(e,a,n,i),{positions:[a,t,e,r,i],indices:[1,2,4,1,4,3,0,3,4]};if(!C)return l.lineSegmentPlane(e,t,n,r),l.lineSegmentPlane(a,t,n,i),{positions:[a,t,e,r,i],indices:[2,0,4,2,4,3,1,3,4]};if(!s)return l.lineSegmentPlane(a,e,n,r),l.lineSegmentPlane(t,e,n,i),{positions:[a,t,e,r,i],indices:[0,1,4,0,4,3,2,3,4]}}},a.IntersectionTests=l,a.Ray=e});
|