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/util/GridHandle.h>
13#endif
14
15#include "scene/image.h"
16
18
20 public:
21#ifdef WITH_OPENVDB
22 VDBImageLoader(openvdb::GridBase::ConstPtr grid_, const string &grid_name);
23#endif
24 VDBImageLoader(const string &grid_name);
26
27 virtual bool load_metadata(const ImageDeviceFeatures &features,
28 ImageMetaData &metadata) override;
29
30 virtual bool load_pixels(const ImageMetaData &metadata,
31 void *pixels,
32 const size_t pixels_size,
33 const bool associate_alpha) override;
34
35 virtual string name() const override;
36
37 virtual bool equals(const ImageLoader &other) const override;
38
39 virtual void cleanup() override;
40
41 virtual bool is_vdb_loader() const override;
42
43#ifdef WITH_OPENVDB
44 openvdb::GridBase::ConstPtr get_grid();
45#endif
46
47 protected:
48 string grid_name;
49#ifdef WITH_OPENVDB
50 openvdb::GridBase::ConstPtr grid;
51 openvdb::CoordBBox bbox;
52#endif
53#ifdef WITH_NANOVDB
54 nanovdb::GridHandle<> nanogrid;
55 int precision = 0;
56#endif
57};
58
60
61#endif /* __IMAGE_VDB__ */
VDBImageLoader(const string &grid_name)
virtual bool equals(const ImageLoader &other) const override
string grid_name
Definition image_vdb.h:48
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