Katana Plug-in APIs 0.1
Classes | Public Types | Public Member Functions

Foundry::Katana::GeolibCookInterface Class Reference

Provides a unified interface for querying and manipulating the scene graph. More...

#include <FnGeolibCookInterface.h>

List of all members.

Classes

class  QueryAbortException
 Thrown by the Runtime to abort the current. More...

Public Types

enum  ResetRoot { ResetRootFalse = kFnKatGeolibCookInterfaceResetRootFalse, ResetRootTrue = kFnKatGeolibCookInterfaceResetRootTrue, ResetRootAuto = kFnKatGeolibCookInterfaceResetRootAuto }
 

The values of ResetRoot control which root scene graph location will be used for Ops when run at child locations.

More...

Public Member Functions

std::string getOutputName () const
 Returns the leaf name for the output location.
std::string getInputName () const
 Returns the leaf name for the input location.
std::string getOutputLocationPath () const
 Returns the output scene graph location path in its absolute form.
std::string getInputLocationPath () const
 Returns the scene graph location path corresponding to the input scene graph location that is currently being traversed.
std::string getRelativeOutputLocationPath () const
 Returns the location path relative to the root execution location currently being traversed.
std::string getRelativeInputLocationPath () const
 Returns the relative location path corresponding to the input scene graph location that is currently being traversed.
std::string getRootLocationPath () const
 Returns the scene graph location corresponding to the root of the Op's execution.
bool atRoot () const
 Returns true if we are at the topmost location this Op has been cooked at.
int getInputIndex () const
 Returns the input index this scene graph location was created in.
int getNumInputs () const
 Returns the number of input branches this Op has.
std::string getOpType () const
 Returns the type of this Op.
FnAttribute::Attribute getOpArg (FnPlatform::StringView specificArgName=FnPlatform::StringView()) const
 Returns the specified Op argument or all Op arguments if an empty string is provided.
Query Input

The following functions refer to queries on the connected input scene graph. Client code is free to do scattered queries of the incoming scene graph as required to express the desired processing.

Note:
Input scene graph locations which have not been cooked at the time of the query may throw an internal exception, aborting execution of the requesting Op. Client code should not catch these exceptions, they are a signal to the the runtime to recook the Op when the inputs are ready.

If your Op makes multiple scattered queries in a single cook() call, it is recommended that prefetch() is used.

FnAttribute::Attribute getAttr (FnPlatform::StringView attrName, FnPlatform::StringView inputLocationPath=FnPlatform::StringView(), int inputIndex=kFnKatGeolibDefaultInput) const
 Returns the specified attribute on the Op's input.
bool doesLocationExist (FnPlatform::StringView inputLocationPath=FnPlatform::StringView(), int inputIndex=kFnKatGeolibDefaultInput) const
 Returns true if the specified location exists on the Op's input.
FnAttribute::StringAttribute getPotentialChildren (FnPlatform::StringView inputLocationPath=FnPlatform::StringView(), int inputIndex=kFnKatGeolibDefaultInput) const
 Returns a StringAttribute containing list of names of potential children on input.
void * getPrivateData () const
 Returns a raw pointer to the private data stored in this Op or NULL.
void prefetch (FnPlatform::StringView inputLocationPath=FnPlatform::StringView(), int inputIndex=kFnKatGeolibDefaultInput) const
 Indicates to the Runtime that the caller depends on the specified location.
FnAttribute::Attribute getOutputAttr (FnPlatform::StringView attrName) const
 Returns the specified attribute (if set) on the Op's output for the current location.
Modify Output
void setAttr (FnPlatform::StringView attrName, const FnAttribute::Attribute &value, const bool groupInherit=true)
 Sets the specified attribute on the Op's output.
void copyAttr (FnPlatform::StringView dstAttrName, FnPlatform::StringView srcAttrName, const bool groupInherit=true, FnPlatform::StringView inputLocationPath=FnPlatform::StringView(), int inputIndex=kFnKatGeolibDefaultInput)
 Copies the specified source attribute to the specified destination attribute.
void extendAttr (FnPlatform::StringView dstAttrName, const FnAttribute::Attribute &value, FnPlatform::StringView srcAttrName=FnPlatform::StringView(), const bool groupInherit=true, FnPlatform::StringView inputLocationPath=FnPlatform::StringView(), int inputIndex=kFnKatGeolibDefaultInput)
 Extends the existing input attribute with additional values if the types match.
void deleteAttr (FnPlatform::StringView attrName)
 Deletes the attribute specified by attrName so it will no longer on this Ops output.
void deleteAttrs ()
 Deletes all attributes on this Op's output.
void replaceAttrs (FnPlatform::StringView inputLocationPath=FnPlatform::StringView(), int inputIndex=kFnKatGeolibDefaultInput)
 Replaces the attributes on this Op's output with those specified by the input scene graph location path.

Change the Output Topology

typedef void(* FnDeletePrivateDataFunc )(void *privateData)
 A function pointer of the form void (*deletePrivateData)(void* privateData) that will be called to delete the given privateData.
void createChild (FnPlatform::StringView name, FnPlatform::StringView opType=FnPlatform::StringView(), const FnAttribute::Attribute &opArgs=FnAttribute::Attribute(), ResetRoot resetRoot=ResetRootAuto, void *privateData=NULL, FnDeletePrivateDataFunc deletePrivateData=NULL)
 Creates a new child at the specified location if one didn't already exist.
void replaceChildren (FnPlatform::StringView inputLocationPath=FnPlatform::StringView(), int inputIndex=kFnKatGeolibDefaultInput)
 Replaces the children under the Op's current scene graph location with children from an alternate input location and/or input index.
void deleteChildren ()
 Deletes all children on this Op's output, both newly created by the current Op and any incoming children.
void deleteChild (FnPlatform::StringView name)
 Deletes the specified child location on the Op's output.
void deleteSelf ()
 Deletes the current output location.
void copyLocationToChild (FnPlatform::StringView child, FnPlatform::StringView inputLocationPath=FnPlatform::StringView(), int inputIndex=kFnKatGeolibDefaultInput, FnPlatform::StringView orderBefore=FnPlatform::StringView())
 Copies the specified location in the input scene, to the specified child location.
void replaceChildTraversalOp (FnPlatform::StringView opType, const FnAttribute::GroupAttribute &opArgs, void *privateData=NULL, FnDeletePrivateDataFunc deletePrivateData=NULL)
 Replaces the Op type and Op arguments for child locations of this Op.
void stopChildTraversal ()
 Stops this Op from running at descendants of the current location.
void execOp (FnPlatform::StringView opType, const FnAttribute::GroupAttribute &opArgs, void *privateData=NULL, FnDeletePrivateDataFunc deletePrivateData=NULL)
 Runs the specified Op with the provided arguments at the current location.
void resetRoot ()
 Marks this location as the new root location in the Op's traversal.

Detailed Description

Provides a unified interface for querying and manipulating the scene graph.

A reference to an instance of GeolibCookInterface is passed to your Op's cook() each time it is called by the Runtime.

Its methods can broadly be divided into two categories:


Member Typedef Documentation

A function pointer of the form void (*deletePrivateData)(void* privateData) that will be called to delete the given privateData.

Parameters:
privateDataThe private data to delete by the function.

Member Enumeration Documentation

The values of ResetRoot control which root scene graph location will be used for Ops when run at child locations.

Enumerator:
ResetRootFalse 

The root location of the Op evaluated at the new location is inherited from the Op that called createChild().

ResetRootTrue 

The root location of the Op evaluated at the new location is reset to the new location path.

ResetRootAuto 

The root location is reset only if opType is different to the Op calling createChild() (the default).


Member Function Documentation

bool Foundry::Katana::GeolibCookInterface::atRoot ( ) const

Returns true if we are at the topmost location this Op has been cooked at.

This is often, but not always /root. It is equivalent to the expression:

Returns:
true if we are at the topmost location this Op has been cooked at, otherwise false.
void Foundry::Katana::GeolibCookInterface::copyAttr ( FnPlatform::StringView  dstAttrName,
FnPlatform::StringView  srcAttrName,
const bool  groupInherit = true,
FnPlatform::StringView  inputLocationPath = FnPlatform::StringView(),
int  inputIndex = kFnKatGeolibDefaultInput 
)

Copies the specified source attribute to the specified destination attribute.

The specified source attribute (determined by inputLocationPath and inputIndex) will be copied to the output of this Op as dstAttrName. If the source attribute or location does not exist this call is equivalent to calling deleteAttr() with the destination attribute.

Parameters:
dstAttrNameThe name of the attribute to copy the attribute at srcAttrName to.
srcAttrNameThe name of the attribute to copy to dstAttrName.
groupInheritThe group inheritance state of the destination attribute.
inputLocationPathThe scene graph location path on this Op's input to copy from.
inputIndexThe input index to copy from (where multiple branches in the Op tree exist).
void Foundry::Katana::GeolibCookInterface::copyLocationToChild ( FnPlatform::StringView  child,
FnPlatform::StringView  inputLocationPath = FnPlatform::StringView(),
int  inputIndex = kFnKatGeolibDefaultInput,
FnPlatform::StringView  orderBefore = FnPlatform::StringView() 
)

Copies the specified location in the input scene, to the specified child location.

The specified inputLocationPath will not be evaluated until the new child location is traversed. At this time, if the input does not exist, neither will the new child.

copyLocationToChild() can be used to rename a child location:

         rename(dst, src)
         {
           copyLocationToChild(dst, src, kFnKatGeolibDefaultInput, src);
           deleteChild(src);
         }

The inputLocationPath always refers to the input name, and child refers to output name, so multiple copyLocationToChild() calls are unambiguous.

Parameters:
childThe name of the child to be copied to the output of this Op.
inputLocationPathThe input scene graph location path to copy.
inputIndexThe input index to copy the inputLocationPath from.
orderBeforeThe child that this should be precede in the scene graph ordering.
void Foundry::Katana::GeolibCookInterface::createChild ( FnPlatform::StringView  name,
FnPlatform::StringView  opType = FnPlatform::StringView(),
const FnAttribute::Attribute opArgs = FnAttribute::Attribute(),
ResetRoot  resetRoot = ResetRootAuto,
void *  privateData = NULL,
FnDeletePrivateDataFunc  deletePrivateData = NULL 
)

Creates a new child at the specified location if one didn't already exist.

If the child already exists in the incoming scene then the Op will be run and previously created attribute values and children will be preserved. To ensure the child will not have any pre-existing attributes or children it is recommended to first call deleteChild(), doing so will maintain the original child index ordering.

If the Op type is not specified or is an empty string the calling Op's type will be inherited by the child.

To modify the result of getRelativeOutputLocationPath() in calls beneath this location the resetRoot argument can be set. If ResetRootAuto is specified then the child's root location will be reset if and only if the Op's type differs from the parent's.

Note:
Multiple calls to createChild() for the same named child location causes the last specified opType to be used, that is to say, successive calls to createChild() mask prior calls.
Parameters:
nameThe name of the child to create.
opTypeThe type of the Op that will be evaluated at the child location. If an empty string or nothing is specified then the current Op's type will be used.
opArgsThe Op arguments that will be passed to the Op when run at the child location.
resetRootSpecifies what the root location for Ops run at child location should be.
privateDataA pointer to user data that can be used inside the Op.
deletePrivateDataA function pointer of the form void (*deletePrivateData)(void* privateData) that will be called to delete the given privateData.
See also:
ResetRoot
void Foundry::Katana::GeolibCookInterface::deleteAttr ( FnPlatform::StringView  attrName)

Deletes the attribute specified by attrName so it will no longer on this Ops output.

Parameters:
attrNameThe name of the attribute to delete from the Op's output.
void Foundry::Katana::GeolibCookInterface::deleteChild ( FnPlatform::StringView  name)

Deletes the specified child location on the Op's output.

Note:
Calling deleteChild() is more efficient than allowing the child location to delete itself. Where possible you should prefer deleteChild() over deleteSelf().
Parameters:
nameThe name of the child location to delete.
void Foundry::Katana::GeolibCookInterface::deleteSelf ( )

Deletes the current output location.

It is common to return from cook() immediately following this call.

Note:
Calls to deleteSelf() will not remove the location from the location's parent getPotentialChildren() list. Thus, if there is a way to structure code to use deleteChild() instead, it is generally preferable.
bool Foundry::Katana::GeolibCookInterface::doesLocationExist ( FnPlatform::StringView  inputLocationPath = FnPlatform::StringView(),
int  inputIndex = kFnKatGeolibDefaultInput 
) const

Returns true if the specified location exists on the Op's input.

Parameters:
inputLocationPathThe scene graph location path.
inputIndexThe input index that should be searched.
Returns:
true if the location exists at the specified location and index otherwise false.
void Foundry::Katana::GeolibCookInterface::execOp ( FnPlatform::StringView  opType,
const FnAttribute::GroupAttribute opArgs,
void *  privateData = NULL,
FnDeletePrivateDataFunc  deletePrivateData = NULL 
)

Runs the specified Op with the provided arguments at the current location.

Children created as a result of the execOp() call will behave as expected in such that they will retain the type and Op arguments of the exec'd Op.

Parameters:
opTypeThe type of Op to be run.
opArgsA GroupAttribute describing the arguments that will be passed to the Op when run.
privateDataA pointer to user data that can be used inside the Op.
deletePrivateDataA function pointer of the form void (*deletePrivateData)(void* privateData) that will be called to delete the given privateData.
void Foundry::Katana::GeolibCookInterface::extendAttr ( FnPlatform::StringView  dstAttrName,
const FnAttribute::Attribute value,
FnPlatform::StringView  srcAttrName = FnPlatform::StringView(),
const bool  groupInherit = true,
FnPlatform::StringView  inputLocationPath = FnPlatform::StringView(),
int  inputIndex = kFnKatGeolibDefaultInput 
)

Extends the existing input attribute with additional values if the types match.

If no input attribute exists with the specified name then this call is equivalent to setAttr().

Multi-sampling is supported; the new attribute is constructed as the union of all incoming and new time samples, leveraging the FnAttribute's existing interpolation.

If there is a type mismatch, it will be reported as a scene graph error. If more sophisticated or fine-grained type mismatch handling is required it is recommended to instead manually call getAttr() / setAttr()

Incoming NullAttribute's are equivalent to the attribute not being set in the incoming scene.

Parameters:
dstAttrNameThe name of the attribute to be extended.
valueThe Attributes that will extend the specified attribute.
srcAttrNameThe name of the attribute a specified location to be extended, if empty string is used this is the equivalent of setAttr().
groupInheritThe value of the group inheritance flag.
inputLocationPathThe input location path from which srcAttrName should be sourced from.
inputIndexThe input index to search for inputLocationPath on.
See also:
setAttr(), getAttr()
FnAttribute::Attribute Foundry::Katana::GeolibCookInterface::getAttr ( FnPlatform::StringView  attrName,
FnPlatform::StringView  inputLocationPath = FnPlatform::StringView(),
int  inputIndex = kFnKatGeolibDefaultInput 
) const

Returns the specified attribute on the Op's input.

It is often necessary to perform some action or compute a value based on the result stored in another attribute. The getAttr() function allows you to interrogate any part of the incoming scene graph by providing the attribute name and a scene graph location path (either absolute or relative).

By default getAttr() will return the specified attribute on the Op's default input. In most cases where the Op only has one input branch this will suffice. If the Op has multiple inputs (e.g. the Merge node) the inputIndex parameter can be used to specify a particular branch. When specified, inputIndex must satisfy 0 <= inputIndex < getNumInputs().

Note:
It is important to remember that getAttr() will only interrogate the Op's input scene graph. Calls made to setAttr() will not be visible to getAttr(). If you need to see what attributes have been set during an Op's execution you should call getOutputAttr().
Parameters:
attrNameThe name of the attribute.
inputLocationPathThe input location path the attribute should be retrieved from.
inputIndexThe input index the attribute should be retrieved from.
Returns:
The attribute at the specified location path and input index.
See also:
getNumInputs(), getOutputAttr()
int Foundry::Katana::GeolibCookInterface::getInputIndex ( ) const

Returns the input index this scene graph location was created in.

In most cases getInputIndex() will return 0, this reflects the fact that most Ops operate on the default input or branch.

In specific cases, such as in a Merge Op, getInputIndex() may return an index > 0: Certain locations may be present only in additional input scenes, but not in the first (connected) input scene. Those locations are created in the output scene, and are then cooked by subsequent cook() calls of the Merge Op. For those locations, the Runtime keeps track of the index of the scene in which they were contained. That index is accessible using getInputIndex(). This allows the Merge Op to know which input scene a particular location came from, and is used for performance optimizations when certain circumstances apply.

Returns:
The input index this location was created on.
std::string Foundry::Katana::GeolibCookInterface::getInputLocationPath ( ) const

Returns the scene graph location path corresponding to the input scene graph location that is currently being traversed.

Returns:
The input scene graph location that is currently being traversed.
std::string Foundry::Katana::GeolibCookInterface::getInputName ( ) const

Returns the leaf name for the input location.

This will typically match getOutputName(), but may differ when copyLocationToChild() is used.

Returns:
The leaf name for the input location.
See also:
copyLocationToChild(FnPlatform::StringView, FnPlatform::StringView, int inputIndex, FnPlatform::StringView)
int Foundry::Katana::GeolibCookInterface::getNumInputs ( ) const

Returns the number of input branches this Op has.

An Op can have the output from multiple other Ops as its input. Obvious use cases for this are instances where you wish to merge multiple scene graphs produced by different OpTrees into a single scene graph, comparing attribute values in two scene graph states, or copying one scene graph into another one. The getNumInputs() function allows you to determine how many Ops you have as inputs, which is a precursor to interrogating different branches of the OpTree for scene graph data.

Returns:
The number of inputs this Op has.
FnAttribute::Attribute Foundry::Katana::GeolibCookInterface::getOpArg ( FnPlatform::StringView  specificArgName = FnPlatform::StringView()) const

Returns the specified Op argument or all Op arguments if an empty string is provided.

Op arguments are passed to the Op to configure how it should run. Op arguments are stored in a GroupAttribute. This method allows you to interrogate the Op arguments available to this Op.

If you supply an argument name this can be in the dot-delimited form i.e. a.b.c or the single name form.

Parameters:
specificArgNameThe dot-delimited name of the Op argument.
Returns:
An instance of Attribute containing the Op argument.
std::string Foundry::Katana::GeolibCookInterface::getOpType ( ) const

Returns the type of this Op.

For user supplied Ops this will be the string that was used to register the Op in the REGISTER_PLUGIN() macro.

Returns:
A string containing the Op's type.
FnAttribute::Attribute Foundry::Katana::GeolibCookInterface::getOutputAttr ( FnPlatform::StringView  attrName) const

Returns the specified attribute (if set) on the Op's output for the current location.

This is useful for inspecting the output attributes set during an execOp() that may potentially require further processing after the exec'd Op has returned.

Note:
This is not recommended for normal usage.
Parameters:
attrNameThe name of the attribute to query.
Returns:
The attribute set on the Op's output. If not set an invalid attribute will be returned.
std::string Foundry::Katana::GeolibCookInterface::getOutputLocationPath ( ) const

Returns the output scene graph location path in its absolute form.

The output scene graph location path is the scene graph location that is currently being cooked. For example:

      "/root/world/geo"
Returns:
The absolute output scene graph location path.
std::string Foundry::Katana::GeolibCookInterface::getOutputName ( ) const

Returns the leaf name for the output location.

For example:

      "/root/world/geo" returns "geo"
Returns:
The leaf name of the output location.
FnAttribute::StringAttribute Foundry::Katana::GeolibCookInterface::getPotentialChildren ( FnPlatform::StringView  inputLocationPath = FnPlatform::StringView(),
int  inputIndex = kFnKatGeolibDefaultInput 
) const

Returns a StringAttribute containing list of names of potential children on input.

The ability for Ops, via deleteSelf(), to delete themselves gives rise to a subtle behavior. When an upstream Op is evaluated and creates children, if downstream Ops have the ability to delete them, the upstream Op can only go so far as to state that the children it creates may potentially exist after a downstream Op has been evaluated at those child locations. This is because the Op has no knowledge of what a downstream Op may do when evaluated at such a location. To that extent, getPotentialChildren() returns a list of all the children of a given location on the input of an Op.

Parameters:
inputLocationPathThe input location path to obtain the potential children for.
inputIndexThe input index to be used.
Returns:
A StringAttribute containing the potential children at the specified input location.
void* Foundry::Katana::GeolibCookInterface::getPrivateData ( ) const

Returns a raw pointer to the private data stored in this Op or NULL.

Returns:
Raw void pointer or NULL if no private data has been set.
std::string Foundry::Katana::GeolibCookInterface::getRelativeInputLocationPath ( ) const

Returns the relative location path corresponding to the input scene graph location that is currently being traversed.

Returns:
The relative location path corresponding to the input scene graph location that is currently being traversed.
std::string Foundry::Katana::GeolibCookInterface::getRelativeOutputLocationPath ( ) const

Returns the location path relative to the root execution location currently being traversed.

For Ops instantiated at document level:

  • "/root" returns ""
  • "/root/world" returns "world"
  • "/root/world/geo" returns "world/geo"

For an Op first executed at /root/world/geo (producing "a/b")

  • "/root/world/geo" returns ""
  • "/root/world/geo/a" returns "a"
  • "/root/world/geo/a/b" returns "a/b"
Returns:
The location path relative to the root execution location currently being traversed
std::string Foundry::Katana::GeolibCookInterface::getRootLocationPath ( ) const

Returns the scene graph location corresponding to the root of the Op's execution.

This may or may not be /root, specifically in the case where execOp() is called beneath /root.

Returns:
The root of the Op's execution.
See also:
execOp()
void Foundry::Katana::GeolibCookInterface::prefetch ( FnPlatform::StringView  inputLocationPath = FnPlatform::StringView(),
int  inputIndex = kFnKatGeolibDefaultInput 
) const

Indicates to the Runtime that the caller depends on the specified location.

Calling the prefetch() function within an Op’s cook() function instructs the Runtime that the specified location is required for the Op's processing task.

The prefetch() function will return immediately, scheduling the computation of the requested location to be cooked concurrently or at some point in the future.

prefetch() is recommended if your Op makes multiple scattered queries during a cook. Note that it is not necessary to prefetch parent locations of your default input.

The use of a prefetch creates a data flow dependency, so do not prefetch locations or inputs you do not need.

Parameters:
inputLocationPathThe scene graph location path to be prefetched.
inputIndexThe input index from which to request the specified inputLocationPath. In common cases the default input will suffice, however if your Op has multiple input branches (like a Merge Op) you will need to specify a particular input index.
void Foundry::Katana::GeolibCookInterface::replaceAttrs ( FnPlatform::StringView  inputLocationPath = FnPlatform::StringView(),
int  inputIndex = kFnKatGeolibDefaultInput 
)

Replaces the attributes on this Op's output with those specified by the input scene graph location path.

Parameters:
inputLocationPathThe attributes at inputLocationPath will replace those on this Op's output.
inputIndexThe input index to use where multiple input branches exist for this Op.
void Foundry::Katana::GeolibCookInterface::replaceChildren ( FnPlatform::StringView  inputLocationPath = FnPlatform::StringView(),
int  inputIndex = kFnKatGeolibDefaultInput 
)

Replaces the children under the Op's current scene graph location with children from an alternate input location and/or input index.

Parameters:
inputLocationPathThe input scene graph location whose children will replace this location's children.
inputIndexThe input index on which the where the input location path should be retrieved.
void Foundry::Katana::GeolibCookInterface::replaceChildTraversalOp ( FnPlatform::StringView  opType,
const FnAttribute::GroupAttribute opArgs,
void *  privateData = NULL,
FnDeletePrivateDataFunc  deletePrivateData = NULL 
)

Replaces the Op type and Op arguments for child locations of this Op.

Newly created child locations (created with createChild()) only have access to the Op arguments / type and private data they were created with originally. Conceptually, this is the type and Op arguments used when traversing locations in the incoming scene.

Parameters:
opTypeThe Op type that will be evaluated at child locations.
opArgsThe arguments that will be passed to the Op when run at the child locations.
privateDataA pointer to user data that can be used inside the Op.
deletePrivateDataA function pointer of the form void (*deletePrivateData)(void* privateData) that will be called to delete the given privateData.
void Foundry::Katana::GeolibCookInterface::resetRoot ( )

Marks this location as the new root location in the Op's traversal.

Subsequent calls to getRelativeOutputLocationPath() at child locations will return paths relative to this one.

Note:
Calls to getRelativeOutputLocationPath() at the current location will remain unaffected by this function.
void Foundry::Katana::GeolibCookInterface::setAttr ( FnPlatform::StringView  attrName,
const FnAttribute::Attribute value,
const bool  groupInherit = true 
)

Sets the specified attribute on the Op's output.

attrName can be specified in dot-delimited form e.g. attr1.attr2.attr3, in which case a new GroupAttribute is created for each level required and the value of groupInherit will determine the GroupAttribute's inheritance state.

Note:
Calls to setAttr() made in the current Op will not be reflected in subsequent calls to getAttr(). This is because functions which mutate the scene graph only affect the output of this Op. Methods such as getAttr() and doesLocationExist() query the input to this Op. This is also true for non-local queries i.e., when an Op queries attributes of its parent. In this case it will be querying the input at its parent, and thus does see the results of its own processing. If you need to see the attributes set during a cook call you should use getOutputAttr().
Parameters:
attrNameThe name of the attribute to create. This can be specified in dot-delimited form.
valueThe FnAttribute instance to be associated with attrName.
groupInheritThe group inheritance state for newly created GroupAttributes.
See also:
getOutputAttr()

The documentation for this class was generated from the following file:
 All Classes Functions Variables Typedefs Enumerations Enumerator