@cesium/engine
Version:
CesiumJS is a JavaScript library for creating 3D globes and 2D maps in a web browser without a plugin.
36 lines (31 loc) • 1.08 kB
JavaScript
import Color from "../Core/Color.js";
import DeveloperError from "../Core/DeveloperError.js";
import Resource from "../Core/Resource.js";
import ColorMaterialProperty from "./ColorMaterialProperty.js";
import createPropertyDescriptor from "./createPropertyDescriptor.js";
import ImageMaterialProperty from "./ImageMaterialProperty.js";
function createMaterialProperty(value) {
if (value instanceof Color) {
return new ColorMaterialProperty(value);
}
if (
typeof value === "string" ||
value instanceof Resource ||
value instanceof HTMLCanvasElement ||
value instanceof HTMLVideoElement
) {
const result = new ImageMaterialProperty();
result.image = value;
return result;
}
//>>includeStart('debug', pragmas.debug);
throw new DeveloperError(`Unable to infer material type: ${value}`);
//>>includeEnd('debug');
}
/**
* @private
*/
function createMaterialPropertyDescriptor(name, configurable) {
return createPropertyDescriptor(name, configurable, createMaterialProperty);
}
export default createMaterialPropertyDescriptor;