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.

93 lines (79 loc) 2.18 kB
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; }