# PointPrimitive

#### new Cesium.PointPrimitive()
Scene/PointPrimitive.js 41

A graphical point positioned in the 3D scene, that is created and rendered using a `PointPrimitiveCollection`. A point is created and its initial properties are set by calling `PointPrimitiveCollection#add`.

##### Performance:

Reading a property, e.g., `PointPrimitive#show`, is constant time. Assigning to a property is constant time but results in CPU to GPU traffic when `PointPrimitiveCollection#update` is called. The per-pointPrimitive traffic is the same regardless of how many properties were updated. If most pointPrimitives in a collection need to be updated, it may be more efficient to clear the collection with `PointPrimitiveCollection#removeAll` and add new pointPrimitives instead of modifying each one.

##### Throws:

- DeveloperError : scaleByDistance.far must be greater than scaleByDistance.near
- DeveloperError : translucencyByDistance.far must be greater than translucencyByDistance.near
- DeveloperError : distanceDisplayCondition.far must be greater than distanceDisplayCondition.near

##### Demo:

- Cesium Sandcastle Points Demo

##### See:

- PointPrimitiveCollection
- PointPrimitiveCollection#add

### Members

#### color : Color
Scene/PointPrimitive.js 323

Gets or sets the inner color of the point. The red, green, blue, and alpha values are indicated by `value`'s `red`, `green`, `blue`, and `alpha` properties as shown in Example 1. These components range from `0.0` (no intensity) to `1.0` (full intensity).

##### Examples:

    // Example 1. Assign yellow.
    p.color = Cesium.Color.YELLOW;

    // Example 2. Make a pointPrimitive 50% translucent.
    p.color = new Cesium.Color(1.0, 1.0, 1.0, 0.5);

#### disableDepthTestDistance : Number
Scene/PointPrimitive.js 425

Gets or sets the distance from the camera at which to disable the depth test to, for example, prevent clipping against terrain. When set to zero, the depth test is always applied. When set to Number.POSITIVE_INFINITY, the depth test is never applied.

Default Value: `0.0`

#### distanceDisplayCondition : DistanceDisplayCondition
Scene/PointPrimitive.js 396

Gets or sets the condition specifying at what distance from the camera that this point will be displayed.

Default Value: `undefined`

#### id : *
Scene/PointPrimitive.js 449

Gets or sets the user-defined value returned when the point is picked.

#### outlineColor : Color
Scene/PointPrimitive.js 347

Gets or sets the outline color of the point.

#### outlineWidth : Number
Scene/PointPrimitive.js 372

Gets or sets the outline width in pixels. This width adds to pixelSize, increasing the total size of the point.

#### pixelSize : Number
Scene/PointPrimitive.js 289

Gets or sets the inner size of the point in pixels.

#### position : Cartesian3
Scene/PointPrimitive.js 173

Gets or sets the Cartesian position of this point.

#### scaleByDistance : NearFarScalar
Scene/PointPrimitive.js 217

Gets or sets near and far scaling properties of a point based on the point's distance from the camera. A point's scale will interpolate between the `NearFarScalar#nearValue` and `NearFarScalar#farValue` while the camera distance falls within the lower and upper bounds of the specified `NearFarScalar#near` and `NearFarScalar#far`. Outside of these ranges the point's scale remains clamped to the nearest bound. This scale multiplies the pixelSize and outlineWidth to affect the total size of the point. If undefined, scaleByDistance will be disabled.

##### 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 Cesium.NearFarScalar(1.5e2, 15, 8.0e6, 0.0);

    // Example 2.
    // disable scaling by distance
    p.scaleByDistance = undefined;

#### show : Boolean
Scene/PointPrimitive.js 150

Determines if this point will be shown. Use this to hide or show a point, instead of removing it and re-adding it to the collection.

#### translucencyByDistance : NearFarScalar
Scene/PointPrimitive.js 260

Gets or sets near and far translucency properties of a point based on the point's distance from the camera. A point's translucency will interpolate between the `NearFarScalar#nearValue` and `NearFarScalar#farValue` while the camera distance falls within the lower and upper bounds of the specified `NearFarScalar#near` and `NearFarScalar#far`. Outside of these ranges the point's translucency remains clamped to the nearest bound. If undefined, translucencyByDistance will be disabled.

##### 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 Cesium.NearFarScalar(1.5e2, 1.0, 8.0e6, 0.0);

    // Example 2.
    // disable translucency by distance
    p.translucencyByDistance = undefined;

### Methods

#### computeScreenSpacePosition(scene, result) → Cartesian2
Scene/PointPrimitive.js 567

Computes the screen-space position of the point's origin. The screen space origin is the top, left corner of the canvas; `x` increases from left to right, and `y` increases from top to bottom.

Name | Type | Description
--- | --- | ---
`scene` | Scene | The scene.
`result` | Cartesian2 | optional The object onto which to store the result.

##### Returns:

The screen-space position of the point.

##### Throws:

- DeveloperError : PointPrimitive must be in a collection.

##### Example:

    console.log(p.computeScreenSpacePosition(scene).toString());

#### equals(other) → Boolean
Scene/PointPrimitive.js 638

Determines if this point equals another point. Points are equal if all their properties are equal. Points in different collections can be equal.

Name | Type | Description
--- | --- | ---
`other` | PointPrimitive | The point to compare for equality.

##### Returns:

`true` if the points are equal; otherwise, `false`.