UNPKG

@vctrl/hooks

Version:

vctrl/hooks is a React hooks package designed to simplify 3D model loading and management within React applications. It's part of the vectreal-core ecosystem and is primarily used in the vctrl/viewer React component and the official website application.

30 lines (29 loc) 1.32 kB
import { Object3D } from 'three'; import { dedup, quantize, normals, textureCompress } from '@gltf-transform/functions'; import { ModelSize } from './types'; /** * Custom React hook for optimizing Three.js models using glTF-Transform. * * This hook provides functions to load, optimize, and retrieve Three.js models. * Optimizations include deduplication, quantization, and simplification of model meshes and textures. * * @returns An object containing functions to interact with the model optimizer. */ declare const useOptimizeModel: () => { load: (model: Object3D) => Promise<void>; getModel: () => Promise<Uint8Array | null>; getSize: () => ModelSize | null; report: import('@gltf-transform/functions').InspectReport | null; simplifyOptimization: (options?: { ratio?: number; error?: number; }) => Promise<void>; dedupOptimization: (options?: Parameters<typeof dedup>[0]) => Promise<void>; quantizeOptimization: (options?: Parameters<typeof quantize>[0]) => Promise<void>; normalsOptimization: (options?: Parameters<typeof normals>[0]) => Promise<void>; texturesOptimization: (options?: Parameters<typeof textureCompress>[0]) => Promise<void>; reset: () => void; error: Error | null; loading: boolean; }; export default useOptimizeModel;