@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.
90 lines (89 loc) • 2.23 kB
TypeScript
import { AnimationClip, Object3D, Quaternion, Vector3 } from "three";
export declare type TimelineAssetModel = {
name: string;
tracks: TrackModel[];
};
export declare enum TrackType {
Activation = "ActivationTrack",
Animation = "AnimationTrack",
Audio = "AudioTrack",
Control = "ControlTrack",
Marker = "MarkerTrack",
Signal = "SignalTrack"
}
export declare enum ClipExtrapolation {
None = 0,
Hold = 1,
Loop = 2,
PingPong = 3,
Continue = 4
}
export declare type TrackModel = {
name: string;
type: TrackType;
muted: boolean;
outputs: Array<null | string | object>;
clips?: Array<ClipModel>;
markers?: Array<MarkerModel>;
trackOffset?: TrackOffset;
volume?: number;
};
declare type Vec3 = {
x: number;
y: number;
z: number;
};
declare type Quat = {
x: number;
y: number;
z: number;
w: number;
};
export declare type TrackOffset = {
position: Vec3 | Vector3;
rotation: Quat | Quaternion;
};
export declare type ClipModel = {
start: number;
end: number;
duration: number;
timeScale: number;
asset: any | AudioClipModel | ControlClipModel | AnimationClipModel;
clipIn: number;
easeInDuration: number;
easeOutDuration: number;
preExtrapolationMode: ClipExtrapolation;
postExtrapolationMode: ClipExtrapolation;
reversed?: boolean;
};
export declare type AnimationClipModel = {
clip: string | number | AnimationClip;
loop: boolean;
duration: number;
removeStartOffset: boolean;
position?: Vec3 | Vector3;
rotation?: Quat | Quaternion;
};
export declare type AudioClipModel = {
clip: string;
loop: boolean;
volume: number;
};
export declare type ControlClipModel = {
sourceObject: string | Object3D;
controlActivation: boolean;
updateDirector: boolean;
};
export declare enum MarkerType {
Signal = "SignalEmitter"
}
export declare class MarkerModel {
type: MarkerType;
time: number;
}
export declare class SignalMarkerModel extends MarkerModel {
retroActive: boolean;
emitOnce: boolean;
asset: string;
}
export {};