OpenVDB
1.1.0
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
openvdb.h
Go to the documentation of this file.
1
2
//
3
// Copyright (c) 2012-2013 DreamWorks Animation LLC
4
//
5
// All rights reserved. This software is distributed under the
6
// Mozilla Public License 2.0 ( http://www.mozilla.org/MPL/2.0/ )
7
//
8
// Redistributions of source code must retain the above copyright
9
// and license notice and the following restrictions and disclaimer.
10
//
11
// * Neither the name of DreamWorks Animation nor the names of
12
// its contributors may be used to endorse or promote products derived
13
// from this software without specific prior written permission.
14
//
15
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
16
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
17
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
18
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
19
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY INDIRECT, INCIDENTAL,
20
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
21
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
// IN NO EVENT SHALL THE COPYRIGHT HOLDERS' AND CONTRIBUTORS' AGGREGATE
27
// LIABILITY FOR ALL CLAIMS REGARDLESS OF THEIR BASIS EXCEED US$250.00.
28
//
30
31
#ifndef OPENVDB_INIT_HAS_BEEN_INCLUDED
32
#define OPENVDB_INIT_HAS_BEEN_INCLUDED
33
34
#include "
Types.h
"
35
#include "
Metadata.h
"
36
#include "
math/Maps.h
"
37
#include "
math/Transform.h
"
38
#include "
Grid.h
"
39
#include "
tree/Tree.h
"
40
#include "
io/File.h
"
41
#include "
Platform.h
"
42
43
44
namespace
openvdb {
45
OPENVDB_USE_VERSION_NAMESPACE
46
namespace
OPENVDB_VERSION_NAME
{
47
49
typedef
tree::Tree4<bool, 5, 4, 3>::Type
BoolTree
;
50
typedef
tree::Tree4<float, 5, 4, 3>::Type
FloatTree
;
51
typedef
tree::Tree4<double, 5, 4, 3>::Type
DoubleTree
;
52
typedef
tree::Tree4<int32_t, 5, 4, 3>::Type
Int32Tree
;
53
typedef
tree::Tree4<uint32_t, 5, 4, 3>::Type
UInt32Tree
;
54
typedef
tree::Tree4<int64_t, 5, 4, 3>::Type
Int64Tree
;
55
typedef
tree::Tree4<Hermite, 5, 4, 3>::Type
HermiteTree
;
56
typedef
tree::Tree4<Vec2i, 5, 4, 3>::Type
Vec2ITree
;
57
typedef
tree::Tree4<Vec2s, 5, 4, 3>::Type
Vec2STree
;
58
typedef
tree::Tree4<Vec2d, 5, 4, 3>::Type
Vec2DTree
;
59
typedef
tree::Tree4<Vec3i, 5, 4, 3>::Type
Vec3ITree
;
60
typedef
tree::Tree4<Vec3f, 5, 4, 3>::Type
Vec3STree
;
61
typedef
tree::Tree4<Vec3d, 5, 4, 3>::Type
Vec3DTree
;
62
typedef
tree::Tree4<std::string, 5, 4, 3>::Type
StringTree
;
63
typedef
Vec3STree
Vec3fTree
;
64
typedef
Vec3DTree
Vec3dTree
;
65
typedef
FloatTree
ScalarTree
;
66
typedef
Vec3fTree
VectorTree
;
67
69
typedef
Grid<BoolTree>
BoolGrid
;
70
typedef
Grid<FloatTree>
FloatGrid
;
71
typedef
Grid<DoubleTree>
DoubleGrid
;
72
typedef
Grid<Int32Tree>
Int32Grid
;
73
typedef
Grid<Int64Tree>
Int64Grid
;
74
typedef
Grid<HermiteTree>
HermiteGrid
;
75
typedef
Grid<Vec3ITree>
Vec3IGrid
;
76
typedef
Grid<Vec3STree>
Vec3SGrid
;
77
typedef
Grid<Vec3DTree>
Vec3DGrid
;
78
typedef
Grid<StringTree>
StringGrid
;
79
typedef
Vec3SGrid
Vec3fGrid
;
80
typedef
Vec3DGrid
Vec3dGrid
;
81
typedef
FloatGrid
ScalarGrid
;
82
typedef
Vec3fGrid
VectorGrid
;
83
84
86
OPENVDB_API
inline
87
void
initialize
()
88
{
89
// Register metadata.
90
Metadata::clearRegistry
();
91
BoolMetadata::registerType
();
92
DoubleMetadata::registerType
();
93
FloatMetadata::registerType
();
94
Int32Metadata::registerType
();
95
Int64Metadata::registerType
();
96
StringMetadata::registerType
();
97
Vec2IMetadata::registerType
();
98
Vec2SMetadata::registerType
();
99
Vec2DMetadata::registerType
();
100
Vec3IMetadata::registerType
();
101
Vec3SMetadata::registerType
();
102
Vec3DMetadata::registerType
();
103
Mat4SMetadata::registerType
();
104
Mat4DMetadata::registerType
();
105
106
// Register maps
107
math::MapRegistry::clear();
108
math::AffineMap::registerMap();
109
math::UnitaryMap::registerMap();
110
math::ScaleMap::registerMap();
111
math::UniformScaleMap::registerMap();
112
math::TranslationMap::registerMap();
113
math::ScaleTranslateMap::registerMap();
114
math::UniformScaleTranslateMap::registerMap();
115
math::NonlinearFrustumMap::registerMap();
116
117
// Register common grid types.
118
GridBase::clearRegistry
();
119
BoolGrid::registerGrid
();
120
FloatGrid::registerGrid
();
121
DoubleGrid::registerGrid
();
122
Int32Grid::registerGrid
();
123
Int64Grid::registerGrid
();
124
HermiteGrid::registerGrid
();
125
StringGrid::registerGrid
();
126
Vec3IGrid::registerGrid
();
127
Vec3SGrid::registerGrid
();
128
Vec3DGrid::registerGrid
();
129
}
130
131
133
OPENVDB_API
inline
134
void
uninitialize
()
135
{
136
Metadata::clearRegistry
();
137
GridBase::clearRegistry
();
138
math::MapRegistry::clear();
139
}
140
141
}
// namespace OPENVDB_VERSION_NAME
142
}
// namespace openvdb
143
144
#endif // OPENVDB_INIT_HAS_BEEN_INCLUDED
145
146
// Copyright (c) 2012-2013 DreamWorks Animation LLC
147
// All rights reserved. This software is distributed under the
148
// Mozilla Public License 2.0 ( http://www.mozilla.org/MPL/2.0/ )
Generated on Wed Apr 10 2013 09:34:47 for OpenVDB by
1.8.1.2