"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var Core = tslib_1.__importStar(require("@intelligentgraphics/ig.gfx.core"));
var SnapPoints_1 = tslib_1.__importDefault(require("./Interactor/SnapPoints"));
var IdSnapPointAssociator = /** @class */ (function () {
    function IdSnapPointAssociator() {
    }
    IdSnapPointAssociator.prototype.getAssociate = function (obj) {
        return new SnapPoints_1.default({
            id: obj,
            transformation: Core.getWorldTransformation(obj),
        });
    };
    return IdSnapPointAssociator;
}());
exports.IdSnapPointAssociator = IdSnapPointAssociator;
var IdPointsAssociator = /** @class */ (function () {
    function IdPointsAssociator() {
    }
    IdPointsAssociator.prototype.getAssociate = function (id) {
        return Core.State.API.GetPoints(id, null, null, null);
    };
    return IdPointsAssociator;
}());
exports.IdPointsAssociator = IdPointsAssociator;
var Caches = /** @class */ (function () {
    function Caches() {
    }
    Caches.snapPointsCache = new Core.Cache(new Core.ComponentTransformationKeyGenerator(), new IdSnapPointAssociator());
    Caches.pointsCache = new Core.Cache(new Core.ComponentIdKeyGenerator(), new IdPointsAssociator());
    return Caches;
}());
exports.Caches = Caches;
