private intersectBars()

in src/globemap.ts [1209:1274]


        private intersectBars() {
            if (!this.rayCaster
                || !this.barsGroup
                || !this.mousePosNormalized
                || !this.mousePos) {

                return;
            }

            const rayCaster: THREE.Raycaster = this.rayCaster;

            rayCaster.setFromCamera(this.mousePosNormalized, this.camera);
            const intersects: THREE.Intersection[] = rayCaster.intersectObjects(this.barsGroup.children);

            if (intersects && intersects.length > 0) {
                const object: IGlobeMapObject3DWithToolTipData = <IGlobeMapObject3DWithToolTipData>intersects[0].object;

                if (!object || !(object).toolTipData) {
                    return;
                }

                const toolTipData: { location, longitude, latitude, series, height, heat } = (object).toolTipData;
                const toolTipItems: VisualTooltipDataItem[] = [];

                if (toolTipData.location.displayName) {
                    toolTipItems.push(toolTipData.location);
                }

                if (toolTipData.longitude.displayName) {
                    toolTipItems.push(toolTipData.longitude);
                }

                if (toolTipData.latitude.displayName) {
                    toolTipItems.push(toolTipData.latitude);
                }

                if (toolTipData.series) {
                    toolTipItems.push(toolTipData.series);
                }

                if (toolTipData.height.displayName) {
                    toolTipItems.push(toolTipData.height);
                }

                if (toolTipData.heat.displayName) {
                    toolTipItems.push(toolTipData.heat);
                }

                this.hoveredBar = object;

                const tooltipShowOptions: TooltipShowOptions = {
                    coordinates: [
                        this.mousePos.x,
                        this.mousePos.y
                    ],
                    isTouchEvent: false,
                    dataItems: toolTipItems,
                    identities: []
                };

                this.visualHost.tooltipService.show(tooltipShowOptions);
            } else {
                this.hoveredBar = null;
                this.hideTooltip();
            }
        }