#include <maya/MFnPlugin.h>
#include <maya/MStatus.h>
#include <maya/MEvent.h> 
#include <maya/MDagPath.h>
#include <maya/MFn.h>
#include <maya/MGlobal.h>
#include <maya/MUIDrawManager.h>
#include <maya/MFrameContext.h>
#include <maya/MPxSelectionContext.h>
#include <maya/MPxContextCommand.h>
{
public:
    
    richSelectionContext();
    
    virtual ~richSelectionContext() {} ;
}; 
richSelectionContext::richSelectionContext()
{
}
void richSelectionContext::toolOnSetup( 
MEvent &event )
 
{
    
    setAllowPreSelectHilight();
    setAllowSoftSelect();
    setAllowSymmetry();
    setAllowDoubleClickAction();
}
void richSelectionContext::toolOffCleanup()
{
}
{
    return MS::kSuccess;
}
{
    
    return MS::kSuccess;
}
void richSelectionContext::getClassName( 
MString & name )
 const 
{
    name.
set(
"richSelection");
 
}
{
public:  
                        richSelectionContextCommand();
    static void*        creator();
protected:
    richSelectionContext*       fRichSelectionContext;
};          
richSelectionContextCommand::richSelectionContextCommand() {}
MPxContext* richSelectionContextCommand::makeObj()
 
{
    fRichSelectionContext = new richSelectionContext();
    return fRichSelectionContext;
}
void* richSelectionContextCommand::creator()
{
    return new richSelectionContextCommand;
}
#define CTX_CREATOR_NAME "richSelectionContext"
    
    
    
    
    
    
    
    
    
{ 
    
    
    status = plugin.registerContextCommand(CTX_CREATOR_NAME, richSelectionContextCommand::creator);
    return status;
}
    
    
    
    
    
    
    
    
{
    
    
    status = plugin.deregisterContextCommand(CTX_CREATOR_NAME);
    return status;
}