SOP/SOP_GroupRename.C
#include <UT/UT_DSOVersion.h>
#include <GU/GU_Detail.h>
#include <PRM/PRM_Include.h>
#include <OP/OP_Operator.h>
#include <OP/OP_OperatorTable.h>
#include "SOP_GroupRename.h"
using namespace HDK_Sample;
void
newSopOperator(OP_OperatorTable *table)
{
table->addOperator(new OP_Operator("hdk_grouprename",
"GroupRename",
SOP_GroupRename::myConstructor,
SOP_GroupRename::myTemplateList,
1,
1,
0));
}
static PRM_Name names[] = {
PRM_Name("oldname", "Old Name"),
PRM_Name("newname", "New Name"),
};
PRM_Template
SOP_GroupRename::myTemplateList[] = {
PRM_Template(PRM_STRING, 1, &names[0], 0, &SOP_Node::groupMenu),
PRM_Template(PRM_STRING, 1, &names[1]),
PRM_Template(),
};
OP_Node *
SOP_GroupRename::myConstructor(OP_Network *net, const char *name, OP_Operator *op)
{
return new SOP_GroupRename(net, name, op);
}
SOP_GroupRename::SOP_GroupRename(OP_Network *net, const char *name, OP_Operator *op)
: SOP_Node(net, name, op)
{
}
SOP_GroupRename::~SOP_GroupRename() {}
unsigned
SOP_GroupRename::disableParms()
{
unsigned changed = 0;
return changed;
}
OP_ERROR
SOP_GroupRename::cookInputGroups(OP_Context &context, int alone)
{
return error();
}
static bool
sopRenameGroups( GA_ElementGroupTable &groups,
const UT_String &from, const UT_String &to )
{
return groups.renameGroup(from, to);
}
OP_ERROR
SOP_GroupRename::cookMySop(OP_Context &context)
{
fpreal now = context.getTime();
UT_String oldname, newname;
if (lockInputs(context) >= UT_ERROR_ABORT)
return error();
duplicateSource(0, context);
OLDNAME(oldname, now);
NEWNAME(newname, now);
sopRenameGroups(gdp->getElementGroupTable(GA_ATTRIB_PRIMITIVE),
oldname, newname);
sopRenameGroups(gdp->getElementGroupTable(GA_ATTRIB_POINT),
oldname, newname);
unlockInputs();
return error();
}
const char *
SOP_GroupRename::inputLabel(unsigned) const
{
return "Geometry to Rename Groups in";
}