本文整理汇总了C++中MDagModifier::renameNode方法的典型用法代码示例。如果您正苦于以下问题:C++ MDagModifier::renameNode方法的具体用法?C++ MDagModifier::renameNode怎么用?C++ MDagModifier::renameNode使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MDagModifier
的用法示例。
在下文中一共展示了MDagModifier::renameNode方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: TF_VERIFY
/* static */
bool
PxrUsdMayaTranslatorUtil::CreateNode(
const MString& nodeName,
const MString& nodeTypeName,
MObject& parentNode,
MStatus* status,
MObject* mayaNodeObj)
{
// XXX:
// Using MFnDagNode::create() results in nodes that are not properly
// registered with parent scene assemblies. For now, just massaging the
// transform code accordingly so that child scene assemblies properly post
// their edits to their parents-- if this is indeed the best pattern for
// this, all Maya*Reader node creation needs to be adjusted accordingly (for
// much less trivial cases like MFnMesh).
MDagModifier dagMod;
*mayaNodeObj = dagMod.createNode(nodeTypeName, parentNode, status);
CHECK_MSTATUS_AND_RETURN(*status, false);
*status = dagMod.renameNode(*mayaNodeObj, nodeName);
CHECK_MSTATUS_AND_RETURN(*status, false);
*status = dagMod.doIt();
CHECK_MSTATUS_AND_RETURN(*status, false);
return TF_VERIFY(not mayaNodeObj->isNull());
}
示例2: createJointFromLocation
MObject lrutils::createJointFromLocation(MVectorArray location, MString prefix, unsigned int num, MObject parent) {
MStatus status = MS::kFailure;
MObject jointObj;
//make joint object
MDagModifier dagMod;
jointObj = dagMod.createNode( "joint", MObject::kNullObj, &status );
MyCheckStatus(status, "MDagModifier.createNode() failed");
dagMod.doIt();
//set position
lrutils::setLocation(jointObj, location, MFnTransform::MFnTransform(), true, false, false);
//set name
MString jointName = prefix + "_Skel" + boost::lexical_cast<string>(num).c_str() + "_JNT";
dagMod.renameNode(jointObj, jointName);
dagMod.doIt();
MFnTransform jointFn(jointObj);
//parent the joint to its parent, if not null
if(parent != MObject::kNullObj) {
MFnTransform parentFn(parent);
MGlobal::executeCommand("parent " + jointFn.fullPathName() + " " + parentFn.fullPathName() + ";");
}
return jointObj;
}
示例3: accessoryNodeSetup
MStatus SwirlDeformer::accessoryNodeSetup( MDagModifier &dagMod )
{
MStatus stat;
MObject locObj = dagMod.createNode( "locator", MObject::kNullObj, &stat );
if( !stat )
return stat;
dagMod.renameNode( locObj, "swirlHandle" );
MFnDependencyNode locFn( locObj );
MObject attrMat = locFn.attribute( "matrix" );
stat = dagMod.connect( locObj, attrMat, thisMObject(), deformSpace );
return stat;
}
示例4: doConversion
bool ToMayaLocatorConverter::doConversion( IECore::ConstObjectPtr from, MObject &to, IECore::ConstCompoundObjectPtr operands ) const
{
ConstCoordinateSystemPtr coordSys = IECore::runTimeCast<const CoordinateSystem>( from );
if ( !coordSys )
{
IECore::msg( IECore::Msg::Warning, "ToMayaLocatorConverter::doConversion", "The source object is not an IECore::CoordinateSystem." );
return false;
}
// check if incoming object is a locator itself
MObject locatorObj;
if ( to.hasFn( MFn::kLocator ) )
{
locatorObj = to;
}
// check if incoming object is a parent of an existing locator
if ( locatorObj.isNull() )
{
MFnDagNode fnTo( to );
for ( unsigned i=0; i < fnTo.childCount(); ++i )
{
MObject child = fnTo.child( i );
if ( child.hasFn( MFn::kLocator ) )
{
locatorObj = child;
break;
}
}
}
// make a new locator and parent it to the incoming object
if ( locatorObj.isNull() )
{
if ( !MFnTransform().hasObj( to ) )
{
IECore::msg( IECore::Msg::Warning, "ToMayaLocatorConverter::doConversion", "Unable to create a locator as a child of the input object." );
return false;
}
MDagModifier dagMod;
locatorObj = dagMod.createNode( "locator", to );
dagMod.renameNode( locatorObj, coordSys->getName().c_str() );
if ( !dagMod.doIt() )
{
IECore::msg( IECore::Msg::Warning, "ToMayaLocatorConverter::doConversion", "Unable to modify the DAG correctly." );
dagMod.undoIt();
return false;
}
}
if ( locatorObj.isNull() )
{
IECore::msg( IECore::Msg::Warning, "ToMayaLocatorConverter::doConversion", "Unable to find or create a locator from the input object." );
return false;
}
MFnDagNode fnLocator( locatorObj );
Imath::M44f m = coordSys->getTransform()->transform();
Imath::V3f s,h,r,t;
Imath::extractSHRT(m, s, h, r, t);
/// obtain local position and scale from locator
MStatus st;
MPlug positionPlug = fnLocator.findPlug( "localPositionX", &st );
if ( !st ) return false;
positionPlug.setValue(t[0]);
positionPlug = fnLocator.findPlug( "localPositionY", &st );
if ( !st ) return false;
positionPlug.setValue(t[1]);
positionPlug = fnLocator.findPlug( "localPositionZ", &st );
if ( !st ) return false;
positionPlug.setValue(t[2]);
MPlug scalePlug = fnLocator.findPlug( "localScaleX", &st );
if ( !st ) return false;
scalePlug.setValue(s[0]);
scalePlug = fnLocator.findPlug( "localScaleY", &st );
if ( !st ) return false;
scalePlug.setValue(s[1]);
scalePlug = fnLocator.findPlug( "localScaleZ", &st );
if ( !st ) return false;
scalePlug.setValue(s[2]);
return true;
}
示例5: redoIt
MStatus CVstAimCmd::redoIt()
{
MStatus mStatus;
if ( !mStatus )
{
setResult( MString( "Cannot parse command line" ) + mStatus.errorString() );
return MS::kFailure;
}
if ( m_mArgDatabase->isFlagSet( kHelp ) )
{
PrintHelp();
}
else
{
// See if there are two object specified
MDagPath mDagPath;
MSelectionList optSelectionList;
// Validate specified items to whole dag nodes
{
MSelectionList tmpSelectionList;
m_mArgDatabase->getObjects( tmpSelectionList );
for ( MItSelectionList sIt( tmpSelectionList, MFn::kDagNode ); !sIt.isDone(); sIt.next() )
{
if ( sIt.getDagPath( mDagPath ) )
{
optSelectionList.add( mDagPath, MObject::kNullObj, true );
}
}
}
if ( m_mArgDatabase->isFlagSet( "create" ) || optSelectionList.length() >= 2 && m_mArgDatabase->numberOfFlagsUsed() == 0 )
{
// Error if there aren't at least two
if ( optSelectionList.length() < 2 )
{
displayError( GetName() + " needs at least two objects specified or selected when -create is used" );
return MS::kFailure;
}
// Get name command line arg
MString optName;
if ( m_mArgDatabase->isFlagSet( "name" ) )
{
m_mArgDatabase->getFlagArgument( "name", 0, optName );
}
m_undoable = true;
m_mDagModifier = new MDagModifier;
MObject vstAimObj( m_mDagModifier->MDGModifier::createNode( GetName() ) );
if ( m_mDagModifier->doIt() != MS::kSuccess )
{
displayError( MString( "Couldn't create " ) + GetName() + " node" );
m_mDagModifier->undoIt();
delete m_mDagModifier;
m_mDagModifier = NULL;
m_undoable = false;
return MS::kFailure;
}
m_mDagModifier->renameNode( vstAimObj, optName.length() ? optName : GetName() );
if ( m_mDagModifier->doIt() != MS::kSuccess )
{
if ( optName.length() )
{
displayWarning( MString( "Couldn't rename newly created vstNode \"" ) + optName + "\"" );
}
}
// Set options on the newly create vstAim node
MFnDependencyNode vstAimFn( vstAimObj );
MPlug sP;
MPlug dP;
if ( m_mArgDatabase->isFlagSet( kAim ) )
{
MVector aim;
m_mArgDatabase->getFlagArgument( kAim, 0, aim.x );
m_mArgDatabase->getFlagArgument( kAim, 1, aim.y );
m_mArgDatabase->getFlagArgument( kAim, 2, aim.z );
sP = vstAimFn.findPlug( "aimX" );
sP.setValue( aim.x );
sP = vstAimFn.findPlug( "aimY" );
sP.setValue( aim.y );
sP = vstAimFn.findPlug( "aimZ" );
sP.setValue( aim.z );
}
if ( m_mArgDatabase->isFlagSet( kUp ) )
{
//.........这里部分代码省略.........
示例6: activate
//------------------------------------------------------------------------------
//
bool LocatorRepresentation::activate()
{
MPxAssembly* const assembly = getAssembly();
// Create a locator node, and parent it to our container.
MDagModifier dagMod;
MStatus status;
dagMod.createNode(MString("locator"), assembly->thisMObject(), &status);
if (status != MStatus::kSuccess) {
return false;
}
status = dagMod.doIt();
if (status != MStatus::kSuccess) {
return false;
}
// If we have annotation text, create an annotation shape, and a
// transform for it. Parent the annotation transform to the assembly.
if (fAnnotation.numChars() > 0) {
MObject transformObj = dagMod.createNode(
MString("transform"), assembly->thisMObject(), &status);
if (status != MStatus::kSuccess) {
return false;
}
MString annotationName = "annotation";
// the + "#" forces Maya to rename using integers for unique names
MString transformName = annotationName + "#";
dagMod.renameNode(transformObj, transformName);
status = dagMod.doIt();
if (status != MStatus::kSuccess) {
return false;
}
MObject annotationObj = dagMod.createNode(
MString("annotationShape"), transformObj, &status);
if (status != MStatus::kSuccess) {
return false;
}
status = dagMod.doIt();
if (status != MStatus::kSuccess) {
return false;
}
// Set the annotation text.
MFnDependencyNode annotation(annotationObj);
MPlug text = annotation.findPlug(MString("text"), true, &status);
if (status != MStatus::kSuccess) {
return false;
}
text.setValue(fAnnotation);
// Get rid of the arrow: our annotation doesn't need to be
// offset from the locator for readability, since the locator
// has no volume. Therefore, we don't need an arrow to point
// from the annotation back to the object.
MPlug displayArrow =
annotation.findPlug(MString("displayArrow"), true, &status);
if (status != MStatus::kSuccess) {
return false;
}
displayArrow.setValue(false);
}
return status == MStatus::kSuccess;
}