123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- import defined from "../Core/defined.js";
- import DeveloperError from "../Core/DeveloperError.js";
- function ModelMaterial(model, material, id) {
- this._name = material.name;
- this._id = id;
- this._uniformMap = model._uniformMaps[id];
- this._technique = undefined;
- this._program = undefined;
- this._values = undefined;
- }
- Object.defineProperties(ModelMaterial.prototype, {
-
- name: {
- get: function () {
- return this._name;
- },
- },
-
- id: {
- get: function () {
- return this._id;
- },
- },
- });
- ModelMaterial.prototype.setValue = function (name, value) {
-
- if (!defined(name)) {
- throw new DeveloperError("name is required.");
- }
-
- var uniformName = "u_" + name;
- var v = this._uniformMap.values[uniformName];
-
- if (!defined(v)) {
- throw new DeveloperError(
- "name must match a parameter name in the material's technique that is targetable and not optimized out."
- );
- }
-
- v.value = v.clone(value, v.value);
- };
- ModelMaterial.prototype.getValue = function (name) {
-
- if (!defined(name)) {
- throw new DeveloperError("name is required.");
- }
-
- var uniformName = "u_" + name;
- var v = this._uniformMap.values[uniformName];
- if (!defined(v)) {
- return undefined;
- }
- return v.value;
- };
- export default ModelMaterial;
|