| 13 | using namespace MR; |
| 14 | |
| 15 | EMSCRIPTEN_BINDINGS( meshlib_offset ) |
| 16 | { |
| 17 | emscripten::class_<BaseShellParameters>( "BaseShellParameters" ) |
| 18 | .constructor<>() |
| 19 | .property( "voxelSize", &BaseShellParameters::voxelSize ); |
| 20 | |
| 21 | emscripten::class_<OffsetParameters, emscripten::base<BaseShellParameters>>( "OffsetParameters" ) |
| 22 | .constructor<>() |
| 23 | .property( "signDetectionMode", &OffsetParameters::signDetectionMode ) |
| 24 | .property( "memoryEfficient", &OffsetParameters::memoryEfficient ); |
| 25 | |
| 26 | emscripten::class_<SharpOffsetParameters, emscripten::base<OffsetParameters>>( "SharpOffsetParameters" ) |
| 27 | .constructor<>() |
| 28 | .property( "minNewVertDev", &SharpOffsetParameters::minNewVertDev ) |
| 29 | .property( "maxNewRank2VertDev", &SharpOffsetParameters::maxNewRank2VertDev ) |
| 30 | .property( "maxNewRank3VertDev", &SharpOffsetParameters::maxNewRank3VertDev ) |
| 31 | .property( "maxOldVertPosCorrection", &SharpOffsetParameters::maxOldVertPosCorrection ); |
| 32 | |
| 33 | emscripten::class_<GeneralOffsetParameters, emscripten::base<SharpOffsetParameters>>( "GeneralOffsetParameters" ) |
| 34 | .constructor<>() |
| 35 | .property( "mode", &GeneralOffsetParameters::mode ); |
| 36 | |
| 37 | emscripten::function( "suggestVoxelSize", +[]( std::shared_ptr<Mesh> mesh, float approxNumVoxels ) |
| 38 | { |
| 39 | return suggestVoxelSize( *mesh, approxNumVoxels ); |
| 40 | } ); |
| 41 | emscripten::function( "offsetMesh", +[]( std::shared_ptr<Mesh> mesh, float offset, const OffsetParameters& params ) |
| 42 | { |
| 43 | return std::make_shared<Mesh>( Wasm::unwrap( offsetMesh( *mesh, offset, params ) ) ); |
| 44 | } ); |
| 45 | emscripten::function( "doubleOffsetMesh", +[]( std::shared_ptr<Mesh> mesh, float offsetA, float offsetB, const OffsetParameters& params ) |
| 46 | { |
| 47 | return std::make_shared<Mesh>( Wasm::unwrap( doubleOffsetMesh( *mesh, offsetA, offsetB, params ) ) ); |
| 48 | } ); |
| 49 | emscripten::function( "mcOffsetMesh", +[]( std::shared_ptr<Mesh> mesh, float offset, const OffsetParameters& params ) |
| 50 | { |
| 51 | return std::make_shared<Mesh>( Wasm::unwrap( mcOffsetMesh( *mesh, offset, params ) ) ); |
| 52 | } ); |
| 53 | emscripten::function( "mcShellMeshRegion", +[]( std::shared_ptr<Mesh> mesh, const FaceBitSet& region, float offset, const BaseShellParameters& params ) |
| 54 | { |
| 55 | return std::make_shared<Mesh>( Wasm::unwrap( mcShellMeshRegion( *mesh, region, offset, params ) ) ); |
| 56 | } ); |
| 57 | emscripten::function( "sharpOffsetMesh", +[]( std::shared_ptr<Mesh> mesh, float offset, const SharpOffsetParameters& params ) |
| 58 | { |
| 59 | return std::make_shared<Mesh>( Wasm::unwrap( sharpOffsetMesh( *mesh, offset, params ) ) ); |
| 60 | } ); |
| 61 | emscripten::function( "generalOffsetMesh", +[]( std::shared_ptr<Mesh> mesh, float offset, const GeneralOffsetParameters& params ) |
| 62 | { |
| 63 | return std::make_shared<Mesh>( Wasm::unwrap( generalOffsetMesh( *mesh, offset, params ) ) ); |
| 64 | } ); |
| 65 | emscripten::function( "thickenMesh", +[]( std::shared_ptr<Mesh> mesh, float offset, const GeneralOffsetParameters& params ) |
| 66 | { |
| 67 | return std::make_shared<Mesh>( Wasm::unwrap( thickenMesh( *mesh, offset, params ) ) ); |
| 68 | } ); |
| 69 | } |
nothing calls this directly
no test coverage detected