HDK
|
Provide options when performing a merge operation. More...
#include <GA_MergeOptions.h>
Public Types | |
enum | TypeStrategy { TYPE_DISALLOW, TYPE_KEEP_DEST, TYPE_CHANGE_DEST, TYPE_DEFAULT = TYPE_KEEP_DEST } |
enum | StorageStrategy { STORAGE_DISALLOW, STORAGE_KEEP_DEST, STORAGE_CHANGE_DEST, STORAGE_USE_BEST, STORAGE_DEFAULT = STORAGE_USE_BEST } |
enum | TupleSizeStrategy { TUPLE_SIZE_DISALLOW, TUPLE_SIZE_KEEP_DEST, TUPLE_SIZE_CHANGE_DEST, TUPLE_SIZE_USE_BEST, TUPLE_SIZE_DEFAULT = TUPLE_SIZE_USE_BEST } |
enum | MergeStrategy { MERGE_OPTIMAL, MERGE_COPY, MERGE_APPEND, MERGE_INTERLEAVE, MERGE_DEFAULT = MERGE_OPTIMAL } |
Provide options when performing a merge operation.
This class stores generic options which can be set/accessed when merging.
Some common options are implemented using the IMPL_ENUM
define.
The methods provided are:
List of all well defined options:
Definition at line 92 of file GA_MergeOptions.h.
The MergeStrategy
is used to give a hint as to how the merge should append data after the existing data or whether the source data should be interleaved with the existing data. The merge operation may change this "hint" for the actual operation.
Definition at line 149 of file GA_MergeOptions.h.
For attributes which have storage, this enum gives a hint of what to do if there's a mis-match on storage types.
Definition at line 115 of file GA_MergeOptions.h.
For attributes which have a tuple size, this enum gives a hint of what to do if there's a mis-match on storage types.
Definition at line 131 of file GA_MergeOptions.h.
The TypeStrategy
is used to give a hint to the AIFMerge if it encounters a type difference on the attributes. For example, if the destination is a string attribute, but the source has a boolean attribute, the attribute can either keep or change the destination to match the source.
Enumerator | |
---|---|
TYPE_DISALLOW |
Only process exact matches on types. |
TYPE_KEEP_DEST |
Keep destination unchanged if possible. |
TYPE_CHANGE_DEST |
Change destination attribute to match source. |
TYPE_DEFAULT |
Definition at line 102 of file GA_MergeOptions.h.
GA_MergeOptions::GA_MergeOptions | ( | ) |
|
inline |
Whether the "copy" style of merging should force interleaving instead of verbatim copying. This is often useful when merging multiple different details.
Definition at line 328 of file GA_MergeOptions.h.
|
inline |
Strategy to use for attribute data ids during the merge, defaulting to GA_DATA_ID_BUMP. GA_DATA_ID_CLONE is useful when copying a source detail in order to perform a partial update without always blindly invalidating any external caches tied to data ids. The data id must be manually bumped when an attribute is later modified.
Definition at line 338 of file GA_MergeOptions.h.
|
inline |
Set whether the merge should copy over group membership for the given attribute type. By default, all groups are copied.
Note that only a single type should be passed in (don't use bit-masks)
Definition at line 219 of file GA_MergeOptions.h.
|
inline |
Set whether the merge should copy over group membership for the given attribute type. By default, all groups are copied.
Note that only a single type should be passed in (don't use bit-masks)
Definition at line 230 of file GA_MergeOptions.h.
|
inline |
For backward compatibility with the GEO library, we provide a method to control the "mapping" from source points to the newly created merged points.
Definition at line 272 of file GA_MergeOptions.h.
|
inline |
For backward compatibility with the GEO library, we provide a method to control the "mapping" from source primitives to the newly created merged primitives.
Definition at line 263 of file GA_MergeOptions.h.
|
inline |
Strategy to use for handling point attributes and vertex attributes of the same name, defaulting to override a previous point/vertex attribute with the requested vertex/point attribute.
Definition at line 348 of file GA_MergeOptions.h.
There are two iterators that can be specified in the options. This allows the merge operation to operate on a subset of primitives & points.
Definition at line 245 of file GA_MergeOptions.h.
There are two iterators that can be specified in the options. This allows the merge operation to operate on a subset of primitives & points.
Definition at line 248 of file GA_MergeOptions.h.
|
inline |
Definition at line 191 of file GA_MergeOptions.h.
|
inline |
When merging a range of primitives, check whether to merge all points (or just the referenced points). Default: false
Definition at line 295 of file GA_MergeOptions.h.
|
inline |
Whether to compute missing normal attributes if they are on one of the geometries and not the other. Default: true
Definition at line 287 of file GA_MergeOptions.h.
|
inline |
Merge the input detail multiple times.
Definition at line 315 of file GA_MergeOptions.h.
|
inline |
Whether to insert points at the head when merging. Default: false
Definition at line 302 of file GA_MergeOptions.h.
|
inline |
Whether to insert primitives at the head when merging. Default: false
Definition at line 309 of file GA_MergeOptions.h.
|
inline |
Whether to perform threaded merging of attributes Default: true
Definition at line 279 of file GA_MergeOptions.h.
|
inline |
Set whether the merge should copy over group membership for the given attribute type. By default, all groups are copied.
Note that only a single type should be passed in (don't use bit-masks)
Definition at line 212 of file GA_MergeOptions.h.
|
inline |
Set whether the merge should copy over group membership for the given attribute type. By default, all groups are copied.
Note that only a single type should be passed in (don't use bit-masks)
Definition at line 223 of file GA_MergeOptions.h.
|
inline |
Strategy to use for attribute data ids during the merge, defaulting to GA_DATA_ID_BUMP. GA_DATA_ID_CLONE is useful when copying a source detail in order to perform a partial update without always blindly invalidating any external caches tied to data ids. The data id must be manually bumped when an attribute is later modified.
Definition at line 340 of file GA_MergeOptions.h.
|
inline |
Whether the "copy" style of merging should force interleaving instead of verbatim copying. This is often useful when merging multiple different details.
Definition at line 329 of file GA_MergeOptions.h.
|
inline |
When merging a range of primitives, check whether to merge all points (or just the referenced points). Default: false
Definition at line 296 of file GA_MergeOptions.h.
|
inline |
Whether to compute missing normal attributes if they are on one of the geometries and not the other. Default: true
Definition at line 288 of file GA_MergeOptions.h.
Merge the input detail multiple times.
Definition at line 316 of file GA_MergeOptions.h.
|
inline |
Set whether the merge should copy over group membership for the given attribute type. By default, all groups are copied.
Note that only a single type should be passed in (don't use bit-masks)
Definition at line 210 of file GA_MergeOptions.h.
|
inline |
Set whether the merge should copy over group membership for the given attribute type. By default, all groups are copied.
Note that only a single type should be passed in (don't use bit-masks)
Definition at line 221 of file GA_MergeOptions.h.
|
inline |
Whether to insert points at the head when merging. Default: false
Definition at line 303 of file GA_MergeOptions.h.
|
inline |
Whether to insert primitives at the head when merging. Default: false
Definition at line 310 of file GA_MergeOptions.h.
|
inline |
Whether to perform threaded merging of attributes Default: true
Definition at line 280 of file GA_MergeOptions.h.
void GA_MergeOptions::setPointRedirect | ( | GA_GBPointRedirectArray * | map | ) |
For backward compatibility with the GEO library, we provide a method to control the "mapping" from source points to the newly created merged points.
void GA_MergeOptions::setPrimitiveMap | ( | UT_Array< GA_Primitive * > * | prims | ) |
For backward compatibility with the GEO library, we provide a method to control the "mapping" from source primitives to the newly created merged primitives.
|
inline |
}
Definition at line 350 of file GA_MergeOptions.h.
There are two iterators that can be specified in the options. This allows the merge operation to operate on a subset of primitives & points.
Definition at line 254 of file GA_MergeOptions.h.
There are two iterators that can be specified in the options. This allows the merge operation to operate on a subset of primitives & points.
Definition at line 252 of file GA_MergeOptions.h.