VTK
9.2.6
Main Page
Related Pages
Topics
Namespaces
Classes
Files
File List
File Members
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
38
#ifndef vtkVariantExtract_h
39
#define vtkVariantExtract_h
40
41
#include "
vtkVariant.h
"
42
#include <typeinfo>
// for typeid
43
44
template
<
typename
T>
45
T
vtkVariantExtract
(
const
vtkVariant
& value,
bool
& valid)
46
{
47
vtkGenericWarningMacro(
48
<<
"Cannot convert vtkVariant containing ["
<< value.GetTypeAsString() <<
"] "
49
<<
"to unsupported type ["
<<
typeid
(T).name() <<
"]. "
50
<<
"Create a vtkVariantExtract<> specialization to eliminate this warning."
);
51
52
valid =
false
;
53
54
static
T dummy;
55
return
dummy;
56
}
57
58
template
<>
59
inline
char
vtkVariantExtract<char>
(
const
vtkVariant
& value,
bool
& valid)
60
{
61
valid = value.IsChar();
62
return
valid ? value.ToChar() : 0;
63
}
64
65
template
<>
66
inline
unsigned
char
vtkVariantExtract<unsigned char>
(
const
vtkVariant
& value,
bool
& valid)
67
{
68
valid = value.IsUnsignedChar();
69
return
valid ? value.ToUnsignedChar() : 0;
70
}
71
72
template
<>
73
inline
short
vtkVariantExtract<short>
(
const
vtkVariant
& value,
bool
& valid)
74
{
75
valid = value.IsShort();
76
return
valid ? value.ToShort() : 0;
77
}
78
79
template
<>
80
inline
unsigned
short
vtkVariantExtract<unsigned short>
(
const
vtkVariant
& value,
bool
& valid)
81
{
82
valid = value.IsUnsignedShort();
83
return
valid ? value.ToUnsignedShort() : 0;
84
}
85
86
template
<>
87
inline
int
vtkVariantExtract<int>
(
const
vtkVariant
& value,
bool
& valid)
88
{
89
valid = value.IsInt();
90
return
valid ? value.ToInt() : 0;
91
}
92
93
template
<>
94
inline
unsigned
int
vtkVariantExtract<unsigned int>
(
const
vtkVariant
& value,
bool
& valid)
95
{
96
valid = value.IsUnsignedInt();
97
return
valid ? value.ToUnsignedInt() : 0;
98
}
99
100
template
<>
101
inline
long
vtkVariantExtract<long>
(
const
vtkVariant
& value,
bool
& valid)
102
{
103
valid = value.IsLong();
104
return
valid ? value.ToLong() : 0;
105
}
106
107
template
<>
108
inline
unsigned
long
vtkVariantExtract<unsigned long>
(
const
vtkVariant
& value,
bool
& valid)
109
{
110
valid = value.IsUnsignedLong();
111
return
valid ? value.ToUnsignedLong() : 0;
112
}
113
114
template
<>
115
inline
long
long
vtkVariantExtract<long long>
(
const
vtkVariant
& value,
bool
& valid)
116
{
117
valid = value.IsLongLong();
118
return
valid ? value.ToLongLong() : 0;
119
}
120
121
template
<>
122
inline
unsigned
long
long
vtkVariantExtract<unsigned long long>
(
123
const
vtkVariant
& value,
bool
& valid)
124
{
125
valid = value.IsUnsignedLongLong();
126
return
valid ? value.ToUnsignedLongLong() : 0;
127
}
128
129
template
<>
130
inline
float
vtkVariantExtract<float>
(
const
vtkVariant
& value,
bool
& valid)
131
{
132
valid = value.IsFloat();
133
return
valid ? value.ToFloat() : 0.0f;
134
}
135
136
template
<>
137
inline
double
vtkVariantExtract<double>
(
const
vtkVariant
& value,
bool
& valid)
138
{
139
valid = value.IsDouble();
140
return
valid ? value.ToDouble() : 0.0;
141
}
142
143
template
<>
144
inline
vtkStdString
vtkVariantExtract<vtkStdString>
(
const
vtkVariant
& value,
bool
& valid)
145
{
146
valid = value.IsString();
147
return
valid ? value.ToString() :
vtkStdString
();
148
}
149
150
template
<>
151
inline
vtkVariant
vtkVariantExtract<vtkVariant>
(
const
vtkVariant
& value,
bool
& valid)
152
{
153
valid =
true
;
154
return
value;
155
}
156
157
#endif
158
159
// VTK-HeaderTest-Exclude: vtkVariantExtract.h
vtkStdString
Wrapper around std::string to keep symbols short.
Definition
vtkStdString.h:39
vtkVariant
A atomic type representing the union of many types.
Definition
vtkVariant.h:70
vtkVariantExtract< vtkVariant >
vtkVariant vtkVariantExtract< vtkVariant >(const vtkVariant &value, bool &valid)
Definition
vtkVariantExtract.h:151
vtkVariantExtract< long long >
long long vtkVariantExtract< long long >(const vtkVariant &value, bool &valid)
Definition
vtkVariantExtract.h:115
vtkVariantExtract< double >
double vtkVariantExtract< double >(const vtkVariant &value, bool &valid)
Definition
vtkVariantExtract.h:137
vtkVariantExtract< unsigned long long >
unsigned long long vtkVariantExtract< unsigned long long >(const vtkVariant &value, bool &valid)
Definition
vtkVariantExtract.h:122
vtkVariantExtract< unsigned long >
unsigned long vtkVariantExtract< unsigned long >(const vtkVariant &value, bool &valid)
Definition
vtkVariantExtract.h:108
vtkVariantExtract< int >
int vtkVariantExtract< int >(const vtkVariant &value, bool &valid)
Definition
vtkVariantExtract.h:87
vtkVariantExtract
T vtkVariantExtract(const vtkVariant &value, bool &valid)
Definition
vtkVariantExtract.h:45
vtkVariantExtract< unsigned char >
unsigned char vtkVariantExtract< unsigned char >(const vtkVariant &value, bool &valid)
Definition
vtkVariantExtract.h:66
vtkVariantExtract< vtkStdString >
vtkStdString vtkVariantExtract< vtkStdString >(const vtkVariant &value, bool &valid)
Definition
vtkVariantExtract.h:144
vtkVariantExtract< long >
long vtkVariantExtract< long >(const vtkVariant &value, bool &valid)
Definition
vtkVariantExtract.h:101
vtkVariantExtract< float >
float vtkVariantExtract< float >(const vtkVariant &value, bool &valid)
Definition
vtkVariantExtract.h:130
vtkVariantExtract< short >
short vtkVariantExtract< short >(const vtkVariant &value, bool &valid)
Definition
vtkVariantExtract.h:73
vtkVariantExtract< unsigned short >
unsigned short vtkVariantExtract< unsigned short >(const vtkVariant &value, bool &valid)
Definition
vtkVariantExtract.h:80
vtkVariantExtract< char >
char vtkVariantExtract< char >(const vtkVariant &value, bool &valid)
Definition
vtkVariantExtract.h:59
vtkVariantExtract< unsigned int >
unsigned int vtkVariantExtract< unsigned int >(const vtkVariant &value, bool &valid)
Definition
vtkVariantExtract.h:94
vtkVariant.h
Generated on Fri Jul 12 2024 00:00:00 for VTK by
1.11.0