soma-io
5.0.5
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
std::string
directory
;
57
std::string
pattern
;
58
std::string
format
;
59
MultiFileFormatInfo::Type
type
;
60
bool
initialized
;
61
};
62
63
class
MultiFileFormat
64
{
65
public
:
66
67
MultiFileFormat
();
68
virtual
~
MultiFileFormat
();
69
71
static
MultiFileFormatInfo
info(
const
std::string & filename );
72
74
static
void
updateDimensions(
const
MultiFileFormatInfo
& info,
75
std::vector<int> & dims );
76
78
static
std::string filename(
const
MultiFileFormatInfo
& info,
79
uint32_t slice,
80
uint32_t time = 1 );
81
83
static
std::vector<std::string> filenames(
const
MultiFileFormatInfo
& info );
84
static
std::vector<std::string> filenames(
const
MultiFileFormatInfo
& info,
85
uint32_t
slicemin
, uint32_t
slicemax
,
86
uint32_t
timemin
, uint32_t
timemax
);
87
88
static
const
std::string
FILENAME_SLICE_REGEX
;
89
static
const
std::string
FILENAME_TIME_SLICE_REGEX
;
90
static
const
std::string
FILENAME_TIME_REGEX
;
91
};
92
93
DECLARE_GENERIC_OBJECT_TYPE
(
MultiFileFormatInfo
)
94
}
95
96
#endif
97
soma_config.h
DECLARE_GENERIC_OBJECT_TYPE
#define DECLARE_GENERIC_OBJECT_TYPE(T)
soma::MultiFileFormatInfo
Definition:
multifileformat.h:47
soma::MultiFileFormatInfo::Time
Definition:
multifileformat.h:52
soma::MultiFileFormatInfo::pattern
std::string pattern
Definition:
multifileformat.h:57
soma::MultiFileFormat::FILENAME_TIME_SLICE_REGEX
static const std::string FILENAME_TIME_SLICE_REGEX
Definition:
multifileformat.h:89
soma::MultiFileFormatInfo::timemax
uint32_t timemax
Definition:
multifileformat.h:55
soma::MultiFileFormatInfo::MultiFileFormatInfo
MultiFileFormatInfo()
soma::MultiFileFormatInfo::slicemin
uint32_t slicemin
Definition:
multifileformat.h:54
soma::MultiFileFormat
Definition:
multifileformat.h:63
soma
Definition:
allocator.h:48
soma::MultiFileFormatInfo::Type
Type
Definition:
multifileformat.h:52
soma::MultiFileFormat::FILENAME_SLICE_REGEX
static const std::string FILENAME_SLICE_REGEX
Definition:
multifileformat.h:88
soma::MultiFileFormatInfo::Slice
Definition:
multifileformat.h:52
soma::MultiFileFormatInfo::slicemax
uint32_t slicemax
Definition:
multifileformat.h:54
soma::MultiFileFormatInfo::timemin
uint32_t timemin
Definition:
multifileformat.h:55
object.h
soma::MultiFileFormatInfo::Single
Definition:
multifileformat.h:52
soma::MultiFileFormatInfo::format
std::string format
Definition:
multifileformat.h:58
soma::MultiFileFormatInfo::SliceTime
Definition:
multifileformat.h:52
soma::MultiFileFormatInfo::directory
std::string directory
Definition:
multifileformat.h:56
soma::MultiFileFormatInfo::type
MultiFileFormatInfo::Type type
Definition:
multifileformat.h:59
soma::MultiFileFormatInfo::initialized
bool initialized
Definition:
multifileformat.h:60
soma::MultiFileFormat::FILENAME_TIME_REGEX
static const std::string FILENAME_TIME_REGEX
Definition:
multifileformat.h:90
soma-io
utilities
multifileformat.h
Generated by
1.8.13