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