Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Main Repositories
otb
Commits
1dc33e43
Commit
1dc33e43
authored
Mar 06, 2013
by
Julien Malik
Browse files
ENH: read display settings from descriptor
parent
e8c86d11
Changes
2
Hide whitespace changes
Inline
Side-by-side
Code/Common/mvdDatasetDescriptor.cxx
View file @
1dc33e43
...
...
@@ -205,33 +205,39 @@ DatasetDescriptor
// TODO: Generalize code section.
if
(
imageSettings
!=
NULL
)
{
VectorImageModel
::
Settings
*
settings
=
static_cast
<
VectorImageModel
::
Settings
*
>
(
imageSettings
);
// Access settings group element.
QDomElement
settingsElt
(
imageInfoElt
.
firstChildElement
(
TAG_NAMES
[
ELEMENT_SETTINGS_GROUP
]
)
);
// TODO: Manage XML structure errors.
assert
(
!
settingsElt
.
isNull
()
);
{
VectorImageModel
::
Settings
*
settings
=
static_cast
<
VectorImageModel
::
Settings
*
>
(
imageSettings
);
// RGB
QDomElement
rgbElt
(
settingsElt
.
firstChildElement
(
TAG_NAMES
[
ELEMENT_RGB_CHANNELS
]
)
);
// TODO: Manage XML structure errors.
assert
(
!
rgbElt
.
isNull
()
);
// TODO: Get RGB channels from XML element.
// Access settings group element.
QDomElement
settingsElt
(
imageInfoElt
.
firstChildElement
(
TAG_NAMES
[
ELEMENT_SETTINGS_GROUP
]
)
);
// TODO: Manage XML structure errors.
assert
(
!
settingsElt
.
isNull
()
);
// Dynamics
QDomElement
dynamicsElt
(
settingsElt
.
firstChildElement
(
TAG_NAMES
[
ELEMENT_DYNAMICS_PARAMETERS
]
)
);
// TODO: Manage XML structure errors.
assert
(
!
dynamicsElt
.
isNull
()
);
// TODO: Get dynamics parameters from XML element.
}
// RGB
QDomElement
rgbElt
(
settingsElt
.
firstChildElement
(
TAG_NAMES
[
ELEMENT_RGB_CHANNELS
]
)
);
// TODO: Manage XML structure errors.
assert
(
!
rgbElt
.
isNull
()
);
VectorImageModel
::
Settings
::
ChannelVector
rgb
;
ExtractVectorFromNode
(
rgb
,
rgbElt
);
assert
(
rgb
.
size
()
==
3
);
settings
->
SetRgbChannels
(
rgb
);
// Dynamics
QDomElement
dynamicsElt
(
settingsElt
.
firstChildElement
(
TAG_NAMES
[
ELEMENT_DYNAMICS_PARAMETERS
]
)
);
// TODO: Manage XML structure errors.
assert
(
!
dynamicsElt
.
isNull
()
);
ParametersType
dynamics
;
ExtractArrayFromNode
(
dynamics
,
dynamicsElt
);
assert
(
dynamics
.
GetSize
()
==
6
);
settings
->
SetDynamicsParams
(
dynamics
);
}
}
/*******************************************************************************/
...
...
Code/Common/mvdDatasetDescriptor.h
View file @
1dc33e43
...
...
@@ -45,6 +45,7 @@
//
// Monteverdi includes (sorted by alphabetic order)
#include "mvdTypes.h"
#include "mvdAbstractModel.h"
...
...
@@ -179,9 +180,27 @@ private:
template
<
typename
TInputIterator
>
inline
QDomElement
CreateContainerNode
(
const
TInputIterator
&
first
,
const
TInputIterator
&
last
,
const
TInputIterator
&
last
,
const
QString
&
tagName
);
/**
* \brief Deserialize a std::vector from a QDomElement
*/
template
<
typename
T
>
inline
static
void
ExtractVectorFromNode
(
std
::
vector
<
T
>&
vector
,
QDomElement
&
tagName
);
/**
* \brief Deserialize a itk::Array from a QDomElement
*/
template
<
typename
T
>
inline
static
void
ExtractArrayFromNode
(
itk
::
Array
<
T
>&
array
,
QDomElement
&
tagName
);
/**
*/
void
Read
(
const
QString
&
filename
);
...
...
@@ -308,6 +327,58 @@ DatasetDescriptor
return
vectorElement
;
}
template
<
typename
T
>
inline
void
DatasetDescriptor
::
ExtractVectorFromNode
(
std
::
vector
<
T
>&
vector
,
QDomElement
&
element
)
{
QDomNode
node
=
element
.
firstChild
();
// TODO: Manage XML structure errors.
assert
(
!
node
.
isNull
()
);
assert
(
node
.
isText
()
);
QDomText
textNode
=
node
.
toText
();
assert
(
!
textNode
.
isNull
()
);
QString
data
=
textNode
.
data
();
QStringList
stringList
=
data
.
split
(
" "
);
vector
.
resize
(
stringList
.
size
());
for
(
size_t
i
=
0
;
i
<
stringList
.
size
();
++
i
)
{
QVariant
v
=
stringList
[
i
];
vector
[
i
]
=
v
.
value
<
T
>
();
}
}
template
<
typename
T
>
inline
void
DatasetDescriptor
::
ExtractArrayFromNode
(
itk
::
Array
<
T
>&
array
,
QDomElement
&
element
)
{
QDomNode
node
=
element
.
firstChild
();
// TODO: Manage XML structure errors.
assert
(
!
node
.
isNull
()
);
assert
(
node
.
isText
()
);
QDomText
textNode
=
node
.
toText
();
assert
(
!
textNode
.
isNull
()
);
QString
data
=
textNode
.
data
();
QStringList
stringList
=
data
.
split
(
" "
);
array
.
SetSize
(
stringList
.
size
());
for
(
size_t
i
=
0
;
i
<
stringList
.
size
();
++
i
)
{
QVariant
v
=
stringList
[
i
];
array
[
i
]
=
v
.
value
<
T
>
();
}
}
}
// end namespace 'mvd'
#endif // __mvdDatasetDescriptor_h
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment