/** * A model's mesh and its materials. *

* Use {@link Model#getMesh} to create an instance. *

* * @alias ModelMesh * @internalConstructor * @class * * @see Model#getMesh */ function ModelMesh(mesh, runtimeMaterialsById, id) { const materials = []; const primitives = mesh.primitives; const length = primitives.length; for (let i = 0; i < length; ++i) { const p = primitives[i]; materials[i] = runtimeMaterialsById[p.material]; } this._name = mesh.name; this._materials = materials; this._id = id; } Object.defineProperties(ModelMesh.prototype, { /** * The value of the name property of this mesh. * * @memberof ModelMesh.prototype * * @type {String} * @readonly */ name: { get: function () { return this._name; }, }, /** * The index of the mesh. * * @memberof ModelMesh.prototype * * @type {String} * @readonly */ id: { get: function () { return this._id; }, }, /** * An array of {@link ModelMaterial} instances indexed by the mesh's * primitive indices. * * @memberof ModelMesh.prototype * * @type {ModelMaterial[]} * @readonly */ materials: { get: function () { return this._materials; }, }, }); export default ModelMesh;