@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.
20 lines (19 loc) • 1.06 kB
TypeScript
import { UseLoadModelReturn } from './types';
import { useOptimizeModel } from '../use-optimize-model';
/**
* Custom hook to load and manage 3D models with optional optimization integration.
*
* Supports GLTF, GLB, and USDZ formats via file upload or server-side scene loading.
* When an optimizer is provided, each load path initialises the optimizer so texture
* names and URIs are preserved for subsequent compression or simplification passes.
*
* **Type Safety:**
* - With optimizer: `optimizer` property is fully typed with optimization methods
* - Without optimizer: `optimizer` property is typed as `null`
*
* @template T - The type of the optimizer parameter (inferred automatically)
* @param optimizer - Optional optimizer hook returned from useOptimizeModel
* @returns Model loading state and methods, with conditionally typed optimizer property
*/
declare function useLoadModel<T extends ReturnType<typeof useOptimizeModel> | undefined>(optimizer?: T): UseLoadModelReturn<T extends undefined ? false : true>;
export default useLoadModel;