MeshLib C++ Docs
Loading...
Searching...
No Matches

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

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