start new slice / layer / render system
This commit is contained in:
parent
b959328906
commit
4ca0a26af5
6 changed files with 134 additions and 8 deletions
|
|
@ -94,7 +94,8 @@
|
|||
bridges: encode(this.bridges, state),
|
||||
flats: encode(this.flats, state),
|
||||
solids: encode(this.solids, state),
|
||||
supports: encode(this.supports, state)
|
||||
supports: encode(this.supports, state),
|
||||
render: encode(this.render, state)
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -108,10 +109,38 @@
|
|||
slice.flats = decode(v.flats, state);
|
||||
slice.solids = decode(v.solids, state);
|
||||
slice.supports = decode(v.supports, state);
|
||||
slice.render = decode(v.render, state)
|
||||
|
||||
return slice;
|
||||
});
|
||||
|
||||
KIRI.Render.prototype.encode = function(state) {
|
||||
let enc = {
|
||||
type: 'render',
|
||||
layers: Object.keys(this.layers),
|
||||
data: Object.values(this.layers).map(layer => { return {
|
||||
polys: encode(layer.polys, state),
|
||||
lines: encodePointArray(layer.lines, state),
|
||||
faces: encodePointArray(layer.faces, state),
|
||||
color: layer.color
|
||||
} })
|
||||
};
|
||||
return enc;
|
||||
};
|
||||
|
||||
registerDecoder('render', function(v, state) {
|
||||
let render = new KIRI.Render();
|
||||
for (let i=0; i<v.layers.length; i++) {
|
||||
render.layers[v.layers[i]] = {
|
||||
polys: decode(v.data[i].polys, state),
|
||||
lines: decodePointArray(v.data[i].lines),
|
||||
faces: decodePointArray(v.data[i].faces),
|
||||
color: v.data[i].color
|
||||
};
|
||||
}
|
||||
return render;
|
||||
});
|
||||
|
||||
KIRI.Top.prototype.encode = function(state) {
|
||||
return {
|
||||
type: 'top',
|
||||
|
|
|
|||
Loading…
Reference in a new issue