164 lines
7.4 KiB
JavaScript

import BaseSerializer from '../BaseSerializer';
import TexturesSerializer from '../texture/TexturesSerializer';
/**
* MaterialSerializer
* @author tengge / https://github.com/tengge1
*/
function MaterialSerializer() {
BaseSerializer.call(this);
}
MaterialSerializer.prototype = Object.create(BaseSerializer.prototype);
MaterialSerializer.prototype.constructor = MaterialSerializer;
MaterialSerializer.prototype.toJSON = function (obj) {
var json = BaseSerializer.prototype.toJSON.call(this, obj);
json.alphaMap = obj.alphaMap == null ? null : (new TexturesSerializer()).toJSON(obj.alphaMap);
json.alphaTest = obj.alphaTest;
json.aoMap = obj.aoMap == null ? null : (new TexturesSerializer()).toJSON(obj.aoMap);
json.aoMapIntensity = obj.aoMapIntensity;
json.blendDst = obj.blendDst;
json.blendDstAlpha = obj.blendDstAlpha;
json.blendEquation = obj.blendEquation;
json.blendEquationAlpha = obj.blendEquationAlpha;
json.blendSrc = obj.blendSrc;
json.blendSrcAlpha = obj.blendSrcAlpha;
json.blending = obj.blending;
json.bumpMap = obj.bumpMap == null ? null : (new TexturesSerializer()).toJSON(obj.bumpMap);
json.bumpScale = obj.bumpScale;
json.clipIntersection = obj.clipIntersection;
json.clipShadow = obj.clipShadow;
json.clippingPlanes = obj.clippingPlanes;
json.color = obj.color;
json.colorWrite = obj.colorWrite;
json.depthFunc = obj.depthFunc;
json.depthTest = obj.depthTest;
json.depthWrite = obj.depthWrite;
json.displacementBias = obj.displacementBias;
json.displacementMap = obj.displacementMap == null ? null : (new TexturesSerializer()).toJSON(obj.displacementMap);
json.displacementScale = obj.displacementScale;
json.dithering = obj.dithering;
json.emissive = obj.emissive;
json.emissiveIntensity = obj.emissiveIntensity;
json.emissiveMap = obj.emissiveMap == null ? null : (new TexturesSerializer()).toJSON(obj.emissiveMap);
json.envMap = obj.envMap == null ? null : (new TexturesSerializer()).toJSON(obj.envMap);
json.envMapIntensity = obj.envMapIntensity;
json.flatShading = obj.flatShading;
json.fog = obj.fog;
json.lightMap = obj.lightMap == null ? null : (new TexturesSerializer()).toJSON(obj.lightMap);
json.lightMapIntensity = obj.lightMapIntensity;
json.lights = obj.lights;
json.linewidth = obj.linewidth;
json.map = obj.map == null ? null : (new TexturesSerializer()).toJSON(obj.map);
json.metalness = obj.metalness;
json.metalnessMap = obj.metalnessMap == null ? null : (new TexturesSerializer()).toJSON(obj.metalnessMap);
json.morphNormals = obj.morphNormals;
json.morphTargets = obj.morphTargets;
json.name = obj.name;
json.normalMap = obj.normalMap == null ? null : (new TexturesSerializer()).toJSON(obj.normalMap);
json.normalScale = obj.normalScale;
json.opacity = obj.opacity;
json.overdraw = obj.overdraw;
json.polygonOffset = obj.polygonOffset;
json.polygonOffsetFactor = obj.polygonOffsetFactor;
json.polygonOffsetUnits = obj.polygonOffsetUnits;
json.precision = obj.precision;
json.premultipliedAlpha = obj.premultipliedAlpha;
json.refractionRatio = obj.refractionRatio;
json.roughness = obj.roughness;
json.roughnessMap = obj.roughnessMap == null ? null : (new TexturesSerializer()).toJSON(obj.roughnessMap);
json.shadowSide = obj.shadowSide;
json.side = obj.side;
json.skinning = obj.skinning;
json.transparent = obj.transparent;
json.type = obj.type;
json.userData = obj.userData;
json.uuid = obj.uuid;
json.vertexColors = obj.vertexColors;
json.visible = obj.visible;
json.wireframe = obj.wireframe;
json.wireframeLinecap = obj.wireframeLinecap;
json.wireframeLinejoin = obj.wireframeLinejoin;
json.wireframeLinewidth = obj.wireframeLinewidth;
return json;
};
MaterialSerializer.prototype.fromJSON = function (json, parent) {
var obj = parent === undefined ? new THREE.Material() : parent;
obj.alphaMap = json.alphaMap == null ? null : (new TexturesSerializer()).fromJSON(json.alphaMap);
obj.alphaTest = json.alphaTest;
obj.aoMap = json.aoMap == null ? null : (new TexturesSerializer()).fromJSON(json.aoMap);
obj.aoMapIntensity = json.aoMapIntensity;
obj.blendDst = json.blendDst;
obj.blendDstAlpha = json.blendDstAlpha;
obj.blendEquation = json.blendEquation;
obj.blendEquationAlpha = json.blendEquationAlpha;
obj.blendSrc = json.blendSrc;
obj.blendSrcAlpha = json.blendSrcAlpha;
obj.blending = json.blending;
obj.bumpMap = json.bumpMap == null ? null : (new TexturesSerializer()).fromJSON(json.bumpMap);
obj.bumpScale = json.bumpScale;
obj.clipIntersection = json.clipIntersection;
obj.clipShadow = json.clipShadow;
obj.clippingPlanes = json.clippingPlanes;
obj.color = json.color == null ? null : new THREE.Color(json.color);
obj.colorWrite = json.colorWrite;
obj.depthFunc = json.depthFunc;
obj.depthTest = json.depthTest;
obj.depthWrite = json.depthWrite;
obj.displacementBias = json.displacementBias;
obj.displacementMap = json.displacementMap == null ? null : (new TexturesSerializer()).fromJSON(json.displacementMap);
obj.displacementScale = json.displacementScale;
obj.dithering = json.dithering;
obj.emissive = json.emissive == null ? undefined : new THREE.Color(json.emissive);
obj.emissiveIntensity = json.emissiveIntensity;
obj.emissiveMap = json.emissiveMap == null ? null : (new TexturesSerializer()).fromJSON(json.emissiveMap);
obj.envMap = json.envMap == null ? null : (new TexturesSerializer()).fromJSON(json.envMap);
obj.envMapIntensity = json.envMapIntensity;
obj.flatShading = json.flatShading;
obj.fog = json.fog;
obj.lightMap = json.lightMap == null ? null : (new TexturesSerializer()).fromJSON(json.lightMap);
obj.lightMapIntensity = json.lightMapIntensity;
obj.lights = json.lights;
obj.linewidth = json.linewidth;
obj.map = json.map == null ? null : (new TexturesSerializer()).fromJSON(json.map);
obj.metalness = json.metalness;
obj.metalnessMap = json.metalnessMap == null ? null : (new TexturesSerializer()).fromJSON(json.metalnessMap);
obj.morphNormals = json.morphNormals;
obj.morphTargets = json.morphTargets;
obj.name = json.name;
obj.normalMap = json.normalMap == null ? null : (new TexturesSerializer()).fromJSON(json.normalMap);
obj.normalScale = json.normalScale == null ? null : new THREE.Vector2().copy(json.normalScale);
obj.opacity = json.opacity;
obj.overdraw = json.overdraw;
obj.polygonOffset = json.polygonOffset;
obj.polygonOffsetFactor = json.polygonOffsetFactor;
obj.polygonOffsetUnits = json.polygonOffsetUnits;
obj.precision = json.precision;
obj.premultipliedAlpha = json.premultipliedAlpha;
obj.refractionRatio = json.refractionRatio;
obj.roughness = json.roughness;
obj.roughnessMap = json.roughnessMap == null ? null : (new TexturesSerializer()).fromJSON(json.roughnessMap);
obj.shadowSide = json.shadowSide;
obj.side = json.side;
obj.skinning = json.skinning;
obj.transparent = json.transparent;
obj.type = json.type;
obj.userData = json.userData;
obj.uuid = json.uuid;
obj.vertexColors = json.vertexColors;
obj.visible = json.visible;
obj.wireframe = json.wireframe;
obj.wireframeLinecap = json.wireframeLinecap;
obj.wireframeLinejoin = json.wireframeLinejoin;
obj.wireframeLinewidth = json.wireframeLinewidth;
return obj;
};
export default MaterialSerializer;