"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.GenerateImGuiReferences = void 0;
function GenerateImGuiReferences() {
    return function _GenerateImGuiReferences(constr) {
        return class extends constr {
            constructor(...args) {
                const p = constr.prototype;
                super(...args);
                Object.setPrototypeOf(this, p);
                let ref_string = "__ref_";
                Object.keys(this).forEach((key) => {
                    if (key.startsWith(ref_string)) {
                        Object.defineProperty(this, key.substring(ref_string.length, key.length), {
                            get: () => {
                                return this[key][0];
                            },
                            set: (value) => {
                                this[key][0] = value;
                            }
                        });
                    }
                });
            }
        };
    };
}
exports.GenerateImGuiReferences = GenerateImGuiReferences;
//# sourceMappingURL=ImGuiMacros.js.map