cione-comp-lib
Version:
`$ yarn add cione-comp-lib` 或者 `$ npm i cione-comp-lib -S`
46 lines (45 loc) • 1.59 kB
JavaScript
import Geometry from "../../../../claygl/src/Geometry.mjs";
import "../../../../echarts/lib/echarts.mjs";
var LinesGeometry = Geometry.extend(
function() {
return {
dynamic: true,
attributes: {
position: new Geometry.Attribute("position", "float", 3, "POSITION")
}
};
},
{
resetOffset: function() {
this._vertexOffset = 0;
this._faceOffset = 0;
},
setLineCount: function(nLine) {
var attributes = this.attributes;
var nVertex = 4 * nLine;
var nTriangle = 2 * nLine;
if (this.vertexCount !== nVertex) {
attributes.position.init(nVertex);
}
if (this.triangleCount !== nTriangle) {
if (nTriangle === 0) {
this.indices = null;
} else {
this.indices = this.vertexCount > 65535 ? new Uint32Array(nTriangle * 3) : new Uint16Array(nTriangle * 3);
}
}
},
addLine: function(p) {
var vertexOffset = this._vertexOffset;
this.attributes.position.set(vertexOffset, [p[0], p[1], 1]);
this.attributes.position.set(vertexOffset + 1, [p[0], p[1], -1]);
this.attributes.position.set(vertexOffset + 2, [p[0], p[1], 2]);
this.attributes.position.set(vertexOffset + 3, [p[0], p[1], -2]);
this.setTriangleIndices(this._faceOffset++, [vertexOffset, vertexOffset + 1, vertexOffset + 2]);
this.setTriangleIndices(this._faceOffset++, [vertexOffset + 1, vertexOffset + 2, vertexOffset + 3]);
this._vertexOffset += 4;
}
}
);
var Line2DGeometry = LinesGeometry;
export { Line2DGeometry as default };