highcharts
Version:
JavaScript charting framework
71 lines (70 loc) • 1.73 kB
JavaScript
/* *
*
* (c) 2010-2026 Highsoft AS
* Author: Torstein Hønsi
*
* Scatter 3D series.
*
* A commercial license may be required depending on use.
* See www.highcharts.com/license
*
*
* */
;
import Math3D from '../../Core/Math3D.js';
const { pointCameraDistance } = Math3D;
import Scatter3DPoint from './Scatter3DPoint.js';
import Scatter3DSeriesDefaults from './Scatter3DSeriesDefaults.js';
import ScatterSeries from '../Scatter/ScatterSeries.js';
import SeriesRegistry from '../../Core/Series/SeriesRegistry.js';
import { extend, merge } from '../../Shared/Utilities.js';
/* *
*
* Class
*
* */
/**
* @private
* @class
* @name Highcharts.seriesTypes.scatter3d
*
* @augments Highcharts.Series
*/
class Scatter3DSeries extends ScatterSeries {
/* *
*
* Functions
*
* */
pointAttribs(point) {
const attribs = super.pointAttribs.apply(this, arguments);
if (this.chart.is3d() && point) {
attribs.zIndex =
pointCameraDistance(point, this.chart);
}
return attribs;
}
}
/* *
*
* Static Properties
*
* */
Scatter3DSeries.defaultOptions = merge(ScatterSeries.defaultOptions, Scatter3DSeriesDefaults);
extend(Scatter3DSeries.prototype, {
axisTypes: ['xAxis', 'yAxis', 'zAxis'],
// Require direct touch rather than using the k-d-tree, because the
// k-d-tree currently doesn't take the xyz coordinate system into
// account (#4552)
directTouch: true,
parallelArrays: ['x', 'y', 'z'],
pointArrayMap: ['x', 'y', 'z'],
pointClass: Scatter3DPoint
});
SeriesRegistry.registerSeriesType('scatter3d', Scatter3DSeries);
/* *
*
* Default Export
*
* */
export default Scatter3DSeries;