VTK
9.3.1
Main Page
Related Pages
Topics
Namespaces
Classes
Files
File List
File Members
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:29
vtkVariant
A type representing the union of many types.
Definition
vtkVariant.h:53
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 Tue Jul 9 2024 00:00:00 for VTK by
1.11.0