98 lines
2.5 KiB
C++
98 lines
2.5 KiB
C++
#include "precompiled/PCH.h"
|
|
|
|
#ifndef PPCONTEXT
|
|
#define PPCONTEXT
|
|
|
|
//----------------------------------------
|
|
// System Includes
|
|
//----------------------------------------
|
|
|
|
|
|
//----------------------------------------
|
|
// Forward References
|
|
//----------------------------------------
|
|
|
|
//-----------------------------------------------------------------------------
|
|
//
|
|
// B o u n d i n g v o l u m e C o n t e x t
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
class PPContext : public MPxContext
|
|
{
|
|
public:
|
|
|
|
enum Stimulus // Maskable values.
|
|
{
|
|
BUTTONDOWN = 0x0001,
|
|
BUTTONUP = 0x0002,
|
|
MOUSEDRAG = 0x0004,
|
|
COMPLETED = 0x0008,
|
|
DELETED = 0x0010,
|
|
ABORTED = 0x0020
|
|
};
|
|
|
|
|
|
PPContext();
|
|
virtual ~PPContext();
|
|
|
|
static const char* stringId;
|
|
|
|
virtual void toolOnSetup( MEvent& );
|
|
virtual void toolOffCleanup();
|
|
virtual MStatus doPress( MEvent& );
|
|
virtual MStatus doDrag( MEvent& );
|
|
virtual MStatus doRelease( MEvent& event );
|
|
virtual MStatus doHold( MEvent& event );
|
|
virtual MStatus doEnterRegion( MEvent& event );
|
|
virtual void deleteAction();
|
|
virtual void completeAction();
|
|
virtual void abortAction();
|
|
|
|
static const MString DEFAULT_GROUP_NAME;
|
|
static MObject sCurrentGroup;
|
|
|
|
private:
|
|
void ProcessState( Stimulus stimulus );
|
|
void AddPoint( MObject obj );
|
|
void DeleteLast();
|
|
void CloseLoop();
|
|
void SetHelpString();
|
|
|
|
MObjectArray mPoints;
|
|
MString mHelp;
|
|
|
|
short mXCurrent, mYCurrent;
|
|
};
|
|
|
|
//-----------------------------------------------------------------------------
|
|
//
|
|
// B o u n d i n g v o l u m e C o n t e x t C m d
|
|
//
|
|
//-----------------------------------------------------------------------------
|
|
class PPContextCmd : public MPxContextCommand
|
|
{
|
|
public:
|
|
PPContextCmd();
|
|
virtual ~PPContextCmd();
|
|
|
|
static void* creator();
|
|
|
|
virtual MPxContext* makeObj();
|
|
|
|
private:
|
|
};
|
|
|
|
class PPSplitCmd : public MPxCommand
|
|
{
|
|
public:
|
|
MStatus doIt( const MArgList& args );
|
|
static void* creator();
|
|
|
|
static const char* stringId;
|
|
|
|
private:
|
|
void Split( MObject& node1, MObject& node2 );
|
|
};
|
|
|
|
#endif
|