UNPKG

cione-comp-lib

Version:

`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`

81 lines (80 loc) 2.27 kB
import Node3D from "./Node.mjs"; import glenum from "./core/glenum.mjs"; var Renderable = Node3D.extend( { material: null, geometry: null, mode: glenum.TRIANGLES, _renderInfo: null }, { __program: null, lightGroup: 0, renderOrder: 0, culling: true, cullFace: glenum.BACK, frontFace: glenum.CCW, frustumCulling: true, receiveShadow: true, castShadow: true, ignorePicking: false, ignorePreZ: false, ignoreGBuffer: false, isRenderable: function() { return this.geometry && this.material && this.material.shader && !this.invisible && this.geometry.vertexCount > 0; }, beforeRender: function(_gl) { }, afterRender: function(_gl, renderStat) { }, getBoundingBox: function(filter, out) { out = Node3D.prototype.getBoundingBox.call(this, filter, out); if (this.geometry && this.geometry.boundingBox) { out.union(this.geometry.boundingBox); } return out; }, clone: function() { var properties = [ "castShadow", "receiveShadow", "mode", "culling", "cullFace", "frontFace", "frustumCulling", "renderOrder", "lineWidth", "ignorePicking", "ignorePreZ", "ignoreGBuffer" ]; return function() { var renderable = Node3D.prototype.clone.call(this); renderable.geometry = this.geometry; renderable.material = this.material; for (var i = 0; i < properties.length; i++) { var name = properties[i]; if (renderable[name] !== this[name]) { renderable[name] = this[name]; } } return renderable; }; }() } ); Renderable.POINTS = glenum.POINTS; Renderable.LINES = glenum.LINES; Renderable.LINE_LOOP = glenum.LINE_LOOP; Renderable.LINE_STRIP = glenum.LINE_STRIP; Renderable.TRIANGLES = glenum.TRIANGLES; Renderable.TRIANGLE_STRIP = glenum.TRIANGLE_STRIP; Renderable.TRIANGLE_FAN = glenum.TRIANGLE_FAN; Renderable.BACK = glenum.BACK; Renderable.FRONT = glenum.FRONT; Renderable.FRONT_AND_BACK = glenum.FRONT_AND_BACK; Renderable.CW = glenum.CW; Renderable.CCW = glenum.CCW; var Renderable$1 = Renderable; export { Renderable$1 as default };