UNPKG

@bitbybit-dev/manifold-worker

Version:

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

101 lines (100 loc) 4.33 kB
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; import { Manifold } from "./manifold/manifold"; import { ManifoldCrossSection } from "./cross-section/cross-section"; import { Mesh } from "./mesh/mesh"; /** * Contains various functions for Solid meshes from Manifold library https://github.com/elalish/manifold * Thanks Manifold community for developing this kernel */ export class ManifoldBitByBit { constructor(manifoldWorkerManager) { this.manifoldWorkerManager = manifoldWorkerManager; this.manifold = new Manifold(manifoldWorkerManager); this.crossSection = new ManifoldCrossSection(manifoldWorkerManager); this.mesh = new Mesh(manifoldWorkerManager); } /** * Turns manifold shape into a mesh pointer that lives in worker's memory. This pointer can be used with bitbybit.manifold.mesh functions * @param inputs Manifold shape * @returns Pointer to manifold mesh definition * @group meshing * @shortname manifold to mesh pointer * @drawable false */ manifoldToMeshPointer(inputs) { return __awaiter(this, void 0, void 0, function* () { return this.manifoldWorkerManager.genericCallToWorkerPromise("manifoldToMeshPointer", inputs); }); } /** * Decomposes manifold or cross section shape into a mesh or simple polygons * @param inputs Manifold shape or cross section * @returns Decomposed mesh definition or simple polygons * @group decompose * @shortname decompose m or cs * @drawable false */ decomposeManifoldOrCrossSection(inputs) { return __awaiter(this, void 0, void 0, function* () { return this.manifoldWorkerManager.genericCallToWorkerPromise("decomposeManifoldOrCrossSection", inputs); }); } /** * Turns manifold shape into a collection of polygon points representing the mesh. * @param inputs Manifold shape * @returns polygon points * @group decompose * @shortname to polygon points * @drawable false */ toPolygonPoints(inputs) { return __awaiter(this, void 0, void 0, function* () { return this.manifoldWorkerManager.genericCallToWorkerPromise("toPolygonPoints", inputs); }); } /** * Decomposes manifold or cross section shape into a mesh or simple polygons * @param inputs Manifold shapes or cross sections * @returns Decomposed mesh definitions or a list of simple polygons * @group decompose * @shortname decompose m's or cs's * @drawable false */ decomposeManifoldsOrCrossSections(inputs) { return __awaiter(this, void 0, void 0, function* () { return this.manifoldWorkerManager.genericCallToWorkerPromise("decomposeManifoldsOrCrossSections", inputs); }); } /** * Delete manifold or cross section from memory * @param inputs manifold or cross section * @group cleanup * @shortname delete m or cs * @drawable false */ deleteManifoldOrCrossSection(inputs) { return __awaiter(this, void 0, void 0, function* () { return this.manifoldWorkerManager.genericCallToWorkerPromise("deleteManifoldOrCrossSection", inputs); }); } /** * Delete manifolds or cross sections from memory * @param inputs manifolds or cross sections * @group cleanup * @shortname delete m's or cs's * @drawable false */ deleteManifoldsOrCrossSections(inputs) { return __awaiter(this, void 0, void 0, function* () { return this.manifoldWorkerManager.genericCallToWorkerPromise("deleteManifoldsOrCrossSections", inputs); }); } }