tge/lib/maxsdk70/include/setkeymode.h
2017-04-17 06:17:10 -06:00

99 lines
3.2 KiB
C++
Executable File

/*********************************************************************
*<
FILE: SetKeyMode.h
DESCRIPTION: Interface to set-key mode related APIs
CREATED BY: Rolf Berteig
HISTORY: Created November 29, 2000
*> Copyright (c) 2000, All Rights Reserved.
**********************************************************************/
#ifndef __SETKEYMODE_H__
#define __SETKEYMODE_H__
#define I_SETKEYMODE 0x00002000
//#define SET_KEY_MODE 1<<0
//#define USE_OTHER_FILTERS (1<<1)
#define SETKEY_IK_PARAMS (1<<1)
#define SETKEY_POS (1<<2)
#define SETKEY_ROT (1<<3)
#define SETKEY_SCALE (1<<4)
#define SETKEY_MODIFIER (1<<5)
#define SETKEY_MATERIAL (1<<6)
#define SETKEY_ATTRIBUTES (1<<7)
#define SETKEY_SELECTED_NODES (1<<8)
#define SETKEY_OBJPARAMS (1<<9)
#define TIMESLIDER_RBUTTON_DOWN (1<<10)
#define HOTKEY_ALL_POSROTSCALE (1<<11)
#define HOTKEY_ALL_POS (1<<12)
#define HOTKEY_ALL_POSX (1<<13)
#define HOTKEY_ALL_POSY (1<<14)
#define HOTKEY_ALL_POSZ (1<<15)
#define HOTKEY_ALL_ROT (1<<16)
#define HOTKEY_ALL_ROTX (1<<17)
#define HOTKEY_ALL_ROTY (1<<18)
#define HOTKEY_ALL_ROTZ (1<<19)
#define HOTKEY_ALL_SCALE (1<<20)
#define HOTKEY_ALL_SCALEX (1<<21)
#define HOTKEY_ALL_SCALEY (1<<22)
#define HOTKEY_ALL_SCALEZ (1<<23)
#define SETKEY_SETTING_KEYS (1<<24)
// defined for release 6 and later only
#define HOTKEY_ALL (1<<25)
#define SETKEY_ALL (1<<26)
#define SETKEY_OTHER (1<<27)
// Gets a pointer to the SetKeyModeInterface interface, the caller should pass a pointer to "Interface"
#define GetSetKeyModeInterface(i) ((SetKeyModeInterface*)i->GetInterface(I_SETKEYMODE))
class SetKeyModeCallback : public InterfaceServer {
public:
virtual void SetKey()=0; // Called when user executes set key command
virtual void ShowUI()=0; // Display set key floater window
virtual void SetKeyModeStateChanged()=0;// Called when user enters or exits set-key mode
};
class SetKeyModeInterface : public InterfaceServer {
public:
virtual void RegisterSetKeyModeCallback(SetKeyModeCallback *cb)=0;
virtual void UnRegisterSetKeyModeCallback(SetKeyModeCallback *cb)=0;
virtual void ActivateSetKeyMode(BOOL onOff)=0;
virtual void AllTracksCommitSetKeyBuffer()=0;
virtual void AllTracksRevertSetKeyBuffer()=0;
virtual BOOL AllTracksSetKeyBufferPresent()=0;
virtual void SetSKFlag(DWORD mask) =0;
virtual void ClearSKFlag(DWORD mask) =0;
virtual BOOL TestSKFlag(DWORD mask) =0;
virtual BOOL CreateTransformKeysIfBuffersNotPresent(TimeValue, INode *, BOOL ) =0;
virtual void SetKeyCommit(void ) =0;
virtual void RecursiveSetKeyCommit(const TimeValue &t,Animatable *anim, const TSTR &characterSetName, UINT recursiveFlags = FALSE) =0;
virtual void CommitSetKeys(const BOOL &selectOveride = FALSE) =0;
virtual void UpdateSetKeyButton(void)=0;
};
class ISetKey {
public:
virtual void SetKeyWithoutBuffer(const TimeValue &t) =0;
virtual int &SetKeyFlags(void) = 0;
virtual void ResetKeyTimes(const TimeValue &src, const TimeValue &dst) {};
virtual void SetCurrentValue(void *v) = 0;
};
#endif //__SETKEYMODE_H__