class BlindData : public MPxData
{
public:
BlindData();
virtual ~BlindData();
/**
* Copy the local data from a similar data object
*
* @param MPxData
* Data object to copy from.
*/
virtual void copy(const MPxData&);
MStatus
readBinary(istream& in, unsigned int length);
MStatus
writeBinary(ostream& out);
MTypeId typeId() const;
MString name() const;
static MString typeName;
static MTypeId id;
static void* creator();
std::vector<char> m_data;
}; MFnTypedAttribute tAttr;
MStatus stat;
blindDataAttr = tAttr.create("blindData",
"blind",
BlindData::id,
MObject::kNullObj,
&stat);
addAttribute(mPoseDataList);
def getAttrPlug(nodeName, attrName):
selectionList = OpenMaya.MSelectionList()
try:
selectionList.add(nodeName)
except:
return None
dependNode = selectionList.getDependNode(0)
dagNode = OpenMaya.MFnDagNode(selectionList.getDagPath(0))
attrNode = dagNode.attribute(attrName)
return OpenMaya.MPlug(dependNode,attrNode)
def createPluginData(typeId, dataList):
pluginDataCreator = OpenMaya.MFnPluginData()
bdtID = OpenMaya.MTypeId(typeId)
pluginDataCreator.create(bdtID)
values = bytearray(dataList)
pluginDataCreator.data().readBinary(values, len(dataList))
return pluginDataCreator.data()
blindNode = getAttrPlug("blind", "blindData")blindData = createPluginData(0x00001948, [84,111,111,32,69,97,115,121])dataHandle = blindNode.asMDataHandle()dataHandle.setMPxData(blindData)