| 195 | } |
| 196 | |
| 197 | void AttributeParser::parseTypedPlug(MPlug & plug) |
| 198 | { |
| 199 | MStatus status; |
| 200 | |
| 201 | MObject attr = plug.attribute(&status); |
| 202 | if (!status) return; |
| 203 | |
| 204 | MFnTypedAttribute fnTypedAttr(attr, &status); |
| 205 | if (!status) return; |
| 206 | |
| 207 | MFnData::Type type = fnTypedAttr.attrType(&status); |
| 208 | if (!status) return; |
| 209 | |
| 210 | switch (type) |
| 211 | { |
| 212 | //! Invalid value |
| 213 | case MFnData::kInvalid: |
| 214 | break; |
| 215 | |
| 216 | //! Numeric, use MFnNumericData extract the node data. |
| 217 | case MFnData::kNumeric: |
| 218 | parseNumericData(plug); |
| 219 | break; |
| 220 | |
| 221 | //! Plugin Blind Data, use MFnPluginData to extract the node data. |
| 222 | case MFnData::kPlugin: |
| 223 | // TODO |
| 224 | break; |
| 225 | |
| 226 | //! Plugin Geometry, use MFnGeometryData to extract the node data. |
| 227 | case MFnData::kPluginGeometry: |
| 228 | // TODO |
| 229 | break; |
| 230 | |
| 231 | //! String, use MFnStringData to extract the node data. |
| 232 | case MFnData::kString: |
| 233 | parseStringData(plug); |
| 234 | break; |
| 235 | |
| 236 | //! Matrix, use MFnMatrixData to extract the node data. |
| 237 | case MFnData::kMatrix: |
| 238 | parseMatrixPlug(plug); |
| 239 | break; |
| 240 | |
| 241 | //! String Array, use MFnStringArrayData to extract the node data. |
| 242 | case MFnData::kStringArray: |
| 243 | // TODO |
| 244 | break; |
| 245 | |
| 246 | //! Double Array, use MFnDoubleArrayData to extract the node data. |
| 247 | case MFnData::kDoubleArray: |
| 248 | // TODO |
| 249 | break; |
| 250 | |
| 251 | #if MAYA_API_VERSION >= 201400 |
| 252 | //! Float Array, use MFnFloatArrayData to extract the node data. |
| 253 | case MFnData::kFloatArray: |
| 254 | // TODO |