mirror of
https://github.com/tengge1/ShadowEditor.git
synced 2026-01-25 15:08:11 +00:00
164 lines
7.4 KiB
JavaScript
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; |