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< IFastWindingNumber > | getCudaFastWindingNumber (const Mesh &mesh) |
| Returns cuda implementation of IFastWindingNumber. | |
| static MRVIEWER_API std::unique_ptr< IPointsToMeshProjector > | getCudaPointsToMeshProjector () |
| Returns cuda implementation of IPointsToMeshProjector. | |
| static MRVIEWER_API std::unique_ptr< IPointsProjector > | getCudaPointsProjector () |
| 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< IComputeToolDistance > | getCudaComputeToolDistance () |
| 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 | |
The purpose of this class is to access CUDA algorithms without explicit dependency on MRCuda.