DI-Guy C++ SDK Reference  13.0
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
diguyCharacterFaceExpression.h
Go to the documentation of this file.
1 
2 /*********************************************************************
3  ** Copyright (c) 1992-2014 VT MAK
4  ** All rights reserved.
5  *********************************************************************/
6 
7 #ifndef __diguyCharacterFaceExpression_H
8 #define __diguyCharacterFaceExpression_H
9 
10 #ifdef SWIG
12 #else
13 #define CPLUSPLUS_ONLY
14 #endif
15 
16 #ifdef CPLUSPLUS_ONLY
17 
18 class bdiFaceExpression;
20 
21 #endif /* CPLUSPLUS_ONLY */
22 
23 
24 #include <declspec_diguy.h>
25 
26 
27 /*********************************************************************/
37 class BDI_DECLSPEC_diguy diguyCharacterFaceExpression
38 {
39 
40 public:
41 
42  /*l
43  *b Description:
44  **
45  ** Returns the name of this face expression. This pointer will
46  ** never be NULL.
47  **
48  *b Returns:
49  **
50  ** name of this face expression
51  */
52  const char* get_name();
53 
54  /*l
55  *b Description:
56  **
57  ** Sets all of this face expression's registers to zero.
58  */
59  void clear();
60 
61  /*l
62  *b Returns:
63  **
64  ** number of registers in this face expression
65  */
66  int get_register_count();
67 
68  /*l
69  *b Returns:
70  **
71  ** a register name, given the index of that
72  ** register
73  **
74  *b Arguments:
75  **
76  *a register_index - index of face_expression register
77  */
78  const char* get_register_name_by_index(int register_index);
79 
80  /*l
81  *b Description:
82  **
83  ** Gets the value of a face expression register, given the name of the
84  ** register.
85  **
86  *b Arguments:
87  **
88  *a name - name of register
89  **
90  *b Returns:
91  **
92  ** value of the specified register
93  */
94  float get_register_value(const char* name);
95 
96  /*l
97  *b Description:
98  **
99  ** Sets the value of a face expression register.
100  **
101  *b Arguments:
102  **
103  *a name - name of register to set
104  *a value - new value for register
105  **
106  *b Returns:
107  **
108  ** 0 on success, -1 on failure
109  */
110  int set_register_value(const char* name, float value);
111 
112  /*l
113  *b Description:
114  **
115  ** Gets the value of a face expression register, given the index of
116  ** the register.
117  **
118  *b Arguments:
119  **
120  *a register_index - index of the register
121  **
122  *b Returns:
123  **
124  ** value of the specified register
125  */
126  float get_register_value_by_index(int register_index);
127 
128  /*l
129  *b Description:
130  **
131  ** Sets the value of a face expression register.
132  **
133  *b Arguments:
134  **
135  *a register_index - index of the register
136  *a value - new value for register
137  **
138  *b Returns:
139  **
140  ** 0 on success, -1 on failure
141  */
142  int set_register_value_by_index(int register_index, float value);
143 
144  /*l
145  *b Description:
146  **
147  ** Gets whether a face expression register is enabled.
148  **
149  ** A nonzero value means that the register's value will be assigned to
150  ** the character's face's corresponding attribute when the character
151  ** applies the face expression using
152  ** diguyCharacter::set_face_expression().
153  **
154  ** A zero value means that the register will have no effect on the
155  ** character's face when the character applies the face expression
156  ** using diguyCharacter::set_face_expression().
157  **
158  ** So, each face expression can affect some, all, or no attributes of
159  ** the character's face.
160  **
161  *b Arguments:
162  **
163  *a name - name of the register
164  **
165  *b Returns:
166  **
167  ** whether the register is enabled
168  **
169  *b See Also:
170  **
171  ** set_register_enabled()
172  */
173  int get_register_enabled(const char* name);
174 
175  /*l
176  *b Description:
177  **
178  ** Sets whether a face expression register is enabled. See
179  ** get_register_enabled().
180  **
181  *b Arguments:
182  **
183  *a name - name of the register to check
184  *a enabled - whether to enable the register
185  **
186  *b Returns:
187  **
188  ** 0 on success, -1 on failure
189  **
190  *b See Also:
191  **
192  ** get_register_enabled(), set_all_registers_enabled()
193  **/
194  int set_register_enabled(const char* name, int enabled);
195 
196  /*l
197  *b Description:
198  **
199  ** Sets the enabled status of all face expression registers.
200  ** This is used to turn all registers on, or all registers off.
201  **
202  *b Arguments:
203  **
204  *a enabled - whether to enable or disable all registers
205  **
206  *b Returns:
207  **
208  ** 0 on success, -1 on failure
209  **
210  *b C++ Example:
211  **
212  *e diguyCharacterFaceExpression* fx;
213  *e
214  *e fx = scenario->create_face_expression("Smile_exp");
215  *e if (fx)
216  *e {
217  *e fx->set_register_value("Smile", 1);
218  *e fx->set_all_registers_enabled(1);
219  *e }
220  *e
221  *e fx = scenario->create_face_expression("Smile_cl_exp");
222  *e if (fx)
223  *e {
224  *e fx->set_register_value("Smile_cl", 1);
225  *e fx->set_all_registers_enabled(1);
226  *e }
227  *e
228  *e fx = scenario->create_face_expression("Mad_exp");
229  *e if (fx)
230  *e {
231  *e fx->set_register_value("Mad", 1);
232  *e fx->set_all_registers_enabled(1);
233  *e }
234  */
235  int set_all_registers_enabled(int enabled);
236 
237  /*l
238  *b Description:
239  **
240  ** Gets whether a face expression register is enabled.
241  **
242  *b Arguments:
243  **
244  *a index - index of the register to check
245  **
246  *b Returns:
247  **
248  ** whether the register is enabled
249  **
250  */
251  int get_register_enabled_by_index(int register_index);
252 
253  /*l
254  *b Description:
255  **
256  ** Sets whether a face expression register is enabled.
257  **
258  *b Arguments:
259  **
260  *a index - index of the register to modify
261  *a enabled - whether to enable or disable the register
262  **
263  *b Returns:
264  **
265  ** 0 on success, -1 on failure
266  **
267  */
268  int set_register_enabled_by_index(int register_index, int enabled);
269 
274 #ifdef CPLUSPLUS_ONLY
275 
276  bdiFaceExpression* get_scripted_object() {return m_scripted_object;}
277 
278 private:
279 
280  /*l
281  ** A private constructor.
282  */
283  diguyCharacterFaceExpression(bdiFaceExpression* face_expression);
284 
285  /*l
286  ** A pointer to internal data.
287  */
288  bdiFaceExpression* m_scripted_object;
289 
290  friend class bdiFaceExpression;
291 
292 #endif /* CPLUSPLUS_ONLY */
293 
294 };
295 
296 #endif /* __diguyCharacterFaceExpression_H */
297