三维场景中的图形点,使用
PointPrimitiveCollection
创建和渲染。通过调用 PointPrimitiveCollection#add
可以创建一个点并设置其初始属性。
Performance:
读取一个属性,例如PointPrimitive#show
是恒定时间。
为属性赋值的时间不变,但在调用 PointPrimitiveCollection#update
时会产生 CPU 到 GPU 的流量。
无论有多少属性被更新,每个点的流量都是一样的。
如果需要更新集合中的大部分点原型,使用 PointPrimitiveCollection#removeAll
清除集合并添加新的点原型,而不是逐个修改,可能会更有效率。
Throws:
-
DeveloperError : scaleByDistance.far 必须大于 scaleByDistance.near
-
DeveloperError : translucencyByDistance.far 必须大于 translucencyByDistance.near
-
DeveloperError : distanceDisplayCondition.far 必须大于 distanceDisplayCondition.near
Members
-
color : Color
-
获取或设置点的内部颜色。如例 1 所示,红色、绿色、蓝色和alpha分别由值的
value
'sred
,green
,blue
, andalpha
表示。 这些分量的范围从 0.0(无强度)到 1.0(全强度)。Examples:
// Example 1. Assign yellow. p.color = SuperMap3D.Color.YELLOW;
// Example 2. Make a pointPrimitive 50% translucent. p.color = new SuperMap3D.Color(1.0, 1.0, 1.0, 0.5);
-
获取或设置与相机的距离,在该距离上要禁用深度测试,以防止对地形的剪切。 当设置为0时,始终应用深度测试。 当设置为Number时。POSITIVE_INFINITY,深度测试从未应用。
-
Default Value:
0.0
-
distanceDisplayCondition : DistanceDisplayCondition
-
获取或设置条件,指定在距离相机多远的位置显示此点。
-
Default Value:
undefined
-
获取或设置选定点时返回的用户定义对象。
-
outlineColor : Color
-
获取或设置点的轮廓颜色。
-
以像素为单位获取或设置轮廓宽度。此宽度与像素大小相加,增加点的总大小。
-
以像素为单位获取或设置点的内部尺寸。
-
position : Cartesian3
-
获取或设置该点的Cartesian位置。
-
scaleByDistance : NearFarScalar
-
根据点与相机的距离获取或设置点的远近缩放属性。 当相机距离在指定的
NearFarScalar#nearValue
和NearFarScalar#farValue
的上下限范围内时,点的缩放比例将在NearFarScalar#nearValue
和NearFarScalar#farValue
之间插值。 超出这些范围时,点的缩放比例将被箝制在最近的范围内。 该缩放比例会乘以像素大小和轮廓宽度,从而影响点的总大小。 如果未定义,scaleByDistance(按距离缩放)将被禁用。Examples:
// Example 1. // Set a pointPrimitive's scaleByDistance to scale to 15 when the // camera is 1500 meters from the pointPrimitive and disappear as // the camera distance approaches 8.0e6 meters. p.scaleByDistance = new SuperMap3D.NearFarScalar(1.5e2, 15, 8.0e6, 0.0);
// Example 2. // disable scaling by distance p.scaleByDistance = undefined;
-
确定是否显示该点。用它来隐藏或显示一个点,而不是将其删除并重新添加到集合中。
-
translucencyByDistance : NearFarScalar
-
根据点与相机的距离,获取或设置点的远近半透明属性。 当相机距离在指定的
NearFarScalar#nearValue
和NearFarScalar#farValue
上下限范围内时,点的半透明度将在NearFarScalar#nearValue
和NearFarScalar#farValue
之间插值。 在这两个范围之外,点的半透明度将保持在最近的范围内。 如果未定义,translucencyByDistance 将被禁用。Examples:
// Example 1. // Set a point's translucency to 1.0 when the // camera is 1500 meters from the point and disappear as // the camera distance approaches 8.0e6 meters. p.translucencyByDistance = new SuperMap3D.NearFarScalar(1.5e2, 1.0, 8.0e6, 0.0);
// Example 2. // disable translucency by distance p.translucencyByDistance = undefined;
Methods
-
computeScreenSpacePosition(scene, result) → Cartesian2
-
计算点原点的屏幕空间位置。 屏幕空间原点位于画布的左上角;
x
从左到右递增,y
从上到下递增。Name Type Description scene
Scene 场景。 result
Cartesian2 optional 存储结果的对象。 Returns:
点的屏幕空间位置。Throws:
-
DeveloperError : PointPrimitive 必须在一个集合中。
Example:
console.log(p.computeScreenSpacePosition(scene).toString());
-
-
确定此点是否等于另一点。如果点的所有属性都相等,它们就是相等的。不同集合中的点可以相等。
Name Type Description other
PointPrimitive 用于比较等式的点。 Returns:
如果点相等,则为 true;否则为 false。