import { BodyObject } from './BodyObject';
import { Object3D } from './Object3D';
import { Utils } from '@uino/base-thing';
/**
* @class Object3D
* The base object 3D.
* @memberof THING
* @extends THING.BaseObject
*/
class BaseContainer3D extends Object3D {
/**
* The base container in scene.
*/
constructor(param = {}) {
super(param);
}
onSetupBody(param) {
// Container do not create any renderable node, so we just create root node here
param['rootNode'] = param['rootNode'] || Utils.createObject('Node');
// Create body object with root node
this._body = new BodyObject();
this._body.init(this, param);
// Container is always in loaded state
this.loaded = true;
}
/**
* Check whether it's BaseContainer3D type or inherit from it.
* @type {Boolean}
* @example
* let point = new THING.BaseContainer3D();
* let ret = point.isBaseContainer3D;
* // @expect(ret == true);
*/
get isBaseContainer3D() {
return true;
}
}
export { BaseContainer3D }