viewObjectSetOverride/viewObjectSetOverride.cpp
#include <maya/MViewport2Renderer.h>
#include <maya/MSelectionList.h>
#include <maya/M3dView.h>
#include <maya/MFnSet.h>
#include <maya/MApiVersion.h>
{
public:
ObjectSetSceneRender(
const MString& name,
const MString setName,
unsigned int clearMask )
, mSetName( setName )
, mClearMask( clearMask )
{}
{
{
mFilterSet.clear();
}
{
{
}
}
return &mFilterSet;
}
{
mClearOperation.
setMask( mClearMask );
}
void setPanelName(
const MString& name )
{
}
protected:
unsigned int mClearMask;
};
{
public:
viewObjectSetOverride(
const MString& name )
, mUIName("Multi-pass filtered object-set renderer")
, mOperation(0)
{
const MString render1Name(
"Render Set 1");
const MString render2Name(
"Render Set 2");
const MString presentName(
"Present Target");
}
~viewObjectSetOverride()
{
delete mRenderSet1; mRenderSet1 = NULL;
delete mRenderSet2; mRenderSet2 = NULL;
delete mPresentTarget; mPresentTarget = NULL;
}
{
}
{
if (mRenderSet1) mRenderSet1->setPanelName(destination);
if (mRenderSet2) mRenderSet2->setPanelName(destination);
}
{
mOperation = 0;
return true;
}
{
switch( mOperation )
{
case 0 : return mRenderSet1;
case 1 : return mRenderSet2;
case 2 : return mPresentTarget;
}
return NULL;
}
{
mOperation++;
return mOperation < 3 ? true : false;
}
{
return mUIName;
}
protected:
ObjectSetSceneRender* mRenderSet1;
ObjectSetSceneRender* mRenderSet2;
int mOperation;
};
{
if (renderer)
{
status = renderer->
registerOverride(
new viewObjectSetOverride(
"viewObjectSetOverride" ));
}
return status;
}
{
if (renderer)
{
}
return status;
}