UNPKG

cube-parameters

Version:

A sophisticated 3D model viewer built with React, TypeScript, and Three.js, featuring advanced visualization tools, measurement capabilities, and lighting controls.

28 lines (23 loc) 757 B
import { useMemo } from 'react'; import * as THREE from 'three'; export const useToolHandlersViewer = ( onPointCreate?: (point: { x: number; y: number; z: number }) => void, onMeasureCreate?: (start: THREE.Vector3, end: THREE.Vector3) => void ) => { // Memoize point creation handler const handlePointCreate = useMemo(() => (point: { x: number; y: number; z: number }) => { if (onPointCreate) { onPointCreate(point); } }, [onPointCreate]); // Memoize measure creation handler const handleMeasureCreate = useMemo(() => (start: THREE.Vector3, end: THREE.Vector3) => { if (onMeasureCreate) { onMeasureCreate(start, end); } }, [onMeasureCreate]); return { handlePointCreate, handleMeasureCreate }; };