@antv/g2
Version:
the Grammar of Graphics in Javascript
64 lines • 2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Pyramid = void 0;
const coordinate_1 = require("../../utils/coordinate");
const funnel_1 = require("./funnel");
/**
* Adjust and return the new `points`.
*/
function getPyramidPoints(points, nextPoints, previousPoints, coordinate, reverse) {
const [p0, p1, p2, p3] = points;
if ((0, coordinate_1.isTranspose)(coordinate)) {
if (reverse) {
const newP0 = [
previousPoints ? previousPoints[1][0] : (p0[0] + p3[0]) / 2,
p0[1],
];
const newP3 = [
previousPoints ? previousPoints[2][0] : (p0[0] + p3[0]) / 2,
p3[1],
];
return [newP0, p1, p2, newP3];
}
const newP1 = [
nextPoints ? nextPoints[0][0] : (p1[0] + p2[0]) / 2,
p1[1],
];
const newP2 = [
nextPoints ? nextPoints[3][0] : (p1[0] + p2[0]) / 2,
p2[1],
];
return [p0, newP1, newP2, p3];
}
if (reverse) {
const newP0 = [
p0[0],
previousPoints ? previousPoints[1][1] : (p0[1] + p3[1]) / 2,
];
const newP3 = [
p3[0],
previousPoints ? previousPoints[2][1] : (p0[1] + p3[1]) / 2,
];
return [newP0, p1, p2, newP3];
}
const newP1 = [
p1[0],
nextPoints ? nextPoints[0][1] : (p1[1] + p2[1]) / 2,
];
const newP2 = [
p2[0],
nextPoints ? nextPoints[3][1] : (p1[1] + p2[1]) / 2,
];
return [p0, newP1, newP2, p3];
}
/**
* Render pyramid in different coordinate and using color channel for stroke and fill attribute.
*/
const Pyramid = (options, context) => {
return (0, funnel_1.Funnel)(Object.assign({ adjustPoints: getPyramidPoints }, options), context);
};
exports.Pyramid = Pyramid;
exports.Pyramid.props = {
defaultMarker: 'square',
};
//# sourceMappingURL=pyramid.js.map