00001 /********************************************************************** 00002 *< 00003 FILE: EditSoftSelectionMode.h 00004 00005 DESCRIPTION: Edit Soft Selection Command Mode 00006 00007 CREATED BY: Michael Zyracki 00008 00009 HISTORY: created September 2007 00010 00011 *> Copyright (c) 2007-2008 Autodesk, Inc., All Rights Reserved. 00012 **********************************************************************/ 00013 #pragma once 00014 00015 #include "object.h" 00016 #include "Maxapi.h" 00017 #include "maxheap.h" 00018 #include "cmdmode.h" 00019 #include "objmode.h" 00020 00022 00029 class EditSSCB : public MaxHeapOperators 00030 { 00031 public: 00033 CoreExport virtual ~EditSSCB(); 00034 00036 00039 virtual void DoAccept(TimeValue t) =0; 00041 00044 00045 00049 virtual void SetFalloff(TimeValue t,float falloff) =0; virtual void SetPinch(TimeValue t, float pinch) =0; 00051 00054 virtual void SetBubble(TimeValue t, float bubble) =0; 00056 00059 virtual float GetFalloff(TimeValue t) =0; 00061 00064 virtual float GetPinch(TimeValue t) =0; 00066 00069 virtual float GetBubble(TimeValue t) =0; 00070 00071 00072 }; 00073 00074 00075 00076 class EditSSMouseProc; 00077 00078 00080 00084 class EditSSMode : public CommandMode { 00085 private: 00086 ChangeFGObject mFGProc; 00087 EditSSMouseProc* mpEproc; 00088 EditSSCB* mpCB; 00089 00090 public: 00092 00097 CoreExport EditSSMode(EditSSCB* e, ReferenceTarget *rt,IObjParam *i); 00099 CoreExport virtual ~EditSSMode(); 00100 00102 int Class() { return MODIFY_COMMAND; } 00104 int ID() { return CID_EDITSOFTSELECTION; } 00106 MouseCallBack *MouseProc(int *numPoints); 00108 ChangeForegroundCallback *ChangeFGProc() { return &mFGProc; } 00110 BOOL ChangeFG( CommandMode *oldMode ) { return oldMode->ChangeFGProc() != &mFGProc; } 00111 00113 void EnterMode(); 00114 00116 void ExitMode(); 00117 }; 00118 00119