9 #ifndef __PDG_ATTRIBUTE_SPLIT_H__
10 #define __PDG_ATTRIBUTE_SPLIT_H__
33 template <
typename Value>
48 static void batchWorkItemsByFrame(
53 bool save_missing =
true);
65 template <
typename Attribute>
72 bool save_missing =
true)
74 bool conflict =
false;
75 for (
auto&& work_item : work_items)
77 auto&&
ref = work_item->attributes().refRO<
Attribute>(attrib_name);
78 if (!
ref || !
ref->valid(0))
83 missing_items.
append(work_item);
88 auto&& iter = split.
find(value);
89 if (iter == split.
end())
91 unique_values.append(value);
92 split[
value].append(work_item);
96 iter->second.append(work_item);
106 static bool splitWorkItems(
107 StringSplitMap&
split,
113 bool save_missing =
true,
114 bool partial_match =
false);
GLsizei const GLfloat * value
static bool splitWorkItems(SplitMap< typename Attribute::Data > &split, PDG_WorkItemArray &missing_items, typename Attribute::Array &unique_values, const PDG_WorkItemArray &work_items, const UT_StringHolder &attrib_name, bool save_missing=true)
UT::ArraySet< std::pair< Key, T >, MULTI, MAX_LOAD_FACTOR_256, Clearer, MapKeyHash< Hash, Key, T >, MapKeyEqual< KeyEqual, Key, T > >::end iterator end()
Returns a non-const end iterator for the set.
iterator find(const Key &key)
OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER class IMF_EXPORT_TEMPLATE_TYPE Array
void OIIO_UTIL_API split(string_view str, std::vector< string_view > &result, string_view sep=string_view(), int maxsplit=-1)
constexpr FMT_INLINE value()