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 91 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 148 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 114 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 130 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 101 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 318 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 328 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 218 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 229 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 262 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 338 of file GA_MergeOptions.h.
|
inline |
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 244 of file GA_MergeOptions.h.
|
inline |
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 247 of file GA_MergeOptions.h.
|
inline |
Definition at line 190 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 285 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 277 of file GA_MergeOptions.h.
|
inline |
Merge the input detail multiple times.
Definition at line 305 of file GA_MergeOptions.h.
|
inline |
Whether to insert points at the head when merging. Default: false
Definition at line 292 of file GA_MergeOptions.h.
|
inline |
Whether to insert primitives at the head when merging. Default: false
Definition at line 299 of file GA_MergeOptions.h.
|
inline |
Whether to perform threaded merging of attributes Default: true
Definition at line 269 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 211 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 222 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 330 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 319 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 286 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 278 of file GA_MergeOptions.h.
Merge the input detail multiple times.
Definition at line 306 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 209 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 220 of file GA_MergeOptions.h.
|
inline |
Whether to insert points at the head when merging. Default: false
Definition at line 293 of file GA_MergeOptions.h.
|
inline |
Whether to insert primitives at the head when merging. Default: false
Definition at line 300 of file GA_MergeOptions.h.
|
inline |
Whether to perform threaded merging of attributes Default: true
Definition at line 270 of file GA_MergeOptions.h.
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 340 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 253 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 251 of file GA_MergeOptions.h.