CylinderGeometryUpdater是一个用于更新cesiumjs中CylinderGeometry的几何更新器。
CylinderGeometryUpdater可以用于维护一个CylinderGeometry实例的几何属性,例如高度、半径、材质等,以保持几何的正确性。它可以与CylinderPrimitive一起使用。
CylinderGeometryUpdater具有以下属性:
entity:可选参数,用于指定与几何更新器关联的实体。若指定该实体,几何更新器将根据实体的状态更新几何属性。若未指定实体,则用户需要手动维护几何属性。
scene:用于指定当前场景。
isDynamic:用于指定几何是否动态。动态几何会根据实体的状态变化而更新,非动态几何需要手动调用updateGeometry()方法更新几何。
_attributes:保存几何的属性,例如半径、高度等。
_options:保存几何的配置项,例如颜色、纹理等。
_geometryChanged:表示几何是否已经改变。
_outlineGeometry:保存轮廓几何信息。
_workerName: 用于指定在workStealing模式下的worker文件名。默认为'createCylinderGeometry'。
CylinderGeometryUpdater具有以下方法:
setCylinderLength(length): 用于设置圆柱体的高度。
setCylinderTopRadius(radius): 用于设置圆柱体的顶部半径。
setCylinderBottomRadius(radius): 用于设置圆柱体的底部半径。
setCylinderSlicePartitions(slicePartitions): 用于设置圆柱体切片数。
setCylinderStackPartitions(stackPartitions): 用于设置圆柱体堆叠数。
updateGeometry(): 用于手动更新几何属性。更改几何属性之后,需要调用该方法更新几何。
以下是一个使用CylinderGeometryUpdater的示例:
var cylinder = new Cesium.CylinderPrimitive({
id: 'myCylinder',
cylinder: {
length: 200000.0,
topRadius: 80000.0,
bottomRadius: 80000.0,
slices: 8,
stacks: 1,
material: Cesium.Color.RED.withAlpha(0.5)
},
show: true
});
var cylinderUpdater = new Cesium.CylinderGeometryUpdater({
scene: viewer.scene,
isDynamic: false,
entity: myEntity
});
cylinderUpdater.setCylinderLength(300000.0);
cylinderUpdater.setCylinderTopRadius(90000.0);
cylinderUpdater.updateGeometry();