import { BaseBoxHelper } from './BaseBoxHelper';
const __ = {
private: Symbol('private'),
}
/**
* @class ObjectColliderBoxHelper
* The object collider box helper object.
* @memberof THING
* @extends THING.BaseBoxHelper
*/
class ObjectColliderBoxHelper extends BaseBoxHelper {
/**
* The collider box helper of object, it can show collider box in scene.
*/
constructor(param = {}) {
super(param);
this[__.private] = {};
let _private = this[__.private];
_private.object = param['object'];
}
// #region Override
onLateUpdate(deltaTime) {
let _private = this[__.private];
let object = _private.object;
let collider = object.collider;
let transform = collider.areaInfo.transform;
let min = transform.min;
let max = transform.max;
let boxPoints = [
// TOP
[min[0], min[1], min[2]], // 0
[max[0], min[1], min[2]], // 1
[max[0], min[1], max[2]], // 2
[min[0], min[1], max[2]], // 3
// BOTTOM
[min[0], max[1], min[2]], // 4
[max[0], max[1], min[2]], // 5
[max[0], max[1], max[2]], // 6
[min[0], max[1], max[2]], // 7
];
this.begin();
this.buildBox(boxPoints);
this.end();
super.onLateUpdate(deltaTime);
}
// #endregion
// #region Accessor
/**
* Get object.
* @type {THING.BaseObject}
* @private
*/
get object() {
let _private = this[__.private];
return _private.object;
}
// #endregion
}
export { ObjectColliderBoxHelper }