UNPKG

@bitbybit-dev/manifold-worker

Version:

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

38 lines (37 loc) 1.53 kB
export declare class ManifoldWithId<U> { id: string; manifold: U; } export declare class ObjectDefinition<M, U> { compound?: U; manifolds?: ManifoldWithId<U>[]; data?: M; } export declare class CacheHelper { hashesFromPreviousRun: {}; usedHashes: {}; argCache: {}; manifoldObjectHashes: Set<string | number>; cleanAllCache(): void; cleanCacheForHash(hash: string): void; cleanUpCache(): void; isManifoldObject(obj: any): boolean; /** Hashes input arguments and checks the cache for that hash. * It returns a copy of the cached object if it exists, but will * call the `cacheMiss()` callback otherwise. The result will be * added to the cache. */ cacheOp(args: any, cacheMiss: () => any): any; /** Returns the cached object if it exists and is valid, or null otherwise. */ checkCache(hash: string | number): any; /** Adds this `manifold` to the cache, indexable by `hash`. */ addToCache(hash: string | number, object: any): string | number; /** This function computes a 32-bit integer hash given a set of `arguments`. * If `raw` is true, the raw set of sanitized arguments will be returned instead. */ computeHash(args: any, raw?: boolean): number | string; /** This function converts a string to a 32bit integer. */ stringToHash(str: string): number; /** This function returns a version of the `inputArray` without the `objectToRemove`. */ remove(inputArray: any[], objectToRemove: any): any[]; }