MeshLib C++ Docs
Loading...
Searching...
No Matches
MRCudaSweptVolume.h
Go to the documentation of this file.
1#pragma once
2
3#include "config.h"
4#ifndef MRCUDA_NO_VOXELS
5#include "exports.h"
6
7#include "MRMesh/MREndMill.h"
9
10#include <vector>
11
12namespace MR::Cuda
13{
14
16class MRCUDA_CLASS ComputeToolDistance : public IComputeToolDistance
17{
18public:
19 MRCUDA_API ComputeToolDistance();
20 MRCUDA_API ~ComputeToolDistance() override;
21
22 MRCUDA_API Expected<Vector3i> prepare( const Vector3i& dims, const Polyline3& toolpath,
23 const EndMillTool& toolSpec ) override;
24 MRCUDA_API Expected<Vector3i> prepare( const Vector3i& dims, const Polyline3& toolpath,
25 const Polyline2& toolProfile ) override;
26
27 MRCUDA_API Expected<void> computeToolDistance( std::vector<float>& output, const Vector3i& dims,
28 float voxelSize, const Vector3f& origin, float padding ) const override;
29
30private:
31 struct Impl;
32 std::unique_ptr<Impl> impl_;
33};
34
35} // namespace MR::Cuda
36
37#endif
CUDA implementation of tool distance computation.
Definition MRCudaSweptVolume.h:17
MRCUDA_API Expected< Vector3i > prepare(const Vector3i &dims, const Polyline3 &toolpath, const Polyline2 &toolProfile) override
MRCUDA_API Expected< void > computeToolDistance(std::vector< float > &output, const Vector3i &dims, float voxelSize, const Vector3f &origin, float padding) const override
Compute tool distance.
MRCUDA_API ~ComputeToolDistance() override
MRCUDA_API Expected< Vector3i > prepare(const Vector3i &dims, const Polyline3 &toolpath, const EndMillTool &toolSpec) override
Interface for custom tool distance computation implementations.
Definition MRSweptVolume.h:52
Definition MRCudaBasic.h:11
tl::expected< T, E > Expected
Definition MRExpected.h:25
end mill tool specifications
Definition MREndMill.h:39