2022-02-11 12:53:21 +00:00
|
|
|
/* SPDX-License-Identifier: Apache-2.0
|
|
|
|
* Copyright 2011-2022 Blender Foundation */
|
2020-03-17 15:52:14 +00:00
|
|
|
|
|
|
|
#ifndef __IMAGE_VDB__
|
|
|
|
#define __IMAGE_VDB__
|
|
|
|
|
|
|
|
#ifdef WITH_OPENVDB
|
|
|
|
# include <openvdb/openvdb.h>
|
|
|
|
#endif
|
2020-10-02 15:40:28 +00:00
|
|
|
#ifdef WITH_NANOVDB
|
|
|
|
# include <nanovdb/util/GridHandle.h>
|
|
|
|
#endif
|
2020-03-17 15:52:14 +00:00
|
|
|
|
2021-10-24 12:19:19 +00:00
|
|
|
#include "scene/image.h"
|
2020-03-17 15:52:14 +00:00
|
|
|
|
|
|
|
CCL_NAMESPACE_BEGIN
|
|
|
|
|
|
|
|
class VDBImageLoader : public ImageLoader {
|
|
|
|
public:
|
2022-04-20 07:57:56 +00:00
|
|
|
#ifdef WITH_OPENVDB
|
2022-04-19 14:28:14 +00:00
|
|
|
VDBImageLoader(openvdb::GridBase::ConstPtr grid_, const string &grid_name);
|
2022-04-20 07:57:56 +00:00
|
|
|
#endif
|
2020-03-17 15:52:14 +00:00
|
|
|
VDBImageLoader(const string &grid_name);
|
|
|
|
~VDBImageLoader();
|
|
|
|
|
2021-03-29 20:58:19 +00:00
|
|
|
virtual bool load_metadata(const ImageDeviceFeatures &features,
|
|
|
|
ImageMetaData &metadata) override;
|
2020-03-17 15:52:14 +00:00
|
|
|
|
|
|
|
virtual bool load_pixels(const ImageMetaData &metadata,
|
|
|
|
void *pixels,
|
|
|
|
const size_t pixels_size,
|
|
|
|
const bool associate_alpha) override;
|
|
|
|
|
|
|
|
virtual string name() const override;
|
|
|
|
|
|
|
|
virtual bool equals(const ImageLoader &other) const override;
|
|
|
|
|
|
|
|
virtual void cleanup() override;
|
|
|
|
|
2020-08-11 15:34:34 +00:00
|
|
|
virtual bool is_vdb_loader() const override;
|
|
|
|
|
|
|
|
#ifdef WITH_OPENVDB
|
|
|
|
openvdb::GridBase::ConstPtr get_grid();
|
|
|
|
#endif
|
|
|
|
|
2020-03-17 15:52:14 +00:00
|
|
|
protected:
|
|
|
|
string grid_name;
|
|
|
|
#ifdef WITH_OPENVDB
|
|
|
|
openvdb::GridBase::ConstPtr grid;
|
|
|
|
openvdb::CoordBBox bbox;
|
|
|
|
#endif
|
2020-10-02 15:40:28 +00:00
|
|
|
#ifdef WITH_NANOVDB
|
|
|
|
nanovdb::GridHandle<> nanogrid;
|
2022-05-20 16:01:26 +00:00
|
|
|
int precision = 0;
|
2020-10-02 15:40:28 +00:00
|
|
|
#endif
|
2020-03-17 15:52:14 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
CCL_NAMESPACE_END
|
|
|
|
|
|
|
|
#endif /* __IMAGE_VDB__ */
|