ClassificationPrimitive
是CesiumJS中的图元之一,用于以不同的颜色和透明度渲染分类数据。 它从图形处理器中的纹理中读取颜色和透明度值。
var primitive = scene.primitives.add(new ClassificationPrimitive({
geometryInstances : new GeometryInstance({
geometry : new PolygonGeometry({
//...
})
})
}));
以下属性可用于标识和呈现此ClassificationPrimitive
。
用于标识此图元的名称。
提供有关此图元的描述文本。
ClassificationPrimitive
属性以下是ClassificationPrimitive
支持的所有属性。
确定该图元是否显示。
类型: Boolean
默认值: true
用于改变颜色的固定值。
类型: Color
默认值: Color.WHITE
纹理颜色的透明度。
类型: Number
默认值: 1.0
确定是否应忽略该图元中的后代图元的视觉属性更改(如颜色或不透明度),或者应仅忽略外观更改(例如,添加或删除孩子)。
类型: Boolean
默认值: false
确定是否使用每个ClassificationPrimitiveInstance的ClassificationPrimitive对象内的分类信息。
类型: Boolean
默认值: true
ClassificationPrimitive的来源,可用于区分多个ClassificationPrimitive。
类型: String
默认值: undefined
当深度测试失败时用于渲染ClassificationPrimitive对象的材料。
类型: Material
默认值: undefined
ClassificationPrimitive
属性以下是ClassificationPrimitiveInstance
支持的所有属性。
表示ClassificationPrimitiveInstance的几何形状。
类型: GeometryInstance
默认值: undefined
一个矩阵,用于从参考帧变换到模型的本地空间。
类型: Matrix4
默认值: Matrix4.IDENTITY
用于控制ClassificationPrimitive的距离的显示条件。
类型 : DistanceDisplayCondition
默认值: undefined
作为此ClassificationPrimitiveInstance的唯一标识符的对象。
类型 : Object
默认值: undefined
分类类型。
类型 : Uint8Array
默认值: [0, 0, 0, 0]
点此ClassificationPrimitiveInstance时要返回给Picking。
类型: Object
默认值: undefined
每个顶点的顶点属性。
类型 : Object
默认值: undefined
ClassificationPrimitive
方法以下是分类图元(ClassificationPrimitive
)定义的所有方法。
确定此对象是否已销毁。
类型: Boolean
返回: true
如果此对象销毁;否则为false。
销毁此对象并释放相关的资源。
类型:Function
返回: undefined
var czml = [{
"id" : "document",
"name" : "CZML Geometries: Polygon",
"version" : "1.0"
}, {
"id" : "polygon",
"name" : "Red polygon on surface",
"polygon" : {
"positions" : {
"cartographicDegrees" : [
-90.0, 40.0,
-100.0, 40.0,
-100.0, 30.0,
-90.0, 30.0
]
},
"material" : {
"solidColor" : {
"color" : {
"rgba" : [255, 0, 0, 255]
}
},
},
"holes" : {
"positions" : {
"cartographicDegrees" : [
-80.0, 37.0,
-80.0, 33.0,
-98.0, 33.0,
-98.0, 37.0
]
}
}
}
}];
var viewer = new Cesium.Viewer('cesiumContainer');
var dataSourcePromise = Cesium.CzmlDataSource.load(czml);
viewer.dataSources.add(dataSourcePromise).then(function(dataSources) {
var primitive = dataSources.get(0).entities.getById('polygon').polygon.createPrimitive();
primitive.readyPromise.then(function(primitive) {
primitive.appearance.material = Cesium.Material.fromType('Classification');
primitive.appearance.material.uniforms.color = new Cesium.Color(1.0, 0.0, 0.0, 1.0);
primitive.appearance.material.uniforms.duration = 0.0;
var csPrimitive = viewer.scene.primitives.add(primitive);
csPrimitive.readyPromise.then(function(csPrimitive) {
csPrimitive.appearance.material.uniforms.color = new Cesium.Color(1.0, 0.0, 0.0, 0.5);
csPrimitive.appearance.material.uniforms.duration = 0.0;
});
});
});
上面的示例创建了一个红色多边形,并使用ClassificationPrimitive
从纹理中读取颜色值和透明度值。