OpenVDB  6.2.1
DelayedLoadMetadata.h
Go to the documentation of this file.
1 //
2 // TM & (c) Lucasfilm Entertainment Company Ltd. and Lucasfilm Ltd.
3 // All rights reserved. This software is distributed under the
4 // Mozilla Public License 2.0 ( http://www.mozilla.org/MPL/2.0/ )
5 //
6 
7 #ifndef OPENVDB_DELAYED_LOAD_METADATA_HAS_BEEN_INCLUDED
8 #define OPENVDB_DELAYED_LOAD_METADATA_HAS_BEEN_INCLUDED
9 
10 #include <openvdb/Metadata.h>
11 #include <cstdint>
12 #include <iostream>
13 #include <string>
14 #include <vector>
15 
16 
17 namespace openvdb {
19 namespace OPENVDB_VERSION_NAME {
20 namespace io {
21 
25 {
26 public:
29  using MaskType = int8_t;
30  using CompressedSizeType = int64_t;
31 
32  DelayedLoadMetadata() = default;
34  ~DelayedLoadMetadata() override = default;
35 
36  Name typeName() const override;
37  Metadata::Ptr copy() const override;
38  void copy(const Metadata&) override;
39  std::string str() const override;
40  bool asBool() const override;
41  Index32 size() const override;
42 
43  static Name staticTypeName() { return "__delayedload"; }
44 
46  {
48  return ret;
49  }
50 
51  static void registerType()
52  {
53  Metadata::registerType(DelayedLoadMetadata::staticTypeName(),
54  DelayedLoadMetadata::createMetadata);
55  }
56 
57  static void unregisterType()
58  {
59  Metadata::unregisterType(DelayedLoadMetadata::staticTypeName());
60  }
61 
62  static bool isRegisteredType()
63  {
64  return Metadata::isRegisteredType(DelayedLoadMetadata::staticTypeName());
65  }
66 
68  void clear();
70  bool empty() const;
71 
73  void resizeMask(size_t size);
75  void resizeCompressedSize(size_t size);
76 
79  MaskType getMask(size_t index) const;
82  void setMask(size_t index, const MaskType& value);
83 
86  CompressedSizeType getCompressedSize(size_t index) const;
89  void setCompressedSize(size_t index, const CompressedSizeType& value);
90 
91 protected:
92  void readValue(std::istream&, Index32 numBytes) override;
93  void writeValue(std::ostream&) const override;
94 
95 private:
96  std::vector<MaskType> mMask;
97  std::vector<CompressedSizeType> mCompressedSize;
98 }; // class DelayedLoadMetadata
99 
100 
101 } // namespace io
102 } // namespace OPENVDB_VERSION_NAME
103 } // namespace openvdb
104 
105 #endif // OPENVDB_DELAYED_LOAD_METADATA_HAS_BEEN_INCLUDED
openvdb::v6_2::io::DelayedLoadMetadata::unregisterType
static void unregisterType()
Definition: DelayedLoadMetadata.h:57
Metadata.h
openvdb::v6_2::Name
std::string Name
Definition: Name.h:44
openvdb::v6_2::io::DelayedLoadMetadata::createMetadata
static Metadata::Ptr createMetadata()
Definition: DelayedLoadMetadata.h:45
openvdb::v6_2::Metadata::Ptr
SharedPtr< Metadata > Ptr
Definition: Metadata.h:53
openvdb::v6_2::io::DelayedLoadMetadata::registerType
static void registerType()
Definition: DelayedLoadMetadata.h:51
openvdb::v6_2::Metadata::ConstPtr
SharedPtr< const Metadata > ConstPtr
Definition: Metadata.h:54
OPENVDB_API
#define OPENVDB_API
Helper macros for defining library symbol visibility.
Definition: Platform.h:288
openvdb::v6_2::SharedPtr
std::shared_ptr< T > SharedPtr
Definition: Types.h:139
openvdb::v6_2::io::DelayedLoadMetadata::MaskType
int8_t MaskType
Definition: DelayedLoadMetadata.h:29
openvdb::v6_2::io::DelayedLoadMetadata::CompressedSizeType
int64_t CompressedSizeType
Definition: DelayedLoadMetadata.h:30
openvdb::v6_2::Index32
uint32_t Index32
Definition: Types.h:59
OPENVDB_USE_VERSION_NAMESPACE
#define OPENVDB_USE_VERSION_NAMESPACE
Definition: version.h:180
openvdb::v6_2::io::DelayedLoadMetadata
Store a buffer of data that can be optionally used during reading for faster delayed-load I/O perform...
Definition: DelayedLoadMetadata.h:24
openvdb::v6_2::Metadata
Base class for storing metadata information in a grid.
Definition: Metadata.h:50
openvdb::v6_2::io::DelayedLoadMetadata::staticTypeName
static Name staticTypeName()
Definition: DelayedLoadMetadata.h:43
OPENVDB_VERSION_NAME
#define OPENVDB_VERSION_NAME
Definition: version.h:134
openvdb::v6_2::io::DelayedLoadMetadata::isRegisteredType
static bool isRegisteredType()
Definition: DelayedLoadMetadata.h:62
openvdb
Definition: Exceptions.h:40