void ParameterisedHolderManipContext::processNode( MObject &node ) { MStatus stat; MFnDependencyNode nodeFn( node, &stat ); if( !stat ) { return; } ParameterisedHolderInterface *pHolder = dynamic_cast<ParameterisedHolderInterface *>( nodeFn.userNode() ); if( !pHolder ) { return; } if( m_mode == Targeted ) { MStatus stat; MPlug targetPlug = nodeFn.findPlug( m_targetPlugPath, &stat ); if( stat ) { createAndConnectManip( pHolder->plugParameter( targetPlug ), nodeFn ); } } else { ParameterisedInterface *parameterisedInterface = pHolder->getParameterisedInterface(); if( parameterisedInterface ) { createManipulatorWalk( parameterisedInterface->parameters(), nodeFn ); } } }
void V3Manipulator::readParameterOptions( MFnDagNode &nodeFn ) { ParameterisedHolderInterface *pHolder = dynamic_cast<ParameterisedHolderInterface *>( nodeFn.userNode() ); if( !pHolder ) { return; } ParameterPtr parameter = pHolder->plugParameter( m_plug ); CompoundObjectPtr userData = parameter->userData(); if( CompoundObjectPtr uiData = userData->member<CompoundObject>( "UI" ) ) { // World space parameter values if( StringDataPtr wsData = uiData->member<StringData>( "manipSpace" ) ) { if( wsData->readable() == "world" ) { m_worldSpace = true; } else if( wsData->readable() == "object" ) { m_worldSpace = false; } else { MGlobal::displayWarning( "V3Manipulator: Ignoring invalid v3ManipSpace '" + MString( wsData->readable().c_str() ) + "' for parameter '" + MString( parameter->name().c_str() ) + "', using 'object'." ); } } } }