MeshLib C++ Docs
Loading...
Searching...
No Matches
MR::CudaAccessor Class Reference

The purpose of this class is to access CUDA algorithms without explicit dependency on MRCuda. More...

#include <MRCudaAccessor.h>

Public Types

using CudaFreeMemoryFunc = std::function<size_t()>
 Returns amount of free memory on GPU.
 
using CudaFwnConstructor = std::function<std::unique_ptr<IFastWindingNumber>( const Mesh& )>
 Returns specific implementation of IFastWindingNumber interface that computes windings on GPU.
 
using CudaMeshProjectorConstructor = std::function<std::unique_ptr<IPointsToMeshProjector>()>
 Returns specific implementation of IPointsToMeshProjector interface projects on GPU.
 
using CudaPointsProjectorConstructor = std::function<std::unique_ptr<IPointsProjector>()>
 Returns specific implementation of IPointsProjector interface projects on GPU.
 
using CudaPointsToDistanceVolumeCallback = std::function<Expected<SimpleVolumeMinMax>( const PointCloud& cloud, const PointsToDistanceVolumeParams& params )>
 
using CudaPointsToDistanceVolumeByPartsCallback = std::function<Expected<void>( const PointCloud& cloud, const PointsToDistanceVolumeParams& params, std::function<Expected<void> ( const SimpleVolumeMinMax& volume, int zOffset )> addPart, int layerOverlap )>
 
using CudaComputeToolDistanceConstructor = std::function<std::unique_ptr<IComputeToolDistance>()>
 Returns specific implementation of IComputeToolDistance interface that computes on GPU.
 

Static Public Member Functions

static MRVIEWER_API void setCudaAvailable (bool val, int maxDriverVersion, int runtimeVersion, int computeMajor, int computeMinor)
 setup functions
 
static MRVIEWER_API void setCudaFreeMemoryFunc (CudaFreeMemoryFunc freeMemFunc)
 
static MRVIEWER_API void setCudaFastWindingNumberConstructor (CudaFwnConstructor fwnCtor)
 
static MRVIEWER_API void setCudaMeshProjectorConstructor (CudaMeshProjectorConstructor mpCtor)
 
static MRVIEWER_API void setCudaPointsProjectorConstructor (CudaPointsProjectorConstructor ppCtor)
 
static MRVIEWER_API void setCudaPointsToDistanceVolumeCallback (CudaPointsToDistanceVolumeCallback callback)
 
static MRVIEWER_API void setCudaPointsToDistanceVolumeByPartsCallback (CudaPointsToDistanceVolumeByPartsCallback callback)
 
static MRVIEWER_API void setCudaComputeToolDistanceConstructor (CudaComputeToolDistanceConstructor ctdCtor)
 
static MRVIEWER_API bool isCudaSupportedByPlarform ()
 
static MRVIEWER_API bool isCudaAvailable ()
 Returns true if CUDA is available on this computer.
 
static MRVIEWER_API int getCudaMaxDriverSupportedVersion ()
 Returns maximum supported by driver version.
 
static MRVIEWER_API int getCudaRuntimeVersion ()
 Returns version of current runtime.
 
static MRVIEWER_API int getComputeCapabilityMajor ()
 Returns Compute Capability major version of current device.
 
static MRVIEWER_API int getComputeCapabilityMinor ()
 Returns Compute Capability minor version of current device.
 
static MRVIEWER_API size_t getCudaFreeMemory ()
 Returns number of free bytes on cuda.
 
static MRVIEWER_API std::unique_ptr< IFastWindingNumbergetCudaFastWindingNumber (const Mesh &mesh)
 Returns cuda implementation of IFastWindingNumber.
 
static MRVIEWER_API std::unique_ptr< IPointsToMeshProjectorgetCudaPointsToMeshProjector ()
 Returns cuda implementation of IPointsToMeshProjector.
 
static MRVIEWER_API std::unique_ptr< IPointsProjectorgetCudaPointsProjector ()
 Returns cuda implementation of IPointsProjector.
 
static MRVIEWER_API CudaPointsToDistanceVolumeCallback getCudaPointsToDistanceVolumeCallback ()
 Returns cuda implementation of PointsToDistanceVolumeCallback.
 
static MRVIEWER_API CudaPointsToDistanceVolumeByPartsCallback getCudaPointsToDistanceVolumeByPartsCallback ()
 Returns cuda implementation of PointsToDistanceVolumeByPartsCallback.
 
static MRVIEWER_API std::unique_ptr< IComputeToolDistancegetCudaComputeToolDistance ()
 Returns CUDA implementation of IComputeToolDistance.
 
static MRVIEWER_API size_t fastWindingNumberMeshMemory (const Mesh &mesh)
 
static MRVIEWER_API size_t fromGridMemory (const Mesh &mesh, const Vector3i &dims)
 
static MRVIEWER_API size_t fromVectorMemory (const Mesh &mesh, size_t inputSize)
 returns amount of required GPU memory for CudaFastWindingNumber::calcFromVector operation
 
static MRVIEWER_API size_t selfIntersectionsMemory (const Mesh &mesh)
 returns amount of required GPU memory for CudaFastWindingNumber::calcSelfIntersections operation
 
static MRVIEWER_API size_t pointsToDistanceVolumeMemory (const PointCloud &pointCloud, const Vector3i &dims, const VertNormals *ptNormals)
 returns amount of required GPU memory for Cuda::pointsToDistanceVolume
 

Detailed Description

The purpose of this class is to access CUDA algorithms without explicit dependency on MRCuda.


The documentation for this class was generated from the following file: