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