Last updated

API / geotoolkit3d / scene / pointset / PointSet / PointSet

Class: PointSet

pointset.PointSet.PointSet

PointSet is a set of 3D coordinates rendered as 3D symbols.

It's similar to a PointCloud and share most of the same API (even if there is no inheritance between them).
The main difference between PointSet and PointCloud is that a PointSet uses real 3D mesh for each symbol.
As a consequence, the rendered symbols are cleaner and sharper, and there is no longer depth fighting (symbols blinking by rendering on top of each other).

It is quite fast for rendering points as Cubes and Pyramids, however using Sphere geometry for really large sets of points (100 000+ points) can be slower, you might have better performances using a PointCloud with a sphere texture instead.

To save valuable memory on large pointset at creation time, it is advised to use typed Float32Array for points xyz, sizes and values as constructor parameters, in stead of regular Array.

Hierarchy

Implements

Table of contents

Constructors
Methods

Contents

Constructors

new PointSet(options)

new PointSet(options)

Parameters

Name Type
optionsOptions

Overrides

Object3D.constructor

Methods

add

add(object): PointSet

Adds object as child of this object.

Parameters

Name Type Description
objectObject3D<Object3DEventMap> | Object3D<Object3DEventMap>[]object

Returns

PointSet

this

Inherited from

Object3D.add


afterRender

afterRender(scene, camera, plot, renderer): PointSet

This function is called after rendering and can update this object's content.

It should not trigger any invalidateObject though.
Note that it is not necessary nor recommended to explicitly call afterRender on this object's children as beforeRender will be called on all nodes present in the scene.

This will be executed after the transformations simplification.

See

Plot for more details on the render steps

Parameters

Name Type Description
sceneSceneThe scene
cameraCameraThe camera used for this render phase.
plotPlotThe 3D plot
rendererWebGLRendererThe renderer

Returns

PointSet

Inherited from

Object3D.afterRender


beforeRender

beforeRender(scene, camera, plot, renderer): PointSet

This function is called prior to rendering and can update this object's content.

It should not trigger any invalidateObject though.
Note that it is not necessary nor recommended to explicitly call beforeRender on this object's children as beforeRender will be called on all nodes present in the scene.

This will be executed after the transformations simplification.

See

Plot for more details on the render steps

Parameters

Name Type Description
sceneSceneThe scene
cameraCameraThe camera used for this render phase.
plotPlotThe 3D plot
rendererWebGLRendererThe renderer

Returns

PointSet

Inherited from

Object3D.beforeRender


dispose

dispose(): void

Dispose object

Returns

void

Inherited from

Object3D.dispose


getClassName

getClassName(): string

Returns

string

Inherited from

Object3D.getClassName


getHighlightedObjects

getHighlightedObjects(): Object3D

Get the selected point mesh objects. Used in custom highlighting logic.

Returns

Object3D

Implementation of

ICustomHighlight.getHighlightedObjects


getOptions

getOptions(): OptionsBaseOut

Get the pointset general options (legacy)

Returns

OptionsBaseOut

Overrides

Object3D.getOptions


getPointOptions

getPointOptions(index): PerPointOptionsOut

Get the attributes of a point at the given index. Returns null if the given point index is not valid.

Parameters

Name Type Description
indexnumberindex of point

Returns

PerPointOptionsOut


getSelectedPoints

getSelectedPoints(): number[]

Return the selected points indices (highlighted points).

Returns

number[]


getVisible

getVisible(): boolean

Get visible

Returns

boolean

true, if object is visible

Inherited from

Object3D.getVisible


getWorldBoundingBox

getWorldBoundingBox(target?): Box3

Returns the world space bounding box of this pointset. Because instanced rendering do not use a classic geometry, this custom method is necessary.

Parameters

Name Type
Optional targetBox3

Returns

Box3

bounding box


hightlightShape

hightlightShape(pointIndex?): void

Generate a highlight geometry for the given point index. Highlight is a geometry that is rendered with a special effect in highlightPass.

Deprecated

since 4.1, please use setSelectedPoints instead.

Parameters

Name Type Description
Optional pointIndexnumberthe index of the point to highlight.

Returns

void


invalidateObject

invalidateObject<T>(event?): PointSet

Notifies this object and its parent that this object has been invalidated.
If this object is in a Plot, it will be marked as dirty and will trigger a rendering cycle.

Type parameters

Name
T

Parameters

Name Type Description
Optional eventEvent<T>The event to fire

Returns

PointSet

Inherited from

Object3D.invalidateObject


isDisposed

isDisposed(): boolean

Returns whether this object has been disposed

Returns

boolean

Inherited from

Object3D.isDisposed


isSelectable

isSelectable(): boolean

Return if this object can be picked/selected (see RendererPicking).

Returns

boolean

Inherited from

Object3D.isSelectable


isValidIndex

isValidIndex(index): boolean

Return if this point index is valid (belong to a point in this point set).

Parameters

Name Type Description
indexnumberthe point index.

Returns

boolean


notify

notify(type, source, args?): PointSet

Notify listeners

Parameters

Name Type Description
typestringevent types
sourceanyof the event
Optional argsanyarguments of the event

Returns

PointSet

this

Inherited from

Object3D.notify


off

off(type?, callback?): PointSet

Detach listener on event. Calling .off() with no arguments removes all attached listeners. Calling .off(type) with no callback removes all attached listeners for specific type.

Parameters

Name Type Description
Optional typestringtype of the event
Optional callbackEventListenerfunction to be called

Returns

PointSet

this

Inherited from

Object3D.off

off<E>(type, callback): PointSet

Type parameters

NameType
Eextends string

Parameters

Name Type
typeE
callback(eventType: E, sender: PointSet, args: EventMap[E]) => void

Returns

PointSet

Inherited from

Object3D.off


on

on(type, callback, options?): PointSet

Attach listener on event that will be called whenever the specified event is delivered to the target

If the callback function is already in the list of event listeners for this target, the function is not added a second time.

If a particular anonymous function is in the list of event listeners registered for a certain target, and then later in the code, an identical anonymous function is given in an "on" call, the second function will also be added to the list of event listeners for that target.

Parameters

Name Type Description
typestringtype of event or property
callbackEventListenerto be called
Optional optionsOptionsoptions of subscription

Returns

PointSet

this

Inherited from

Object3D.on

on<E>(type, callback, options?): PointSet

Type parameters

NameType
Eextends string

Parameters

Name Type
typeE
callback(eventType: E, sender: PointSet, args: EventMap[E]) => void
Optional optionsOptions

Returns

PointSet

Inherited from

Object3D.on


onStatsUpdated

onStatsUpdated(metrics): PointSet

This function is called when the plot has updated performance metric.
It will be called every set number of frames.
The number of frame is customizable in the plot options advancedrendering.performancemetrics.updateframeperiod and is 100 by default.

Parameters

Name Type Description
metricsPerformanceMetricsThe performance metrics.

Returns

PointSet

Inherited from

Object3D.onStatsUpdated


onVisibilityChanged

Protected onVisibilityChanged(): void

This method is called if visibility is changed. Send event Events.VisibilityChanged

Returns

void

Inherited from

Object3D.onVisibilityChanged


remove

remove(object): PointSet

Removes object as child of this object.

Parameters

Name Type Description
objectObject3D<Object3DEventMap> | Object3D<Object3DEventMap>[]object

Returns

PointSet

this

Inherited from

Object3D.remove


selectFullPointSet

selectFullPointSet(select): void

Select and highlight (or unselect) the entire PointSet. (points set to not 'visible' will remain hidden).
To remove the highlight effect, call setSelectedPoints() with null.

Parameters

Name Type Description
selectbooleantrue to select and highlight the entire pointset, false to unselect and remove any highlight.

Returns

void


setOptions

setOptions(options): PointSet

Set the PointSet options.

Parameters

Name Type
optionsOptions

Returns

PointSet

this

Overrides

Object3D.setOptions


setPointOptions

setPointOptions(index, options): PointSet

Set per point options, note that it's more efficient to use setOptions() to modify large ensemble of points.

Parameters

Name Type Description
indexnumberThe index of the point to edit
optionsPerPointOptionsThe options

Returns

PointSet

this


setPosition

setPosition(position): PointSet

Set Object's local position.

Parameters

Name Type Description
positionObjectlocal position
Optional position.xnumber
Optional position.ynumber
Optional position.znumber

Returns

PointSet

this

Inherited from

Object3D.setPosition


setRotation

setRotation(x, y, z, order?): PointSet

Set Object's local rotation (Euler angles), in radians.

Parameters

Name Type Description
xnumberx angle
ynumbery angle
znumberz angle
Optional orderEulerOrdereuler order

Returns

PointSet

this

Inherited from

Object3D.setRotation


setSelectable

setSelectable(selectable): void

Set if this object can be picked/selected (see RendererPicking).

Parameters

Name Type Description
selectablebooleanif can be selected

Returns

void

Inherited from

Object3D.setSelectable


setSelectedPoints

setSelectedPoints(pointsIndices?): void

Select and highlight the defined points indices.
Can be used to highlight one or more points.
To remove the highlight effect, call setSelectedPoints() with null.
To select the entire pointset, use selectFullPointSet instead.

Parameters

Name Type Description
Optional pointsIndicesnumber | number[]the index, or indices of the points to highlight. Null to remove any point highlight.

Returns

void


setVisible

setVisible(visible, silent?): PointSet

Set visible

Parameters

Name Type Description
visiblebooleantrue, if object is visible
Optional silentbooleantrue, if object shouldn't be invalidated

Returns

PointSet

this

Inherited from

Object3D.setVisible


updateObject

updateObject(scene, camera): PointSet

This function is called prior to rendering and can update this object's content.

It should not trigger any invalidateObject though.
Note that it is not necessary nor recommended to explicitly call updateObject on this object's children as updateObject will be called on all nodes present in the scene.

This will be executed before the transformations simplification.

See

Plot for more details on the render steps

Parameters

Name Type Description
sceneSceneThe scene
cameraCameraThe camera

Returns

PointSet

Inherited from

Object3D.updateObject


useOwnHighlight

useOwnHighlight(): boolean

Returns true if this object make its own highlight effect (like geotoolkit3d.scene.reservoir.hexahedral.ReservoirGrid) This is to prevent unnecessary executions of the costly highlight passes.

Returns

boolean

Inherited from

Object3D.useOwnHighlight


estimateMemoryCapabilities

Static estimateMemoryCapabilities(options): MemoryCapabilitiesInfo

Estimate the maximum number of points that can be created in one PointSet visual, with the given RAM/VRAM information.
The data type (array / Float32Array) of input data (xyz positions, sizes, values) will affect the implementation limit. The calculation is based on input data as Float32Array, as it is optimal in performance and size.
With enough memory, the implementation limit for PointSet is eventually tied to Typed array allocation. This test will perform a one-time array allocation test on your device, to accurately estimate the maximum array size your browser/device is capable of. It is important to have enough memory available for this test to be accurate.

Parameters

Name Type
optionsMemoryEstimationOptions

Returns

MemoryCapabilitiesInfo


getClassName

Static getClassName(): string

Returns

string

Inherited from

Object3D.getClassName


register

Static register(): void

Register object for special processing through a callback function

Example

geotoolkit3d.util.ObjectProcessor.getDefaultInstance().registerObject(this.getClassName(), callback);

Deprecated

since 5.0, to allow custom object highlighting, please instead make your Object implement the interface geotoolkit3d/scene/ICustomHighlight.

Returns

void

Inherited from

Object3D.register