MeshLib C++ Docs
Loading...
Searching...
No Matches
MRCudaFastWindingNumber.h
Go to the documentation of this file.
1#pragma once
2#include "exports.h"
4#include "MRMesh/MRMesh.h"
6
7namespace MR
8{
11
12
13namespace Cuda
14{
15
16struct FastWindingNumberDataBuffers;
17
21{
22 const Mesh & mesh_;
23 std::shared_ptr<FastWindingNumberDataBuffers> data_;
24
25public:
27 MRCUDA_API FastWindingNumber( const Mesh& mesh );
28
30 MRCUDA_API Expected<void> calcFromVector( std::vector<float>& res, const std::vector<Vector3f>& points, float beta, FaceId skipFace, const ProgressCallback& cb ) override;
31 MRCUDA_API Expected<void> calcSelfIntersections( FaceBitSet& res, float beta, const ProgressCallback& cb ) override;
32 MRCUDA_API Expected<void> calcFromGrid( std::vector<float>& res, const Vector3i& dims, const AffineXf3f& gridToMeshXf, float beta, const ProgressCallback& cb ) override;
33 MRCUDA_API Expected<void> calcFromGridWithDistances( std::vector<float>& res, const Vector3i& dims, const AffineXf3f& gridToMeshXf, const DistanceToMeshOptions& options, const ProgressCallback& cb ) override;
34
36 MRCUDA_API Expected<void> calcFromGridByParts( GridByPartsFunc resFunc, const Vector3i& dims, const AffineXf3f& gridToMeshXf, float beta, int layerOverlap, const ProgressCallback& cb ) override;
37 MRCUDA_API Expected<void> calcFromGridWithDistancesByParts( GridByPartsFunc resFunc, const Vector3i& dims, const AffineXf3f& gridToMeshXf, const DistanceToMeshOptions& options, int layerOverlap, const ProgressCallback& cb ) override;
38
39private:
40 Expected<void> prepareData_( ProgressCallback cb );
41};
42
43}
44}
std::function< bool(float)> ProgressCallback
Definition MRMeshFwd.h:751
MRCUDA_API Expected< void > calcFromGridByParts(GridByPartsFunc resFunc, const Vector3i &dims, const AffineXf3f &gridToMeshXf, float beta, int layerOverlap, const ProgressCallback &cb) override
see methods' descriptions in IFastWindingNumberByParts
MRCUDA_API Expected< void > calcSelfIntersections(FaceBitSet &res, float beta, const ProgressCallback &cb) override
IFastWindingNumberByParts()=default
explicitly define ctors to avoid warning C5267: definition of implicit copy constructor is deprecated...
std::function< Expected< void >(std::vector< float > &&data, const Vector3i &dims, int zOffset)> GridByPartsFunc
Definition MRFastWindingNumber.h:91
MRCUDA_API Expected< void > calcFromVector(std::vector< float > &res, const std::vector< Vector3f > &points, float beta, FaceId skipFace, const ProgressCallback &cb) override
see methods' descriptions in IFastWindingNumber
tl::expected< T, E > Expected
Definition MRExpected.h:31
IFastWindingNumber()=default
explicitly define ctors to avoid warning C5267: definition of implicit copy constructor is deprecated...
MRCUDA_API Expected< void > calcFromGridWithDistancesByParts(GridByPartsFunc resFunc, const Vector3i &dims, const AffineXf3f &gridToMeshXf, const DistanceToMeshOptions &options, int layerOverlap, const ProgressCallback &cb) override
MRCUDA_API Expected< void > calcFromGrid(std::vector< float > &res, const Vector3i &dims, const AffineXf3f &gridToMeshXf, float beta, const ProgressCallback &cb) override
MRCUDA_API Expected< void > calcFromGridWithDistances(std::vector< float > &res, const Vector3i &dims, const AffineXf3f &gridToMeshXf, const DistanceToMeshOptions &options, const ProgressCallback &cb) override
MRCUDA_API FastWindingNumber(const Mesh &mesh)
constructs this from AABB tree of given mesh;
Definition MRCudaBasic.h:15
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
options determining computation of distance from a point to a mesh
Definition MRDistanceToMeshOptions.h:14
Definition MRMesh.h:23