mirror of
https://github.com/smallmain/cocos-enhance-kit.git
synced 2025-01-15 15:31:08 +00:00
66 lines
1.2 KiB
JavaScript
66 lines
1.2 KiB
JavaScript
|
// Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.
|
||
|
|
||
|
/**
|
||
|
* A representation of a model
|
||
|
*/
|
||
|
export default class Model {
|
||
|
/**
|
||
|
* Setup a default empty model
|
||
|
*/
|
||
|
constructor() {
|
||
|
this._type = 'default';
|
||
|
this._poolID = -1;
|
||
|
this._node = null;
|
||
|
this._inputAssembler = null;
|
||
|
this._effect = null;
|
||
|
this._viewID = -1;
|
||
|
this._cameraID = -1;
|
||
|
this._userKey = -1;
|
||
|
this._castShadow = false;
|
||
|
this._boundingShape = null;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Set the hosting node of this model
|
||
|
* @param {Node} node the hosting node
|
||
|
*/
|
||
|
setNode(node) {
|
||
|
this._node = node;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Set the input assembler
|
||
|
* @param {InputAssembler} ia
|
||
|
*/
|
||
|
setInputAssembler(ia) {
|
||
|
this._inputAssembler = ia;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Set the model effect
|
||
|
* @param {?Effect} effect the effect to use
|
||
|
*/
|
||
|
setEffect(effect) {
|
||
|
this._effect = effect;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Set the user key
|
||
|
* @param {number} key
|
||
|
*/
|
||
|
setUserKey(key) {
|
||
|
this._userKey = key;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Extract a drawing item
|
||
|
* @param {Object} out the receiving item
|
||
|
*/
|
||
|
extractDrawItem(out) {
|
||
|
out.model = this;
|
||
|
out.node = this._node;
|
||
|
out.ia = this._inputAssembler;
|
||
|
out.effect = this._effect;
|
||
|
}
|
||
|
}
|