C++ SDK Reference  12.5
 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-2013 Boston Dynamics
4  * ALL RIGHTS RESERVED.
5  *
6  * These coded instructions, statements, and computer programs
7  * contain unpublished proprietary information of Boston Dynamics
8  * and are protected by Copyright Laws of the United States.
9  * They may not be used, duplicated, or disclosed in any form, in
10  * whole or in part, without the prior written consent from Boston
11  * Dynamics.
12  *
13  * RESTRICTED RIGHTS LEGEND
14  * Use, duplication, or disclosure by the government is subject
15  * to restrictions as set forth in FAR 52.227.19(c)(2) or
16  * subparagraph (c)(1)(ii) of the Rights in Technical Data and
17  * Computer Software clause at DFARS 252.227-7013 and/or in
18  * similar or successor clauses in the FAR, or the DOD or NASA
19  * FAR Supplement, or to subparagraphs (c)(1) and (c)(2) of the
20  * Commercial Computer Software--Restricted Rights at 48 CFR
21  * 52.227-19, as applicable. Unpublished-rights reserved under
22  * the Copyright Laws of the United States.
23  * Contractor/Manufacturer is:
24  * Boston Dynamics/78 Fourth Avenue/Waltham MA 02451.
25  */
26 
27 #ifndef __diguyCharacterFaceExpression_H
28 #define __diguyCharacterFaceExpression_H
29 
30 #ifdef SWIG
32 #else
33 #define CPLUSPLUS_ONLY
34 #endif
35 
36 #ifdef CPLUSPLUS_ONLY
37 
38 class bdiFaceExpression;
40 
41 #endif /* CPLUSPLUS_ONLY */
42 
43 
44 #include <declspec_diguy.h>
45 
46 
47 /*********************************************************************/
57 class BDI_DECLSPEC_diguy diguyCharacterFaceExpression
58 {
59 
60 public:
61 
62  /*l
63  *b Description:
64  **
65  ** Returns the name of this face expression. This pointer will
66  ** never be NULL.
67  **
68  *b Returns:
69  **
70  ** name of this face expression
71  */
72  const char* get_name();
73 
74  /*l
75  *b Description:
76  **
77  ** Sets all of this face expression's registers to zero.
78  */
79  void clear();
80 
81  /*l
82  *b Returns:
83  **
84  ** number of registers in this face expression
85  */
86  int get_register_count();
87 
88  /*l
89  *b Returns:
90  **
91  ** a register name, given the index of that
92  ** register
93  **
94  *b Arguments:
95  **
96  *a register_index - index of face_expression register
97  */
98  const char* get_register_name_by_index(int register_index);
99 
100  /*l
101  *b Description:
102  **
103  ** Gets the value of a face expression register, given the name of the
104  ** register.
105  **
106  *b Arguments:
107  **
108  *a name - name of register
109  **
110  *b Returns:
111  **
112  ** value of the specified register
113  */
114  float get_register_value(const char* name);
115 
116  /*l
117  *b Description:
118  **
119  ** Sets the value of a face expression register.
120  **
121  *b Arguments:
122  **
123  *a name - name of register to set
124  *a value - new value for register
125  **
126  *b Returns:
127  **
128  ** 0 on success, -1 on failure
129  */
130  int set_register_value(const char* name, float value);
131 
132  /*l
133  *b Description:
134  **
135  ** Gets the value of a face expression register, given the index of
136  ** the register.
137  **
138  *b Arguments:
139  **
140  *a register_index - index of the register
141  **
142  *b Returns:
143  **
144  ** value of the specified register
145  */
146  float get_register_value_by_index(int register_index);
147 
148  /*l
149  *b Description:
150  **
151  ** Sets the value of a face expression register.
152  **
153  *b Arguments:
154  **
155  *a register_index - index of the register
156  *a value - new value for register
157  **
158  *b Returns:
159  **
160  ** 0 on success, -1 on failure
161  */
162  int set_register_value_by_index(int register_index, float value);
163 
164  /*l
165  *b Description:
166  **
167  ** Gets whether a face expression register is enabled.
168  **
169  ** A nonzero value means that the register's value will be assigned to
170  ** the character's face's corresponding attribute when the character
171  ** applies the face expression using
172  ** diguyCharacter::set_face_expression().
173  **
174  ** A zero value means that the register will have no effect on the
175  ** character's face when the character applies the face expression
176  ** using diguyCharacter::set_face_expression().
177  **
178  ** So, each face expression can affect some, all, or no attributes of
179  ** the character's face.
180  **
181  *b Arguments:
182  **
183  *a name - name of the register
184  **
185  *b Returns:
186  **
187  ** whether the register is enabled
188  **
189  *b See Also:
190  **
191  ** set_register_enabled()
192  */
193  int get_register_enabled(const char* name);
194 
195  /*l
196  *b Description:
197  **
198  ** Sets whether a face expression register is enabled. See
199  ** get_register_enabled().
200  **
201  *b Arguments:
202  **
203  *a name - name of the register to check
204  *a enabled - whether to enable the register
205  **
206  *b Returns:
207  **
208  ** 0 on success, -1 on failure
209  **
210  *b See Also:
211  **
212  ** get_register_enabled(), set_all_registers_enabled()
213  **/
214  int set_register_enabled(const char* name, int enabled);
215 
216  /*l
217  *b Description:
218  **
219  ** Sets the enabled status of all face expression registers.
220  ** This is used to turn all registers on, or all registers off.
221  **
222  *b Arguments:
223  **
224  *a enabled - whether to enable or disable all registers
225  **
226  *b Returns:
227  **
228  ** 0 on success, -1 on failure
229  **
230  *b C++ Example:
231  **
232  *e diguyCharacterFaceExpression* fx;
233  *e
234  *e fx = scenario->create_face_expression("Smile_exp");
235  *e if (fx)
236  *e {
237  *e fx->set_register_value("Smile", 1);
238  *e fx->set_all_registers_enabled(1);
239  *e }
240  *e
241  *e fx = scenario->create_face_expression("Smile_cl_exp");
242  *e if (fx)
243  *e {
244  *e fx->set_register_value("Smile_cl", 1);
245  *e fx->set_all_registers_enabled(1);
246  *e }
247  *e
248  *e fx = scenario->create_face_expression("Mad_exp");
249  *e if (fx)
250  *e {
251  *e fx->set_register_value("Mad", 1);
252  *e fx->set_all_registers_enabled(1);
253  *e }
254  */
255  int set_all_registers_enabled(int enabled);
256 
257  /*l
258  *b Description:
259  **
260  ** Gets whether a face expression register is enabled.
261  **
262  *b Arguments:
263  **
264  *a index - index of the register to check
265  **
266  *b Returns:
267  **
268  ** whether the register is enabled
269  **
270  */
271  int get_register_enabled_by_index(int register_index);
272 
273  /*l
274  *b Description:
275  **
276  ** Sets whether a face expression register is enabled.
277  **
278  *b Arguments:
279  **
280  *a index - index of the register to modify
281  *a enabled - whether to enable or disable the register
282  **
283  *b Returns:
284  **
285  ** 0 on success, -1 on failure
286  **
287  */
288  int set_register_enabled_by_index(int register_index, int enabled);
289 
294 #ifdef CPLUSPLUS_ONLY
295 
296  bdiFaceExpression* get_scripted_object() {return m_scripted_object;}
297 
298 private:
299 
300  /*l
301  ** A private constructor.
302  */
303  diguyCharacterFaceExpression(bdiFaceExpression* face_expression);
304 
305  /*l
306  ** A pointer to internal data.
307  */
308  bdiFaceExpression* m_scripted_object;
309 
310  friend class bdiFaceExpression;
311 
312 #endif /* CPLUSPLUS_ONLY */
313 
314 };
315 
316 #endif /* __diguyCharacterFaceExpression_H */
317