UNPKG

@bitbybit-dev/manifold-worker

Version:

Bit By Bit Developers Manifold Based CAD Library to Program Geometry Via WebWorker

152 lines (151 loc) 6.03 kB
import { ManifoldWorkerManager } from "../../manifold-worker/manifold-worker-manager"; import * as Inputs from "@bitbybit-dev/manifold/lib/api/inputs"; /** * Contains various functions for Solid meshes from Manifold library https://github.com/elalish/manifold * Thanks Manifold community for developing this kernel */ export declare class ManifoldEvaluate { private readonly manifoldWorkerManager; constructor(manifoldWorkerManager: ManifoldWorkerManager); /** * Get surface area of manifold * @param inputs manifold * @returns surface area of manifold * @group basic * @shortname surface area * @drawable false */ surfaceArea(inputs: Inputs.Manifold.ManifoldDto<Inputs.Manifold.ManifoldPointer>): Promise<number>; /** * Get volume of manifold * @param inputs manifold * @returns volume of manifold * @group basic * @shortname volume * @drawable false */ volume(inputs: Inputs.Manifold.ManifoldDto<Inputs.Manifold.ManifoldPointer>): Promise<number>; /** * Check if manifold contains triangles * @param inputs manifold * @returns boolean indicating emptyness * @group basic * @shortname is empty * @drawable false */ isEmpty(inputs: Inputs.Manifold.ManifoldDto<Inputs.Manifold.ManifoldPointer>): Promise<boolean>; /** * Get number of vertices in manifold * @param inputs manifold * @returns number of vertices of manifold * @group basic * @shortname num vert * @drawable false */ numVert(inputs: Inputs.Manifold.ManifoldDto<Inputs.Manifold.ManifoldPointer>): Promise<number>; /** * Get number of triangles in manifold * @param inputs manifold * @returns number of triangles of manifold * @group basic * @shortname num triangles * @drawable false */ numTri(inputs: Inputs.Manifold.ManifoldDto<Inputs.Manifold.ManifoldPointer>): Promise<number>; /** * Get number of edges in manifold * @param inputs manifold * @returns number of edges of manifold * @group basic * @shortname num edges * @drawable false */ numEdge(inputs: Inputs.Manifold.ManifoldDto<Inputs.Manifold.ManifoldPointer>): Promise<number>; /** * Get number of properties in manifold * @param inputs manifold * @returns number of properties of manifold * @group basic * @shortname num prop * @drawable false */ numProp(inputs: Inputs.Manifold.ManifoldDto<Inputs.Manifold.ManifoldPointer>): Promise<number>; /** * The number of property vertices in the Manifold. This will always be >= * numVert, as some physical vertices may be duplicated to account for * different properties on different neighboring triangles. * @param inputs manifold * @returns number of properties of manifold * @group basic * @shortname num prop vert * @drawable false */ numPropVert(inputs: Inputs.Manifold.ManifoldDto<Inputs.Manifold.ManifoldPointer>): Promise<number>; /** * Returns the axis-aligned bounding box of all the Manifold's vertices. * @param inputs manifold * @returns bounding box corner vectors of manifold * @group basic * @shortname bounding box * @drawable false */ boundingBox(inputs: Inputs.Manifold.ManifoldDto<Inputs.Manifold.ManifoldPointer>): Promise<Inputs.Base.Vector3[]>; /** * Returns the tolerance of this Manifold's vertices, which tracks the * approximate rounding error over all the transforms and operations that have * led to this state. Any triangles that are colinear within this tolerance * are considered degenerate and removed. This is the value of &epsilon; * defining * [&epsilon;-valid](https://github.com/elalish/manifold/wiki/Manifold-Library#definition-of-%CE%B5-valid). * @param inputs manifold * @returns tolerance of manifold * @group basic * @shortname tolerance * @drawable false */ tolerance(inputs: Inputs.Manifold.ManifoldDto<Inputs.Manifold.ManifoldPointer>): Promise<number>; /** * The genus is a topological property of the manifold, representing the * number of handles. A sphere is 0, torus 1, etc. It is only meaningful for * a single mesh, so it is best to call Decompose() first. * @param inputs manifold * @returns genus of manifold * @group basic * @shortname genus * @drawable false */ genus(inputs: Inputs.Manifold.ManifoldDto<Inputs.Manifold.ManifoldPointer>): Promise<number>; /** * Returns the minimum gap between two manifolds. Returns a float between * 0 and searchLength. * @param inputs two manifolds and search length * @returns minimum * @group basic * @shortname min gap * @drawable false */ minGap(inputs: Inputs.Manifold.ManifoldsMinGapDto<Inputs.Manifold.ManifoldPointer>): Promise<number>; /** * If this mesh is an original, this returns its ID that can be referenced * by product manifolds. If this manifold is a product, this * returns -1. * @param inputs manifold * @returns original id of manifold * @group basic * @shortname original id * @drawable false */ originalID(inputs: Inputs.Manifold.ManifoldDto<Inputs.Manifold.ManifoldPointer>): Promise<number>; /** * Returns the reason for an input Mesh producing an empty Manifold. This * Status will carry on through operations like NaN propogation, ensuring an * errored mesh doesn't get mysteriously lost. Empty meshes may still show * NoError, for instance the intersection of non-overlapping meshes. * @param inputs manifold * @returns error status string (NoError, NotManifold, InvalidConstruction, etc.) * @group basic * @shortname status * @drawable false */ status(inputs: Inputs.Manifold.ManifoldDto<Inputs.Manifold.ManifoldPointer>): Promise<string>; }