added 2d point select delete and move
This commit is contained in:
@@ -14,6 +14,7 @@ import { useProductContext } from "../../../../simulation/products/productContex
|
||||
import { useSocketStore, useToggleView, useToolMode, } from "../../../../../store/builder/store";
|
||||
import { useSelectedPoints } from "../../../../../store/simulation/useSimulationStore";
|
||||
import { useBuilderStore } from "../../../../../store/builder/useBuilderStore";
|
||||
import MoveControls2D from "./moveControls2D";
|
||||
|
||||
// import { deleteAisleApi } from "../../../../../services/factoryBuilder/aisle/deleteAisleApi";
|
||||
// import { deleteWallApi } from "../../../../../services/factoryBuilder/wall/deleteWallApi";
|
||||
@@ -24,7 +25,6 @@ import { useBuilderStore } from "../../../../../store/builder/useBuilderStore";
|
||||
|
||||
const SelectionControls2D: React.FC = () => {
|
||||
const { camera, controls, gl, scene, raycaster, pointer } = useThree();
|
||||
const selectionGroup = useRef() as Types.RefGroup;
|
||||
const { toggleView } = useToggleView();
|
||||
const { selectedPoints, setSelectedPoints, clearSelectedPoints } = useSelectedPoints();
|
||||
const [movedObjects, setMovedObjects] = useState<THREE.Object3D[]>([]);
|
||||
@@ -32,22 +32,19 @@ const SelectionControls2D: React.FC = () => {
|
||||
const [copiedObjects, setCopiedObjects] = useState<THREE.Object3D[]>([]);
|
||||
const [pastedObjects, setpastedObjects] = useState<THREE.Object3D[]>([]);
|
||||
const [duplicatedObjects, setDuplicatedObjects] = useState<THREE.Object3D[]>([]);
|
||||
const boundingBoxRef = useRef<THREE.Mesh>();
|
||||
const { activeModule } = useModuleStore();
|
||||
const { socket } = useSocketStore();
|
||||
const selectionBox = useMemo(() => new SelectionBox(camera, scene), [camera, scene]);
|
||||
const { toolMode } = useToolMode();
|
||||
const { selectedVersionStore } = useVersionContext();
|
||||
const { selectedVersion } = selectedVersionStore();
|
||||
const { selectedProductStore } = useProductContext();
|
||||
const { selectedProduct } = selectedProductStore();
|
||||
const { projectId } = useParams();
|
||||
const { hoveredLine, hoveredPoint } = useBuilderStore();
|
||||
const { aisleStore, wallStore, floorStore, zoneStore } = useSceneContext();
|
||||
const { setPosition: setAislePosition, removePoint: removeAislePoint, getAislesByPointId } = aisleStore();
|
||||
const { setPosition: setWallPosition, removePoint: removeWallPoint, getWallsByPointId } = wallStore();
|
||||
const { setPosition: setFloorPosition, removePoint: removeFloorPoint, getFloorsByPointId } = floorStore();
|
||||
const { setPosition: setZonePosition, removePoint: removeZonePoint, getZonesByPointId } = zoneStore();
|
||||
const { removePoint: removeAislePoint } = aisleStore();
|
||||
const { removePoint: removeWallPoint } = wallStore();
|
||||
const { removePoint: removeFloorPoint } = floorStore();
|
||||
const { removePoint: removeZonePoint } = zoneStore();
|
||||
|
||||
const isDragging = useRef(false);
|
||||
const isLeftMouseDown = useRef(false);
|
||||
@@ -178,12 +175,6 @@ const SelectionControls2D: React.FC = () => {
|
||||
}
|
||||
}, [activeModule, toolMode, toggleView]);
|
||||
|
||||
useFrame(() => {
|
||||
if (pastedObjects.length === 0 && duplicatedObjects.length === 0 && movedObjects.length === 0 && rotatedObjects.length === 0) {
|
||||
selectionGroup.current.position.set(0, 0, 0);
|
||||
}
|
||||
});
|
||||
|
||||
const selectAssets = useCallback(() => {
|
||||
selectionBox.endPoint.set(pointer.x, pointer.y, 0);
|
||||
if (controls) (controls as any).enabled = true;
|
||||
@@ -226,9 +217,6 @@ const SelectionControls2D: React.FC = () => {
|
||||
}, [selectionBox, pointer, controls, selectedPoints, setSelectedPoints]);
|
||||
|
||||
const clearSelection = () => {
|
||||
selectionGroup.current.children = [];
|
||||
selectionGroup.current.position.set(0, 0, 0);
|
||||
selectionGroup.current.rotation.set(0, 0, 0);
|
||||
setpastedObjects([]);
|
||||
setDuplicatedObjects([]);
|
||||
clearSelectedPoints();
|
||||
@@ -237,7 +225,7 @@ const SelectionControls2D: React.FC = () => {
|
||||
const deleteSelection = () => {
|
||||
if (selectedPoints.length > 0 && duplicatedObjects.length === 0) {
|
||||
|
||||
selectedPoints.map((selectedPoint) => {
|
||||
selectedPoints.forEach((selectedPoint) => {
|
||||
if (selectedPoint.userData.pointUuid) {
|
||||
const point: Point = selectedPoint.userData as Point;
|
||||
if (point.pointType === 'Aisle') {
|
||||
@@ -394,9 +382,7 @@ const SelectionControls2D: React.FC = () => {
|
||||
|
||||
return (
|
||||
<>
|
||||
<group name="SelectionGroup-3D">
|
||||
<group ref={selectionGroup} name="selectionAssetGroup-3D" />
|
||||
</group>
|
||||
<MoveControls2D movedObjects={movedObjects} setMovedObjects={setMovedObjects} pastedObjects={pastedObjects} setpastedObjects={setpastedObjects} duplicatedObjects={duplicatedObjects} setDuplicatedObjects={setDuplicatedObjects} rotatedObjects={rotatedObjects} setRotatedObjects={setRotatedObjects} />
|
||||
|
||||
</>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user