import React, { useCallback, useEffect, useState } from 'react'; import { useRecoilState } from 'recoil'; import { IVector3 } from '@easytwin/core'; import { ProButton } from '@/components'; import { _sceneBatchModelModeOpen , _currentScene, _currentComponentDetail } from '../../module'; export interface BatchModelToolProp { className: string; onPickPositions?: (positions: IVector3[]) => void; } function BatchModelTool({ className, onPickPositions }: BatchModelToolProp) { const [positions, setPositions] = useState([]); const [currentScene] = useRecoilState(_currentScene); const [currentComponentDetail] = useRecoilState(_currentComponentDetail); const [sceneObjectEditModeOpen, setSceneObjectEditModeOpen] = useRecoilState(_sceneBatchModelModeOpen); useEffect(() => { if (!currentScene) return; const viewpoint = currentScene.getViewport(); if (sceneObjectEditModeOpen) { viewpoint.templateController.pickPositionHelper.startPick((param) => { setPositions((positions) => [...positions, param.point]); }); } return () => {}; }, [sceneObjectEditModeOpen, currentScene]); useEffect(() => { if (!currentComponentDetail && positions.length === 2) { onPickPositions?.(positions); } else { } }, [positions, currentComponentDetail, onPickPositions]); const handleOutCreateMode = useCallback(() => { setSceneObjectEditModeOpen(false); }, []); return sceneObjectEditModeOpen ? (
完成新建
) : null; } export default BatchModelTool;