diff --git a/app/pages/PageEnigma/datastructures/clips/transform_track_clip.ts b/app/pages/PageEnigma/datastructures/clips/transform_track_clip.ts index b1dce41bf3..183e0e6494 100644 --- a/app/pages/PageEnigma/datastructures/clips/transform_track_clip.ts +++ b/app/pages/PageEnigma/datastructures/clips/transform_track_clip.ts @@ -1,27 +1,23 @@ -export interface Vector3 { - x: number; - y: number; - z: number; -} +import * as THREE from 'three'; export interface TransformTrackClip { version: number; media_id: number; type: "transform"; - position: Vector3[]; - rotation: Vector3[]; - scale: Vector3[]; + position: THREE.Vector3[]; + rotation: THREE.Vector3[]; + scale: THREE.Vector3[]; } export class TransformTrackClipClass implements TransformTrackClip { version: number; media_id: number; type: "transform"; - position: Vector3[]; - rotation: Vector3[]; - scale: Vector3[]; + position: THREE.Vector3[]; + rotation: THREE.Vector3[]; + scale: THREE.Vector3[]; - constructor(version: number, media_id: number, position: Vector3[], rotation: Vector3[], scale: Vector3[]) { + constructor(version: number, media_id: number, position: THREE.Vector3[], rotation: THREE.Vector3[], scale: THREE.Vector3[]) { this.version = version; this.media_id = media_id; this.type = "transform"; @@ -29,6 +25,16 @@ export class TransformTrackClipClass implements TransformTrackClip { this.rotation = rotation; this.scale = scale; } + + add_position(position: THREE.Vector3) { + this.position.push(position); + } + + remove_position(position: THREE.Vector3) { + this.position = this.position.filter(position => { + return !position.equals(position); + }); + } toJSON(): string { return JSON.stringify({