LibCarna Version 3.4.0
Loading...
Searching...
No Matches
VectorField.hpp
Go to the documentation of this file.
1/*
2 * Copyright (C) 2010 - 2016 Leonid Kostrykin
3 *
4 * Chair of Medical Engineering (mediTEC)
5 * RWTH Aachen University
6 * Pauwelsstr. 20
7 * 52074 Aachen
8 * Germany
9 *
10 *
11 * Copyright (C) 2021 - 2025 Leonid Kostrykin
12 *
13 */
14
15#ifndef VECTORFIELD_H_6014714286
16#define VECTORFIELD_H_6014714286
17
24#include <LibCarna/LibCarna.hpp>
25
26namespace LibCarna
27{
28
29namespace base
30{
31
32namespace math
33{
34
35
36
37// ----------------------------------------------------------------------------------
38// VectorField
39// ----------------------------------------------------------------------------------
40
47template< typename ValueType >
49{
50
51public:
52
57
61 virtual ~VectorField()
62 {
63 }
64
69 ( unsigned int x
70 , unsigned int y
71 , unsigned int z ) const = 0;
72
75 virtual ValueType operator()( const Vector3ui& at ) const;
76
77}; // VectorField
78
79
80template< typename ValueType >
82{
83 return ( *this )( at.x(), at.y(), at.z() );
84}
85
86
87
88} // namespace LibCarna :: base :: math
89
90} // namespace LibCarna :: base
91
92} // namespace LibCarna
93
94#endif // VECTORFIELD_H_6014714286
Contains forward-declarations.
Represents an association.
Abstract definition of an vector field where is ValueType.
virtual ~VectorField()
Does nothing.
virtual ValueType operator()(unsigned int x, unsigned int y, unsigned int z) const =0
Returns value of specified voxel.
virtual ValueType operator()(const Vector3ui &at) const
ValueType Value
Holds the co-domain type of the vector field.
Defines LibCarna::base::math namespace and LIBCARNA_FOR_VECTOR3UI.
Eigen::Matrix< unsigned int, 3, 1 > Vector3ui
Defines vector.
Definition math.hpp:203