35 #ifndef IE_COREMAYA_PARAMETERISEDHOLDER_H
36 #define IE_COREMAYA_PARAMETERISEDHOLDER_H
40 class MPxDeformerNode;
43 class MPxSurfaceShape;
44 class MPxComponentShape;
47 #include "IECore/Parameterised.h"
49 #include "IECoreMaya/ParameterisedHolderInterface.h"
50 #include "IECoreMaya/MStringLess.h"
51 #include "IECoreMaya/PostLoadCallback.h"
69 template<
typename BaseType >
78 static void *creator();
79 static MStatus initialize();
84 static MString typeName;
86 virtual void postConstructor();
87 virtual MStatus setDependentsDirty(
const MPlug &plug, MPlugArray &plugArray );
88 virtual MStatus shouldSave(
const MPlug &plug,
bool &isSaving );
97 virtual MStatus
setParameterised(
const std::string &className,
int classVersion,
const std::string &searchPathEnvVar );
99 virtual IECore::RunTimeTypedPtr
getParameterised( std::string *className = 0,
int *classVersion = 0, std::string *searchPathEnvVar = 0 );
101 virtual MStatus
setNodeValue( IECore::ParameterPtr pa );
104 virtual MPlug
parameterPlug( IECore::ConstParameterPtr parameter );
105 virtual IECore::ParameterPtr
plugParameter(
const MPlug &plug );
110 static MObject aParameterisedClassName;
111 static MObject aParameterisedVersion;
112 static MObject aParameterisedSearchPathEnvVar;
121 MStatus
createOrUpdateAttribute( IECore::ParameterPtr parameter,
const MString &attributeName,
bool callRestore=
false );
125 IECore::RunTimeTypedPtr loadClass(
const MString &className,
int classVersion,
const MString &searchPathEnvVar );
129 MStatus createAndRemoveAttributes(
bool callRestore =
false );
133 MStatus createAttributesWalk( IECore::ConstCompoundParameterPtr parameter,
const std::string &rootName,
bool callRestore );
134 typedef std::map<IECore::ParameterPtr, MString> ParameterToAttributeNameMap;
135 ParameterToAttributeNameMap m_parametersToAttributeNames;
136 typedef std::map<MString, IECore::ParameterPtr> AttributeNameToParameterMap;
137 AttributeNameToParameterMap m_attributeNamesToParameters;
139 MStatus removeUnecessaryAttributes();
141 void nonNetworkedConnections(
const MPlug &plug, MPlugArray &connectionsFromPlug, MPlugArray &connectionsToPlug )
const;
143 typedef std::set<IECore::ParameterPtr> ParameterSet;
145 ParameterSet m_dirtyParameters;
147 bool setParameterisedValuesWalk(
bool lazy, IECore::ParameterPtr parameter, MStatus &status );
162 IE_CORE_DECLAREPTR( PLCB );
168 IECore::RunTimeTypedPtr m_parameterised;
171 static const std::string g_attributeNamePrefix;
175 typedef ParameterisedHolder<MPxNode> ParameterisedHolderNode;
176 typedef ParameterisedHolder<MPxLocatorNode> ParameterisedHolderLocator;
177 typedef ParameterisedHolder<MPxDeformerNode> ParameterisedHolderDeformer;
178 typedef ParameterisedHolder<MPxFieldNode> ParameterisedHolderField;
179 typedef ParameterisedHolder<MPxObjectSet> ParameterisedHolderSet;
180 typedef ParameterisedHolder<MPxSurfaceShape> ParameterisedHolderSurfaceShape;
181 typedef ParameterisedHolder<MPxComponentShape> ParameterisedHolderComponentShape;
182 typedef ParameterisedHolder<MPxImagePlane> ParameterisedHolderImagePlane;
186 #endif // IE_COREMAYA_PARAMETERISEDHOLDERNODE_H
MStatus createOrUpdateAttribute(IECore::ParameterPtr parameter, const MString &attributeName, bool callRestore=false)
Creates an attribute to represent the specified parameter, or updates an existing attribute...
virtual MStatus setParameterisedValues()
Definition: ParameterisedHolderInterface.h:48
virtual MStatus setParameterisedValue(IECore::ParameterPtr pa)
static MTypeId id
Definition: ParameterisedHolder.h:83
virtual MStatus updateParameterised()
virtual IECore::ParameterPtr plugParameter(const MPlug &plug)
virtual MStatus setNodeValue(IECore::ParameterPtr pa)
The IECoreMaya namespace holds all the functionality of libIECoreMaya.
Definition: BoolParameterHandler.h:44
virtual MStatus setParameterised(IECore::RunTimeTypedPtr p)
Definition: PostLoadCallback.h:50
virtual IECore::RunTimeTypedPtr getParameterised(std::string *className=0, int *classVersion=0, std::string *searchPathEnvVar=0)
virtual MPlug parameterPlug(IECore::ConstParameterPtr parameter)
virtual MStatus setNodeValues()
Definition: ParameterisedHolder.h:70