threepipe
Version:
A modern 3D viewer framework built on top of three.js, written in TypeScript, designed to make creating high-quality, modular, and extensible 3D experiences on the web simple and enjoyable.
35 lines • 1.29 kB
TypeScript
import { IObject3D } from '../../core';
export type ClipboardMode = 'copy' | 'cut';
export interface ClipboardState {
objects: IObject3D[];
mode: ClipboardMode;
sourceParents: Map<IObject3D, IObject3D | null>;
}
/**
* Internal object clipboard for copy/cut/paste.
* - copy/cut: store references (no scene mutation)
* - paste: clone or move objects directly to the destination parent (one step, no reparenting)
* - Returns {objects, undo, redo} from paste — caller records undo and handles selection.
*/
export declare class ObjectClipboard {
private _state;
get state(): ClipboardState | null;
get isEmpty(): boolean;
copy(objects: IObject3D[]): void;
cut(objects: IObject3D[]): void;
/**
* Paste from clipboard. Clones (copy) or moves (cut) objects directly to destination.
* @param destination - target parent, or null to use source parents
* @returns pasted objects + undo/redo, or null if clipboard is empty
*/
paste(destination?: IObject3D | null): {
objects: IObject3D[];
undo: () => void;
redo: () => void;
} | null;
clear(): void;
private _pasteFromCopy;
private _pasteFromCut;
private _parentMap;
}
//# sourceMappingURL=../../src/plugins/interaction/ObjectClipboard.d.ts.map