mirror of
https://github.com/chanzuckerberg/cellxgene.git
synced 2026-09-25 06:38:11 +08:00
* 1510-smoke-test * config default * update tests * update test config * fix linter errors * more comments * address comments * use npm install in push_tests.yml * use environment.default.json * adding docs * Take care of @mweiden's nits * Save screenshots in the __tests__/screenshots/ directory * typo * docs * Add chart tests (#1580) * merge tests * check if bin creation returned null before rendering charts (#1576) * check if bin creation returned null before rendering charts * refactor chart rendering into functions (#1577) * little fixes from PR * reintroduce fix to check for null values * change getAllByClass to return element * slice instead * new stackedbar test * feedback-1573-test (#1579) * feedback-1573-test * enable whole test set * revert tests Co-authored-by: Timmy Huang <tihuan@users.noreply.github.com> * tweak test to actually render chart * include snapshot * remove async * fix getAllHistograms * properly grab id Co-authored-by: Timmy Huang <tihuan@users.noreply.github.com> Co-authored-by: Matt Weiden <538456+mweiden@users.noreply.github.com> Co-authored-by: Severiano Badajoz <sbadajoz@chanzuckerberg.com>
72 lines
1.6 KiB
JavaScript
72 lines
1.6 KiB
JavaScript
import { glPointFlags, glPointSize } from "../../util/glHelpers";
|
|
|
|
export default function drawPointsRegl(regl) {
|
|
return regl({
|
|
vert: `
|
|
precision mediump float;
|
|
|
|
attribute vec2 position;
|
|
attribute vec3 color;
|
|
attribute float flag;
|
|
|
|
uniform float distance;
|
|
uniform mat3 projView;
|
|
uniform float nPoints;
|
|
uniform float minViewportDimension;
|
|
|
|
varying vec4 fragColor;
|
|
|
|
const float zBottom = 0.99;
|
|
const float zMiddle = 0.;
|
|
const float zTop = -1.;
|
|
|
|
// import getFlags()
|
|
${glPointFlags}
|
|
|
|
// get pointSize()
|
|
${glPointSize}
|
|
|
|
void main() {
|
|
bool isNaN, isSelected, isHighlight;
|
|
getFlags(flag, isNaN, isSelected, isHighlight);
|
|
|
|
float size = pointSize(nPoints, minViewportDimension, isSelected, isHighlight);
|
|
gl_PointSize = size * pow(distance, 0.5);
|
|
|
|
float z = isNaN ? zBottom : (isHighlight ? zTop : zMiddle);
|
|
vec3 xy = projView * vec3(position, 1.);
|
|
gl_Position = vec4(xy.xy, z, 1.);
|
|
|
|
float alpha = isNaN ? 0.9 : 1.0;
|
|
fragColor = vec4(color, alpha);
|
|
}`,
|
|
|
|
frag: `
|
|
precision mediump float;
|
|
varying vec4 fragColor;
|
|
void main() {
|
|
if (length(gl_PointCoord.xy - 0.5) > 0.5) {
|
|
discard;
|
|
}
|
|
gl_FragColor = fragColor;
|
|
}`,
|
|
|
|
attributes: {
|
|
position: regl.prop("position"),
|
|
color: regl.prop("color"),
|
|
flag: regl.prop("flag"),
|
|
},
|
|
|
|
uniforms: {
|
|
distance: regl.prop("distance"),
|
|
projView: regl.prop("projView"),
|
|
nPoints: regl.prop("nPoints"),
|
|
minViewportDimension: regl.prop("minViewportDimension"),
|
|
},
|
|
|
|
count: regl.prop("count"),
|
|
|
|
primitive: "points",
|
|
});
|
|
}
|