Blender V4.3
image_vdb.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2011-2022 Blender Foundation
2 *
3 * SPDX-License-Identifier: Apache-2.0 */
4
5#ifndef __IMAGE_VDB__
6#define __IMAGE_VDB__
7
8#ifdef WITH_OPENVDB
9# include <openvdb/openvdb.h>
10#endif
11#ifdef WITH_NANOVDB
12# include <nanovdb/NanoVDB.h>
13# if NANOVDB_MAJOR_VERSION_NUMBER > 32 || \
14 (NANOVDB_MAJOR_VERSION_NUMBER == 32 && NANOVDB_MINOR_VERSION_NUMBER >= 7)
15# include <nanovdb/GridHandle.h>
16# else
17# include <nanovdb/util/GridHandle.h>
18# endif
19#endif
20
21#include "scene/image.h"
22
24
26 public:
27#ifdef WITH_OPENVDB
28 VDBImageLoader(openvdb::GridBase::ConstPtr grid_, const string &grid_name);
29#endif
30 VDBImageLoader(const string &grid_name);
32
33 virtual bool load_metadata(const ImageDeviceFeatures &features,
34 ImageMetaData &metadata) override;
35
36 virtual bool load_pixels(const ImageMetaData &metadata,
37 void *pixels,
38 const size_t pixels_size,
39 const bool associate_alpha) override;
40
41 virtual string name() const override;
42
43 virtual bool equals(const ImageLoader &other) const override;
44
45 virtual void cleanup() override;
46
47 virtual bool is_vdb_loader() const override;
48
49#ifdef WITH_OPENVDB
50 openvdb::GridBase::ConstPtr get_grid();
51#endif
52
53 protected:
54 string grid_name;
55#ifdef WITH_OPENVDB
56 openvdb::GridBase::ConstPtr grid;
57 openvdb::CoordBBox bbox;
58#endif
59#ifdef WITH_NANOVDB
60 nanovdb::GridHandle<> nanogrid;
61 int precision = 0;
62#endif
63};
64
66
67#endif /* __IMAGE_VDB__ */
VDBImageLoader(const string &grid_name)
virtual bool equals(const ImageLoader &other) const override
string grid_name
Definition image_vdb.h:54
virtual bool load_metadata(const ImageDeviceFeatures &features, ImageMetaData &metadata) override
virtual void cleanup() override
virtual bool is_vdb_loader() const override
virtual string name() const override
virtual bool load_pixels(const ImageMetaData &metadata, void *pixels, const size_t pixels_size, const bool associate_alpha) override
#define CCL_NAMESPACE_END