You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
211 lines
5.7 KiB
TypeScript
211 lines
5.7 KiB
TypeScript
// Copyright (C) 2019-2022 Intel Corporation
|
|
//
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
interface RawLoaderData {
|
|
name: string;
|
|
ext: string;
|
|
version: string;
|
|
enabled: boolean;
|
|
dimension: '2d' | '3d';
|
|
}
|
|
|
|
/**
|
|
* Class representing an annotation loader
|
|
* @memberof module:API.cvat.classes
|
|
* @hideconstructor
|
|
*/
|
|
export class Loader {
|
|
public name: string;
|
|
public format: string;
|
|
public version: string;
|
|
public enabled: boolean;
|
|
public dimension: '2d' | '3d';
|
|
|
|
constructor(initialData: RawLoaderData) {
|
|
const data = {
|
|
name: initialData.name,
|
|
format: initialData.ext,
|
|
version: initialData.version,
|
|
enabled: initialData.enabled,
|
|
dimension: initialData.dimension,
|
|
};
|
|
|
|
Object.defineProperties(this, {
|
|
name: {
|
|
/**
|
|
* @name name
|
|
* @type {string}
|
|
* @memberof module:API.cvat.classes.Loader
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => data.name,
|
|
},
|
|
format: {
|
|
/**
|
|
* @name format
|
|
* @type {string}
|
|
* @memberof module:API.cvat.classes.Loader
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => data.format,
|
|
},
|
|
version: {
|
|
/**
|
|
* @name version
|
|
* @type {string}
|
|
* @memberof module:API.cvat.classes.Loader
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => data.version,
|
|
},
|
|
enabled: {
|
|
/**
|
|
* @name enabled
|
|
* @type {boolean}
|
|
* @memberof module:API.cvat.classes.Loader
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => data.enabled,
|
|
},
|
|
dimension: {
|
|
/**
|
|
* @name dimension
|
|
* @type {module:API.cvat.enums.DimensionType}
|
|
* @memberof module:API.cvat.classes.Loader
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => data.dimension,
|
|
},
|
|
});
|
|
}
|
|
}
|
|
|
|
type RawDumperData = RawLoaderData;
|
|
|
|
/**
|
|
* Class representing an annotation dumper
|
|
* @memberof module:API.cvat.classes
|
|
* @hideconstructor
|
|
*/
|
|
export class Dumper {
|
|
public name: string;
|
|
public format: string;
|
|
public version: string;
|
|
public enabled: boolean;
|
|
public dimension: '2d' | '3d';
|
|
|
|
constructor(initialData: RawDumperData) {
|
|
const data = {
|
|
name: initialData.name,
|
|
format: initialData.ext,
|
|
version: initialData.version,
|
|
enabled: initialData.enabled,
|
|
dimension: initialData.dimension,
|
|
};
|
|
|
|
Object.defineProperties(this, {
|
|
name: {
|
|
/**
|
|
* @name name
|
|
* @type {string}
|
|
* @memberof module:API.cvat.classes.Dumper
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => data.name,
|
|
},
|
|
format: {
|
|
/**
|
|
* @name format
|
|
* @type {string}
|
|
* @memberof module:API.cvat.classes.Dumper
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => data.format,
|
|
},
|
|
version: {
|
|
/**
|
|
* @name version
|
|
* @type {string}
|
|
* @memberof module:API.cvat.classes.Dumper
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => data.version,
|
|
},
|
|
enabled: {
|
|
/**
|
|
* @name enabled
|
|
* @type {boolean}
|
|
* @memberof module:API.cvat.classes.Dumper
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => data.enabled,
|
|
},
|
|
dimension: {
|
|
/**
|
|
* @name dimension
|
|
* @type {module:API.cvat.enums.DimensionType}
|
|
* @memberof module:API.cvat.classes.Dumper
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => data.dimension,
|
|
},
|
|
});
|
|
}
|
|
}
|
|
|
|
interface AnnotationFormatRawData {
|
|
importers: RawLoaderData[];
|
|
exporters: RawDumperData[];
|
|
}
|
|
|
|
/**
|
|
* Class representing an annotation format
|
|
* @memberof module:API.cvat.classes
|
|
* @hideconstructor
|
|
*/
|
|
export class AnnotationFormats {
|
|
public loaders: Loader[];
|
|
public dumpers: Dumper[];
|
|
|
|
constructor(initialData: AnnotationFormatRawData) {
|
|
const data = {
|
|
exporters: initialData.exporters.map((el) => new Dumper(el)),
|
|
importers: initialData.importers.map((el) => new Loader(el)),
|
|
};
|
|
|
|
Object.defineProperties(this, {
|
|
loaders: {
|
|
/**
|
|
* @name loaders
|
|
* @type {module:API.cvat.classes.Loader[]}
|
|
* @memberof module:API.cvat.classes.AnnotationFormats
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => [...data.importers],
|
|
},
|
|
dumpers: {
|
|
/**
|
|
* @name dumpers
|
|
* @type {module:API.cvat.classes.Dumper[]}
|
|
* @memberof module:API.cvat.classes.AnnotationFormats
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => [...data.exporters],
|
|
},
|
|
});
|
|
}
|
|
}
|