9 #ifndef __PDG_ATTRIBUTE_MERGE_H__
10 #define __PDG_ATTRIBUTE_MERGE_H__
42 eAttribRegular = 0x01,
77 , myPreserveArray(false)
86 , myPreserveArray(preserve_array)
111 {
return myAttributeTypes; }
120 {
return myIsInternalDependent; }
124 {
return myCollisionStrategy; }
133 { myDefaultOp.myMergeOp = merge_op; }
138 { myInputOp.myMergeOp = merge_op; }
143 { myOutputOp.myMergeOp = merge_op; }
147 { myIsMergeAdded = merge_added; }
153 { myCollisionStrategy = strategy; }
157 { myForceIgnore.insert(name); }
162 { myIsInternalDependent = dependent; }
166 bool isMergeFlatten()
const;
170 bool isMergeAdded()
const;
174 void reportErrors(
PDG_Node* node)
const;
177 static bool arePatternsEqual(
const Pattern&
left,
178 const Pattern&
right);
221 void addCollisionError(
234 const Pending& pendingOps()
const
235 {
return myPendingOps; }
238 static bool requiresPending(
243 const MergeData* matchAttrib(
248 MergeErrors myMergeErrors;
251 Pending myPendingOps;
252 const Pattern& myMergePattern;
256 int myAttributeTypes;
257 AttribFlatten myAttribFlatten;
259 MergeData myDefaultOp;
261 MergeData myOutputOp;
267 bool myIsInternalDependent;
void setIsMergeAdded(bool merge_added)
Sets the is merge added flag.
PDG_AttributeMergeOp myMergeOp
MergeData(const UT_StringHolder &pattern, PDG_AttributeMergeOp merge_op, bool preserve_array)
void addForceIgnore(const UT_StringHolder &name)
Adds an attibute name to the list of forced ignore attributes.
ImageBuf OIIO_API flatten(const ImageBuf &src, ROI roi={}, int nthreads=0)
bool isDeep() const
Returns true if merging should always do a deep copy of attribs.
void setAttribCollision(PDG_AttributeCollision strategy)
void setOutputMerge(PDG_AttributeMergeOp merge_op)
Adds a merge type for output files.
AttribTable
Enumeration of attribute tables.
PDG_AttributePattern myPattern
PDG_AttributeCollision attribCollision() const
Returns the attribute collision strategy.
PDG_AttributeType
Enumeration of possible attribute types.
GLuint const GLchar * name
PDG_AttributeMergeOp
Enumeration of different ways that attributes can be combined.
static const Pattern theEmptyPattern
The default, empty merge pattern.
void setIsInternalDependent(bool dependent)
void setAttribFlatten(AttribFlatten flatten)
Sets the attribute flatten mode.
AttribType
Enumeration of types of data types to merge.
Never flatten the attribute maps.
int attribTypes() const
Returns the attribute type filter.
PDG_AttributeMergeError
Enumerations of errors that can occur when merging attributes.
bool isInternalDependent() const
void setInputMerge(PDG_AttributeMergeOp merge_op)
Adds a merge type for input files.
Always flatten the attribute maps.
MergeData(PDG_AttributeMergeOp merge_op)
void setDefaultMerge(PDG_AttributeMergeOp merge_op)
Sets the default merge operation.