soma-io
5.1.2
multifileformat.h
Go to the documentation of this file.
1
/* This software and supporting documentation are distributed by
2
* Institut Federatif de Recherche 49
3
* CEA/NeuroSpin, Batiment 145,
4
* 91191 Gif-sur-Yvette cedex
5
* France
6
*
7
* This software is governed by the CeCILL-B license under
8
* French law and abiding by the rules of distribution of free software.
9
* You can use, modify and/or redistribute the software under the
10
* terms of the CeCILL-B license as circulated by CEA, CNRS
11
* and INRIA at the following URL "http://www.cecill.info".
12
*
13
* As a counterpart to the access to the source code and rights to copy,
14
* modify and redistribute granted by the license, users are provided only
15
* with a limited warranty and the software's author, the holder of the
16
* economic rights, and the successive licensors have only limited
17
* liability.
18
*
19
* In this respect, the user's attention is drawn to the risks associated
20
* with loading, using, modifying and/or developing or reproducing the
21
* software by the user in light of its specific status of free software,
22
* that may mean that it is complicated to manipulate, and that also
23
* therefore means that it is reserved for developers and experienced
24
* professionals having in-depth computer knowledge. Users are therefore
25
* encouraged to load and test the software's suitability as regards their
26
* requirements in conditions enabling the security of their systems and/or
27
* data to be ensured and, more generally, to use and operate it in the
28
* same conditions as regards security.
29
*
30
* The fact that you are presently reading this means that you have had
31
* knowledge of the CeCILL-B license and that you accept its terms.
32
*/
33
34
#ifndef SOMAIO_UTILITIES_MULTIFILEFORMAT_H
35
#define SOMAIO_UTILITIES_MULTIFILEFORMAT_H
36
37
//--- soma --------------------------------------------------------------
38
#include <
soma-io/config/soma_config.h
>
39
//--- cartobase --------------------------------------------------------------
40
#include <
cartobase/object/object.h
>
41
//--- std --------------------------------------------------------------
42
#include <string>
43
#include <vector>
44
//----------------------------------------------------------------------------
45
namespace
soma
{
46
47
struct
MultiFileFormatInfo
{
48
49
MultiFileFormatInfo
();
50
51
52
enum
Type
{
Single
,
Slice
,
SliceTime
,
Time
};
53
54
uint32_t
slicemin
,
slicemax
;
55
uint32_t
timemin
,
timemax
;
56
int32_t
sel_slice
;
57
int32_t
sel_time
;
58
std::string
directory
;
59
std::string
pattern
;
60
std::string
format
;
61
MultiFileFormatInfo::Type
type
;
62
bool
initialized
;
63
};
64
65
class
MultiFileFormat
66
{
67
public
:
68
69
MultiFileFormat
();
70
virtual
~MultiFileFormat
();
71
73
static
MultiFileFormatInfo
info
(
const
std::string &
filename
);
74
80
static
void
updateInfo
(
MultiFileFormatInfo
&
info
,
81
carto::Object
header,
bool
force_vol=
false
);
82
84
static
void
updateDimensions
(
const
MultiFileFormatInfo
&
info
,
85
std::vector<int> & dims );
86
88
static
std::string
filename
(
const
MultiFileFormatInfo
&
info
,
89
int32_t slice = -1,
90
int32_t time = -1 );
91
93
static
std::vector<std::string>
filenames
(
const
MultiFileFormatInfo
&
info
);
94
static
std::vector<std::string>
filenames
(
const
MultiFileFormatInfo
&
info
,
95
uint32_t slicemin, uint32_t slicemax,
96
uint32_t timemin, uint32_t timemax );
97
98
static
const
std::string
FILENAME_SLICE_REGEX
;
99
static
const
std::string
FILENAME_TIME_SLICE_REGEX
;
100
static
const
std::string
FILENAME_TIME_REGEX
;
101
};
102
103
DECLARE_GENERIC_OBJECT_TYPE
(
MultiFileFormatInfo
)
104
}
105
106
#endif
107
carto::Object
soma::MultiFileFormat
Definition:
multifileformat.h:66
soma::MultiFileFormat::filename
static std::string filename(const MultiFileFormatInfo &info, int32_t slice=-1, int32_t time=-1)
Get formatted file name using a MultiFileFormatInfo.
soma::MultiFileFormat::updateInfo
static void updateInfo(MultiFileFormatInfo &info, carto::Object header, bool force_vol=false)
Update MultiFileFormatInfo from .minf header info:
soma::MultiFileFormat::~MultiFileFormat
virtual ~MultiFileFormat()
soma::MultiFileFormat::filenames
static std::vector< std::string > filenames(const MultiFileFormatInfo &info)
Get the filenames associated to a MultiFileFormatInfo.
soma::MultiFileFormat::FILENAME_TIME_SLICE_REGEX
static const std::string FILENAME_TIME_SLICE_REGEX
Definition:
multifileformat.h:99
soma::MultiFileFormat::filenames
static std::vector< std::string > filenames(const MultiFileFormatInfo &info, uint32_t slicemin, uint32_t slicemax, uint32_t timemin, uint32_t timemax)
soma::MultiFileFormat::MultiFileFormat
MultiFileFormat()
soma::MultiFileFormat::updateDimensions
static void updateDimensions(const MultiFileFormatInfo &info, std::vector< int > &dims)
Update dimensions using a MultiFileFormatInfo.
soma::MultiFileFormat::info
static MultiFileFormatInfo info(const std::string &filename)
Get MultiFileFormatInfo to search files from a given filename.
soma::MultiFileFormat::FILENAME_TIME_REGEX
static const std::string FILENAME_TIME_REGEX
Definition:
multifileformat.h:100
soma::MultiFileFormat::FILENAME_SLICE_REGEX
static const std::string FILENAME_SLICE_REGEX
Definition:
multifileformat.h:98
soma
Definition:
allocator.h:49
object.h
DECLARE_GENERIC_OBJECT_TYPE
#define DECLARE_GENERIC_OBJECT_TYPE(T)
soma_config.h
soma::MultiFileFormatInfo
Definition:
multifileformat.h:47
soma::MultiFileFormatInfo::initialized
bool initialized
Definition:
multifileformat.h:62
soma::MultiFileFormatInfo::sel_slice
int32_t sel_slice
Definition:
multifileformat.h:56
soma::MultiFileFormatInfo::pattern
std::string pattern
Definition:
multifileformat.h:59
soma::MultiFileFormatInfo::slicemin
uint32_t slicemin
Definition:
multifileformat.h:54
soma::MultiFileFormatInfo::format
std::string format
Definition:
multifileformat.h:60
soma::MultiFileFormatInfo::timemax
uint32_t timemax
Definition:
multifileformat.h:55
soma::MultiFileFormatInfo::sel_time
int32_t sel_time
Definition:
multifileformat.h:57
soma::MultiFileFormatInfo::type
MultiFileFormatInfo::Type type
Definition:
multifileformat.h:61
soma::MultiFileFormatInfo::MultiFileFormatInfo
MultiFileFormatInfo()
soma::MultiFileFormatInfo::slicemax
uint32_t slicemax
Definition:
multifileformat.h:54
soma::MultiFileFormatInfo::directory
std::string directory
Definition:
multifileformat.h:58
soma::MultiFileFormatInfo::timemin
uint32_t timemin
Definition:
multifileformat.h:55
soma::MultiFileFormatInfo::Type
Type
Definition:
multifileformat.h:52
soma::MultiFileFormatInfo::Time
@ Time
Definition:
multifileformat.h:52
soma::MultiFileFormatInfo::Slice
@ Slice
Definition:
multifileformat.h:52
soma::MultiFileFormatInfo::SliceTime
@ SliceTime
Definition:
multifileformat.h:52
soma::MultiFileFormatInfo::Single
@ Single
Definition:
multifileformat.h:52
soma-io
utilities
multifileformat.h
Generated by
1.9.1