OpenWalnut
1.3.1
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
src
core
dataHandler
WDataSetDTI.h
1
//---------------------------------------------------------------------------
2
//
3
// Project: OpenWalnut ( http://www.openwalnut.org )
4
//
5
// Copyright 2009 OpenWalnut Community, BSV@Uni-Leipzig and CNCF@MPI-CBS
6
// For more information see http://www.openwalnut.org/copying
7
//
8
// This file is part of OpenWalnut.
9
//
10
// OpenWalnut is free software: you can redistribute it and/or modify
11
// it under the terms of the GNU Lesser General Public License as published by
12
// the Free Software Foundation, either version 3 of the License, or
13
// (at your option) any later version.
14
//
15
// OpenWalnut is distributed in the hope that it will be useful,
16
// but WITHOUT ANY WARRANTY; without even the implied warranty of
17
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
// GNU Lesser General Public License for more details.
19
//
20
// You should have received a copy of the GNU Lesser General Public License
21
// along with OpenWalnut. If not, see <http://www.gnu.org/licenses/>.
22
//
23
//---------------------------------------------------------------------------
24
25
#ifndef WDATASETDTI_H
26
#define WDATASETDTI_H
27
28
#include <boost/shared_ptr.hpp>
29
30
#include "../common/math/WTensorSym.h"
31
#include "WDataSetSingle.h"
32
33
34
/**
35
* Represents a Diffusion-Tensor-Image dataset. Diffusion tensors are symmetric matrices.
36
*/
37
class
WDataSetDTI
:
public
WDataSetSingle
38
{
39
public
:
40
/**
41
* Creates a new DTI dataset out of a value set and a grid.
42
*
43
* \param newValueSet Valueset having vectors of dimension 6.
44
* \param newGrid
45
*/
46
WDataSetDTI
( boost::shared_ptr< WValueSetBase > newValueSet, boost::shared_ptr< WGrid > newGrid );
47
48
/**
49
* Destructs this dataset.
50
*/
51
~WDataSetDTI
();
52
53
/**
54
* Creates a copy (clone) of this instance but allows one to change the valueset. Unlike copy construction, this is a very useful function if you
55
* want to keep the dynamic type of your dataset even if you just have a WDataSetSingle.
56
*
57
* \param newValueSet the new valueset.
58
*
59
* \return the clone
60
*/
61
virtual
WDataSetSingle::SPtr
clone
( boost::shared_ptr< WValueSetBase > newValueSet )
const
;
62
63
/**
64
* Creates a copy (clone) of this instance but allows one to change the grid. Unlike copy construction, this is a very useful function if you
65
* want to keep the dynamic type of your dataset even if you just have a WDataSetSingle.
66
*
67
* \param newGrid the new grid.
68
*
69
* \return the clone
70
*/
71
virtual
WDataSetSingle::SPtr
clone
( boost::shared_ptr< WGrid > newGrid )
const
;
72
73
/**
74
* Creates a copy (clone) of this instance. Unlike copy construction, this is a very useful function if you
75
* want to keep the dynamic type of your dataset even if you just have a WDataSetSingle.
76
*
77
* \return the clone
78
*/
79
virtual
WDataSetSingle::SPtr
clone
()
const
;
80
81
/**
82
* Retrieves the i'th tensor.
83
*
84
* \warning Here is dynamical allocation used inside, this may be a problem when used with multithreading.
85
*
86
* \param index The position of the tensor to retrieve
87
*
88
* \return The new constructed symmetrical matrix as tensor.
89
*/
90
WTensorSym< 2, 3, float >
getTensor
(
size_t
index )
const
;
91
92
protected
:
93
/**
94
* The prototype as singleton.
95
*/
96
static
boost::shared_ptr< WPrototyped >
m_prototype
;
97
98
private
:
99
};
100
101
#endif // WDATASETDTI_H
Generated by
1.8.4