HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
GU_AttributeSwap Class Reference

#include <GU_AttributeSwap.h>

Public Types

enum  SwapMethod { METHOD_SWAP, METHOD_COPY, METHOD_MOVE, NUM_METHODS }
 
enum  TypeInfo { TYPEINFO_USE_SOURCE, TYPEINFO_PRESERVE_DEST, NUM_TYPEINFOS }
 

Static Public Member Functions

static bool swapAttribute (GU_Detail *gdp, SwapMethod method, TypeInfo typeinfo, GA_AttributeOwner owner, const UT_StringRef &srcname, const UT_StringRef &dstname)
 

Detailed Description

Definition at line 21 of file GU_AttributeSwap.h.

Member Enumeration Documentation

Operation to perform. Move will remove the source. Note the point attribute P cannot be moved so it will be instead silently copied. Swap exchanges the pair. If destination is missing, it is copied.

Enumerator
METHOD_SWAP 
METHOD_COPY 
METHOD_MOVE 
NUM_METHODS 

Definition at line 28 of file GU_AttributeSwap.h.

What to do about typeinfos. When stashing attributes one often wants to clear the transform type so succeeding deformers don't also change your stashed values, this becomes the preserve-dest. OTOH, when duplicating, you want the copy to have the source typeinfo. This is ignored for swapping.

Enumerator
TYPEINFO_USE_SOURCE 
TYPEINFO_PRESERVE_DEST 
NUM_TYPEINFOS 

Definition at line 41 of file GU_AttributeSwap.h.

Member Function Documentation

static bool GU_AttributeSwap::swapAttribute ( GU_Detail gdp,
SwapMethod  method,
TypeInfo  typeinfo,
GA_AttributeOwner  owner,
const UT_StringRef srcname,
const UT_StringRef dstname 
)
static

Does the method to the two named attributes. If swapping a missing attribute, will first create it. source attribute is assumed to exist. Returns false if failed for some reason; note there are special rules about how P can change. You must invoke gdp->refreshCachedAttributes() if there is a risk you changed the P attribute!


The documentation for this class was generated from the following file: