99 lines
3.2 KiB
C++
Executable File
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__
|
|
|
|
|