I also just noticed a perPositionHeight
property, but doing this
entities.add({
polygon: {
hierarchy: new Cesium.PolygonHierarchy([
Cesium.Cartesian3.fromDegrees(-118.0, 30.0, 40),
Cesium.Cartesian3.fromDegrees(-112.0, 32.0, 60),
Cesium.Cartesian3.fromDegrees(-108.0, 30.0, 40),
Cesium.Cartesian3.fromDegrees(-112.0, 32.0, 60),
Cesium.Cartesian3.fromDegrees(-108.0, 35.0, 40),
Cesium.Cartesian3.fromDegrees(-112.0, 32.0, 60),
Cesium.Cartesian3.fromDegrees(-118.0, 35.0, 40),
Cesium.Cartesian3.fromDegrees(-112.0, 32.0, 60)
]
),
perPositionHeight: true,
outline: true,
outlineColor: Cesium.Color.WHITE,
outlineWidth: 4,
material: Cesium.Color.fromRandom({ alpha: 1.0 }),
},
});
do not have any altitude.
I also saw that we can draw using geometry instead
var positions = Cesium.Cartesian3.fromDegreesArrayHeights([
-108.0, 25.0, 100000,
-100.0, 25.0, 100000,
-100.0, 30.0, 100000,
-108.0, 30.0, 300000
]);
var orangePolygonInstance = new Cesium.GeometryInstance({
geometry : Cesium.PolygonGeometry.fromPositions({
positions : positions,
extrudedHeight: 500,
vertexFormat : Cesium.PerInstanceColorAppearance.VERTEX_FORMAT,
perPositionHeight : true
}),
attributes: {
color: Cesium.ColorGeometryInstanceAttribute.fromColor(Cesium.Color.ORANGE)
}
});
scene.primitives.add(new Cesium.Primitive({
geometryInstances : orangePolygonInstance,
appearance : new Cesium.PerInstanceColorAppearance({
closed : true,
translucent : false
})
}));
but this also require base to be same as top (it works for trapezoid, but not for pyramid).
so I guess it’s a new feature ?