tge/lib/maxsdk31/cmdmode.h
2025-02-17 23:17:30 -06:00

159 lines
3.7 KiB
C++
Executable File

/**********************************************************************
*<
FILE: cmdmode.h
DESCRIPTION: Command mode class definition
CREATED BY: Rolf Berteig
HISTORY: Created 13 January 1995
*> Copyright (c) 1994, All Rights Reserved.
**********************************************************************/
#ifndef __CMDMODE__
#define __CMDMODE__
// This file can be included in plug-in modules so
// it shouldn't reference/include private classes or functions.
class MouseCallBack;
class ChangeForegroundCallback;
class CommandMode {
public:
virtual int Class()=0;
virtual int SuperClass() { return 0; }
virtual int ID()=0;
virtual MouseCallBack *MouseProc(int *numPoints)=0;
virtual ChangeForegroundCallback *ChangeFGProc()=0;
virtual BOOL ChangeFG( CommandMode *oldMode )=0;
virtual void EnterMode()=0;
virtual void ExitMode()=0;
};
// This is just a collection of modes that make up the xform modes.
// Plug-ins can specify these for thier sub-object types.
class XFormModes {
public:
CommandMode *move;
CommandMode *rotate;
CommandMode *scale;
CommandMode *uscale;
CommandMode *squash;
CommandMode *select;
XFormModes(
CommandMode *move,
CommandMode *rotate,
CommandMode *scale,
CommandMode *uscale,
CommandMode *squash,
CommandMode *select )
{
this->move = move;
this->rotate = rotate;
this->scale = scale;
this->uscale = uscale;
this->squash = squash;
this->select = select;
}
XFormModes() { move = rotate = scale = uscale = squash = select = NULL; }
};
// These can be returned from ChangeFGProc() instead of an actual FG proc
// to use predefined FG sets.
#define CHANGE_FG_SELECTED ((ChangeForegroundCallback *)1)
#define CHANGE_FG_ANIMATED ((ChangeForegroundCallback *)2)
// command super classes:
#define TRANSFORM_CMD_SUPER 1
// command classes
#define VIEWPORT_COMMAND 1
#define MOVE_COMMAND 2
#define ROTATE_COMMAND 3
#define SCALE_COMMAND 4
#define USCALE_COMMAND 5
#define SQUASH_COMMAND 6
#define SELECT_COMMAND 7
#define HIERARCHY_COMMAND 8
#define CREATE_COMMAND 9
#define MODIFY_COMMAND 10
#define MOTION_COMMAND 11
#define ANIMATION_COMMAND 12
#define CAMERA_COMMAND 13
#define NULL_COMMAND 14
#define DISPLAY_COMMAND 15
#define SPOTLIGHT_COMMAND 16
#define PICK_COMMAND 17
// command IDs
#define CID_USER 0x0000ffff
// XFORM_COMMAND
#define CID_OBJMOVE 1
#define CID_OBJROTATE 2
#define CID_OBJSCALE 3
#define CID_OBJUSCALE 4
#define CID_OBJSQUASH 5
#define CID_OBJSELECT 6
#define CID_SUBOBJMOVE 7
#define CID_SUBOBJROTATE 8
#define CID_SUBOBJSCALE 9
#define CID_SUBOBJUSCALE 10
#define CID_SUBOBJSQUASH 11
#define CID_SUBOBJSELECT 12
// display branch command modes
#define CID_UNFREEZE 13
#define CID_UNHIDE 14
// HEIRARCHY_COMMAND
#define CID_LINK 100
#define CID_BINDWSM 110 // I guess this is a heirarchy command... sort of
// VIEWPORT_COMMAND
#define CID_ZOOMVIEW 200
#define CID_ZOOMREGION 201
#define CID_PANVIEW 202
#define CID_ROTATEVIEW 203
#define CID_ZOOMALL 204
#define CID_RNDREGION 205
// CAMERA COMMANDS
#define CID_CAMFOV 210
#define CID_CAMDOLLY 211
#define CID_CAMPERSP 212
#define CID_CAMTRUCK 213
#define CID_CAMROTATE 214
#define CID_CAMROLL 215
//ANIMATION_COMMAND
#define CID_PLAYANIMATION 300
//CREATE_COMMAND
#define CID_SIMPLECREATE 400
//MODIFIY_COMMAND
#define CID_MODIFYPARAM 500
//MOTION_COMMAND
#define CID_NULL 600
// Pick modes
#define CID_STDPICK 710
#define CID_PICKAXISOBJECT 700
// ATTACH To GROUP COMMAND
#define CID_GRP_ATTACH 800
#endif // __CMDMODE