2018-09-16 21:34:42 +08:00

45 lines
1.3 KiB
JavaScript

import BaseSerializer from '../BaseSerializer';
import MeshSerializer from '../core/MeshSerializer';
import GeometriesSerializer from '../geometry/GeometriesSerializer';
/**
* ReflectorSerializer
* @author tengge / https://github.com/tengge1
*/
function ReflectorSerializer() {
BaseSerializer.call(this);
}
ReflectorSerializer.prototype = Object.create(BaseSerializer.prototype);
ReflectorSerializer.prototype.constructor = ReflectorSerializer;
ReflectorSerializer.prototype.toJSON = function (obj) {
var json = MeshSerializer.prototype.toJSON.call(this, obj);
if (json.userData.mesh) {
json.userData.mesh = (new MeshSerializer()).toJSON(json.userData.mesh);
}
return json;
};
ReflectorSerializer.prototype.fromJSON = function (json) {
var geometry = (new GeometriesSerializer()).fromJSON(json.geometry);
var obj = new THREE.Reflector(geometry, {
color: json.userData.color,
textureWidth: parseInt(json.userData.size),
textureHeight: parseInt(json.userData.size),
clipBias: json.userData.clipBias,
recursion: json.userData.recursion ? 1 : 0
});
MeshSerializer.prototype.fromJSON.call(this, json, obj);
if (obj.userData.mesh) {
obj.userData.mesh = (new MeshSerializer()).fromJSON(obj.userData.mesh);
}
return obj;
};
export default ReflectorSerializer;