source: golgotha/src/max_plugin/sdk_inc/cmdmode.h @ 80

Last change on this file since 80 was 80, checked in by Sam Hocevar, 11 years ago
  • Adding the Golgotha source code. Not sure what's going to be interesting in there, but since it's all public domain, there's certainly stuff to pick up.
  • Property svn:keywords set to Id
File size: 3.9 KB
Line 
1/**********************************************************************
2 *<
3        FILE: cmdmode.h
4
5        DESCRIPTION: Command mode class definition
6
7        CREATED BY:     Rolf Berteig
8
9        HISTORY: Created 13 January 1995
10
11 *>     Copyright (c) 1994, All Rights Reserved.
12 **********************************************************************/
13
14#ifndef __CMDMODE__
15#define __CMDMODE__
16
17// This file can be included in plug-in modules so
18// it shouldn't reference/include private classes or functions.
19
20class MouseCallBack;
21class ChangeForegroundCallback;
22
23class CommandMode {
24        public:
25                virtual int Class()=0;
26                virtual int SuperClass() { return 0; }
27                virtual int ID()=0;
28                virtual MouseCallBack *MouseProc(int *numPoints)=0;
29                virtual ChangeForegroundCallback *ChangeFGProc()=0;
30                virtual BOOL ChangeFG( CommandMode *oldMode )=0;
31                virtual void EnterMode()=0;
32                virtual void ExitMode()=0;             
33        };
34
35// This is just a collection of modes that make up the xform modes.
36// Plug-ins can specify these for thier sub-object types.
37class XFormModes {
38        public:
39                CommandMode *move;
40                CommandMode *rotate;
41                CommandMode *scale;
42                CommandMode *uscale;
43                CommandMode *squash;
44                CommandMode *select;
45                XFormModes(
46                        CommandMode *move,
47                        CommandMode *rotate,
48                        CommandMode *scale,
49                        CommandMode *uscale,
50                        CommandMode *squash,
51                        CommandMode *select )
52                        {
53                        this->move   = move;
54                        this->rotate = rotate;
55                        this->scale  = scale;
56                        this->uscale = uscale;
57                        this->squash = squash;
58                        this->select = select;
59                        }
60                XFormModes() { move = rotate = scale = uscale = squash = select = NULL; }
61        };
62
63
64// These can be returned from ChangeFGProc() instead of an actual FG proc
65// to use predefined FG sets.
66#define CHANGE_FG_SELECTED              ((ChangeForegroundCallback *)1)
67#define CHANGE_FG_ANIMATED              ((ChangeForegroundCallback *)2)
68
69// command super classes:
70#define TRANSFORM_CMD_SUPER     1
71
72// command classes
73#define VIEWPORT_COMMAND                1
74#define MOVE_COMMAND                    2
75#define ROTATE_COMMAND                  3
76#define SCALE_COMMAND                   4
77#define USCALE_COMMAND                  5
78#define SQUASH_COMMAND                  6
79#define SELECT_COMMAND                  7
80#define HIERARCHY_COMMAND               8
81#define CREATE_COMMAND                  9
82#define MODIFY_COMMAND                  10
83#define MOTION_COMMAND                  11
84#define ANIMATION_COMMAND               12
85#define CAMERA_COMMAND                  13
86#define NULL_COMMAND                    14
87#define DISPLAY_COMMAND                 15
88#define SPOTLIGHT_COMMAND               16
89#define PICK_COMMAND                    17
90
91
92// command IDs
93#define CID_USER                                0x0000ffff
94
95// XFORM_COMMAND
96#define CID_OBJMOVE                             1
97#define CID_OBJROTATE                   2
98#define CID_OBJSCALE                    3
99#define CID_OBJUSCALE                   4
100#define CID_OBJSQUASH                   5
101#define CID_OBJSELECT                   6
102
103#define CID_SUBOBJMOVE                  7
104#define CID_SUBOBJROTATE                8
105#define CID_SUBOBJSCALE                 9
106#define CID_SUBOBJUSCALE                10
107#define CID_SUBOBJSQUASH                11
108#define CID_SUBOBJSELECT                12
109
110// display branch command modes
111#define CID_UNFREEZE                    13
112#define CID_UNHIDE                              14
113
114
115// HEIRARCHY_COMMAND
116#define CID_LINK                                100
117#define CID_BINDWSM                             110             // I guess this is a heirarchy command... sort of
118
119// VIEWPORT_COMMAND
120#define CID_ZOOMVIEW                    200
121#define CID_ZOOMREGION                  201
122#define CID_PANVIEW                             202
123#define CID_ROTATEVIEW                  203
124#define CID_ZOOMALL                             204
125#define CID_RNDREGION                   205
126
127// CAMERA COMMANDS
128#define CID_CAMFOV                              210
129#define CID_CAMDOLLY                    211
130#define CID_CAMPERSP                    212
131#define CID_CAMTRUCK                    213
132#define CID_CAMROTATE                   214
133#define CID_CAMROLL                             215
134
135//ANIMATION_COMMAND
136#define CID_PLAYANIMATION               300
137
138//CREATE_COMMAND               
139#define CID_SIMPLECREATE                400
140
141//MODIFIY_COMMAND
142#define CID_MODIFYPARAM                 500
143
144//MOTION_COMMAND       
145
146#define CID_NULL                                600
147
148// Pick modes
149#define CID_STDPICK                             710
150#define CID_PICKAXISOBJECT              700
151
152// ATTACH To GROUP COMMAND
153#define CID_GRP_ATTACH                  800
154
155
156
157#endif // __CMDMODE
158
Note: See TracBrowser for help on using the repository browser.