API / geotoolkit3d / widgets / scatter / ScatterPlot / ScatterPlot
scatter.ScatterPlot.ScatterPlot
Scatter plot 3D is a three-dimensional data visualization that uses points to represent values.
It's supposed to work as a widget, with features such as cursor picking, highlight, cursor tool and tooltip.
Supported data formats are DataTable and JS array.
Users can add different 2D and 3D symbols to the grid using setData(). The new data does not override current data. This enables the user to show different symbol at the same time.
Note that for performance purpose, it's recommended to use 2d symbol for large dataset.
The user needs to use dispose() method to dispose data.
Dots projection on each grid plane is by default enabled, but can be disabled by user.
Note that geotoolkit3d.grid.Grid is built-in for the reason of data projection. If you need to configure grid, please use setOptions() and provide gridoption object.
↳
ScatterPlot
Constructors
Methods
Methods
▸ add(object): ScatterPlot
Adds object as child of this object.
| Name | Type | Description |
|---|---|---|
object | Object3D<Object3DEventMap> | Object3D<Object3DEventMap>[] | object |
this
▸ afterRender(scene, camera, plot, renderer): ScatterPlot
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
| Name | Type | Description |
|---|---|---|
scene | Scene | The scene |
camera | Camera | The camera used for this render phase. |
plot | Plot | The 3D plot |
renderer | WebGLRenderer | The renderer |
▸ beforeRender(scene, camera, plot, renderer): ScatterPlot
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
| Name | Type | Description |
|---|---|---|
scene | Scene | The scene |
camera | PerspectiveCamera | OrthographicCamera | The camera used for this render phase. |
plot | Plot | The 3D plot |
renderer | WebGLRenderer | The renderer |
▸ dispose(name?): void
Dispose objects in scatterplot.
If name is provided, it only disposes the corresponding object/projection
| Name | Type | Description |
|---|---|---|
Optional name | string | to delete the object in this name |
void
▸ getClassName(): string
string
▸ getDataSetName(): string[]
Get the names of current data set
string[]
this
▸ getGridLimit(): Box3
Get the grid limit
Box3
box
▸ getOptions(): OptionsBaseOut
Get options as json object.
options
▸ getPointData(index, name?): PointData
Get a point's data, by its index and dataset name.
| Name | Type | Description |
|---|---|---|
index | number | the point index in its data set. |
Optional name | string | the data set name this point belongs to. Defaults to "default", which is the default if the set was build without a name. |
▸ getPointDataByPicking(pickingResult): PointData
Retrieve a point's data by using a picking result, if the picked object belong to this ScatterPlot.
| Name | Type |
|---|---|
pickingResult | PointsPickingResult | PointsPickingResult[] |
▸ getVisible(): boolean
Get visible
boolean
true, if object is visible
▸ invalidateObject<T>(event?): ScatterPlot
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.
| Name |
|---|
T |
| Name | Type | Description |
|---|---|---|
Optional event | Event<T> | The event to fire |
AbstractWidget.invalidateObject
▸ isDisposed(): boolean
Returns whether this object has been disposed
boolean
▸ isSelectable(): boolean
Return if this object can be picked/selected (see RendererPicking).
boolean
▸ notify(type, source, args?): ScatterPlot
Notify listeners
| Name | Type | Description |
|---|---|---|
type | string | event types |
source | any | of the event |
Optional args | any | arguments of the event |
this
▸ off(type?, callback?): ScatterPlot
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.
| Name | Type | Description |
|---|---|---|
Optional type | string | type of the event |
Optional callback | EventListener | function to be called |
this
▸ off<E>(type, callback): ScatterPlot
| Name | Type |
|---|---|
E | extends string |
| Name | Type |
|---|---|
type | E |
callback | (eventType: E, sender: ScatterPlot, args: EventMap[E]) => void |
▸ on(type, callback, options?): ScatterPlot
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.
| Name | Type | Description |
|---|---|---|
type | string | type of event or property |
callback | EventListener | to be called |
Optional options | Options | options of subscription |
this
▸ on<E>(type, callback, options?): ScatterPlot
| Name | Type |
|---|---|
E | extends string |
| Name | Type |
|---|---|
type | E |
callback | (eventType: E, sender: ScatterPlot, args: EventMap[E]) => void |
Optional options | Options |
▸ onStatsUpdated(metrics): ScatterPlot
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.
| Name | Type | Description |
|---|---|---|
metrics | PerformanceMetrics | The performance metrics. |
▸ Protected onVisibilityChanged(): void
This method is called if visibility is changed. Send event Events.VisibilityChanged
void
AbstractWidget.onVisibilityChanged
▸ remove(object): ScatterPlot
Removes object as child of this object.
| Name | Type | Description |
|---|---|---|
object | Object3D<Object3DEventMap> | Object3D<Object3DEventMap>[] | object |
this
▸ setData(name, symbol, data, projection?): void
Set data for ScatterPlot.
Projection is based on data set here.
| Name | Type | Description |
|---|---|---|
name | string | the name for this dataset |
symbol | string | SymbolTexture | SymbolGeometry | the 2D/3D symbol to use |
data | Data | the datatable or data object |
Optional projection | Object | the options to configure projection |
Optional projection.enable | boolean | Enable/disable the projection of points on the grid planes. This option result in create or dispose projection of points. If user just want to toggle the visibility of the projection of points, please use toggleProjection method. By default is true. |
Optional projection.frontback | ProjectionMaterialOptions | If provided, it will add front and back projections |
Optional projection.leftright | ProjectionMaterialOptions | If provided, it will add left and right projections |
Optional projection.opacity | number | The opacity for projection. By default is 1.0. |
Optional projection.sizefactor | number | To manually adjust projection size. By default is 0.66. |
Optional projection.topbottom | ProjectionMaterialOptions | If provided, it will add top and bottom projections |
void
▸ setOptions(options?): ScatterPlot
Set options, the given json will be merged with the object's state so that only the given options will be changed.
setOptions does not update data, use setData() instead.
| Name | Type |
|---|---|
Optional options | OptionsBaseIn |
▸ setPosition(position): ScatterPlot
Set Object's local position.
| Name | Type | Description |
|---|---|---|
position | Object | local position |
Optional position.x | number | |
Optional position.y | number | |
Optional position.z | number |
this
▸ setRotation(x, y, z, order?): ScatterPlot
Set Object's local rotation (Euler angles), in radians.
| Name | Type | Description |
|---|---|---|
x | number | x angle |
y | number | y angle |
z | number | z angle |
Optional order | EulerOrder | euler order |
this
▸ setSelectable(selectable): void
Set if this object can be picked/selected (see RendererPicking).
| Name | Type | Description |
|---|---|---|
selectable | boolean | if can be selected |
void
▸ setVisible(visible, silent?): ScatterPlot
Set visible
| Name | Type | Description |
|---|---|---|
visible | boolean | true, if object is visible |
Optional silent | boolean | true, if object shouldn't be invalidated |
this
▸ toggleProjection(direction, flag): void
Toggle projection by given direction and flag
| Name | Type | Description |
|---|---|---|
direction | string | 'topbottom'/'leftright'/'frontback' |
flag | boolean | true or false |
void
▸ updateObject(scene, camera): ScatterPlot
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
| Name | Type | Description |
|---|---|---|
scene | Scene | The scene |
camera | Camera | The camera |
▸ updateProjection(): void
Update all projections based on current grid model limit.
Only needed when the user change the grid manually.
void
▸ 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.
boolean
AbstractWidget.useOwnHighlight
▸ Static getClassName(): string
string
▸ 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.
void