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.
59 lines • 3.25 kB
TypeScript
import { Event, Mesh, Vector3 } from 'three';
import { IMaterial } from '../IMaterial';
import { IObject3D, IObjectSetDirtyOptions } from '../IObject';
import { IGeometry, IGeometryEventMap } from '../IGeometry';
import { makeIObject3DUiConfig } from './IObjectUi';
import { ITexture } from '../ITexture';
export declare const iObjectCommons: {
setDirty: (this: IObject3D, options?: IObjectSetDirtyOptions, ...args: any[]) => void;
upgradeObject3D: typeof upgradeObject3D;
makeUiConfig: typeof makeIObject3DUiConfig;
autoCenter: <T extends IObject3D>(this: T, setDirty?: boolean, undo?: boolean) => T;
autoScale: <T extends IObject3D>(this: T, autoScaleRadius?: number, isCentered?: boolean, setDirty?: boolean, undo?: boolean) => T;
pivotToBoundsCenter: <T extends IObject3D>(this: T, setDirty?: boolean) => () => void;
pivotToPoint: <T extends IObject3D>(this: T, point: Vector3, setDirty?: boolean) => () => void;
traverseModels: <T extends IObject3D>(this: T, callback: (object: IObject3D) => boolean | void, { visible, widgets, ...ops }: {
[x: string]: any;
visible?: boolean | undefined;
widgets?: boolean | undefined;
}) => void;
eventCallbacks: {
onAddedToParent: (this: IObject3D, e: Event) => void;
onRemovedFromParent: (this: IObject3D, e: Event) => void;
onGeometryUpdate: (this: IObject3D, e: IGeometryEventMap["geometryUpdate"] & Event<"geometryUpdate">) => void;
};
initMaterial: (this: IObject3D) => void;
getMaterial: (this: IObject3D) => IMaterial | IMaterial[] | undefined;
getMaterials: (this: IObject3D) => IMaterial[];
setMaterial: (this: IObject3D, material: IMaterial | IMaterial[] | undefined) => never[] | undefined;
setMaterials: (this: IObject3D, materials: IMaterial[]) => void;
initGeometry: (this: IObject3D) => void;
getGeometry: (this: IObject3D & Mesh) => IGeometry | undefined;
setGeometry: (this: IObject3D & Mesh, geometry: IGeometry | undefined) => void;
refreshUi: (this: IObject3D) => void;
/** @ignore */
dispatchEvent: (superDispatch: IObject3D["dispatchEvent"]) => IObject3D["dispatchEvent"];
/** @ignore */
clone: (superClone: IObject3D["clone"]) => IObject3D["clone"];
/** @ignore */
copy: (superCopy: IObject3D["copy"]) => IObject3D["copy"];
/** @ignore */
add: (superAdd: IObject3D["add"]) => IObject3D["add"];
/** @ignore */
dispose: (superDispose?: IObject3D["dispose"]) => (this: IObject3D, removeFromParent?: boolean) => any;
getMapsForObject3D: (this: IObject3D) => Map<string, ITexture>;
deleteObject: (object: IObject3D, e?: any) => Promise<(() => void) | undefined>;
duplicateObject: (object: IObject3D, e?: any) => Promise<{
action: () => void;
undo: () => void;
}>;
};
export declare const sceneTextureProperties: Set<string>;
export declare const object3DTextureProperties: Set<string>;
/**
* Converts three.js Object3D to IObject3D, setup object events, adds utility methods, and runs objectProcessor.
* @param parent
*/
declare function upgradeObject3D(this: IObject3D, parent?: IObject3D | undefined): IObject3D;
export {};
//# sourceMappingURL=../../src/core/object/iObjectCommons.d.ts.map