@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
JavaScript
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);
});
}
}