VTK
9.0.1
Common
Core
vtkVariantExtract.h
Go to the documentation of this file.
1
/*=========================================================================
2
3
Program: Visualization Toolkit
4
Module: vtkVariantExtract.h
5
6
-------------------------------------------------------------------------
7
Copyright 2008 Sandia Corporation.
8
Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
9
the U.S. Government retains certain rights in this software.
10
-------------------------------------------------------------------------
11
12
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
13
All rights reserved.
14
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
15
16
This software is distributed WITHOUT ANY WARRANTY; without even
17
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
18
PURPOSE. See the above copyright notice for more information.
19
20
=========================================================================*/
21
35
#ifndef vtkVariantExtract_h
36
#define vtkVariantExtract_h
37
38
#include <typeinfo>
// for typeid
39
40
template
<
typename
T>
41
T
vtkVariantExtract
(
const
vtkVariant
&
value
,
bool
& valid)
42
{
43
vtkGenericWarningMacro(
44
<<
"Cannot convert vtkVariant containing ["
<<
value
.GetTypeAsString() <<
"] "
45
<<
"to unsupported type ["
<<
typeid
(T).name() <<
"]. "
46
<<
"Create a vtkVariantExtract<> specialization to eliminate this warning."
);
47
48
valid =
false
;
49
50
static
T dummy;
51
return
dummy;
52
}
53
54
template
<>
55
inline
char
vtkVariantExtract<char>
(
const
vtkVariant
&
value
,
bool
& valid)
56
{
57
valid =
value
.IsChar();
58
return
valid ?
value
.ToChar() : 0;
59
}
60
61
template
<>
62
inline
unsigned
char
vtkVariantExtract<unsigned char>
(
const
vtkVariant
&
value
,
bool
& valid)
63
{
64
valid =
value
.IsUnsignedChar();
65
return
valid ?
value
.ToUnsignedChar() : 0;
66
}
67
68
template
<>
69
inline
short
vtkVariantExtract<short>
(
const
vtkVariant
&
value
,
bool
& valid)
70
{
71
valid =
value
.IsShort();
72
return
valid ?
value
.ToShort() : 0;
73
}
74
75
template
<>
76
inline
unsigned
short
vtkVariantExtract<unsigned short>
(
const
vtkVariant
&
value
,
bool
& valid)
77
{
78
valid =
value
.IsUnsignedShort();
79
return
valid ?
value
.ToUnsignedShort() : 0;
80
}
81
82
template
<>
83
inline
int
vtkVariantExtract<int>
(
const
vtkVariant
&
value
,
bool
& valid)
84
{
85
valid =
value
.IsInt();
86
return
valid ?
value
.ToInt() : 0;
87
}
88
89
template
<>
90
inline
unsigned
int
vtkVariantExtract<unsigned int>
(
const
vtkVariant
&
value
,
bool
& valid)
91
{
92
valid =
value
.IsUnsignedInt();
93
return
valid ?
value
.ToUnsignedInt() : 0;
94
}
95
96
template
<>
97
inline
long
vtkVariantExtract<long>
(
const
vtkVariant
&
value
,
bool
& valid)
98
{
99
valid =
value
.IsLong();
100
return
valid ?
value
.ToLong() : 0;
101
}
102
103
template
<>
104
inline
unsigned
long
vtkVariantExtract<unsigned long>
(
const
vtkVariant
&
value
,
bool
& valid)
105
{
106
valid =
value
.IsUnsignedLong();
107
return
valid ?
value
.ToUnsignedLong() : 0;
108
}
109
110
template
<>
111
inline
long
long
vtkVariantExtract<long long>
(
const
vtkVariant
&
value
,
bool
& valid)
112
{
113
valid =
value
.IsLongLong();
114
return
valid ?
value
.ToLongLong() : 0;
115
}
116
117
template
<>
118
inline
unsigned
long
long
vtkVariantExtract<unsigned long long>
(
119
const
vtkVariant
&
value
,
bool
& valid)
120
{
121
valid =
value
.IsUnsignedLongLong();
122
return
valid ?
value
.ToUnsignedLongLong() : 0;
123
}
124
125
template
<>
126
inline
float
vtkVariantExtract<float>
(
const
vtkVariant
&
value
,
bool
& valid)
127
{
128
valid =
value
.IsFloat();
129
return
valid ?
value
.ToFloat() : 0.0f;
130
}
131
132
template
<>
133
inline
double
vtkVariantExtract<double>
(
const
vtkVariant
&
value
,
bool
& valid)
134
{
135
valid =
value
.IsDouble();
136
return
valid ?
value
.ToDouble() : 0.0;
137
}
138
139
template
<>
140
inline
vtkStdString
vtkVariantExtract<vtkStdString>
(
const
vtkVariant
&
value
,
bool
& valid)
141
{
142
valid =
value
.IsString();
143
return
valid ?
value
.ToString() :
vtkStdString
();
144
}
145
146
template
<>
147
inline
vtkUnicodeString
vtkVariantExtract<vtkUnicodeString>
(
const
vtkVariant
&
value
,
bool
& valid)
148
{
149
valid =
value
.IsUnicodeString();
150
return
valid ?
value
.ToUnicodeString() :
vtkUnicodeString
();
151
}
152
153
template
<>
154
inline
vtkVariant
vtkVariantExtract<vtkVariant>
(
const
vtkVariant
&
value
,
bool
& valid)
155
{
156
valid =
true
;
157
return
value
;
158
}
159
160
#endif
161
162
// VTK-HeaderTest-Exclude: vtkVariantExtract.h
vtkVariantExtract
T vtkVariantExtract(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:41
vtkVariantExtract< int >
int vtkVariantExtract< int >(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:83
vtkX3D::value
@ value
Definition:
vtkX3D.h:226
vtkVariantExtract< unsigned short >
unsigned short vtkVariantExtract< unsigned short >(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:76
vtkVariantExtract< char >
char vtkVariantExtract< char >(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:55
vtkVariantExtract< vtkVariant >
vtkVariant vtkVariantExtract< vtkVariant >(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:154
vtkVariantExtract< vtkUnicodeString >
vtkUnicodeString vtkVariantExtract< vtkUnicodeString >(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:147
vtkVariantExtract< double >
double vtkVariantExtract< double >(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:133
vtkVariantExtract< long >
long vtkVariantExtract< long >(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:97
vtkUnicodeString
String class that stores Unicode text.
Definition:
vtkUnicodeString.h:69
vtkVariant
A atomic type representing the union of many types.
Definition:
vtkVariant.h:65
vtkVariantExtract< vtkStdString >
vtkStdString vtkVariantExtract< vtkStdString >(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:140
vtkVariantExtract< unsigned long long >
unsigned long long vtkVariantExtract< unsigned long long >(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:118
vtkVariantExtract< unsigned char >
unsigned char vtkVariantExtract< unsigned char >(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:62
vtkVariantExtract< short >
short vtkVariantExtract< short >(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:69
vtkVariantExtract< unsigned int >
unsigned int vtkVariantExtract< unsigned int >(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:90
vtkVariantExtract< long long >
long long vtkVariantExtract< long long >(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:111
vtkVariantExtract< unsigned long >
unsigned long vtkVariantExtract< unsigned long >(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:104
vtkStdString
Wrapper around std::string to keep symbols short.
Definition:
vtkStdString.h:34
vtkVariantExtract< float >
float vtkVariantExtract< float >(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:126
Generated on Thu Jun 25 2020 08:30:30 for VTK by
1.8.17