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 |
|
---|
20 | class MouseCallBack;
|
---|
21 | class ChangeForegroundCallback;
|
---|
22 |
|
---|
23 | class 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.
|
---|
37 | class 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 |
|
---|