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.
190 lines
5.8 KiB
JavaScript
190 lines
5.8 KiB
JavaScript
// Copyright (C) 2019-2020 Intel Corporation
|
|
//
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
(() => {
|
|
/**
|
|
* Class representing an annotation loader
|
|
* @memberof module:API.cvat.classes
|
|
* @hideconstructor
|
|
*/
|
|
class Loader {
|
|
constructor(initialData) {
|
|
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 {string}
|
|
* @memberof module:API.cvat.classes.Loader
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => data.enabled,
|
|
},
|
|
dimension: {
|
|
/**
|
|
* @name dimension
|
|
* @type {string}
|
|
* @memberof module:API.cvat.enums.DimensionType
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => data.dimension,
|
|
},
|
|
});
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Class representing an annotation dumper
|
|
* @memberof module:API.cvat.classes
|
|
* @hideconstructor
|
|
*/
|
|
class Dumper {
|
|
constructor(initialData) {
|
|
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 {string}
|
|
* @memberof module:API.cvat.classes.Loader
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => data.enabled,
|
|
},
|
|
dimension: {
|
|
/**
|
|
* @name dimension
|
|
* @type {string}
|
|
* @memberof module:API.cvat.enums.DimensionType
|
|
* @readonly
|
|
* @instance
|
|
*/
|
|
get: () => data.dimension,
|
|
},
|
|
});
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Class representing an annotation format
|
|
* @memberof module:API.cvat.classes
|
|
* @hideconstructor
|
|
*/
|
|
class AnnotationFormats {
|
|
constructor(initialData) {
|
|
const data = {
|
|
exporters: initialData.exporters.map((el) => new Dumper(el)),
|
|
importers: initialData.importers.map((el) => new Loader(el)),
|
|
};
|
|
|
|
// Now all fields are readonly
|
|
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],
|
|
},
|
|
});
|
|
}
|
|
}
|
|
|
|
module.exports = {
|
|
AnnotationFormats,
|
|
Loader,
|
|
Dumper,
|
|
};
|
|
})();
|