Cesium.Math.setRandomNumberSeed(1234);
var viewer = new Cesium.Viewer('cesiumContainer', { infoBox : false });
var entities = viewer.entities;
var scene = viewer.scene;
// Example 1: Draw a green cylinder and position with
// a model matrix.
// Cylinder geometries are initially centered on the origin.
// We can use a model matrix to position the cylinder on the
// globe surface.
var length = 400000.0;
var positionOnEllipsoid = Cesium.Cartesian3.fromDegrees(-100.0, 40.0);
var modelMatrix = Cesium.Matrix4.multiplyByTranslation(
Cesium.Transforms.eastNorthUpToFixedFrame(positionOnEllipsoid),
new Cesium.Cartesian3(0.0, 0.0, length * 0.5), new Cesium.Matrix4()
);
// Create the cylinder geometry.
var cylinderGeometry = new Cesium.CylinderGeometry({
length : length,
topRadius : 200000.0,
bottomRadius : 200000.0,
vertexFormat : Cesium.PerInstanceColorAppearance.VERTEX_FORMAT
});
// Create a geometry instance using the cylinder geometry
// created above. We can also specify a color attribute,
// in this case, we're creating a solid green color.
var greenCylinder = new Cesium.GeometryInstance({
geometry : cylinderGeometry,
modelMatrix : modelMatrix,
attributes : {
color : Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.GREEN)
}
});
// Example 2: Draw a red cone and position with
// a model matrix.
positionOnEllipsoid = Cesium.Cartesian3.fromDegrees(-105.0, 40.0);
modelMatrix = Cesium.Matrix4.multiplyByTranslation(
Cesium.Transforms.eastNorthUpToFixedFrame(positionOnEllipsoid),
new Cesium.Cartesian3(0.0, 0.0, length * 0.5), new Cesium.Matrix4()
);
// Create the cylinder geometry. To create a cone, set the
// top radius to zero.
cylinderGeometry = new Cesium.CylinderGeometry({
length : length,
topRadius : 0.0,
bottomRadius : 200000.0,
vertexFormat : Cesium.PerInstanceColorAppearance.VERTEX_FORMAT
});
// Create a geometry instance using the cylinder geometry
// created above.
var redCone = new Cesium.GeometryInstance({
geometry : cylinderGeometry,
modelMatrix : modelMatrix,
attributes : {
color : Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.RED)
}
});
// Add both instances to primitives.
scene.primitives.add(new Cesium.Primitive({
geometryInstances : [greenCylinder, redCone],
appearance : new Cesium.PerInstanceColorAppearance({
closed : true,
translucent: false
})
}));
viewer.zoomTo(viewer.entities);
var viewer = new Cesium.Viewer('cesiumContainer', { infoBox : false });
var entities = viewer.entities;
var scene = viewer.scene;
// Example 1: Draw a green cylinder and position with
// a model matrix.
// Cylinder geometries are initially centered on the origin.
// We can use a model matrix to position the cylinder on the
// globe surface.
var length = 400000.0;
var positionOnEllipsoid = Cesium.Cartesian3.fromDegrees(-100.0, 40.0);
var modelMatrix = Cesium.Matrix4.multiplyByTranslation(
Cesium.Transforms.eastNorthUpToFixedFrame(positionOnEllipsoid),
new Cesium.Cartesian3(0.0, 0.0, length * 0.5), new Cesium.Matrix4()
);
// Create the cylinder geometry.
var cylinderGeometry = new Cesium.CylinderGeometry({
length : length,
topRadius : 200000.0,
bottomRadius : 200000.0,
vertexFormat : Cesium.PerInstanceColorAppearance.VERTEX_FORMAT
});
// Create a geometry instance using the cylinder geometry
// created above. We can also specify a color attribute,
// in this case, we're creating a solid green color.
var greenCylinder = new Cesium.GeometryInstance({
geometry : cylinderGeometry,
modelMatrix : modelMatrix,
attributes : {
color : Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.GREEN)
}
});
// Example 2: Draw a red cone and position with
// a model matrix.
positionOnEllipsoid = Cesium.Cartesian3.fromDegrees(-105.0, 40.0);
modelMatrix = Cesium.Matrix4.multiplyByTranslation(
Cesium.Transforms.eastNorthUpToFixedFrame(positionOnEllipsoid),
new Cesium.Cartesian3(0.0, 0.0, length * 0.5), new Cesium.Matrix4()
);
// Create the cylinder geometry. To create a cone, set the
// top radius to zero.
cylinderGeometry = new Cesium.CylinderGeometry({
length : length,
topRadius : 0.0,
bottomRadius : 200000.0,
vertexFormat : Cesium.PerInstanceColorAppearance.VERTEX_FORMAT
});
// Create a geometry instance using the cylinder geometry
// created above.
var redCone = new Cesium.GeometryInstance({
geometry : cylinderGeometry,
modelMatrix : modelMatrix,
attributes : {
color : Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.RED)
}
});
// Add both instances to primitives.
scene.primitives.add(new Cesium.Primitive({
geometryInstances : [greenCylinder, redCone],
appearance : new Cesium.PerInstanceColorAppearance({
closed : true,
translucent: false
})
}));
viewer.zoomTo(viewer.entities);