Grangeat-based 2D/3D image registration
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
ProjectDRRCuboidMaskCPU.h File Reference
#include "Common.h"

Go to the source code of this file.

Classes

struct  reg23::ProjectDRRCuboidMask
 
struct  reg23::ProjectDRRCuboidMask::Cuboid
 
struct  reg23::ProjectDRRCuboidMask::CommonData
 

Namespaces

namespace  reg23
 

Functions

at::Tensor reg23::ProjectDRRCuboidMask_CPU (const at::Tensor &volumeSize, const at::Tensor &voxelSpacing, const at::Tensor &homographyMatrixInverse, double sourceDistance, int64_t outputWidth, int64_t outputHeight, const at::Tensor &outputOffset, const at::Tensor &detectorSpacing)
 Calculate the distances of the intersections between the DRR-generation rays and the domain of the volume data.
 
__host__ at::Tensor reg23::ProjectDRRCuboidMask_CUDA (const at::Tensor &volumeSize, const at::Tensor &voxelSpacing, const at::Tensor &homographyMatrixInverse, double sourceDistance, int64_t outputWidth, int64_t outputHeight, const at::Tensor &outputOffset, const at::Tensor &detectorSpacing)
 An implementation of reg23::ProjectDRRCuboidMask_CPU that uses CUDA parallelisation.
 
template<typename T , std::size_t faceCount>
__host__ __device__ T reg23::RayConvexPolyhedronDistance (const std::array< Vec< T, 3 >, faceCount > &facePoints, const std::array< Vec< T, 3 >, faceCount > &faceOutUnitNormals, const Vec< T, 3 > &rayPoint, const Vec< T, 3 > &rayUnitDirection)
 Calculate the length of the intersection between a ray and a convex polyhedron.