Go to the documentation of this file.
10 #ifndef OPENVDB_POINTS_ATTRIBUTE_ARRAY_STRING_HAS_BEEN_INCLUDED
11 #define OPENVDB_POINTS_ATTRIBUTE_ARRAY_STRING_HAS_BEEN_INCLUDED
16 #include <unordered_map>
28 namespace attribute_traits
35 template <
bool Truncate>
43 template<
typename StorageType>
static void decode(
const StorageType&,
ValueType&);
44 template<
typename StorageType>
static void encode(
const ValueType&, StorageType&);
45 static const char*
name() {
return Truncate ?
"str_trnc" :
"str"; }
60 using ValueMap = std::unordered_map<Name, Index>;
66 bool empty()
const {
return mCache.empty(); }
68 size_t size()
const {
return mCache.size(); }
91 using UniquePtr = std::unique_ptr<StringMetaInserter>;
112 using IndexPairArray = std::deque<std::pair<Index, Index>>;
115 IndexPairArray mIdBlocks;
123 template <
bool Truncate>
124 template<
typename StorageType>
132 template <
bool Truncate>
133 template<
typename StorageType>
156 using Ptr = std::shared_ptr<StringAttributeHandle>;
157 using UniquePtr = std::unique_ptr<StringAttributeHandle>;
163 const bool preserveCompression =
true);
189 using Ptr = std::shared_ptr<StringAttributeWriteHandle>;
190 using UniquePtr = std::unique_ptr<StringAttributeWriteHandle>;
196 const bool expand =
true);
246 #endif // OPENVDB_POINTS_ATTRIBUTE_ARRAY_STRING_HAS_BEEN_INCLUDED
Index32 Index
Definition: openvdb/Types.h:32
Definition: AttributeArrayString.h:30
Definition: AttributeArrayString.h:187
StringAttributeWriteHandle(AttributeArray &array, const MetaMap &metadata, const bool expand=true)
Definition: AttributeArrayString.h:154
static Ptr create(AttributeArray &array, const MetaMap &metadata, const bool expand=true)
StringAttributeHandle(const AttributeArray &array, const MetaMap &metadata, const bool preserveCompression=true)
void fill(const Name &name)
Fill the existing array with the given value.
Write-able version of AttributeHandle.
Definition: AttributeArray.h:915
uint16_t Type
Definition: AttributeArrayString.h:31
bool hasConstantStride() const
Definition: AttributeArrayString.h:169
bool isString(const AttributeArray &array)
Definition: AttributeArrayString.h:144
Name get(Index n, Index m=0) const
Attribute Array storage templated on type and compression codec.
bool isType() const
Return true if this attribute is of the same type as the template parameter.
Definition: AttributeArray.h:221
Definition: AttributeArrayString.h:37
static Ptr create(const AttributeArray &array, const MetaMap &metadata, const bool preserveCompression=true)
AttributeArray & array()
Returns a reference to the array held in the Write Handle.
std::string Name
Definition: Name.h:17
std::unique_ptr< StringAttributeHandle > UniquePtr
Definition: AttributeArrayString.h:157
typename attribute_traits::StringTypeTrait< Truncate >::Type Type
Definition: AttributeArrayString.h:41
Typed class for storing attribute data.
Definition: AttributeArray.h:559
const MetaMap & mMetadata
Definition: AttributeArrayString.h:179
Index stride() const
Definition: AttributeArrayString.h:165
Definition: AttributeArray.h:844
void get(Name &name, Index n, Index m=0) const
bool isUniform() const
Definition: AttributeArrayString.h:168
Type Truncate(Type x, unsigned int digits)
Return x truncated to the given number of decimal digits.
Definition: Math.h:873
Index ValueType
Definition: AttributeArrayString.h:38
std::shared_ptr< StringAttributeHandle > Ptr
Definition: AttributeArrayString.h:156
#define OPENVDB_USE_VERSION_NAMESPACE
Definition: version.h:153
static const char * name()
Definition: AttributeArrayString.h:45
void set(Index n, Index m, const Name &name)
void resetCache()
Reset the value cache from the metadata.
void set(Index n, const Name &name)
Set the value of the index to name.
void collapse()
Set membership for the whole array and attempt to collapse.
#define OPENVDB_VERSION_NAME
The version namespace name for this library version.
Definition: version.h:101
Index size() const
Definition: AttributeArrayString.h:166
Index Type
Definition: AttributeArrayString.h:30
Definition: AttributeArrayString.h:41
Base class for storing attribute data.
Definition: AttributeArray.h:93
bool contains(const Name &name) const
Returns whether or not the metadata cache contains a given value.
const AttributeArray & array() const
Returns a reference to the array held in the Handle.
Definition: openvdb/Exceptions.h:13
void collapse(const Name &name)
Set membership for the whole array and attempt to collapse.
bool compact()
Compact the existing array to become uniform if all values are identical.
AttributeHandle< Index, StringCodec< false > > mHandle
Definition: AttributeArrayString.h:178
void expand(bool fill=true)
If this array is uniform, replace it with an array of length size().