@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.
93 lines (79 loc) • 2.18 kB
text/typescript
import { AnimationClip, Object3D, Quaternion, Vector3 } from "three";
export declare type TimelineAssetModel = {
name: string;
tracks: TrackModel[];
}
export enum TrackType {
Activation = "ActivationTrack",
Animation = "AnimationTrack",
Audio = "AudioTrack",
Control = "ControlTrack",
Marker = "MarkerTrack",
Signal = "SignalTrack",
}
export 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 enum MarkerType {
Signal = "SignalEmitter",
}
export declare class MarkerModel {
type: MarkerType;
time: number;
}
export declare class SignalMarkerModel extends MarkerModel {
retroActive: boolean;
emitOnce: boolean;
asset: string;
}