VTK
9.3.0
Common
Core
vtkVariantExtract.h
Go to the documentation of this file.
1
// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2
// SPDX-FileCopyrightText: Copyright 2008 Sandia Corporation
3
// SPDX-License-Identifier: LicenseRef-BSD-3-Clause-Sandia-USGov
4
21
#ifndef vtkVariantExtract_h
22
#define vtkVariantExtract_h
23
24
#include "
vtkVariant.h
"
25
#include <typeinfo>
// for typeid
26
27
VTK_ABI_NAMESPACE_BEGIN
28
template
<
typename
T>
29
T
vtkVariantExtract
(
const
vtkVariant
&
value
,
bool
& valid)
30
{
31
vtkGenericWarningMacro(
32
<<
"Cannot convert vtkVariant containing ["
<<
value
.GetTypeAsString() <<
"] "
33
<<
"to unsupported type ["
<<
typeid
(T).name() <<
"]. "
34
<<
"Create a vtkVariantExtract<> specialization to eliminate this warning."
);
35
36
valid =
false
;
37
38
static
T dummy;
39
return
dummy;
40
}
41
42
template
<>
43
inline
char
vtkVariantExtract<char>
(
const
vtkVariant
&
value
,
bool
& valid)
44
{
45
valid =
value
.IsChar();
46
return
valid ?
value
.ToChar() : 0;
47
}
48
49
template
<>
50
inline
unsigned
char
vtkVariantExtract<unsigned char>
(
const
vtkVariant
&
value
,
bool
& valid)
51
{
52
valid =
value
.IsUnsignedChar();
53
return
valid ?
value
.ToUnsignedChar() : 0;
54
}
55
56
template
<>
57
inline
short
vtkVariantExtract<short>
(
const
vtkVariant
&
value
,
bool
& valid)
58
{
59
valid =
value
.IsShort();
60
return
valid ?
value
.ToShort() : 0;
61
}
62
63
template
<>
64
inline
unsigned
short
vtkVariantExtract<unsigned short>
(
const
vtkVariant
&
value
,
bool
& valid)
65
{
66
valid =
value
.IsUnsignedShort();
67
return
valid ?
value
.ToUnsignedShort() : 0;
68
}
69
70
template
<>
71
inline
int
vtkVariantExtract<int>
(
const
vtkVariant
&
value
,
bool
& valid)
72
{
73
valid =
value
.IsInt();
74
return
valid ?
value
.ToInt() : 0;
75
}
76
77
template
<>
78
inline
unsigned
int
vtkVariantExtract<unsigned int>
(
const
vtkVariant
&
value
,
bool
& valid)
79
{
80
valid =
value
.IsUnsignedInt();
81
return
valid ?
value
.ToUnsignedInt() : 0;
82
}
83
84
template
<>
85
inline
long
vtkVariantExtract<long>
(
const
vtkVariant
&
value
,
bool
& valid)
86
{
87
valid =
value
.IsLong();
88
return
valid ?
value
.ToLong() : 0;
89
}
90
91
template
<>
92
inline
unsigned
long
vtkVariantExtract<unsigned long>
(
const
vtkVariant
&
value
,
bool
& valid)
93
{
94
valid =
value
.IsUnsignedLong();
95
return
valid ?
value
.ToUnsignedLong() : 0;
96
}
97
98
template
<>
99
inline
long
long
vtkVariantExtract<long long>
(
const
vtkVariant
&
value
,
bool
& valid)
100
{
101
valid =
value
.IsLongLong();
102
return
valid ?
value
.ToLongLong() : 0;
103
}
104
105
template
<>
106
inline
unsigned
long
long
vtkVariantExtract<unsigned long long>
(
107
const
vtkVariant
&
value
,
bool
& valid)
108
{
109
valid =
value
.IsUnsignedLongLong();
110
return
valid ?
value
.ToUnsignedLongLong() : 0;
111
}
112
113
template
<>
114
inline
float
vtkVariantExtract<float>
(
const
vtkVariant
&
value
,
bool
& valid)
115
{
116
valid =
value
.IsFloat();
117
return
valid ?
value
.ToFloat() : 0.0f;
118
}
119
120
template
<>
121
inline
double
vtkVariantExtract<double>
(
const
vtkVariant
&
value
,
bool
& valid)
122
{
123
valid =
value
.IsDouble();
124
return
valid ?
value
.ToDouble() : 0.0;
125
}
126
127
template
<>
128
inline
vtkStdString
vtkVariantExtract<vtkStdString>
(
const
vtkVariant
&
value
,
bool
& valid)
129
{
130
valid =
value
.IsString();
131
return
valid ?
value
.ToString() :
vtkStdString
();
132
}
133
134
template
<>
135
inline
vtkVariant
vtkVariantExtract<vtkVariant>
(
const
vtkVariant
&
value
,
bool
& valid)
136
{
137
valid =
true
;
138
return
value
;
139
}
140
141
VTK_ABI_NAMESPACE_END
142
#endif
143
144
// VTK-HeaderTest-Exclude: vtkVariantExtract.h
vtkStdString
Wrapper around std::string to keep symbols short.
Definition:
vtkStdString.h:38
vtkVariant
A type representing the union of many types.
Definition:
vtkVariant.h:62
vtkX3D::value
@ value
Definition:
vtkX3D.h:220
vtkVariantExtract< vtkVariant >
vtkVariant vtkVariantExtract< vtkVariant >(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:135
vtkVariantExtract< long long >
long long vtkVariantExtract< long long >(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:99
vtkVariantExtract< double >
double vtkVariantExtract< double >(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:121
vtkVariantExtract< unsigned long long >
unsigned long long vtkVariantExtract< unsigned long long >(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:106
vtkVariantExtract< unsigned long >
unsigned long vtkVariantExtract< unsigned long >(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:92
vtkVariantExtract< int >
int vtkVariantExtract< int >(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:71
vtkVariantExtract
T vtkVariantExtract(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:29
vtkVariantExtract< unsigned char >
unsigned char vtkVariantExtract< unsigned char >(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:50
vtkVariantExtract< vtkStdString >
vtkStdString vtkVariantExtract< vtkStdString >(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:128
vtkVariantExtract< long >
long vtkVariantExtract< long >(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:85
vtkVariantExtract< float >
float vtkVariantExtract< float >(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:114
vtkVariantExtract< short >
short vtkVariantExtract< short >(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:57
vtkVariantExtract< unsigned short >
unsigned short vtkVariantExtract< unsigned short >(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:64
vtkVariantExtract< char >
char vtkVariantExtract< char >(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:43
vtkVariantExtract< unsigned int >
unsigned int vtkVariantExtract< unsigned int >(const vtkVariant &value, bool &valid)
Definition:
vtkVariantExtract.h:78
vtkVariant.h
Generated on Sat Apr 6 2024 13:29:50 for VTK by
1.9.1