My Project
2d/vectorfield.hh
Go to the documentation of this file.
1/* -*- mia-c++ -*-
2 *
3 * This file is part of MIA - a toolbox for medical image analysis
4 * Copyright (c) Leipzig, Madrid 1999-2017 Gert Wollny
5 *
6 * MIA is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with MIA; if not, see <http://www.gnu.org/licenses/>.
18 *
19 */
20
21#ifndef mia_2d_2dvectorfield_hh
22#define mia_2d_2dvectorfield_hh
23
25#include <mia/2d/datafield.hh>
26
28
29
36template <typename T>
38{
39public:
41 static const char *data_descr;
42
44
50
51
56 T2DVectorfield(const CAttributedData& data, const C2DBounds& size);
57
59
60 void set_pixel_size(const C2DFVector& pixel);
61
64
65
66};
67
69
70extern template class EXPORT_2D T2DVectorfield<C2DFVector>;
71extern template class EXPORT_2D T2DVectorfield<C2DDVector>;
72
74
80{
81public:
82
84
95 void update_as_inverse_of(const C2DFVectorfield& other, float tol, int maxiter);
96
102 void update_by_velocity(const C2DFVectorfield& velocity_field, float time_step);
103
104};
105
106
107typedef std::shared_ptr<C2DFVectorfield > P2DFVectorfield;
108
111
120
121
123
124#endif
EXPORT_2D C2DFVectorfield & operator+=(C2DFVectorfield &a, const C2DFVectorfield &b)
std::shared_ptr< C2DFVectorfield > P2DFVectorfield
T2DVectorfield< C2DDVector > C2DDVectorfield
2D vector field to store double precicion 2D vectors
a 2D field of floating point single accuracy 2D vectors
void update_as_inverse_of(const C2DFVectorfield &other, float tol, int maxiter)
evaluate this vector field as the inverse of another
void update_by_velocity(const C2DFVectorfield &velocity_field, float time_step)
A collection of attributes.
A class to hold data on a regular 2D grid.
2D Vector field
C2DFVector get_pixel_size() const
T2DVectorfield(const CAttributedData &data, const C2DBounds &size)
T2DVectorfield(const C2DBounds &size)
static const char * data_descr
plug.in related type description string
void set_pixel_size(const C2DFVector &pixel)
T get_interpol_val_at(const C2DFVector &p) const
This function should really go away.
#define EXPORT_2D
Definition defines2d.hh:37
#define NS_MIA_BEGIN
conveniance define to start the mia namespace
Definition defines.hh:33
#define NS_MIA_END
conveniance define to end the mia namespace
Definition defines.hh:36