/** * Basic utility functions to create sample volume data * @class */ export default class VolumeMaker { /** * Rasterize a signed distance function into a volume of vx * vy * vz dimensions. This is a binary filling operation. * @param {number} vx * @param {number} vy * @param {number} vz * @param {function} sdFunc A function f(x,y,z) that returns a distance. f < 0 will be the interior of the volume, and f>=0 will be outside. */ static createVolume(vx: number, vy: number, vz: number, sdFunc: (px: number, py: number, pz: number) => number): Uint8Array; /** * Create a volume filled with a sphere in the center * @param {number} vx * @param {number} vy * @param {number} vz * @param {number} radius */ static createSphere(vx: number, vy: number, vz: number, radius: number): Uint8Array; /** * Create a volume with a cylinder centered inside. * @param {number} vx * @param {number} vy * @param {number} vz * @param {number} hx width of cap (?) * @param {number} hy depth of cap (?) */ static createCylinder(vx: number, vy: number, vz: number, hx: number, hy: number): Uint8Array; /** * Create a volume with a torus centered inside * @param {number} vx * @param {number} vy * @param {number} vz * @param {number} tx inner radius * @param {number} ty outer radius */ static createTorus(vx: number, vy: number, vz: number, tx: number, ty: number): Uint8Array; /** * Create a volume with a cone centered inside. cx, cy must be a 2d normalized pair...? * @param {number} vx * @param {number} vy * @param {number} vz * @param {number} cx base radius * @param {number} cy height */ static createCone(vx: number, vy: number, vz: number, cx: number, cy: number): Uint8Array; }