DI-Guy SDK Documentation  13.7.1
diguy_constants.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2022 MAK Technologies, Inc.
3  * All rights reserved.
4  ****************************************************************************/
5 
6 /*********************************************************************
7  **
8  *t DI-Guy API, Constants and Enumerations
9  **
10  ** The API is subject to change in future releases.
11  **
12  */
13 
14 #pragma once
15 
16 #ifdef SWIG
17 %module diguy_constants
18 #else
19 #define CPLUSPLUS_ONLY
20 #endif
21 
22 #ifdef CPLUSPLUS_ONLY
23 #include <declspec_bdiutil.h>
24 #endif
25 
26 
27 /*****************************************************************************/
28 /*****************************************************************************/
35 //now live in diguy_version.h
36 
37 
38 /*****************************************************************************/
39 /*****************************************************************************/
43 /*****************************************************************************/
44 /*****************************************************************************/
45 
46 
47 /****************************************************************************/
48 /*l
49  *b Description:
50  **
51  ** DI-Guy radians and degrees conversion factors.
52  **
53  */
54 #define DIGUY_PI (3.14159265358979323f)
55 
56 #define DIGUY_RAD2DEG (180.0f / DIGUY_PI)
57 #define DIGUY_DEG2RAD (DIGUY_PI / 180.0f)
58 
59 
60 /****************************************************************************/
61 /*l
62  *b Description:
63  **
64  ** This value is a magic number that, when passed to certain functions,
65  ** means that the function should use or compute an appropriate default
66  ** value for the argument.
67  **
68  */
69 #define DIGUY_DEFAULT_FLOAT (-16384.0f)
70 
71 
72 /****************************************************************************/
73 /*l
74  *b Description:
75  **
76  ** This value is a magic number that, when passed to certain functions,
77  ** means that the function should use or compute an appropriate default
78  ** value for the argument.
79  **
80  */
81 #define DIGUY_DEFAULT_INT (-16384)
82 
83 
84 /*****************************************************************************/
85 /*****************************************************************************/
89 /*****************************************************************************/
90 /*****************************************************************************/
91 
92 
93 /****************************************************************************/
94 /*l
95  *b Description:
96  **
97  ** DI-Guy callbacks return a value of type diguyCallbackReturn,
98  ** which will be DIGUY_CALLBACK_STOP or DIGUY_CALLBACK_CONTINUE.
99  ** If the callback returns DIGUY_CALLBACK_STOP, the default handler
100  ** of the function will not be called; the callback is asserting
101  ** that it has done everything necessary for the function call.
102  ** If the callback returns DIGUY_CALLBACK_CONTINUE, the default
103  ** handler for the function will be called after the callback.
104  **
105  */
106 typedef enum
107 {
110 
112 
113 
114 
115 /****************************************************************************/
116 /*l
117  *b Description:
118  **
119  ** This enumeration allows type map fields to be queried using a
120  ** numerical value rather than a string name of the field.
121  **
122  ** See the top-level description of the diguyCharacterTypeMap for
123  ** information about what each field means.
124  **
125  ** These enumerated values are equivalent to the following field names:
126  ** "unknown"
127  ** "character_class"
128  ** "category"
129  ** "subcategory"
130  ** "sex"
131  ** "age"
132  ** "race"
133  ** "country"
134  ** "military_branch"
135  ** "carried_object"
136  ** (Number of fields)
137  */
138 typedef enum
139 {
154 /****************************************************************************/
155 /*l
156  *b Description:
157  **
158  ** DI-Guy character classes. This is a high-level description of the
159  ** type of thing a character represents.
160  **
161  */
162 typedef enum
163 {
176 
177 BDI_DECLSPEC_bdiutil const char* diguy_character_class_enum_to_string( diguyCharacterClass character_class );
178 BDI_DECLSPEC_bdiutil diguyCharacterClass diguy_character_class_enum_from_string( const char* string );
179 
180 /****************************************************************************/
181 /*l
182  *b Description:
183  **
184  ** DI-Guy character appearance query API, this is for diguyCharacter::get_num_appearances_of_type()
185  **
186  */
188 {
194 };
195 
196 /****************************************************************************/
197 /*l
198  *b Description:
199  **
200  ** This enumeration lists various types of texture atlases.
201  **
202  */
204 {
207 };
208 
209 /****************************************************************************/
210 /*l
211  *b Description:
212  **
213  ** This is an enumeration of the different modes a
214  ** DI-Guy character can be in. See diguyCharacter::get_action_mode(),
215  ** diguyCharacter::get_position_mode().
216  */
217 typedef enum
218 {
222 
224 
225 
226 /****************************************************************************/
227 /*l
228  *b Description:
229  **
230  ** This is an enumeration of the different parameter comparison
231  ** options that can be specified to various DI-Guy function calls,
232  ** such as diguyCharacter::get_action_from_description().
233  */
234 typedef enum
235 {
241 
243 
244 
245 /****************************************************************************/
246 /*l
247  *b Description:
248  **
249  ** This is an enumeration of the different muzzles that can
250  ** be specified to various DI-Guy function calls, such as
251  ** diguyCharacter::set_default_weapon_muzzle() and
252  ** diguyCharacter::fire_weapon().
253  */
254 typedef enum
255 {
262 
263 } diguyMuzzle;
264 
265 
266 /****************************************************************************/
267 /*l
268  *b Description:
269  **
270  ** This is an enumeration of the different impact types that are found
271  ** in diguyImpact.
272  */
273 typedef enum
274 {
280 
282 
284 /****************************************************************************/
285 /*l
286  *b Description:
287  **
288  ** DI-Guy camera move modes.
289  **
290  ** In DI-Guy Scenario in Camera Input Mode, the movement
291  ** mode of the camera determines what will happen when
292  ** mouse buttons are pressed in the view window.
293  */
294 typedef enum
295 {
303 
304 
305 /****************************************************************************/
306 /*l
307  *b Description:
308  **
309  ** Aspects of the DI-Guy camera that can be servoed.
310  **
311  ** Servoing can also be disabled on each of these.
312  */
313 typedef enum
314 {
320 
321 /****************************************************************************/
322 /*l
323  *b Description:
324  **
325  ** DI-Guy camera projection modes.
326  **
327  */
328 typedef enum
329 {
336 
337 
338 /****************************************************************************/
339 /*l
340  *b Description:
341  **
342  ** DI-Guy fog modes.
343  **
344  */
345 typedef enum
346 {
348  DIGUY_FOG_MODE_EXP = 1,
358 /****************************************************************************/
359 /*l
360  *b Description:
361  **
362  ** DI-Guy history types.
363  **
364  */
365 typedef enum
366 {
372 
374 
375 
376 /****************************************************************************/
377 /*l
378  *b Description:
379  **
380  ** DI-Guy renderer class ids.
381  **
382  */
383 enum
384 {
385  DIGUY_CLASSID_START = 0x400,
386 
390 
396 } ;
399 /****************************************************************************/
400 /*l
401  *b Description:
402  **
403  ** DI-Guy renderer pass masks, set via diguyApp::set_render_pass_flags().
404  *>
405  *i DIGUY_RENDER_PASS_SKIP_PARTICLES
406  **
407  ** Particle rendering is skipped.
408  **
409  *i DIGUY_RENDER_PASS_USE_STORED_LOD_SETTINGS
410  **
411  ** LOD recalculation is skipped (for built-in OGL pipeline).
412  **
413  *i DIGUY_RENDER_PASS_REFLECTION
414  **
415  ** Internal use; water reflection objects are skipped.
416  **
417  *i DIGUY_RENDER_PASS_SHADOW
418  **
419  ** Shadow pass assumed; water, environmental effects are skipped.
420  **
421  *i DIGUY_RENDER_PASS_INTERSECTION
422  **
423  ** Pick pass assumed; link and shape colors are sent.
424  **
425  *i DIGUY_RENDER_PASS_DEBUGGING
426  **
427  ** Used for Shader debugging visualization
428  **
429  *i DIGUY_RENDER_PASS_TRANSPARENCY_DEBUGGING ,
430  **
431  ** Used to skip the 2nd render pass optimizations. Assumes that work normally done in pass1 needs to be redone.
432  **
433  *<
434  */
436 {
439  DIGUY_RENDER_PASS_REFLECTION = 0x00000004,
440  DIGUY_RENDER_PASS_SHADOW = 0x00000008,
441  DIGUY_RENDER_PASS_INTERSECTION = 0x00000010,
442  DIGUY_RENDER_PASS_DEBUGGING = 0x00000020,
446 
447 };
449 
451 /*****************************************************************************/
452 /*****************************************************************************/
475 typedef enum
476 {
484 /****************************************************************************/
485 /*l
486  *b Description:
487  **
488  ** DI-Guy error codes.
489  **
490  */
491 enum
492 {
493  DIGUY_ERROR = -1,
494 
512 };
513 
514 
515 /****************************************************************************/
516 /*l
517  *b Description:
518  **
519  ** DI-Guy vector indices.
520  **
521  */
522 enum
523 {
524  DIGUY_VEC_X = 0,
525  DIGUY_VEC_Y,
537 };
540 /****************************************************************************/
541 /*l
542  *b Description:
543  **
544  ** DI-Guy graphics joint types.
545  **
546  */
547 typedef enum
548 {
562 
564 
565 
566 /****************************************************************************/
567 /*l
568  *b Description:
569  **
570  ** When a scene is rendered in order to select a DI-Guy object from,
571  ** say, a mouse click, the type of object selected is identified by
572  ** this enumeration.
573  **
574  */
575 enum
576 {
594 };
595 
596 
597 /****************************************************************************/
598 /*l
599  *b Description:
600  **
601  ** This enumeration identifies which playback mode time should follow.
602  ** Only valid inside DI-Guy Scenario.
603  */
604 typedef enum
605 {
618 BDI_DECLSPEC_bdiutil const char* diguy_playback_mode_to_string( diguyScenarioPlaybackMode playback_mode );
619 BDI_DECLSPEC_bdiutil diguyScenarioPlaybackMode diguy_playback_mode_from_string( const char* string );
622 /****************************************************************************/
623 /*l
624  *b Description:
625  **
626  ** This enumeration lists the visibility options for various objects
627  ** in the DI-Guy Scenario environment.
628  */
629 typedef enum
630 {
631  DIGUY_VISIBLE_NONE = 0,
635 
637 
639 /****************************************************************************/
640 /*l
641  *b Description:
642  **
643  ** This enumeration lists which parts of a visual object may need to be
644  ** updated. The values can be or-ed together.
645  **
646  *i DIGUY_GRAPHICS_VISUAL_UPDATE_NONE
647  **
648  ** Nothing in the visual needs to be updated.
649  **
650  *i DIGUY_GRAPHICS_VISUAL_UPDATE_GEOMETRY
651  **
652  ** The overall geometry of the visual needs to be updated. This means
653  ** that vertices and other parts of polygons need to be recalculated.
654  **
655  *i DIGUY_GRAPHICS_VISUAL_UPDATE_POSITION
656  **
657  ** The position and/or orientation of the visual needs to be updated.
658  ** The overall geometry of the visual (polygons, lines, etc.) remains
659  ** unchanged.
660  **
661  *i DIGUY_GRAPHICS_VISUAL_UPDATE_MATERIAL
662  **
663  ** The material of the visual needs to be updated. This can include
664  ** color, fill options, line width, etc. The geometry and position of
665  ** the visual remain the same.
666  **
667  *i DIGUY_GRAPHICS_VISUAL_UPDATE_ALL
668  **
669  ** All aspects of the visual need to be updated.
670  **
671  */
672 typedef enum
673 {
679 
681 
682 
683 /****************************************************************************/
684 /*l
685  *b Description:
686  **
687  ** DI-Guy Euler angle orders.
688  **
689  ** ZXY is the order most commonly used in DIGuy. The meaning is: "rotate around
690  ** object's z axis (yaw), then its x axis (roll), then its y axis (pitch)."
691  **
692  ** However, the DI-Guy camera system uses ZYX, since that's more intuitive.
693  **
694  */
695 typedef enum
696 {
704 
706 
707 
708 /****************************************************************************/
709 /*l
710  *b Description:
711  **
712  ** This enumeration is used for various variables in the
713  ** diguyScenarioMergeSettings object. In general it tells
714  ** the diguyScenario::merge() function whether to load
715  ** objects of a specified type at all, and if so, what to
716  ** do if a merged object conflicts with an existing object.
717  **
718  *i DIGUY_MERGE_FLAG_DONT_MERGE
719  **
720  ** Objects in the merged scenario are not loaded.
721  **
722  *i DIGUY_MERGE_FLAG_OVERWRITE_EXISTING
723  **
724  ** Objects in the merged scenario are loaded.
725  **
726  ** In the case of a conflict, the exiting object is overwritten
727  ** with the values of the merge object.
728  **
729  *i DIGUY_MERGE_FLAG_KEEP_BOTH
730  **
731  ** Objects in the merged scenario are loaded.
732  **
733  ** In the case of a conflict, both the exiting object
734  ** and the merge object are kept, with no modifications.
735  ** Note that this will leave some ambiguity of referencing
736  ** objects by name. A warning will be printed.
737  **
738  ** Note that this value is here to allow for backward
739  ** compatibility; it is not recommended for general use.
740  **
741  *i DIGUY_MERGE_FLAG_KEEP_EXISTING_ONLY
742  **
743  ** Objects in the merged scenario are loaded.
744  **
745  ** In the case of a conflict, the exiting object is kept
746  ** as is and the merge object is discarded.
747  **
748  *i DIGUY_MERGE_FLAG_KEEP_EXISTING_ONLY_AND_WARN
749  **
750  ** Same as DIGUY_MERGE_FLAG_KEEP_EXISTING, but also prints
751  ** a warning.
752  **
753  *i DIGUY_MERGE_FLAG_RENAME_MERGED
754  **
755  ** Objects in the merged scenario are loaded.
756  **
757  ** In the case of a conflict, both the exiting object
758  ** and the merge object are kept, but the merged object
759  ** is renamed.
760  **
761  *i DIGUY_MERGE_FLAG_RENAME_MERGED_AND_WARN
762  **
763  ** Same as DIGUY_MERGE_FLAG_RENAME_MERGED, but also prints
764  ** a warning.
765  **
766  *i DIGUY_MERGE_FLAG_RENAME_MERGED_IF_NOT_EQUAL
767  **
768  ** Objects in the merged scenario are loaded.
769  **
770  ** In the case of a conflict, the existing object and merged
771  ** object are checked for "equality". If they are the same,
772  ** the existing object will be kept and the merge object will
773  ** be discarded. If they are different, both objects will
774  ** be kept, but the merge object will be renamed.
775  **
776  */
777 typedef enum
778 {
787 
790 
791 /****************************************************************************/
792 /*l
793  *b Description:
794  **
795  ** This enumeration tells DI-Guy what values to use as defaults
796  ** when the diguyScenario::create_merge_settings() functions
797  ** is called. See the documentation for that function for
798  ** details on what the different values mean.
799  **
800  */
801 typedef enum
802 {
808 
810 
811 
812 /****************************************************************************/
813 /*l
814  *b Description:
815  **
816  ** This enumeration tells DI-Guy which scenario elements should be
817  ** reset after the merge is complete.
818  **
819  */
820 typedef enum
821 {
827 
828 
829 /****************************************************************************/
830 /*l
831  *b Description:
832  **
833  ** This enumeration lists the cursors returnable by the plugin
834  ** function get_cursor().
835  **
836  *i DIGUY_PLUGIN_MOUSE_CURSOR_NONE
837  **
838  ** Plugin takes responsibility for drawing cursor, if any.
839  **
840  *i DIGUY_PLUGIN_MOUSE_CURSOR_LEFT_ARROW
841  **
842  ** The standard window-system left arrow cursor is shown.
843  **
844  *i DIGUY_PLUGIN_MOUSE_CURSOR_CROSSHAIR
845  **
846  ** Crosshair (plus-shaped) cursor is shown.
847  **
848  *i DIGUY_PLUGIN_MOUSE_CURSOR_POINTING_HAND
849  **
850  ** Pointing hand cursor is shown.
851  **
852  *i DIGUY_PLUGIN_MOUSE_CURSOR_FORBIDDEN
853  **
854  ** Action forbidden cursor is shown.
855  */
856 typedef enum
857 {
865 
866 
867 /****************************************************************************/
868 /*l
869  *b Description:
870  **
871  ** This enumeration lists which cross-sections are available for
872  ** DI-Guy chain simulation visuals.
873  **
874  *i DIGUY_CHAIN_CROSS_SECTION_SQUARE
875  **
876  ** The square cross-section is good for tube-like visuals, such as
877  ** hoses. The normals of the square cross-section point radially
878  ** outward from the center, giving the visual a rounded, tube-like
879  ** appearance.
880  **
881  *i DIGUY_CHAIN_CROSS_SECTION_PLUS
882  **
883  ** The plus cross-section is good for thin, chain-like visuals.
884  **
885  *i DIGUY_CHAIN_CROSS_SECTION_COIL
886  **
887  ** The coil cross-section is good for wires. The chain masses are
888  ** connected by line segments.
889  */
890 typedef enum
891 {
899 /****************************************************************************/
900 /*l
901  *b Description:
902  **
903  */
904 #define DIGUY_LOAD_MANAGER_NUM_ZONES (4)
905 #define DIGUY_LOAD_MANAGER_NUM_NONVISIBLE_ZONE_INDEX (3)
906 
907 
908 /****************************************************************************/
909 /*l
910  *b Description:
911  **
912  ** This enumeration lists the input modes available in DI-Guy
913  ** Scenario views (3D windows) and for DI-Guy Author.
914  */
915 typedef enum
916 {
939 
940 BDI_DECLSPEC_bdiutil const char* diguy_input_mode_to_string(diguyScenarioInputMode input_mode);
941 BDI_DECLSPEC_bdiutil diguyScenarioInputMode diguy_input_mode_from_string(const char* string);
942 
943 
944 /****************************************************************************/
945 /*l
946  *b Description:
947  **
948  ** This enumeration lists the windows that can be shown in the
949  ** DI-Guy Scenario application.
950  */
951 typedef enum
952 {
981 /****************************************************************************/
982 /*l
983  *b Description:
984  **
985  ** This enumeration lists different types of editing actions that
986  ** can be performed in the DI-Guy Scenario application.
987  */
988 typedef enum
989 {
990  // File menu
999 
1000  // Edit menu
1007 
1008  // Help menu
1012 
1013  // number of edit actions
1015 
1017 
1018 
1019 /****************************************************************************/
1020 /*l
1021  *b Description:
1022  **
1023  ** This enumeration lists "special" (non-ASCII) keys that DI-Guy plugins
1024  ** may respond to.
1025  **
1026  ** (These enumerations currently match the Qt 4 Qt::Key_* values.)
1027  */
1028 enum
1029 {
1030  DIGUY_SPECIAL_KEY_MIN = 0x1000000,
1031  DIGUY_SPECIAL_KEY_ESC = 0x1000000,
1032  DIGUY_SPECIAL_KEY_TAB = 0x1000001,
1033  DIGUY_SPECIAL_KEY_BACKTAB = 0x1000002,
1034  DIGUY_SPECIAL_KEY_BACKSPACE = 0x1000003,
1036  DIGUY_SPECIAL_KEY_ENTER = 0x1000005,
1040  DIGUY_SPECIAL_KEY_PRINT = 0x1000009,
1041  DIGUY_SPECIAL_KEY_HOME = 0x1000010,
1042  DIGUY_SPECIAL_KEY_END = 0x1000011,
1043  DIGUY_SPECIAL_KEY_LEFT = 0x1000012,
1044  DIGUY_SPECIAL_KEY_UP = 0x1000013,
1045  DIGUY_SPECIAL_KEY_RIGHT = 0x1000014,
1046  DIGUY_SPECIAL_KEY_DOWN = 0x1000015,
1047  DIGUY_SPECIAL_KEY_PAGE_UP = 0x1000016,
1048  DIGUY_SPECIAL_KEY_PAGE_DOWN = 0x1000017,
1049  DIGUY_SPECIAL_KEY_SHIFT = 0x1000020,
1050 
1051  DIGUY_SPECIAL_F1 = 0x1000030,
1052  DIGUY_SPECIAL_F2 = 0x1000031,
1053  DIGUY_SPECIAL_F3 = 0x1000032,
1054  DIGUY_SPECIAL_F4 = 0x1000033,
1055  DIGUY_SPECIAL_F5 = 0x1000034,
1056  DIGUY_SPECIAL_F6 = 0x1000035,
1057  DIGUY_SPECIAL_F7 = 0x1000036,
1058  DIGUY_SPECIAL_F8 = 0x1000037,
1059  DIGUY_SPECIAL_F9 = 0x1000038,
1060  DIGUY_SPECIAL_F10 = 0x1000039,
1061  DIGUY_SPECIAL_F11 = 0x100003A,
1062  DIGUY_SPECIAL_F12 = 0x100003B,
1063 
1065 };
1068 /****************************************************************************/
1069 /*l
1070  *b Description:
1071  **
1072  ** DI-Guy aim algorithms.
1073  **
1074  */
1075 typedef enum
1076 {
1079 
1085 /*****************************************************************************/
1086 /*****************************************************************************/
1090 /*****************************************************************************/
1091 /*****************************************************************************/
1092 
1093 
1094 /****************************************************************************/
1095 /*l
1096  *b Description:
1097  **
1098  ** This enumeration lists the methods available for collision detection
1099  ** and avoidance against dynamic objects.
1100  **
1101  *i DIGUY_DYNAMIC_AVOIDANCE_METHOD_DISABLED
1102  **
1103  ** Dynamic objects are not detected or avoided. In effect this means
1104  ** that characters will walk through each other.
1105  **
1106  ** If a crowd is far away from the viewpoint, it is not obvious that
1107  ** this is happening. Disabling the crowd's dynamic avoidance can
1108  ** reduce the overhead of the crowd on performance.
1109  **
1110  *i DIGUY_DYNAMIC_AVOIDANCE_METHOD_REPULSION_ZONES
1111  **
1112  ** Characters are surrounded by zones of repulsion. Other characters
1113  ** that enter these zones have their position, orientation, and/or
1114  ** action changed to try to get out of the zones.
1115  **
1116  *i DIGUY_DYNAMIC_AVOIDANCE_METHOD_SIMPLE
1117  **
1118  ** This is an experimental method that is still being developed.
1119  ** It should not be used for now.
1120  */
1121 typedef enum
1122 {
1126 
1128 
1129 
1130 /****************************************************************************/
1131 /*l
1132  *b Description:
1133  **
1134  ** This enumeration lists the methods available for collision detection
1135  ** and avoidance against static objects in the environment. These are
1136  ** usually scene objects and non-moving props.
1137  **
1138  *i DIGUY_STATIC_AVOIDANCE_METHOD_DISABLED
1139  **
1140  ** Static objects are not detected or avoided. In effect this means
1141  ** that characters can walk through walls.
1142  **
1143  ** If a crowd is not near any buildings, walls, or solid objects,
1144  ** disabling static avoidance can reduce the overhead of the crowd
1145  ** on performance.
1146  **
1147  *i DIGUY_STATIC_AVOIDANCE_METHOD_FEELERS
1148  **
1149  ** The character uses 'feelers' to detect static objects and turn
1150  ** away from them.
1151  */
1152 typedef enum
1153 {
1156 
1158 
1159 
1160 /****************************************************************************/
1161 /*l
1162  *b Description:
1163  **
1164  ** This enumeration lists the standard feelers used for static object
1165  ** avoidance used by I-Guy and agent characters.
1166  */
1169 enum
1171  DIGUY_CHARACTER_FEELER_F = 0, // front
1172  DIGUY_CHARACTER_FEELER_FR, // front right
1173  DIGUY_CHARACTER_FEELER_FL, // front left
1174  DIGUY_CHARACTER_FEELER_L, // left
1175  DIGUY_CHARACTER_FEELER_R, // right
1176  DIGUY_CHARACTER_FEELER_BL, // back left
1177  DIGUY_CHARACTER_FEELER_BR, // back right
1178  DIGUY_CHARACTER_FEELER_B, // back
1180 };
1181 
1182 
1183 /****************************************************************************/
1184 /*l
1185  *b Description:
1186  **
1187  ** This enumeration lists the state character feelers may be in.
1188  **
1189  *i DIGUY_CHARACTER_FEELER_STATUS_NO_CONTACT
1190  **
1191  ** Feeler is not in contact with anything.
1192  **
1193  *i DIGUY_CHARACTER_FEELER_STATUS_CONTACT_TURN
1194  **
1195  ** Feeler is in contact with an object just enough to cause the
1196  ** character to begin to turn.
1197  **
1198  *i DIGUY_CHARACTER_FEELER_STATUS_CONTACT_COLLIDE
1199  **
1200  ** Feeler is in close contact with an object. The object should be
1201  ** pushing the character away.
1202  **
1203  *i DIGUY_CHARACTER_FEELER_STATUS_CONTACT_TURN_AND_COLLIDE
1204  **
1205  ** Feeler is within both turn and contact distances of an object.
1206  */
1207 typedef enum
1208 {
1213 
1215 
1216 
1217 /****************************************************************************/
1218 /*l
1219  *b Description:
1220  **
1221  ** This enumeration lists the turn directions a feeler can use when
1222  ** its status is DIGUY_CHARACTER_FEELER_STATUS_CONTACT_TURN.
1223  **
1224  *i DIGUY_CHARACTER_FEELER_TURN_DIRECTION_NONE
1225  **
1226  ** Feeler does not turn the character.
1227  **
1228  *i DIGUY_CHARACTER_FEELER_TURN_DIRECTION_L
1229  **
1230  ** Feeler turns the character to the left.
1231  **
1232  *i DIGUY_CHARACTER_FEELER_TURN_DIRECTION_R
1233  **
1234  ** Feeler turns the character to the right.
1235  **
1236  *i DIGUY_CHARACTER_FEELER_TURN_DIRECTION_L_OR_R
1237  **
1238  ** Feeler turns the character to the left or right, whichever
1239  ** will result in the turn behavior ending more quickly.
1240  */
1241 typedef enum
1244  DIGUY_CHARACTER_FEELER_TURN_DIRECTION_L, // as string: "left"
1245  DIGUY_CHARACTER_FEELER_TURN_DIRECTION_R, // as string: "right"
1246  DIGUY_CHARACTER_FEELER_TURN_DIRECTION_L_OR_R // as string: "left_or_right"
1247 
1249 
1250 
1251 /****************************************************************************/
1252 /*l
1253  *b Description:
1254  **
1255  ** Directions a character can be traveling on a navigation path
1256  ** (nav path).
1257  **
1258  ** The travel behavior of agents use nav paths.
1259  **
1260  */
1261 typedef enum
1262 {
1263  DIGUY_NAV_PATH_DIRECTION_UNKNOWN = 0, // as string: "unknown"
1264  DIGUY_NAV_PATH_DIRECTION_FORWARD, // as string: "forward"
1265  DIGUY_NAV_PATH_DIRECTION_BACKWARD, // as string: "backward"
1267 
1269 
1270 
1271 /****************************************************************************/
1272 /*l
1273  *b Description:
1274  **
1275  ** What a character following a nav path will do once it reaches the
1276  ** end of a nav path.
1277  **
1278  ** The travel behavior of agents use nav paths.
1279  **
1280  *i DIGUY_NAV_PATH_AT_END_REVERSE
1281  **
1282  ** Agent reverses direction on the nav path, going through waypoints
1283  ** in opposite order.
1284  **
1285  *i DIGUY_NAV_PATH_AT_END_LOOP
1286  **
1287  ** Agent's next waypoint is waypoint 0. Best when last waypoint and
1288  ** first waypoint are close to each other, as in a loop path.
1289  **
1290  *i DIGUY_NAV_PATH_AT_END_STOP
1291  **
1292  ** Stop at the end, switching to behavior none.
1293  **
1294  *i DIGUY_NAV_PATH_AT_END_TELEPORT
1295  **
1296  ** Teleport to the beginning. In general agents should be out of view
1297  ** at the beginning and end of the path, if possible.
1298  */
1299 typedef enum
1300 {
1301  DIGUY_NAV_PATH_AT_END_UNKNOWN = 0, // as string: "unknown"
1302  DIGUY_NAV_PATH_AT_END_REVERSE, // as string: "reverse"
1303  DIGUY_NAV_PATH_AT_END_LOOP, // as string: "loop"
1304  DIGUY_NAV_PATH_AT_END_STOP, // as string: "stop"
1305  DIGUY_NAV_PATH_AT_END_TELEPORT, // as string: "teleport"
1306 
1307  // internal use only
1309 
1311 
1313 
1314 
1315 /****************************************************************************/
1316 /*l
1317  *b Description:
1318  **
1319  ** Errors various nav path functions may return.
1320  */
1321 typedef enum
1322 {
1335 /****************************************************************************/
1336 /*l
1337  *b Description:
1338  **
1339  ** Selection methods for records from crowd profiles.
1340  */
1341 typedef enum
1342 {
1346 
1348 
1349 
1350 /****************************************************************************/
1351 /*l
1352  *b Description:
1353  **
1354  ** DI-Guy agent repulsion zones for characters with dynamic
1355  ** avoidance method DIGUY_DYNAMIC_AVOIDANCE_METHOD_REPULSION_ZONES.
1356  */
1357 typedef enum
1358 {
1365 
1367 
1368 
1369 /****************************************************************************/
1370 /*l
1371  *b Description:
1372  **
1373  ** DI-Guy agent behaviors.
1374  **
1375  ** Following is a short description of each behavior. See the DI-Guy AI
1376  ** documentation for more details.
1377  **
1378  *i DIGUY_AGENT_BEHAVIOR_NONE
1379  **
1380  ** Agent functionality is completely inactive. The character's actions
1381  ** are determined by its character path or direct DI-Guy API calls.
1382  **
1383  *i DIGUY_AGENT_BEHAVIOR_TRAVEL
1384  **
1385  ** Agent attempts to travel close to a path shape. Many agents can use
1386  ** the same path shape for the travel behavior.
1387  **
1388  *i DIGUY_AGENT_BEHAVIOR_PATH_FOLLOW
1389  **
1390  ** Similar to DIGUY_AGENT_BEHAVIOR_TRAVEL, but agent follows a
1391  ** character path instead of a path shape, and attempts to match the
1392  ** timing of the character path in addition to the path shape. If the
1393  ** agent is interrupted from the path, it will attempt to resume it
1394  ** where it left off.
1395  **
1396  *i DIGUY_AGENT_BEHAVIOR_WANDER
1397  **
1398  ** Agent wanders a region. In this case wander means it will select a
1399  ** random point within the region and move close to it, and then wait
1400  ** there for a period of time before selecting a new point in the
1401  ** region.
1402  **
1403  *i DIGUY_AGENT_BEHAVIOR_MINGLE
1404  **
1405  ** Similar to wander, but agents attempt to move together to various
1406  ** places in the region.
1407  **
1408  *i DIGUY_AGENT_BEHAVIOR_FLEE
1409  **
1410  ** Agent attempts to move away from a specified character or point.
1411  **
1412  *i DIGUY_AGENT_BEHAVIOR_PURSUE
1413  **
1414  ** Agent attempts to stay close to a specified character or member of a
1415  ** group.
1416  **
1417  *i DIGUY_AGENT_BEHAVIOR_ATTACK
1418  **
1419  ** Similar to pursue, but once agents are close enough they will attack
1420  ** the target.
1421  **
1422  *i DIGUY_AGENT_BEHAVIOR_IDLE
1423  **
1424  ** Agent has no particular automatic behavior; it follows its path or
1425  ** moves toward its desired position as set by
1426  ** diguyCharacter::set_desired_position(). It will affect other agents
1427  ** in its crowd, and if pushed away from its desired position it will
1428  ** move back to it.
1429  */
1430 typedef enum
1431 {
1432  DIGUY_AGENT_BEHAVIOR_UNKNOWN = -1, // as string: "unknown"
1433  DIGUY_AGENT_BEHAVIOR_NONE = 0, // as string: "none"
1434  DIGUY_AGENT_BEHAVIOR_TRAVEL, // as string: "travel"
1435  DIGUY_AGENT_BEHAVIOR_PATH_FOLLOW, // as string: "path_follow"
1436  DIGUY_AGENT_BEHAVIOR_WANDER, // as string: "wander"
1437  DIGUY_AGENT_BEHAVIOR_FLEE, // as string: "flee"
1438  DIGUY_AGENT_BEHAVIOR_PURSUE, // as string: "pursue"
1439  DIGUY_AGENT_BEHAVIOR_MINGLE, // as string: "mingle"
1440  DIGUY_AGENT_BEHAVIOR_ATTACK, // as string: "attack"
1441  DIGUY_AGENT_BEHAVIOR_IDLE, // as string: "idle"
1447 /****************************************************************************/
1448 /*l
1449  *b Description:
1450  **
1451  ** DI-Guy agent untrap methods.
1452  **
1453  ** Following is a short description of each untrap method. See the
1454  ** DI-Guy AI documentation for more details.
1455  **
1456  *i DIGUY_AGENT_UNTRAP_METHOD_NONE
1457  **
1458  ** The agent makes no attempt to become untrapped. This can result in
1459  ** the agent blindly walking into a wall until its desired position
1460  ** changes.
1461  **
1462  *i DIGUY_AGENT_UNTRAP_METHOD_NAV_PATH
1463  **
1464  ** The agent will try to create a nav path in its current region to its
1465  ** desired position. If the desired position is not inside the region,
1466  ** a valid nav path may not be able to be found.
1467  **
1468  *i DIGUY_AGENT_UNTRAP_METHOD_RANDOM_TURN
1469  **
1470  ** The agent will stop moving and turn a random amount. This minor
1471  ** course change can sometimes move a character around a small
1472  ** obstacle.
1473  **
1474  *i DIGUY_AGENT_UNTRAP_METHOD_GHOST
1475  **
1476  ** Agent feelers will stop having an effect for a short time. This
1477  ** allows the agent to walk through a wall toward its desired
1478  ** position.
1479  **
1480  *i DIGUY_AGENT_UNTRAP_METHOD_TELEPORT
1481  **
1482  ** This is an extreme method, typically used as a last resort. The
1483  ** agent abruptly teleports to its desired position.
1484  **
1485  *i DIGUY_AGENT_UNTRAP_METHOD_STOP_MOVING
1486  **
1487  ** Somewhat similar to DIGUY_AGENT_UNTRAP_METHOD_NONE, but the current
1488  ** behavior of the agent is set to none, and the agent character's
1489  ** desired position is set to its current position.
1490  */
1491 typedef enum
1492 {
1493  DIGUY_AGENT_UNTRAP_METHOD_NONE = 0, // as string: "none"
1494  DIGUY_AGENT_UNTRAP_METHOD_NAV_PATH, // as string: "nav_path"
1495  DIGUY_AGENT_UNTRAP_METHOD_RANDOM_TURN, // as string: "random_turn"
1496  DIGUY_AGENT_UNTRAP_METHOD_GHOST, // as string: "ghost"
1497  DIGUY_AGENT_UNTRAP_METHOD_TELEPORT, // as string: "teleport"
1498  DIGUY_AGENT_UNTRAP_METHOD_STOP_MOVING, // as string: "stop_moving"
1500 
1502 
1503 
1504 /****************************************************************************/
1505 /*l
1506  *b Description:
1507  **
1508  ** DI-Guy region painting modes.
1509  **
1510  ** Painting modes identify what happens when a region paintbrush is used
1511  ** in some of the DI-Guy input modes.
1512  **
1513  *i DIGUY_REGION_PAINTBRUSH_MODE_ADDITIVE
1514  **
1515  ** Painting will add area to the current subregion. This may end up
1516  ** adding area to the base subregion, as well, as it contains at
1517  ** least the areas of all subregions.
1518  **
1519  *i DIGUY_REGION_PAINTBRUSH_MODE_ERASE
1520  **
1521  ** Painting will remove area from the current subregion. If the base
1522  ** subregion is erased, all matching areas in other subregions will be
1523  ** erased, as well.
1524  **
1525  *i DIGUY_REGION_PAINTBRUSH_MODE_UNGROUND_CLAMP
1526  **
1527  ** Painting will remove area from the current subregion, will also remove
1528  ** the height value from the region and the next time the area is painted
1529  ** it will adopt the height values of the new paint command.
1530  **
1531  *i DIGUY_REGION_PAINTBRUSH_MODE_MOVE_MESH
1532  **
1533  ** Moves the mesh to a new location in space and re-ground clamps
1534  **
1535  *i DIGUY_REGION_PAINTBRUSH_MODE_REACHABLE
1536  **
1537  ** Painting reachable will indicate that this is a spot the path planner
1538  ** should be willing to traverse. Erasing Reachable colors the spot black
1539  ** and indicates that it's not crossable or paint-able.
1540  **
1541  *i DIGUY_REGION_PAINTBRUSH_INTERNAL_MODE_UPDATE_BEHAVIOR_PATH
1542  **
1543  ** Internal use only.
1544  **
1545  *i DIGUY_REGION_PAINTBRUSH_INTERNAL_MODE_REPLACE
1546  **
1547  ** Internal use only.
1548  **
1549  */
1550 typedef enum
1551 {
1560 
1562 
1563 
1564 /****************************************************************************/
1565 /*l
1566  *b Description:
1567  **
1568  ** DI-Guy subregions.
1569  **
1570  ** Regions are irregularly shaped areas in the scene that can be used
1571  ** in a number of ways.
1572  **
1573  ** Regions contain a number of subregions. Each subregion is represented
1574  ** by a different color, and most often the subregions are referred to
1575  ** by their color. Subregions are not mutually exclusive; a point in
1576  ** the scene may be in all of the base, populate, and green subregions,
1577  ** for example.
1578  **
1579  ** Many functions that take one subregion as an argument use the string
1580  ** name of the subregion.
1581  **
1582  ** Functions that can have multiple subregions specified use a subregion
1583  ** mask made up of diguySubregionMask values that can be or'ed together
1584  ** to indicate multiple valid subregions. See diguySubregionMask for
1585  ** more information.
1586  **
1587  *i DIGUY_SUBREGION_BASE
1588  **
1589  ** This subregion is really a "super-region", in that its bounds contain
1590  ** all of the other subregions, and possibly more.
1591  **
1592  ** If any subregion of a top-level region is expanded beyond the bounds
1593  ** of the base subregion, the base subregion will be expanded until
1594  ** it encompasses the expansion.
1595  **
1596  ** If, however, a non-base subregion is subsequently shrunk, the base
1597  ** subregion will not shrink.
1598  **
1599  ** If the base subregion is shrunk, any portion of each non-base
1600  ** subregion that is no longer in the base subregion will be removed.
1601  **
1602  *i DIGUY_SUBREGION_POPULATE
1603  **
1604  ** The subregion into which new crowd agents will be placed if the
1605  ** region is populated or repopulated. This subregion is typically
1606  ** purple.
1607  **
1608  ** DIGUY_SUBREGION_[color]
1609  **
1610  ** The "color" subregions are free to be used in any way a scenario
1611  ** designer wants. Their colors are based on their name.
1612  **
1613  *i DIGUY_SUBREGION_ROAD
1614  **
1615  ** Road subregions are commonly used as preferred subregions for vehicle
1616  ** travel, and repulsion subregions for human travel. This subregion
1617  ** is typically gray.
1618  **
1619  *i DIGUY_SUBREGION_SIDEWALK
1620  **
1621  ** Sidewalk subregions are commonly used as preferred subregions for
1622  ** human travel, and repulsion subregions for vehicles. This subregion
1623  ** is typically white.
1624  **
1625  *i DIGUY_SUBREGION_CROSSWALK
1626  **
1627  ** Humans will tend to prefer crosswalk subregions over road subregions,
1628  ** but prefer sidewalk subregions over crosswalk subregions. This
1629  ** subregion is typically a light yellow.
1630  */
1631 typedef enum
1633  DIGUY_SUBREGION_BASE = 0, // as string: "base"
1634  DIGUY_SUBREGION_POPULATE, // as string: "populate"
1636  DIGUY_SUBREGION_RED, // as string: "red"
1637  DIGUY_SUBREGION_GREEN, // as string: "green"
1638  DIGUY_SUBREGION_BLUE, // as string: "blue"
1639  DIGUY_SUBREGION_YELLOW, // as string: "yellow"
1640  DIGUY_SUBREGION_ORANGE, // as string: "orange"
1641  DIGUY_SUBREGION_WHITE, // as string: "white"
1642 
1643  DIGUY_SUBREGION_ROAD, // as string: "road"
1644  DIGUY_SUBREGION_SIDEWALK, // as string: "sidewalk"
1645  DIGUY_SUBREGION_CROSSWALK, // as string: "crosswalk"
1646 
1648 
1650 
1651 
1652 BDI_DECLSPEC_bdiutil const char* diguy_subregion_index_to_string(diguySubregionIndex subregion_index);
1653 BDI_DECLSPEC_bdiutil diguySubregionIndex diguy_subregion_index_from_string(const char* string);
1654 
1655 
1656 /****************************************************************************/
1657 /*l
1658  *b Description:
1659  **
1660  ** DI-Guy subregions mask values.
1661  **
1662  *b Example:
1663  **
1664  ** To specify that a function can use either the red or blue subregions,
1665  ** the following syntax is used.
1666  **
1667  ** In Perl or C++:
1668  **
1669  *e DIGUY_SUBREGION_MASK_RED | DIGUY_SUBREGION_MASK_BLUE
1670  **
1671  ** In Lua:
1672  **
1673  *e bit.bor( DIGUY_SUBREGION_MASK_RED, DIGUY_SUBREGION_MASK_BLUE,...)
1674  **
1675  ** Lua does not natively support bitfields, but support is automatically
1676  ** added via the "LuaBit" library located in $DIGUY/bin/lua/bit.lua.
1677  */
1678 typedef enum
1679 {
1680  DIGUY_SUBREGION_MASK_NONE = 0x00000000,
1681  DIGUY_SUBREGION_MASK_BASE = 0x00000020,
1682  DIGUY_SUBREGION_MASK_POPULATE = 0x00000040,
1683 
1684  DIGUY_SUBREGION_MASK_RED = 0x00000080,
1685  DIGUY_SUBREGION_MASK_GREEN = 0x00000100,
1686  DIGUY_SUBREGION_MASK_BLUE = 0x00000200,
1687  DIGUY_SUBREGION_MASK_YELLOW = 0x00000400,
1688  DIGUY_SUBREGION_MASK_ORANGE = 0x00000800,
1689  DIGUY_SUBREGION_MASK_WHITE = 0x00001000,
1690 
1691  DIGUY_SUBREGION_MASK_ROAD = 0x00002000,
1693  DIGUY_SUBREGION_MASK_CROSSWALK = 0x00008000,
1697 
1698 /****************************************************************************/
1699 /*l
1700  *b Description:
1701  **
1702  ** DI-Guy navigation mesh path planner cost masks.
1703  **
1704  ** These masks are used for handling navigation costs for path planning modes.
1705  **
1706  */
1707 typedef enum
1708 {
1709  DIGUY_NAVMESH_SHORTEST_PATH = 0x00000001,
1710  DIGUY_NAVMESH_LEAST_VISIBLE = 0x00000002,
1711  DIGUY_NAVMESH_MESH_EDGE = 0x00000004,
1713  DIGUY_NAVMESH_MESH_AVOID_EDGES = 0x00000008,
1714 
1716 
1717 
1718 /****************************************************************************/
1719 /*
1720  * USMC chain of command:
1721  *
1722  * fire team - three individuals - corporal
1723  * squad - three teams - sergeant
1724  * platoon - three squads (usually) - lieutenant
1725  * company - three platoons - captain
1726  * battalion - three companies - lt. colonel
1727  * regiment (or brigade) - three battalions - ?
1728  * division - three regiments - ?
1729  * marine corps - three or more divisions - ?
1730  *
1731  */
1732 typedef enum
1733 {
1735 
1745 
1754  DIGUY_TACTICS_UNIT_TYPE_ARMY // two or more corps
1759 /****************************************************************************/
1760 /*l
1761  *b Description:
1762  **
1763  ** This enumeration lists the methods in which the datetime of a scenario
1764  ** can advance.
1765  **
1766  *i DIGUY_DATETIME_ADVANCE_METHOD_MANUAL
1767  **
1768  ** Datetime does not advance automatically. It can only be set
1769  ** manually, e.g. by a diguyScenario::set_current_datetime() call.
1770  **
1771  *i DIGUY_DATETIME_ADVANCE_METHOD_REAL_TIME_RATE
1772  **
1773  ** Datetime advances at the same rate as realtime.
1774  **
1775  *i DIGUY_DATETIME_ADVANCE_METHOD_SIMULATION_TIME_RATE
1776  **
1777  ** Datetime advances at the same rate as simulation time.
1778  */
1779 typedef enum
1787 
1788 /****************************************************************************/
1789 /*l
1790  *b Description:
1791  **
1792  *i DIGUY_DATETIME_NETWORK_MODE_LOCAL_ONLY
1793  **
1794  ** Datetime data will be handled locally on this host. No data will be
1795  ** sent on the netword, and no data will be read from the network.
1796  **
1797  *i DIGUY_DATETIME_NETWORK_MODE_BROADCAST
1798  **
1799  ** Datetime data will be sent from this host to other hosts in the
1800  ** network. The datetime will be encoded in a custom
1801  ** DIGUY_CUSTOM_PDU_ID_BROADCAST_EXERCISE_DATETIME PDU. In general
1802  ** there should be only one host on the network broadcasting datetime
1803  ** data; all others should receive or ignore it.
1804  **
1805  *i DIGUY_DATETIME_NETWORK_MODE_RECEIVE
1806  **
1807  ** Datetime data will be read from the network from custom
1808  ** DIGUY_CUSTOM_PDU_ID_BROADCAST_EXERCISE_DATETIME PDUs.
1809  */
1810 typedef enum
1811 {
1815 
1817 
1818 
1819 /*****************************************************************************/
1820 /*****************************************************************************/
1824 /*****************************************************************************/
1825 /*****************************************************************************/
1826 
1827 
1828 /****************************************************************************/
1829 /*l
1830  *b Description:
1831  **
1832  ** This enumeration lists units of speed that can be passed to some
1833  ** DI-Guy API functions.
1834  **
1835  ** Note that if one of these values is used specifying an acceleration,
1836  ** add an implicit "per second" to the end. e.g., if 10.0 is passed as
1837  ** an acceleration, with units DIGUY_SPEED_UNITS_MILES_PER_HOUR,
1838  ** the resulting acceleration would be 10.0 miles per hour per second;
1839  ** or in other words, every 1 second speed would increase by 10.0 miles
1840  ** per hour.
1841  */
1842 typedef enum
1843 {
1847 
1848 } diguySpeedUnits;
1849 
1850 
1851 /****************************************************************************/
1852 /*l
1853  *b Description:
1854  **
1855  ** This enumeration lists the ways that data can be generated for DI-Guy
1856  ** characters. Data typically comes from the DI-Guy motion engine,
1857  ** but at times may be generated by other simulation methods.
1858  */
1859 typedef enum
1860 {
1866 
1868 
1869 
1870 /****************************************************************************/
1871 /*l
1872  *b Description:
1873  **
1874  ** This enumeration lists the modes that a DI-Guy character physics sim
1875  ** can be in, when the character simulator is set to
1876  ** DIGUY_CHARACTER_SIMULATOR_PHYSICS_SIM_MODULE.
1877  */
1878 typedef enum
1879 {
1884 
1886 
1887 
1888 /****************************************************************************/
1889 /*l
1890  *b Description:
1891  **
1892  ** This enumeration lists the collision groups that a DI-Guy physics sim
1893  ** object can be in. Characters in different collision groups may not
1894  ** have collisions calculated between them.
1895  */
1896 typedef enum
1897 {
1904 
1909 
1914 
1916 
1918 
1920 
1921 
1922 /****************************************************************************/
1923 /*l
1924  *b Description:
1925  **
1926  ** This enumeration lists the modes that the DI-Guy vehicle simulator
1927  ** can be in.
1928  */
1929 typedef enum
1930 {
1937 
1939 
1940 
1941 BDI_DECLSPEC_bdiutil const char* diguy_vehicle_simulation_mode_to_string(diguyVehicleSimulationMode mode);
1942 BDI_DECLSPEC_bdiutil diguyVehicleSimulationMode diguy_vehicle_simulation_mode_from_string(const char* string);
1943 
1944 
1945 /*****************************************************************************/
1946 /*****************************************************************************/
1950 /*****************************************************************************/
1951 /*****************************************************************************/
1952 
1953 
1954 /*****************************************************************************/
1955 /*****************************************************************************/
1959 /*****************************************************************************/
1960 /*****************************************************************************/
1961 
1962 /****************************************************************************/
1963 /*l
1964  *b Description:
1965  **
1966  ** This enumeration lists supported shader languages.
1967  */
1968 typedef enum
1969 {
1972 
diguySubregionIndex diguy_subregion_index_from_string(const char *string)
Definition: diguy_constants.h:252
Definition: diguy_constants.h:465
Definition: diguy_constants.h:964
Definition: diguy_constants.h:1522
Definition: diguy_constants.h:154
diguyCharacterTypeMapField
This enumeration allows type map fields to be queried using a numerical value rather than a string na...
Definition: diguy_constants.h:123
Definition: diguy_constants.h:886
Definition: diguy_constants.h:849
Definition: diguy_constants.h:1087
Definition: diguy_constants.h:133
Definition: diguy_constants.h:744
Definition: diguy_constants.h:639
Definition: diguy_constants.h:743
Definition: diguy_constants.h:1574
Definition: diguy_constants.h:577
Definition: diguy_constants.h:155
Definition: diguy_constants.h:186
Definition: diguy_constants.h:957
Definition: diguy_constants.h:1528
Definition: diguy_constants.h:856
Definition: diguy_constants.h:846
diguyGraphicsTextureLoadingBehavior
Definition: diguy_constants.h:432
Definition: diguy_constants.h:1329
Definition: diguy_constants.h:1243
Definition: diguy_constants.h:349
Definition: diguy_constants.h:929
diguyAimAlgorithm
DI-Guy aim algorithms.
Definition: diguy_constants.h:994
Definition: diguy_constants.h:1739
Definition: diguy_constants.h:1570
Definition: diguy_constants.h:927
Definition: diguy_constants.h:860
Definition: diguy_constants.h:560
Definition: diguy_constants.h:1637
Definition: diguy_constants.h:742
Definition: diguy_constants.h:401
Definition: diguy_constants.h:1228
Definition: diguy_constants.h:1386
Definition: diguy_constants.h:1169
Definition: diguy_constants.h:961
Definition: diguy_constants.h:1082
Definition: diguy_constants.h:535
Definition: diguy_constants.h:853
Definition: diguy_constants.h:794
Definition: diguy_constants.h:638
diguyScenarioInputMode diguy_input_mode_from_string(const char *string)
Definition: diguy_constants.h:157
Definition: diguy_constants.h:1723
Definition: diguy_constants.h:1755
Definition: diguy_constants.h:1622
diguyEulerAngleOrder
DI-Guy Euler angle orders.
Definition: diguy_constants.h:636
Definition: diguy_constants.h:824
Definition: diguy_constants.h:530
Definition: diguy_constants.h:858
diguyGraphicsShaderLanguage
This enumeration lists supported shader languages.
Definition: diguy_constants.h:1835
diguySubregionIndex
DI-Guy subregions.
Definition: diguy_constants.h:1519
Definition: diguy_constants.h:878
Definition: diguy_constants.h:1738
Definition: diguy_constants.h:759
Definition: diguy_constants.h:1665
Definition: diguy_constants.h:1773
Definition: diguy_constants.h:148
diguyGraphicsJointType
DI-Guy graphics joint types.
Definition: diguy_constants.h:498
Definition: diguy_constants.h:985
Definition: diguy_constants.h:1596
Definition: diguy_constants.h:1524
Definition: diguy_constants.h:130
Definition: diguy_constants.h:1804
Definition: diguy_constants.h:454
Definition: diguy_constants.h:1526
Definition: diguy_constants.h:457
Definition: diguy_constants.h:1627
Definition: diguy_constants.h:561
Definition: diguy_constants.h:1805
Definition: diguy_constants.h:1803
Definition: diguy_constants.h:1630
Definition: diguy_constants.h:331
Definition: diguy_constants.h:1634
Definition: diguy_constants.h:1150
Definition: diguy_constants.h:974
Definition: diguy_constants.h:1575
Definition: diguy_constants.h:201
Definition: diguy_constants.h:1532
Definition: diguy_constants.h:541
Definition: diguy_constants.h:1774
diguyHistoryType
DI-Guy history types.
Definition: diguy_constants.h:329
Definition: diguy_constants.h:900
Definition: diguy_constants.h:1336
Definition: diguy_constants.h:505
Definition: diguy_constants.h:891
diguyPluginMouseCursor
This enumeration lists the cursors returnable by the plugin function get_cursor().
Definition: diguy_constants.h:789
Definition: diguy_constants.h:1628
Definition: diguy_constants.h:97
Definition: diguy_constants.h:965
Definition: diguy_constants.h:1066
Definition: diguy_constants.h:150
Definition: diguy_constants.h:216
Definition: diguy_constants.h:529
Definition: diguy_constants.h:1168
Definition: diguy_constants.h:507
Definition: diguy_constants.h:879
Definition: diguy_constants.h:1529
Definition: diguy_constants.h:448
Definition: diguy_constants.h:537
Definition: diguy_constants.h:882
Definition: diguy_constants.h:924
Definition: diguy_constants.h:271
Definition: diguy_constants.h:128
Definition: diguy_constants.h:1242
Definition: diguy_constants.h:1521
Definition: diguy_constants.h:643
Definition: diguy_constants.h:978
Definition: diguy_constants.h:539
Definition: diguy_constants.h:287
Definition: diguy_constants.h:916
Definition: diguy_constants.h:175
diguyCharacterClass diguy_character_class_enum_from_string(const char *string)
Definition: diguy_constants.h:793
Definition: diguy_constants.h:464
diguyNavMeshPathPlannerCostMask
DI-Guy navigation mesh path planner cost masks.
Definition: diguy_constants.h:1594
Definition: diguy_constants.h:925
Definition: diguy_constants.h:953
Definition: diguy_constants.h:576
Definition: diguy_constants.h:511
Definition: diguy_constants.h:350
diguyViewCameraProjectionMode
DI-Guy camera projection modes.
Definition: diguy_constants.h:296
Definition: diguy_constants.h:540
Definition: diguy_constants.h:1527
Definition: diguy_constants.h:272
Definition: diguy_constants.h:892
Definition: diguy_constants.h:314
Definition: diguy_constants.h:982
Definition: diguy_constants.h:1385
Definition: diguy_constants.h:723
Definition: diguy_constants.h:926
Definition: diguy_constants.h:899
Definition: diguy_constants.h:1640
Definition: diguy_constants.h:399
Definition: diguy_constants.h:1571
Definition: diguy_constants.h:1582
Definition: diguy_constants.h:250
Definition: diguy_constants.h:901
Definition: diguy_constants.h:1037
diguyChainCrossSection
This enumeration lists which cross-sections are available for DI-Guy chain simulation visuals...
Definition: diguy_constants.h:821
Definition: diguy_constants.h:466
Definition: diguy_constants.h:510
Definition: diguy_constants.h:199
Definition: diguy_constants.h:489
Definition: diguy_constants.h:355
Definition: diguy_constants.h:1089
Definition: diguy_constants.h:1784
Definition: diguy_constants.h:528
Definition: diguy_constants.h:273
Definition: diguy_constants.h:214
Definition: diguy_constants.h:579
Definition: diguy_constants.h:890
Definition: diguy_constants.h:1632
Definition: diguy_constants.h:459
Definition: diguy_constants.h:980
Definition: diguy_constants.h:960
Definition: diguy_constants.h:455
Definition: diguy_constants.h:1781
Definition: diguy_constants.h:299
Definition: diguy_constants.h:851
Definition: diguy_constants.h:1638
Definition: diguy_constants.h:559
Definition: diguy_constants.h:217
Definition: diguy_constants.h:881
Definition: diguy_constants.h:720
Definition: diguy_constants.h:955
Definition: diguy_constants.h:722
Definition: diguy_constants.h:482
Definition: diguy_constants.h:1629
Definition: diguy_constants.h:718
Definition: diguy_constants.h:1599
diguyRenderPassFlags
DI-Guy renderer pass masks, set via diguyApp::set_render_pass_flags().
Definition: diguy_constants.h:395
Definition: diguy_constants.h:1167
Definition: diguy_constants.h:1442
Definition: diguy_constants.h:129
Definition: diguy_constants.h:1259
Definition: diguy_constants.h:232
Definition: diguy_constants.h:1443
Definition: diguy_constants.h:398
Definition: diguy_constants.h:954
Definition: diguy_constants.h:1258
diguySpeedUnits
This enumeration lists units of speed that can be passed to some DI-Guy API functions.
Definition: diguy_constants.h:1721
Definition: diguy_constants.h:883
Definition: diguy_constants.h:1229
Definition: diguy_constants.h:1256
diguyViewCameraMoveMode
DI-Guy camera move modes.
Definition: diguy_constants.h:266
Definition: diguy_constants.h:981
diguyMuzzle
This is an enumeration of the different muzzles that can be specified to various DI-Guy function call...
Definition: diguy_constants.h:230
Definition: diguy_constants.h:484
Definition: diguy_constants.h:740
Definition: diguy_constants.h:1391
Definition: diguy_constants.h:725
diguyScenarioMergeInitialSettings
This enumeration tells DI-Guy what values to use as defaults when the diguyScenario::create_merge_set...
Definition: diguy_constants.h:738
Definition: diguy_constants.h:952
Definition: diguy_constants.h:757
Definition: diguy_constants.h:463
Definition: diguy_constants.h:333
Definition: diguy_constants.h:1578
Definition: diguy_constants.h:1802
Definition: diguy_constants.h:1695
Definition: diguy_constants.h:1210
Definition: diguy_constants.h:268
Definition: diguy_constants.h:921
Definition: diguy_constants.h:854
Definition: diguy_constants.h:434
Definition: diguy_constants.h:332
Definition: diguy_constants.h:863
Definition: diguy_constants.h:335
Definition: diguy_constants.h:251
Definition: diguy_constants.h:1600
Definition: diguy_constants.h:862
Definition: diguy_constants.h:509
Definition: diguy_constants.h:1231
Definition: diguy_constants.h:792
Definition: diguy_constants.h:1788
Definition: diguy_constants.h:1389
Definition: diguy_constants.h:1206
Definition: diguy_constants.h:1581
Definition: diguy_constants.h:1335
Definition: diguy_constants.h:435
Definition: diguy_constants.h:558
diguyCharacterSimulator
This enumeration lists the ways that data can be generated for DI-Guy characters. ...
Definition: diguy_constants.h:1736
Definition: diguy_constants.h:298
Definition: diguy_constants.h:1772
Definition: diguy_constants.h:1776
diguyCharacterClass
DI-Guy character classes.
Definition: diguy_constants.h:145
Definition: diguy_constants.h:357
Definition: diguy_constants.h:975
diguyStaticAvoidanceMethod
This enumeration lists the methods available for collision detection and avoidance against static obj...
Definition: diguy_constants.h:1064
const char * diguy_playback_mode_to_string(diguyScenarioPlaybackMode playback_mode)
Definition: diguy_constants.h:1597
Definition: diguy_constants.h:462
Definition: diguy_constants.h:452
Definition: diguy_constants.h:403
diguyViewFogMode
DI-Guy fog modes.
Definition: diguy_constants.h:311
Definition: diguy_constants.h:887
Definition: diguy_constants.h:889
Definition: diguy_constants.h:894
Definition: diguy_constants.h:504
diguyRegionPaintbrushMode
DI-Guy region painting modes.
Definition: diguy_constants.h:1440
Definition: diguy_constants.h:1444
Definition: diguy_constants.h:973
Definition: diguy_constants.h:1580
Definition: diguy_constants.h:933
Definition: diguy_constants.h:234
Definition: diguy_constants.h:153
Definition: diguy_constants.h:235
Definition: diguy_constants.h:1390
Definition: diguy_constants.h:1257
Definition: diguy_constants.h:1224
Definition: diguy_constants.h:963
diguyNavPathSearchResults
Errors various nav path functions may return.
Definition: diguy_constants.h:1221
Definition: diguy_constants.h:1119
Definition: diguy_constants.h:127
Definition: diguy_constants.h:857
Definition: diguy_constants.h:724
Definition: diguy_constants.h:1626
Definition: diguy_constants.h:501
Definition: diguy_constants.h:1387
Definition: diguy_constants.h:1260
Definition: diguy_constants.h:618
Definition: diguy_constants.h:1667
Definition: diguy_constants.h:270
Definition: diguy_constants.h:477
Definition: diguy_constants.h:506
Definition: diguy_constants.h:135
Definition: diguy_constants.h:1225
Definition: diguy_constants.h:527
Definition: diguy_constants.h:1149
Definition: diguy_constants.h:404
Definition: diguy_constants.h:1620
Definition: diguy_constants.h:996
const char * diguy_input_mode_to_string(diguyScenarioInputMode input_mode)
Definition: diguy_constants.h:934
Definition: diguy_constants.h:844
Definition: diguy_constants.h:557
diguyImpactType
This is an enumeration of the different impact types that are found in diguyImpact.
Definition: diguy_constants.h:247
diguyTextureUniformPatchLocations
This enumeration lists various types of texture atlases.
Definition: diguy_constants.h:184
Definition: diguy_constants.h:848
Definition: diguy_constants.h:483
diguyScenarioWindowId
This enumeration lists the windows that can be shown in the DI-Guy Scenario application.
Definition: diguy_constants.h:876
Definition: diguy_constants.h:356
Definition: diguy_constants.h:553
Definition: diguy_constants.h:134
Definition: diguy_constants.h:300
Definition: diguy_constants.h:958
Definition: diguy_constants.h:983
const char * diguy_character_class_enum_to_string(diguyCharacterClass character_class)
Definition: diguy_constants.h:1326
Definition: diguy_constants.h:400
diguyScenarioPlaybackMode diguy_playback_mode_from_string(const char *string)
Definition: diguy_constants.h:1085
Definition: diguy_constants.h:972
Definition: diguy_constants.h:1117
Definition: diguy_constants.h:479
Definition: diguy_constants.h:556
Definition: diguy_constants.h:1445
Definition: diguy_constants.h:1779
Definition: diguy_constants.h:932
Definition: diguy_constants.h:928
Definition: diguy_constants.h:285
Definition: diguy_constants.h:1081
const char * diguy_subregion_index_to_string(diguySubregionIndex subregion_index)
diguyAgentRepulsionZone
DI-Guy agent repulsion zones for characters with dynamic avoidance method DIGUY_DYNAMIC_AVOIDANCE_MET...
Definition: diguy_constants.h:1253
Definition: diguy_constants.h:1790
Definition: diguy_constants.h:1152
Definition: diguy_constants.h:859
Definition: diguy_constants.h:1118
Definition: diguy_constants.h:1785
Definition: diguy_constants.h:898
Definition: diguy_constants.h:174
Definition: diguy_constants.h:850
Definition: diguy_constants.h:1328
diguyAgentUntrapMethod
DI-Guy agent untrap methods.
Definition: diguy_constants.h:1383
Definition: diguy_constants.h:1525
Definition: diguy_constants.h:1205
Definition: diguy_constants.h:1757
Definition: diguy_constants.h:997
Definition: diguy_constants.h:319
Definition: diguy_constants.h:640
Definition: diguy_constants.h:1807
Definition: diguy_constants.h:977
Definition: diguy_constants.h:301
Definition: diguy_constants.h:508
Definition: diguy_constants.h:919
Definition: diguy_constants.h:125
Definition: diguy_constants.h:237
Definition: diguy_constants.h:721
Definition: diguy_constants.h:405
Definition: diguy_constants.h:642
Definition: diguy_constants.h:918
Definition: diguy_constants.h:286
Definition: diguy_constants.h:979
Definition: diguy_constants.h:233
Definition: diguy_constants.h:249
Definition: diguy_constants.h:1255
Definition: diguy_constants.h:1775
diguyViewCameraServoTarget
Aspects of the DI-Guy camera that can be servoed.
Definition: diguy_constants.h:283
Definition: diguy_constants.h:538
Definition: diguy_constants.h:852
Definition: diguy_constants.h:187
Definition: diguy_constants.h:1598
Definition: diguy_constants.h:920
Definition: diguy_constants.h:795
Definition: diguy_constants.h:1740
Definition: diguy_constants.h:218
Definition: diguy_constants.h:1223
Definition: diguy_constants.h:967
Definition: diguy_constants.h:1639
Definition: diguy_constants.h:1204
diguyCrowdProfileSelectionMethod
Selection methods for records from crowd profiles.
Definition: diguy_constants.h:1239
Definition: diguy_constants.h:880
diguyNavPathDirection
Directions a character can be traveling on a navigation path (nav path).
Definition: diguy_constants.h:1165
Definition: diguy_constants.h:1084
Definition: diguy_constants.h:1569
diguyParameterComparison
This is an enumeration of the different parameter comparison options that can be specified to various...
Definition: diguy_constants.h:212
Definition: diguy_constants.h:951
Definition: diguy_constants.h:149
Definition: diguy_constants.h:641
diguyScenarioMergeFlag
This enumeration is used for various variables in the diguyScenarioMergeSettings object.
Definition: diguy_constants.h:716
Definition: diguy_constants.h:937
Definition: diguy_constants.h:1573
Definition: diguy_constants.h:353
Definition: diguy_constants.h:542
Definition: diguy_constants.h:1083
Definition: diguy_constants.h:555
Definition: diguy_constants.h:617
Definition: diguy_constants.h:1230
Definition: diguy_constants.h:959
Definition: diguy_constants.h:1067
Definition: diguy_constants.h:402
Definition: diguy_constants.h:480
Definition: diguy_constants.h:397
Definition: diguy_constants.h:1623
diguyTacticsUnitType
Definition: diguy_constants.h:1618
Definition: diguy_constants.h:156
Definition: diguy_constants.h:1535
Definition: diguy_constants.h:845
Definition: diguy_constants.h:200
diguyCallbackReturn
DI-Guy callbacks return a value of type diguyCallbackReturn, which will be DIGUY_CALLBACK_STOP or DIG...
Definition: diguy_constants.h:94
Definition: diguy_constants.h:269
Definition: diguy_constants.h:502
Definition: diguy_constants.h:460
Definition: diguy_constants.h:1742
Definition: diguy_constants.h:914
diguyNavPathAtEnd
What a character following a nav path will do once it reaches the end of a nav path.
Definition: diguy_constants.h:1201
Definition: diguy_constants.h:1783
Definition: diguy_constants.h:531
diguyDynamicAvoidanceMethod
This enumeration lists the methods available for collision detection and avoidance against dynamic ob...
Definition: diguy_constants.h:1035
diguyCharacterMode
This is an enumeration of the different modes a DI-Guy character can be in.
Definition: diguy_constants.h:197
Definition: diguy_constants.h:895
diguyVisibleFlag
This enumeration lists the visibility options for various objects in the DI-Guy Scenario environment...
Definition: diguy_constants.h:574
Definition: diguy_constants.h:861
Definition: diguy_constants.h:1333
Definition: diguy_constants.h:451
diguyScenarioEditAction
This enumeration lists different types of editing actions that can be performed in the DI-Guy Scenari...
Definition: diguy_constants.h:911
Definition: diguy_constants.h:847
Definition: diguy_constants.h:578
Definition: diguy_constants.h:1332
Definition: diguy_constants.h:526
diguyVehicleSimulationMode diguy_vehicle_simulation_mode_from_string(const char *string)
Definition: diguy_constants.h:478
Definition: diguy_constants.h:172
Definition: diguy_constants.h:896
Definition: diguy_constants.h:1151
diguyAuthorVisualUpdateFlag
This enumeration lists which parts of a visual object may need to be updated.
Definition: diguy_constants.h:615
Definition: diguy_constants.h:1838
Definition: diguy_constants.h:334
Definition: diguy_constants.h:215
Definition: diguy_constants.h:173
Definition: diguy_constants.h:1203
Definition: diguy_constants.h:536
Definition: diguy_constants.h:554
Definition: diguy_constants.h:503
Definition: diguy_constants.h:970
Definition: diguy_constants.h:96
Definition: diguy_constants.h:126
Definition: diguy_constants.h:956
const char * diguy_vehicle_simulation_mode_to_string(diguyVehicleSimulationMode mode)
Definition: diguy_constants.h:1207
Definition: diguy_constants.h:791
diguyCharacterAppearanceTypes
DI-Guy character appearance query API, this is for diguyCharacter::get_num_appearances_of_type() ...
Definition: diguy_constants.h:169
diguyPhysicsSimulationMode
This enumeration lists the modes that a DI-Guy character physics sim can be in, when the character si...
Definition: diguy_constants.h:1753
Definition: diguy_constants.h:171
Definition: diguy_constants.h:1331
Definition: diguy_constants.h:1038
Definition: diguy_constants.h:1624
Definition: diguy_constants.h:1227
Definition: diguy_constants.h:1696
Definition: diguy_constants.h:888
Definition: diguy_constants.h:1170
diguyScenarioPlaybackMode
This enumeration identifies which playback mode time should follow.
Definition: diguy_constants.h:551
Definition: diguy_constants.h:1633
Definition: diguy_constants.h:825
Definition: diguy_constants.h:1725
Definition: diguy_constants.h:151
Definition: diguy_constants.h:354
Definition: diguy_constants.h:316
Definition: diguy_constants.h:351
diguyScenarioMergeResetFlag
This enumeration tells DI-Guy which scenario elements should be reset after the merge is complete...
Definition: diguy_constants.h:755
diguyCharacterFeelerTurnDirection
This enumeration lists the turn directions a feeler can use when its status is DIGUY_CHARACTER_FEELER...
Definition: diguy_constants.h:1147
Definition: diguy_constants.h:458
Definition: diguy_constants.h:1531
Definition: diguy_constants.h:758
Definition: diguy_constants.h:741
Definition: diguy_constants.h:315
Definition: diguy_constants.h:317
Definition: diguy_constants.h:1241
Definition: diguy_constants.h:1666
Definition: diguy_constants.h:456
Definition: diguy_constants.h:1327
Definition: diguy_constants.h:968
Definition: diguy_constants.h:915
Definition: diguy_constants.h:719
Definition: diguy_constants.h:347
Definition: diguy_constants.h:1741
Definition: diguy_constants.h:318
diguyDatetimeNetworkMode
DIGUY_DATETIME_NETWORK_MODE_LOCAL_ONLY
Definition: diguy_constants.h:1692
Definition: diguy_constants.h:500
diguyPhysicsCollisionGroup
This enumeration lists the collision groups that a DI-Guy physics sim object can be in...
Definition: diguy_constants.h:1769
Definition: diguy_constants.h:619
Definition: diguy_constants.h:313
Definition: diguy_constants.h:1837
Definition: diguy_constants.h:1448
Definition: diguy_constants.h:533
Definition: diguy_constants.h:1533
Definition: diguy_constants.h:152
Definition: diguy_constants.h:1088
Definition: diguy_constants.h:1771
Definition: diguy_constants.h:1449
Definition: diguy_constants.h:147
Definition: diguy_constants.h:253
Definition: diguy_constants.h:131
Definition: diguy_constants.h:897
Definition: diguy_constants.h:621
Definition: diguy_constants.h:1577
Definition: diguy_constants.h:1694
Definition: diguy_constants.h:1086
Definition: diguy_constants.h:132
Definition: diguy_constants.h:453
Definition: diguy_constants.h:823
Definition: diguy_constants.h:1778
Definition: diguy_constants.h:512
Definition: diguy_constants.h:644
Definition: diguy_constants.h:436
Definition: diguy_constants.h:450
Definition: diguy_constants.h:1330
Definition: diguy_constants.h:487
Definition: diguy_constants.h:1226
Definition: diguy_constants.h:885
diguyAgentBehavior
DI-Guy agent behaviors.
Definition: diguy_constants.h:1324
Definition: diguy_constants.h:1806
Definition: diguy_constants.h:620
Definition: diguy_constants.h:532
Definition: diguy_constants.h:534
Definition: diguy_constants.h:917
Definition: diguy_constants.h:1635
Definition: diguy_constants.h:1576
Definition: diguy_constants.h:1786
Definition: diguy_constants.h:1388
Definition: diguy_constants.h:966
diguyDatetimeAdvanceMethod
This enumeration lists the methods in which the datetime of a scenario can advance.
Definition: diguy_constants.h:1663
Definition: diguy_constants.h:1625
Definition: diguy_constants.h:969
Definition: diguy_constants.h:1446
Definition: diguy_constants.h:962
Definition: diguy_constants.h:486
Definition: diguy_constants.h:1334
int diguyCharacterFeelerNumber
This enumeration lists the standard feelers used for static object avoidance used by I-Guy and agent ...
Definition: diguy_constants.h:1077
diguySubregionMask
DI-Guy subregions mask values.
Definition: diguy_constants.h:1567
Definition: diguy_constants.h:1212
Definition: diguy_constants.h:236
diguyScenarioInputMode
This enumeration lists the input modes available in DI-Guy Scenario views (3D windows) and for DI-Guy...
Definition: diguy_constants.h:842
diguyVehicleSimulationMode
This enumeration lists the modes that the DI-Guy vehicle simulator can be in.
Definition: diguy_constants.h:1800
Definition: diguy_constants.h:884
Definition: diguy_constants.h:1724
Definition: diguy_constants.h:1636
diguyCharacterFeelerStatus
This enumeration lists the state character feelers may be in.
Definition: diguy_constants.h:1115
Definition: diguy_constants.h:976
Definition: diguy_constants.h:1756
Definition: diguy_constants.h:893
Definition: diguy_constants.h:1780
Definition: diguy_constants.h:488