UNPKG

@needle-tools/engine

Version:

Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in

51 lines (50 loc) 3.17 kB
import { FBXLoader } from 'three/examples/jsm/loaders/FBXLoader.js'; import { type GLTF, GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js'; import { OBJLoader } from 'three/examples/jsm/loaders/OBJLoader.js'; import { USDZLoader } from 'three/examples/jsm/loaders/USDZLoader.js'; import { type INeedleGltfLoader } from "./engine_gltf.js"; import { SerializationContext } from "./engine_serialization_core.js"; import { Context } from "./engine_setup.js"; import { Model, type UIDProvider } from "./engine_types.js"; import { NEEDLE_components } from "./extensions/NEEDLE_components.js"; /** @internal */ export declare class NeedleLoader implements INeedleGltfLoader { createBuiltinComponents(context: Context, gltfId: string, gltf: any, seed: number | UIDProvider | null, extension?: NEEDLE_components | undefined): Promise<void>; writeBuiltinComponentData(comp: any, context: SerializationContext): object | null; parseSync(context: Context, data: string | ArrayBuffer, path: string, seed: number | UIDProvider | null): Promise<Model | undefined>; loadSync(context: Context, url: string, sourceId: string, seed: number | UIDProvider | null, prog?: ((ProgressEvent: any) => void) | undefined): Promise<Model | undefined>; } export declare enum GltfLoadEventType { BeforeLoad = 0, AfterLoaded = 1, FinishedSetup = 10 } export declare class GltfLoadEvent { context: Context; loader: GLTFLoader; path: string; gltf?: GLTF; constructor(context: Context, path: string, loader: GLTFLoader, gltf?: GLTF); } export type GltfLoadEventCallback = (event: GltfLoadEvent) => void; export declare function addGltfLoadEventListener(type: GltfLoadEventType, listener: GltfLoadEventCallback): void; export declare function removeGltfLoadEventListener(type: GltfLoadEventType, listener: GltfLoadEventCallback): void; export declare function createLoader(url: string, context: Context): Promise<GLTFLoader | FBXLoader | USDZLoader | OBJLoader | null>; /** Load a gltf file from a url. This is the core method used by Needle Engine to load gltf files. All known extensions are registered here. * @param context The current context * @param data The gltf data as string or ArrayBuffer * @param path The path to the gltf file * @param seed The seed for generating unique ids * @returns The loaded gltf object */ export declare function parseSync(context: Context, data: string | ArrayBuffer, path: string, seed: number | UIDProvider | null): Promise<Model | undefined>; /** * Load a gltf file from a url. This is the core method used by Needle Engine to load gltf files. All known extensions are registered here. * @param context The current context * @param url The url to the gltf file * @param sourceId The source id of the gltf file - this is usually the url * @param seed The seed for generating unique ids * @param prog A progress callback * @returns The loaded gltf object */ export declare function loadSync(context: Context, url: string, sourceId: string, seed: number | UIDProvider | null, prog?: (ProgressEvent: any) => void): Promise<Model | undefined>;