threeDData = {
const count = 9;
let pts = math
.linspace(count, true)
.flatMap((w) =>
math
.linspace(count, true)
.flatMap((v) =>
math
.linspace(count, true)
.map((u) => [2 * u - 1, 2 * v - 1, 2 * w - 1])
)
);
pts = pts.map((pt) => GLVec3.scale([], pt, scaling));
pts = pts.map((pt) => GLVec3.rotateY([], pt, [0, 0, 0], -rotateV * Math.PI));
pts = pts.map((pt) => GLVec3.rotateX([], pt, [0, 0, 0], rotateU * Math.PI));
pts = pts.map((pt) => {
const [x, y, z] = pt;
return [x, y, z + projectionPlane[0][2] + 1000];
});
return pts;
}