@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
TypeScript
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;