// Adds a generic attribute that accepts a float, float2, float3 public static void addComplexFloatGenericAttribute(ref MObject attrObject, string longName, string shortName) { // Create the generic attribute and set the 3 accepts types MFnGenericAttribute gAttr = new MFnGenericAttribute(); attrObject = gAttr.create(longName, shortName); try { gAttr.addAccept(MFnNumericData.Type.kFloat); gAttr.addAccept(MFnNumericData.Type.k2Float); gAttr.addAccept(MFnNumericData.Type.k3Float); } catch (System.Exception) { MGlobal.displayError("error happens in addAccept"); } gAttr.isWritable = false; gAttr.isStorable = false; // Add the attribute to the node try { addAttribute(attrObject); } catch (System.Exception) { MGlobal.displayError("error happens in addAttribute"); } }
// Adds a generic attribute that accepts a float, float2, float3 public static void addComplexFloatGenericAttribute(ref MObject attrObject, string longName, string shortName) { // Create the generic attribute and set the 3 accepts types MFnGenericAttribute gAttr = new MFnGenericAttribute(); attrObject = gAttr.create( longName, shortName ); try { gAttr.addAccept(MFnNumericData.Type.kFloat); gAttr.addAccept(MFnNumericData.Type.k2Float); gAttr.addAccept(MFnNumericData.Type.k3Float); } catch (System.Exception) { MGlobal.displayError("error happens in addAccept"); } gAttr.isWritable = false; gAttr.isStorable = false; // Add the attribute to the node try { addAttribute(attrObject); } catch (System.Exception) { MGlobal.displayError("error happens in addAttribute"); } }
public static void initialize() { MFnNumericAttribute nAttr = new MFnNumericAttribute(); MFnMatrixAttribute nMAttr = new MFnMatrixAttribute(); //MFnTypedAttribute nTAttr; MFnGenericAttribute nGAttr = new MFnGenericAttribute(); // Input Attributes // aAngle = nAttr.create("angle", "ang", MFnNumericData.Type.kFloat); nAttr.setDefault(30.0f); nAttr.setMin(0.0f); nAttr.setMax(100.0f); nAttr.isKeyable = true; nAttr.isStorable = true; nAttr.isReadable = true; nAttr.isWritable = true; aColor1 = nAttr.createColor("walkableColor", "w"); nAttr.setDefault(0.0f, 1.0f, 0.0f); nAttr.isKeyable = true; nAttr.isStorable = true; nAttr.isUsedAsColor = true; nAttr.isReadable = true; nAttr.isWritable = true; aColor2 = nAttr.createColor("nonWalkableColor", "nw"); nAttr.setDefault(1.0f, 0.0f, 0.0f); nAttr.isKeyable = true; nAttr.isStorable = true; nAttr.isUsedAsColor = true; nAttr.isReadable = true; nAttr.isWritable = true; // Surface Normal supplied by the render sampler aTriangleNormalCamera = nAttr.createPoint("triangleNormalCamera", "n"); nAttr.isStorable = false; nAttr.isHidden = true; nAttr.isReadable = true; nAttr.isWritable = true; //View matrix from the camera into world space aMatrixEyeToWorld = nMAttr.create("matrixEyeToWorld", "mew", MFnMatrixAttribute.Type.kFloat); nAttr.isHidden = true; nMAttr.isWritable = true; // Output Attributes aOutColor = nAttr.createColor("outColor", "oc"); nAttr.isStorable = false; nAttr.isHidden = false; nAttr.isReadable = true; nAttr.isWritable = false; //dummy plug for forcing evaluation aDirtyShaderAttr = nGAttr.create("dirtyShaderPlug", "dsp"); nGAttr.isArray = true; nGAttr.isHidden = false; nGAttr.usesArrayDataBuilder = true; nGAttr.isReadable = false; nGAttr.isStorable = true; nGAttr.indexMatters = false; nGAttr.addAccept(MFnData.Type.kMesh); //Add attribues addAttribute(aAngle); addAttribute(aColor1); addAttribute(aColor2); addAttribute(aTriangleNormalCamera); addAttribute(aOutColor); addAttribute(aMatrixEyeToWorld); addAttribute(aDirtyShaderAttr); attributeAffects(aAngle, aOutColor); attributeAffects(aColor1, aOutColor); attributeAffects(aColor2, aOutColor); attributeAffects(aTriangleNormalCamera, aOutColor); attributeAffects(aDirtyShaderAttr, aOutColor); }
public static void initialize() // // Description: // Initializes the attributes for this node. // { MFnNumericAttribute nAttr = new MFnNumericAttribute(); MFnMatrixAttribute nMAttr = new MFnMatrixAttribute(); //MFnTypedAttribute nTAttr; MFnGenericAttribute nGAttr = new MFnGenericAttribute(); // Input Attributes // aAngle = nAttr.create("angle", "ang", MFnNumericData.Type.kFloat); nAttr.setDefault(30.0f); nAttr.setMin(0.0f); nAttr.setMax(100.0f); nAttr.isKeyable = true; nAttr.isStorable = true; nAttr.isReadable = true; nAttr.isWritable = true; aColor1 = nAttr.createColor("walkableColor", "w"); nAttr.setDefault(0.0f, 1.0f, 0.0f); nAttr.isKeyable = true; nAttr.isStorable = true; nAttr.isUsedAsColor = true; nAttr.isReadable = true; nAttr.isWritable = true; aColor2 = nAttr.createColor("nonWalkableColor", "nw"); nAttr.setDefault(1.0f, 0.0f, 0.0f); nAttr.isKeyable = true; nAttr.isStorable = true; nAttr.isUsedAsColor = true; nAttr.isReadable = true; nAttr.isWritable = true; // Surface Normal supplied by the render sampler aTriangleNormalCamera = nAttr.createPoint("triangleNormalCamera", "n"); nAttr.isStorable = false; nAttr.isHidden = true; nAttr.isReadable = true; nAttr.isWritable = true; //View matrix from the camera into world space aMatrixEyeToWorld = nMAttr.create("matrixEyeToWorld", "mew", MFnMatrixAttribute.Type.kFloat); nAttr.isHidden = true; nMAttr.isWritable = true; // Output Attributes aOutColor = nAttr.createColor("outColor", "oc"); nAttr.isStorable = false; nAttr.isHidden = false; nAttr.isReadable = true; nAttr.isWritable = false; //dummy plug for forcing evaluation aDirtyShaderAttr = nGAttr.create("dirtyShaderPlug", "dsp"); nGAttr.isArray = true; nGAttr.isHidden = false; nGAttr.usesArrayDataBuilder = true; nGAttr.isReadable = false; nGAttr.isStorable = true; nGAttr.indexMatters = false; nGAttr.addAccept(MFnData.Type.kMesh); //Add attribues addAttribute(aAngle); addAttribute(aColor1); addAttribute(aColor2); addAttribute(aTriangleNormalCamera); addAttribute(aOutColor); addAttribute(aMatrixEyeToWorld); addAttribute(aDirtyShaderAttr); attributeAffects(aAngle, aOutColor); attributeAffects(aColor1, aOutColor); attributeAffects(aColor2, aOutColor); attributeAffects(aTriangleNormalCamera, aOutColor); attributeAffects(aDirtyShaderAttr, aOutColor); }