点标注保存载入。

This commit is contained in:
tengge1 2019-12-05 22:10:50 +08:00
parent 74a2e213c6
commit aefb2efe4e
3 changed files with 36 additions and 1 deletions

View File

@ -16,7 +16,7 @@ Supported Languages: 中文 / [繁體中文](README-tw.md) / [English](README-en
3. 修复浏览器窗口缩放后文件大小发生改变bug。
4. 修复物体平移旋转缩放后鼠标放到物体上高亮不准的bug。
5. 移除`d3.js`,不再使用`d3`开发可视化功能,使用`d3-dispatch`代替完整版`d3.js`
6. 点标注改为不会缩放的三角形标注。
6. 点标注改为不会缩放的三角形标注,可以正常保存载入了
## v0.3.8更新【[更新日志](docs-dev/update/UpdateLog.md)】

View File

@ -47,6 +47,9 @@ import QuadraticBezierCurveSerializer from './line/QuadraticBezierCurveSerialize
import CubicBezierCurveSerializer from './line/CubicBezierCurveSerializer';
import EllipseCurveSerializer from './line/EllipseCurveSerializer';
// mark
import PointMarkerSerializer from './objects/mark/PointMarkerSerializer';
// gis
import GlobeSerializer from './gis/GlobeSerializer';
@ -175,6 +178,8 @@ Converter.prototype.traverse = function (obj, children, list) {
json = new CubicBezierCurveSerializer().toJSON(obj);
} else if (obj.userData.type === 'EllipseCurve') {
json = new EllipseCurveSerializer().toJSON(obj);
} else if (obj.userData.type === 'PointMarkerSerializer') {
json = new PointMarkerSerializer().toJSON();
} else if (obj.userData.type === 'Globe') {
json = new GlobeSerializer().toJSON(obj);
} else if (obj instanceof THREE.Scene) {
@ -424,6 +429,8 @@ Converter.prototype.parse = function (jsons, options) {
parts.push(new EllipseCurveSerializer().fromJSON(n));
} else if (generator === 'Object3DSerializer') {
parts.push(new Object3DSerializer().fromJSON(n));
} else if (generator === 'PointMarkerSerializer') {
parts.push(new PointMarkerSerializer.fromJSON(n));
} else {
console.warn(`Converter: No Deserializer with ${generator}.`);
}

View File

@ -0,0 +1,28 @@
import BaseSerializer from '../../BaseSerializer';
import Object3DSerializer from '../../core/Object3DSerializer';
import PointMarker from '../../../object/mark/PointMarker';
/**
* PointMarkerSerializer
* @author tengge / https://github.com/tengge1
*/
function PointMarkerSerializer() {
BaseSerializer.call(this);
}
PointMarkerSerializer.prototype = Object.create(BaseSerializer.prototype);
PointMarkerSerializer.prototype.constructor = PointMarkerSerializer;
PointMarkerSerializer.prototype.toJSON = function (obj) {
return Object3DSerializer.prototype.toJSON.call(this, obj);
};
PointMarkerSerializer.prototype.fromJSON = function (json, parent) {
var obj = new PointMarker(json.userData.text);
Object3DSerializer.prototype.fromJSON.call(this, json, obj);
return obj;
};
export default PointMarkerSerializer;