react-babylonjs
Version:
React for Babylon.js
60 lines (59 loc) • 2.24 kB
TypeScript
import { ISceneLoaderProgressEvent } from '@babylonjs/core/Loading/sceneLoader.js';
import { Scene } from '@babylonjs/core/scene.js';
import { Nullable } from '@babylonjs/core/types.js';
import React from 'react';
import { FiberMeshProps } from '../../generatedProps';
import { ILoadedModel, LoadedModel } from './loadedModel';
export type SceneLoaderContextType = {
updateProgress: (progress: ISceneLoaderProgressEvent) => void;
lastProgress?: Nullable<ISceneLoaderProgressEvent>;
} | undefined;
export declare const SceneLoaderContext: React.Context<SceneLoaderContextType>;
export type SceneLoaderContextProviderProps = {
startProgress?: ISceneLoaderProgressEvent;
children: React.ReactNode;
};
export declare const SceneLoaderContextProvider: React.FC<SceneLoaderContextProviderProps>;
export type SceneLoaderOptions = {
/**
* An array of mesh names, a single mesh name, or empty string for all meshes that filter what meshes are imported
*/
meshNames?: any;
/**
* set that all meshes receive shadows.
* Defaults to false.
*/
receiveShadows?: boolean;
/**
* Scale entire model within these square bounds
* Defaults to no scaling.
*/
scaleToDimension?: number;
/**
* Always select root mesh as active.
* Defaults to false.
*/
alwaysSelectAsActiveMesh?: boolean;
/**
* SceneLoader progress events are set on context provider (when available).
* Defaults to false.
*/
reportProgress?: boolean;
/**
* Not needed if you are within a SceneContext.
*/
scene?: Scene;
/**
* Access to loaded model as soon as it is loaded, so it provides a way to hide or scale the meshes before the first render.
*/
onModelLoaded?: (loadedModel: ILoadedModel) => void;
/**
* Raw progress event for SceneLoader
*/
onLoadProgress?: (event: ISceneLoaderProgressEvent) => void;
/**
* Called if SceneLoader returns an error.
*/
onModelError?: (message: string, exception?: any) => void;
};
export declare const useSceneLoader: (rootUrl: string, sceneFilename: string, pluginExtension?: string, options?: SceneLoaderOptions, initialProps?: FiberMeshProps) => LoadedModel;