mapillary-js/test/helper/EdgeCalculatorHelper.ts
2021-04-23 22:12:39 +02:00

104 lines
3.1 KiB
TypeScript

import { Image } from "../../src/graph/Image";
import { CoreImageEnt } from "../../src/api/ents/CoreImageEnt";
import { SpatialImageEnt } from "../../src/api/ents/SpatialImageEnt";
import { LngLatAlt } from "../../src/api/interfaces/LngLatAlt";
import { PotentialEdge } from "../../src/graph/edge/interfaces/PotentialEdge";
import { CameraType } from "../../src/geo/interfaces/CameraType";
export class EdgeCalculatorHelper {
public createPotentialEdge(key: string = "pkey"): PotentialEdge {
return {
capturedAt: 0,
directionChange: 0,
distance: 0,
spherical: false,
id: key,
motionChange: 0,
rotation: 0,
sameMergeCC: false,
sameSequence: false,
sameUser: false,
sequenceId: "skey",
verticalDirectionChange: 0,
verticalMotion: 0,
worldMotionAzimuth: 0,
};
}
public createCoreImage(
key: string,
lngLatAlt: LngLatAlt,
sequenceKey: string): Image {
let coreImage: CoreImageEnt = {
computed_geometry: { lat: lngLatAlt.lat, lng: lngLatAlt.lng },
id: key,
geometry: { lat: lngLatAlt.lat, lng: lngLatAlt.lng },
sequence: { id: sequenceKey },
};
return new Image(coreImage);
}
public createCompleteImage(
key: string = "key",
lngLatAlt: LngLatAlt = { alt: 0, lat: 0, lng: 0 },
sequenceKey: string = "skey",
r: number[] = [0, 0, 0],
mergeCC: string = "2",
cameraType: CameraType = "perspective",
capturedAt: number = 0): Image {
let image: Image = this.createCoreImage(key, lngLatAlt, sequenceKey);
let spatialImage: SpatialImageEnt = {
altitude: 0,
atomic_scale: 0,
computed_rotation: r,
compass_angle: 0,
computed_altitude: lngLatAlt.alt,
camera_parameters: cameraType === "spherical" ?
[] : [1, 0, 0],
camera_type: cameraType,
captured_at: capturedAt,
computed_compass_angle: 0,
cluster: {
id: "ckey",
url: "ckey-url",
},
creator: { id: "ukey", username: "uname" },
exif_orientation: 0,
height: 0,
id: "key",
merge_id: mergeCC,
mesh: { id: "mesh-id", url: "mesh-url" },
private: false,
owner: { id: null },
thumb: { id: "thumb-id", url: "thumb-url" },
width: 0,
};
image.makeComplete(spatialImage);
return image;
}
public createDefaultImage(spherical: boolean = false): Image {
let key: string = "key";
let sequenceKey: string = "skey";
let lngLatAlt: LngLatAlt = { alt: 0, lat: 0, lng: 0 };
let cameraType: CameraType = spherical ?
"spherical" :
null;
return this.createCompleteImage(
key,
lngLatAlt,
sequenceKey,
[0, 0, 0],
"2",
cameraType,
0);
}
}