VTK
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
home
demarle
Source
VTK
release
8.2
build
Utilities
Doxygen
dox
IO
XMLParser
vtkXMLDataHeaderPrivate.h
Go to the documentation of this file.
1
/*=========================================================================
2
3
Program: Visualization Toolkit
4
Module: vtkXMLDataHeaderPrivate.h
5
6
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7
All rights reserved.
8
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10
This software is distributed WITHOUT ANY WARRANTY; without even
11
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12
PURPOSE. See the above copyright notice for more information.
13
14
=========================================================================*/
15
16
#ifndef vtkXMLDataHeaderPrivate_DoNotInclude
17
# error "do not include unless you know what you are doing"
18
#endif
19
20
#ifndef vtkXMLDataHeaderPrivate_h
21
#define vtkXMLDataHeaderPrivate_h
22
23
#include "
vtkType.h
"
24
#include <vector>
25
26
// Abstract interface using type vtkTypeUInt64 to access an array
27
// of either vtkTypeUInt32 or vtkTypeUInt64. Shared by vtkXMLWriter
28
// and vtkXMLDataParser to write/read binary data headers.
29
class
vtkXMLDataHeader
30
{
31
public
:
32
virtual
void
Resize
(
size_t
count) = 0;
33
virtual
vtkTypeUInt64
Get
(
size_t
index
)
const
= 0;
34
virtual
bool
Set
(
size_t
index, vtkTypeUInt64
value
) = 0;
35
virtual
size_t
WordSize
()
const
= 0;
36
virtual
size_t
WordCount
()
const
= 0;
37
virtual
unsigned
char
*
Data
() = 0;
38
size_t
DataSize
()
const
{
return
this->
WordCount
()*this->
WordSize
(); }
39
virtual
~vtkXMLDataHeader
() {}
40
static
inline
vtkXMLDataHeader
*
New
(
int
width,
size_t
count);
41
};
42
43
template
<
typename
T>
44
class
vtkXMLDataHeaderImpl
:
public
vtkXMLDataHeader
45
{
46
std::vector<T> Header;
47
public
:
48
vtkXMLDataHeaderImpl
(
size_t
n): Header(n, 0) {}
49
void
Resize
(
size_t
count)
override
50
{ this->Header.resize(count, 0); }
51
vtkTypeUInt64
Get
(
size_t
index
)
const override
52
{
return
this->Header[
index
]; }
53
bool
Set
(
size_t
index
, vtkTypeUInt64
value
)
override
54
{
55
this->Header[
index
] = T(value);
56
return
vtkTypeUInt64(this->Header[index]) ==
value
;
57
}
58
size_t
WordSize
()
const override
{
return
sizeof
(T); }
59
size_t
WordCount
()
const override
{
return
this->Header.size(); }
60
unsigned
char
*
Data
()
override
61
{
return
reinterpret_cast<
unsigned
char
*
>
(&this->Header[0]); }
62
};
63
64
vtkXMLDataHeader
*
vtkXMLDataHeader::New
(
int
width,
size_t
count)
65
{
66
switch
(width)
67
{
68
case
32:
return
new
vtkXMLDataHeaderImpl<vtkTypeUInt32>
(count);
69
case
64:
return
new
vtkXMLDataHeaderImpl<vtkTypeUInt64>
(count);
70
}
71
return
nullptr
;
72
}
73
74
#endif
75
// VTK-HeaderTest-Exclude: vtkXMLDataHeaderPrivate.h
vtkXMLDataHeaderImpl::WordSize
size_t WordSize() const override
Definition:
vtkXMLDataHeaderPrivate.h:58
vtkXMLDataHeader::New
static vtkXMLDataHeader * New(int width, size_t count)
Definition:
vtkXMLDataHeaderPrivate.h:64
vtkXMLDataHeader::~vtkXMLDataHeader
virtual ~vtkXMLDataHeader()
Definition:
vtkXMLDataHeaderPrivate.h:39
vtkXMLDataHeaderImpl::Data
unsigned char * Data() override
Definition:
vtkXMLDataHeaderPrivate.h:60
vtkXMLDataHeaderImpl
Definition:
vtkXMLDataHeaderPrivate.h:44
vtkXMLDataHeaderImpl::vtkXMLDataHeaderImpl
vtkXMLDataHeaderImpl(size_t n)
Definition:
vtkXMLDataHeaderPrivate.h:48
vtkXMLDataHeader::Set
virtual bool Set(size_t index, vtkTypeUInt64 value)=0
vtkXMLDataHeader
Definition:
vtkXMLDataHeaderPrivate.h:29
vtkXMLDataHeader::Resize
virtual void Resize(size_t count)=0
vtkXMLDataHeaderImpl::Get
vtkTypeUInt64 Get(size_t index) const override
Definition:
vtkXMLDataHeaderPrivate.h:51
vtkXMLDataHeader::DataSize
size_t DataSize() const
Definition:
vtkXMLDataHeaderPrivate.h:38
vtkXMLDataHeaderImpl::WordCount
size_t WordCount() const override
Definition:
vtkXMLDataHeaderPrivate.h:59
vtkX3D::value
Definition:
vtkX3D.h:220
vtkXMLDataHeader::Data
virtual unsigned char * Data()=0
vtkType.h
vtkXMLDataHeaderImpl::Resize
void Resize(size_t count) override
Definition:
vtkXMLDataHeaderPrivate.h:49
vtkXMLDataHeader::Get
virtual vtkTypeUInt64 Get(size_t index) const =0
vtkXMLDataHeaderImpl::Set
bool Set(size_t index, vtkTypeUInt64 value) override
Definition:
vtkXMLDataHeaderPrivate.h:53
vtkX3D::index
Definition:
vtkX3D.h:246
vtkXMLDataHeader::WordSize
virtual size_t WordSize() const =0
vtkXMLDataHeader::WordCount
virtual size_t WordCount() const =0
Generated by
1.8.11