import { StateGroup } from '@uino/base-thing';
const __ = {
private: Symbol('private'),
}
/**
* @class Picker
* 管理场景拾取功能
* @memberof THING
* @public
*/
class Picker {
/**
* 拾取器类,负责管理场景拾取功能
*/
constructor() {
this[__.private] = {};
let _private = this[__.private];
_private.stateGroup = new StateGroup();
// Enable pick as default
this.enable = true;
}
dispose() {
let _private = this[__.private];
_private.stateGroup = null;
}
/**
* Get the state group.
* @type {object}
* @private
*/
get stateGroup() {
return this[__.private].stateGroup;
}
/**
* 开启/关闭拾取功能
* @type {boolean}
* @example
* THING.App.current.picker.enable = false;
* let ret = THING.App.current.picker.enable == false;
* // @expect(ret == true);
* @public
*/
get enable() {
return this[__.private].stateGroup.isEnable();
}
set enable(value) {
this[__.private].stateGroup.enable(value, 'default', 1000);
}
}
export { Picker }