@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.
29 lines (28 loc) • 1.56 kB
TypeScript
import type { IUSDExporterExtension } from "../../Extension.js";
import type { USDObject, USDWriter, USDZExporterContext } from "../../ThreeUSDZExporter.js";
import { type BehaviorModel } from "./BehavioursBuilder.js";
export interface UsdzBehaviour {
createBehaviours?(ext: BehaviorExtension, model: USDObject, context: USDZExporterContext): void;
beforeCreateDocument?(ext: BehaviorExtension, context: USDZExporterContext): void | Promise<void>;
afterCreateDocument?(ext: BehaviorExtension, context: USDZExporterContext): void | Promise<void>;
afterSerialize?(ext: BehaviorExtension, context: USDZExporterContext): void;
}
/** internal USDZ behaviours extension */
export declare class BehaviorExtension implements IUSDExporterExtension {
get extensionName(): string;
private behaviours;
addBehavior(beh: BehaviorModel): void;
/** Register audio clip for USDZ export. The clip will be embedded in the resulting file. */
addAudioClip(clipUrl: string): string;
behaviourComponents: Array<UsdzBehaviour>;
private behaviourComponentsCopy;
private audioClips;
private audioClipsCopy;
private targetUuids;
getAllTargetUuids(): Set<string>;
onBeforeBuildDocument(context: USDZExporterContext): Promise<void> | Promise<any[]>;
onExportObject(_object: any, model: USDObject, context: any): void;
onAfterBuildDocument(context: USDZExporterContext): void;
onAfterHierarchy(context: USDZExporterContext, writer: USDWriter): void;
onAfterSerialize(context: USDZExporterContext): Promise<void>;
}