Advertisement
Guest User

Untitled

a guest
Dec 18th, 2013
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. require(['Cesium'], function(Cesium) {
  2.     "use strict";
  3.  
  4.     var viewer = new Cesium.Viewer('cesiumContainer');
  5.     var scene = viewer.scene;
  6.     var primitives = scene.getPrimitives();
  7.     var ellipsoid = viewer.centralBody.getEllipsoid();
  8.    
  9.     // start and end points on the surface of the earth
  10.     var startPoint = ellipsoid.cartographicToCartesian(Cesium.Cartographic.fromDegrees(-90, 40, 0.0));
  11.     var endPoint = ellipsoid.cartographicToCartesian(Cesium.Cartographic.fromDegrees(-80, 40, 0.0));
  12.     var midpointCartesian = ellipsoid.cartographicToCartesian(Cesium.Cartographic.fromDegrees(-85, 45, 0.0));
  13.  
  14.     // create a hermite spline that goes through these three points
  15.     var hermiteSpline = new Cesium.HermiteSpline({
  16.         times : [ 0.0, 0.5, 1.0 ],
  17.         points : [
  18.             startPoint,
  19.             midpointCartesian,
  20.             endPoint
  21.         ]
  22.     });
  23.    
  24.     // create a 20 point polyline that follows the spline
  25.     var polylinePoints = [];
  26.     for(var i=0; i<20; ++i) {
  27.         polylinePoints.push(hermiteSpline.evaluate(i/20));
  28.     }
  29.  
  30.     var polylineCollection = new Cesium.PolylineCollection();
  31.     var polyline = polylineCollection.add();
  32.     polyline.setPositions(polylinePoints);
  33.  
  34.     primitives.add(polylineCollection);
  35.    
  36.     // Red tube
  37.     var redTube = new Cesium.GeometryInstance({
  38.         geometry : new Cesium.PolylineVolumeGeometry({
  39.             polylinePositions : polylinePoints,
  40.             vertexFormat : Cesium.PerInstanceColorAppearance.VERTEX_FORMAT,
  41.             shapePositions : Cesium.Shapes.compute2DCircle(60000),
  42.             cornerType : Cesium.CornerType.ROUNDED
  43.         }),
  44.         modelMatrix: Cesium.Matrix4.multiply(
  45.             Cesium.Matrix4.IDENTITY, Cesium.Matrix4.fromRotationTranslation(Cesium.Matrix3.fromRotationY(0.2), new Cesium.Cartesian3(0.0, 0.0, 0.0))),
  46.         attributes : {
  47.             color : Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.RED)
  48.         }
  49.     });
  50.  
  51.     // Add instances to primitives
  52.     primitives.add(new Cesium.Primitive({
  53.         geometryInstances : [redTube],
  54.         appearance : new Cesium.PerInstanceColorAppearance({
  55.                 translucent : false,
  56.                 closed : true
  57.             })
  58.         }));
  59.  
  60.     Sandcastle.finishedLoading();
  61. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement