DI-Guy SDK Documentation  13.1
diguy_constants.h
Go to the documentation of this file.
1 
2 /*********************************************************************
3  ** Copyright (c) 1992-2015 VT MAK
4  ** All rights reserved.
5  *********************************************************************/
6 
7 /*********************************************************************
8  **
9  *t DI-Guy API, Constants and Enumerations
10  **
11  ** The API is subject to change in future releases.
12  **
13  */
14 
15 #ifndef __diguy_constants_H
16 #define __diguy_constants_H
17 
18 #ifdef SWIG
19 %module diguy_constants
20 #else
21 #define CPLUSPLUS_ONLY
22 #endif
23 
24 #ifdef CPLUSPLUS_ONLY
25 #include <declspec_bdiutil.h>
26 #endif
27 
28 
29 /*****************************************************************************/
30 /*****************************************************************************/
39 #define DIGUY_VERSION_STRING "13.1.0"
40 
41 #define DIGUY_VERSION_MAJOR 13
42 #define DIGUY_VERSION_MINOR 1
43 #define DIGUY_VERSION_POINT 0
44 #define DIGUY_VERSION_BUGFIX ""
45 
46 
47 #define DIGUY_REQUIRED_DATA_VERSION_MAJOR 13
48 #define DIGUY_REQUIRED_DATA_VERSION_MINOR 0
49 #define DIGUY_REQUIRED_DATA_VERSION_POINT 0
50 
51 
52 /*****************************************************************************/
53 /*****************************************************************************/
57 /*****************************************************************************/
58 /*****************************************************************************/
59 
60 
61 /****************************************************************************/
62 /*l
63  *b Description:
64  **
65  ** DI-Guy radians and degrees conversion factors.
66  **
67  */
68 #define DIGUY_PI (3.14159265358979323f)
69 
70 #define DIGUY_RAD2DEG (180.0f / DIGUY_PI)
71 #define DIGUY_DEG2RAD (DIGUY_PI / 180.0f)
72 
73 
74 /****************************************************************************/
75 /*l
76  *b Description:
77  **
78  ** This value is a magic number that, when passed to certain functions,
79  ** means that the function should use or compute an appropriate default
80  ** value for the argument.
81  **
82  */
83 #define DIGUY_DEFAULT_FLOAT (-16384.0f)
84 
85 
86 /****************************************************************************/
87 /*l
88  *b Description:
89  **
90  ** This value is a magic number that, when passed to certain functions,
91  ** means that the function should use or compute an appropriate default
92  ** value for the argument.
93  **
94  */
95 #define DIGUY_DEFAULT_INT (-16384)
96 
97 
98 /*****************************************************************************/
99 /*****************************************************************************/
103 /*****************************************************************************/
104 /*****************************************************************************/
105 
106 
107 /****************************************************************************/
108 /*l
109  *b Description:
110  **
111  ** DI-Guy callbacks return a value of type diguyCallbackReturn,
112  ** which will be DIGUY_CALLBACK_STOP or DIGUY_CALLBACK_CONTINUE.
113  ** If the callback returns DIGUY_CALLBACK_STOP, the default handler
114  ** of the function will not be called; the callback is asserting
115  ** that it has done everything necessary for the function call.
116  ** If the callback returns DIGUY_CALLBACK_CONTINUE, the default
117  ** handler for the function will be called after the callback.
118  **
119  */
120 typedef enum
121 {
124 
126 
127 
128 /****************************************************************************/
129 /*l
130  *b Description:
131  **
132  ** DI-Guy character classes. This is a high-level description of the
133  ** type of thing a character represents.
134  **
135  */
136 typedef enum
137 {
149 
152 /****************************************************************************/
153 /*l
154  *b Description:
155  **
156  ** DI-Guy character appearance query API, this is for diguyCharacter::get_num_appearances_of_type()
157  **
158  */
160 {
166 };
168 /****************************************************************************/
169 /*l
170  *b Description:
171  **
172  ** This is an enumeration of the different modes a
173  ** DI-Guy character can be in. See diguyCharacter::get_action_mode(),
174  ** diguyCharacter::get_position_mode().
175  */
176 typedef enum
177 {
181 
183 
185 /****************************************************************************/
186 /*l
187  *b Description:
188  **
189  ** This is an enumeration of the different parameter comparison
190  ** options that can be specified to various DI-Guy function calls,
191  ** such as diguyCharacter::get_action_from_description().
192  */
193 typedef enum
194 {
204 /****************************************************************************/
205 /*l
206  *b Description:
207  **
208  ** This is an enumeration of the different muzzles that can
209  ** be specified to various DI-Guy function calls, such as
210  ** diguyCharacter::set_default_weapon_muzzle() and
211  ** diguyCharacter::fire_weapon().
212  */
213 typedef enum
214 {
224 
225 /****************************************************************************/
226 /*l
227  *b Description:
228  **
229  ** This is an enumeration of the different impact types that are found
230  ** in diguyImpact.
231  */
232 typedef enum
233 {
242 
243 /****************************************************************************/
244 /*l
245  *b Description:
246  **
247  ** DI-Guy camera move modes.
248  **
249  ** In DI-Guy Scenario in Camera Input Mode, the movement
250  ** mode of the camera determines what will happen when
251  ** mouse buttons are pressed in the view window.
252  */
253 typedef enum
254 {
259 
261 
262 
263 /****************************************************************************/
264 /*l
265  *b Description:
266  **
267  ** DI-Guy camera projection modes.
268  **
269  */
270 typedef enum
271 {
276 
278 
279 
280 /****************************************************************************/
281 /*l
282  *b Description:
283  **
284  ** DI-Guy fog modes.
285  **
286  */
287 typedef enum
288 {
296 
298 
299 
300 /****************************************************************************/
301 /*l
302  *b Description:
303  **
304  ** DI-Guy history types.
305  **
306  */
307 typedef enum
308 {
314 
316 
317 
318 /****************************************************************************/
319 /*l
320  *b Description:
321  **
322  ** DI-Guy renderer class ids.
323  **
324  */
325 enum
326 {
327  DIGUY_CLASSID_START = 0x400,
328 
332 
338 } ;
339 
340 
341 /****************************************************************************/
342 /*l
343  *b Description:
344  **
345  ** DI-Guy renderer pass masks, set via diguyApp::set_render_pass_flags().
346  *>
347  *i DIGUY_RENDER_PASS_SKIP_PARTICLES
348  **
349  ** Particle rendering is skipped.
350  **
351  *i DIGUY_RENDER_PASS_USE_STORED_LOD_SETTINGS
352  **
353  ** LOD recalculation is skipped (for built-in OGL pipeline).
354  **
355  *i DIGUY_RENDER_PASS_REFLECTION
356  **
357  ** Internal use; water reflection objects are skipped.
358  **
359  *i DIGUY_RENDER_PASS_SHADOW
360  **
361  ** Shadow pass assumed; water, environmental effects are skipped.
362  **
363  *i DIGUY_RENDER_PASS_INTERSECTION
364  **
365  ** Pick pass assumed; link and shape colors are sent.
366  *<
367  */
369 {
372  DIGUY_RENDER_PASS_REFLECTION = 0x00000004,
373  DIGUY_RENDER_PASS_SHADOW = 0x00000008,
374  DIGUY_RENDER_PASS_INTERSECTION = 0x00000010
375 };
376 
378 
379 /*****************************************************************************/
380 /*****************************************************************************/
403 typedef enum
404 {
412 /****************************************************************************/
413 /*l
414  *b Description:
415  **
416  ** DI-Guy error codes.
417  **
418  */
419 enum
420 {
421  DIGUY_ERROR = -1,
440 };
441 
442 
443 /****************************************************************************/
444 /*l
445  *b Description:
446  **
447  ** DI-Guy vector indices.
448  **
449  */
450 enum
451 {
458  DIGUY_VEC_RX,
459  DIGUY_VEC_RY,
460 
461  DIGUY_VEC_QX = 0,
462  DIGUY_VEC_QY,
463  DIGUY_VEC_QZ,
465 };
466 
467 
468 /****************************************************************************/
469 /*l
470  *b Description:
471  **
472  ** DI-Guy graphics joint types.
473  **
474  */
475 typedef enum
476 {
490 
492 
493 
494 /****************************************************************************/
495 /*l
496  *b Description:
497  **
498  ** When a scene is rendered in order to select a DI-Guy object from,
499  ** say, a mouse click, the type of object selected is identified by
500  ** this enumeration.
501  **
502  */
503 enum
504 {
522 };
525 /****************************************************************************/
526 /*l
527  *b Description:
528  **
529  ** This enumeration identifies which playback mode time should follow.
530  ** Only valid inside DI-Guy Scenario.
531  */
532 typedef enum
533 {
543 
545 
546 BDI_DECLSPEC_bdiutil const char* diguy_playback_mode_to_string(diguyScenarioPlaybackMode playback_mode);
547 BDI_DECLSPEC_bdiutil diguyScenarioPlaybackMode diguy_playback_mode_from_string(const char* string);
548 
549 
550 /****************************************************************************/
551 /*l
552  *b Description:
553  **
554  ** This enumeration lists the visibility options for various objects
555  ** in the DI-Guy Scenario environment.
556  */
557 typedef enum
558 {
559  DIGUY_VISIBLE_NONE = 0,
567 /****************************************************************************/
568 /*l
569  *b Description:
570  **
571  ** This enumeration lists which parts of a visual object may need to be
572  ** updated. The values can be or-ed together.
573  **
574  *i DIGUY_GRAPHICS_VISUAL_UPDATE_NONE
575  **
576  ** Nothing in the visual needs to be updated.
577  **
578  *i DIGUY_GRAPHICS_VISUAL_UPDATE_GEOMETRY
579  **
580  ** The overall geometry of the visual needs to be updated. This means
581  ** that vertices and other parts of polygons need to be recalculated.
582  **
583  *i DIGUY_GRAPHICS_VISUAL_UPDATE_POSITION
584  **
585  ** The position and/or orientation of the visual needs to be updated.
586  ** The overall geometry of the visual (polygons, lines, etc.) remains
587  ** unchanged.
588  **
589  *i DIGUY_GRAPHICS_VISUAL_UPDATE_MATERIAL
590  **
591  ** The material of the visual needs to be updated. This can include
592  ** color, fill options, line width, etc. The geometry and position of
593  ** the visual remain the same.
594  **
595  *i DIGUY_GRAPHICS_VISUAL_UPDATE_ALL
596  **
597  ** All aspects of the visual need to be updated.
598  **
599  */
600 typedef enum
601 {
607 
609 
610 
611 /****************************************************************************/
612 /*l
613  *b Description:
614  **
615  ** DI-Guy Euler angle orders.
616  **
617  */
618 typedef enum
619 {
627 
629 
630 
631 /****************************************************************************/
632 /*l
633  *b Description:
634  **
635  ** This enumeration is used for various variables in the
636  ** diguyScenarioMergeSettings object. In general it tells
637  ** the diguyScenario::merge() function whether to load
638  ** objects of a specified type at all, and if so, what to
639  ** do if a merged object conflicts with an existing object.
640  **
641  *i DIGUY_MERGE_FLAG_DONT_MERGE
642  **
643  ** Objects in the merged scenario are not loaded.
644  **
645  *i DIGUY_MERGE_FLAG_OVERWRITE_EXISTING
646  **
647  ** Objects in the merged scenario are loaded.
648  **
649  ** In the case of a conflict, the exiting object is overwritten
650  ** with the values of the merge object.
651  **
652  *i DIGUY_MERGE_FLAG_KEEP_BOTH
653  **
654  ** Objects in the merged scenario are loaded.
655  **
656  ** In the case of a conflict, both the exiting object
657  ** and the merge object are kept, with no modifications.
658  ** Note that this will leave some ambiguity of referencing
659  ** objects by name. A warning will be printed.
660  **
661  ** Note that this value is here to allow for backward
662  ** compatibility; it is not recommended for general use.
663  **
664  *i DIGUY_MERGE_FLAG_KEEP_EXISTING_ONLY
665  **
666  ** Objects in the merged scenario are loaded.
667  **
668  ** In the case of a conflict, the exiting object is kept
669  ** as is and the merge object is discarded.
670  **
671  *i DIGUY_MERGE_FLAG_KEEP_EXISTING_ONLY_AND_WARN
672  **
673  ** Same as DIGUY_MERGE_FLAG_KEEP_EXISTING, but also prints
674  ** a warning.
675  **
676  *i DIGUY_MERGE_FLAG_RENAME_MERGED
677  **
678  ** Objects in the merged scenario are loaded.
679  **
680  ** In the case of a conflict, both the exiting object
681  ** and the merge object are kept, but the merged object
682  ** is renamed.
683  **
684  *i DIGUY_MERGE_FLAG_RENAME_MERGED_AND_WARN
685  **
686  ** Same as DIGUY_MERGE_FLAG_RENAME_MERGED, but also prints
687  ** a warning.
688  **
689  *i DIGUY_MERGE_FLAG_RENAME_MERGED_IF_NOT_EQUAL
690  **
691  ** Objects in the merged scenario are loaded.
692  **
693  ** In the case of a conflict, the existing object and merged
694  ** object are checked for "equality". If they are the same,
695  ** the existing object will be kept and the merge object will
696  ** be discarded. If they are different, both objects will
697  ** be kept, but the merge object will be renamed.
698  **
699  */
700 typedef enum
701 {
710 
712 
713 
714 /****************************************************************************/
715 /*l
716  *b Description:
717  **
718  ** This enumeration tells DI-Guy what values to use as defaults
719  ** when the diguyScenario::create_merge_settings() functions
720  ** is called. See the documentation for that function for
721  ** details on what the different values mean.
722  **
723  */
724 typedef enum
725 {
735 /****************************************************************************/
736 /*l
737  *b Description:
738  **
739  ** This enumeration tells DI-Guy which scenario elements should be
740  ** reset after the merge is complete.
741  **
742  */
743 typedef enum
744 {
748 
750 
751 
752 /****************************************************************************/
753 /*l
754  *b Description:
755  **
756  ** This enumeration lists the cursors returnable by the plugin
757  ** function get_cursor().
758  **
759  *i DIGUY_PLUGIN_MOUSE_CURSOR_NONE
760  **
761  ** Plugin takes responsibility for drawing cursor, if any.
762  **
763  *i DIGUY_PLUGIN_MOUSE_CURSOR_LEFT_ARROW
764  **
765  ** The standard window-system left arrow cursor is shown.
766  **
767  *i DIGUY_PLUGIN_MOUSE_CURSOR_CROSSHAIR
768  **
769  ** Crosshair (plus-shaped) cursor is shown.
770  **
771  *i DIGUY_PLUGIN_MOUSE_CURSOR_POINTING_HAND
772  **
773  ** Pointing hand cursor is shown.
774  **
775  *i DIGUY_PLUGIN_MOUSE_CURSOR_FORBIDDEN
776  **
777  ** Action forbidden cursor is shown.
778  */
779 typedef enum
780 {
790 /****************************************************************************/
791 /*l
792  *b Description:
793  **
794  ** This enumeration lists which cross-sections are available for
795  ** DI-Guy chain simulation visuals.
796  **
797  *i DIGUY_CHAIN_CROSS_SECTION_SQUARE
798  **
799  ** The square cross-section is good for tube-like visuals, such as
800  ** hoses. The normals of the square cross-section point radially
801  ** outward from the center, giving the visual a rounded, tube-like
802  ** appearance.
803  **
804  *i DIGUY_CHAIN_CROSS_SECTION_PLUS
805  **
806  ** The plus cross-section is good for thin, chain-like visuals.
807  **
808  *i DIGUY_CHAIN_CROSS_SECTION_COIL
809  **
810  ** The coil cross-section is good for wires. The chain masses are
811  ** connected by line segments.
812  */
813 typedef enum
814 {
822 /****************************************************************************/
823 /*l
824  *b Description:
825  **
826  */
827 #define DIGUY_LOAD_MANAGER_NUM_ZONES (4)
828 #define DIGUY_LOAD_MANAGER_NUM_NONVISIBLE_ZONE_INDEX (3)
831 /****************************************************************************/
832 /*l
833  *b Description:
834  **
835  ** This enumeration lists the input modes available in DI-Guy
836  ** Scenario views (3D windows) and for DI-Guy Author.
837  */
838 typedef enum
839 {
862 
863 BDI_DECLSPEC_bdiutil const char* diguy_input_mode_to_string(diguyScenarioInputMode input_mode);
864 BDI_DECLSPEC_bdiutil diguyScenarioInputMode diguy_input_mode_from_string(const char* string);
867 /****************************************************************************/
868 /*l
869  *b Description:
870  **
871  ** This enumeration lists the windows that can be shown in the
872  ** DI-Guy Scenario application.
873  */
874 typedef enum
875 {
904 /****************************************************************************/
905 /*l
906  *b Description:
907  **
908  ** This enumeration lists different types of editing actions that
909  ** can be performed in the DI-Guy Scenario application.
910  */
911 typedef enum
912 {
913  // File menu
923  // Edit menu
930 
931  // Help menu
935 
936  // number of edit actions
938 
940 
941 
942 /****************************************************************************/
943 /*l
944  *b Description:
945  **
946  ** This enumeration lists "special" (non-ASCII) keys that DI-Guy plugins
947  ** may respond to.
948  **
949  ** (These enumerations currently match the Qt 4 Qt::Key_* values.)
950  */
951 enum
952 {
953  DIGUY_SPECIAL_KEY_MIN = 0x1000000,
954  DIGUY_SPECIAL_KEY_ESC = 0x1000000,
955  DIGUY_SPECIAL_KEY_TAB = 0x1000001,
956  DIGUY_SPECIAL_KEY_BACKTAB = 0x1000002,
957  DIGUY_SPECIAL_KEY_BACKSPACE = 0x1000003,
958  DIGUY_SPECIAL_KEY_RETURN = 0x1000004,
959  DIGUY_SPECIAL_KEY_ENTER = 0x1000005,
960  DIGUY_SPECIAL_KEY_INSERT = 0x1000006,
961  DIGUY_SPECIAL_KEY_DELETE = 0x1000007,
962  DIGUY_SPECIAL_KEY_PAUSE = 0x1000008,
963  DIGUY_SPECIAL_KEY_PRINT = 0x1000009,
964  DIGUY_SPECIAL_KEY_HOME = 0x1000010,
965  DIGUY_SPECIAL_KEY_END = 0x1000011,
966  DIGUY_SPECIAL_KEY_LEFT = 0x1000012,
967  DIGUY_SPECIAL_KEY_UP = 0x1000013,
968  DIGUY_SPECIAL_KEY_RIGHT = 0x1000014,
969  DIGUY_SPECIAL_KEY_DOWN = 0x1000015,
970  DIGUY_SPECIAL_KEY_PAGE_UP = 0x1000016,
971  DIGUY_SPECIAL_KEY_PAGE_DOWN = 0x1000017,
972  DIGUY_SPECIAL_KEY_SHIFT = 0x1000020,
973 
974  DIGUY_SPECIAL_F1 = 0x1000030,
975  DIGUY_SPECIAL_F2 = 0x1000031,
976  DIGUY_SPECIAL_F3 = 0x1000032,
977  DIGUY_SPECIAL_F4 = 0x1000033,
978  DIGUY_SPECIAL_F5 = 0x1000034,
979  DIGUY_SPECIAL_F6 = 0x1000035,
980  DIGUY_SPECIAL_F7 = 0x1000036,
981  DIGUY_SPECIAL_F8 = 0x1000037,
982  DIGUY_SPECIAL_F9 = 0x1000038,
983  DIGUY_SPECIAL_F10 = 0x1000039,
984  DIGUY_SPECIAL_F11 = 0x100003A,
985  DIGUY_SPECIAL_F12 = 0x100003B,
986 
987  DIGUY_SPECIAL_KEY_MAX = 0x10000FF
988 };
989 
990 
991 /****************************************************************************/
992 /*l
993  *b Description:
994  **
995  ** DI-Guy aim algorithms.
996  **
997  */
998 typedef enum
999 {
1002 
1004 
1005 
1006 
1007 
1008 /*****************************************************************************/
1009 /*****************************************************************************/
1013 /*****************************************************************************/
1014 /*****************************************************************************/
1015 
1016 
1017 /****************************************************************************/
1018 /*l
1019  *b Description:
1020  **
1021  ** This enumeration lists the methods available for collision detection
1022  ** and avoidance against dynamic objects.
1023  **
1024  *i DIGUY_DYNAMIC_AVOIDANCE_METHOD_DISABLED
1025  **
1026  ** Dynamic objects are not detected or avoided. In effect this means
1027  ** that characters will walk through each other.
1028  **
1029  ** If a crowd is far away from the viewpoint, it is not obvious that
1030  ** this is happening. Disabling the crowd's dynamic avoidance can
1031  ** reduce the overhead of the crowd on performance.
1032  **
1033  *i DIGUY_DYNAMIC_AVOIDANCE_METHOD_REPULSION_ZONES
1034  **
1035  ** Characters are surrounded by zones of repulsion. Other characters
1036  ** that enter these zones have their position, orientation, and/or
1037  ** action changed to try to get out of the zones.
1038  **
1039  *i DIGUY_DYNAMIC_AVOIDANCE_METHOD_SIMPLE
1040  **
1041  ** This is an experimental method that is still being developed.
1042  ** It should not be used for now.
1043  */
1044 typedef enum
1045 {
1049 
1051 
1052 
1053 /****************************************************************************/
1054 /*l
1055  *b Description:
1056  **
1057  ** This enumeration lists the methods available for collision detection
1058  ** and avoidance against static objects in the environment. These are
1059  ** usually scene objects and non-moving props.
1060  **
1061  *i DIGUY_STATIC_AVOIDANCE_METHOD_DISABLED
1062  **
1063  ** Static objects are not detected or avoided. In effect this means
1064  ** that characters can walk through walls.
1065  **
1066  ** If a crowd is not near any buildings, walls, or solid objects,
1067  ** disabling static avoidance can reduce the overhead of the crowd
1068  ** on performance.
1069  **
1070  *i DIGUY_STATIC_AVOIDANCE_METHOD_FEELERS
1071  **
1072  ** The character uses 'feelers' to detect static objects and turn
1073  ** away from them.
1074  */
1075 typedef enum
1076 {
1079 
1081 
1082 
1083 /****************************************************************************/
1084 /*l
1085  *b Description:
1086  **
1087  ** This enumeration lists the standard feelers used for static object
1088  ** avoidance used by I-Guy and agent characters.
1089  */
1090 typedef int diguyCharacterFeelerNumber;
1092 enum
1097  DIGUY_CHARACTER_FEELER_L, // left
1098  DIGUY_CHARACTER_FEELER_R, // right
1099  DIGUY_CHARACTER_FEELER_BL, // back left
1100  DIGUY_CHARACTER_FEELER_BR, // back right
1101  DIGUY_CHARACTER_FEELER_B, // back
1103 };
1104 
1105 
1106 /****************************************************************************/
1107 /*l
1108  *b Description:
1109  **
1110  ** This enumeration lists the state character feelers may be in.
1111  **
1112  *i DIGUY_CHARACTER_FEELER_STATUS_NO_CONTACT
1113  **
1114  ** Feeler is not in contact with anything.
1115  **
1116  *i DIGUY_CHARACTER_FEELER_STATUS_CONTACT_TURN
1117  **
1118  ** Feeler is in contact with an object just enough to cause the
1119  ** character to begin to turn.
1120  **
1121  *i DIGUY_CHARACTER_FEELER_STATUS_CONTACT_COLLIDE
1122  **
1123  ** Feeler is in close contact with an object. The object should be
1124  ** pushing the character away.
1125  **
1126  *i DIGUY_CHARACTER_FEELER_STATUS_CONTACT_TURN_AND_COLLIDE
1127  **
1128  ** Feeler is within both turn and contact distances of an object.
1129  */
1130 typedef enum
1131 {
1136 
1138 
1139 
1140 /****************************************************************************/
1141 /*l
1142  *b Description:
1143  **
1144  ** This enumeration lists the turn directions a feeler can use when
1145  ** its status is DIGUY_CHARACTER_FEELER_STATUS_CONTACT_TURN.
1146  **
1147  *i DIGUY_CHARACTER_FEELER_TURN_DIRECTION_NONE
1148  **
1149  ** Feeler does not turn the character.
1150  **
1151  *i DIGUY_CHARACTER_FEELER_TURN_DIRECTION_L
1152  **
1153  ** Feeler turns the character to the left.
1154  **
1155  *i DIGUY_CHARACTER_FEELER_TURN_DIRECTION_R
1156  **
1157  ** Feeler turns the character to the right.
1158  **
1159  *i DIGUY_CHARACTER_FEELER_TURN_DIRECTION_L_OR_R
1160  **
1161  ** Feeler turns the character to the left or right, whichever
1162  ** will result in the turn behavior ending more quickly.
1163  */
1164 typedef enum
1166  DIGUY_CHARACTER_FEELER_TURN_DIRECTION_NONE = 0, // as string: "none"
1169  DIGUY_CHARACTER_FEELER_TURN_DIRECTION_L_OR_R // as string: "left_or_right"
1174 /****************************************************************************/
1175 /*l
1176  *b Description:
1177  **
1178  ** Directions a character can be traveling on a navigation path
1179  ** (nav path).
1180  **
1181  ** The travel behavior of agents use nav paths.
1182  **
1183  */
1184 typedef enum
1186  DIGUY_NAV_PATH_DIRECTION_UNKNOWN = 0, // as string: "unknown"
1187  DIGUY_NAV_PATH_DIRECTION_FORWARD, // as string: "forward"
1188  DIGUY_NAV_PATH_DIRECTION_BACKWARD, // as string: "backward"
1190 
1192 
1193 
1194 /****************************************************************************/
1195 /*l
1196  *b Description:
1197  **
1198  ** What a character following a nav path will do once it reaches the
1199  ** end of a nav path.
1200  **
1201  ** The travel behavior of agents use nav paths.
1202  **
1203  *i DIGUY_NAV_PATH_AT_END_REVERSE
1204  **
1205  ** Agent reverses direction on the nav path, going through waypoints
1206  ** in opposite order.
1207  **
1208  *i DIGUY_NAV_PATH_AT_END_LOOP
1209  **
1210  ** Agent's next waypoint is waypoint 0. Best when last waypoint and
1211  ** first waypoint are close to each other, as in a loop path.
1212  **
1213  *i DIGUY_NAV_PATH_AT_END_STOP
1214  **
1215  ** Stop at the end, switching to behavior none.
1216  **
1217  *i DIGUY_NAV_PATH_AT_END_TELEPORT
1218  **
1219  ** Teleport to the beginning. In general agents should be out of view
1220  ** at the beginning and end of the path, if possible.
1221  */
1222 typedef enum
1223 {
1224  DIGUY_NAV_PATH_AT_END_UNKNOWN = 0, // as string: "unknown"
1225  DIGUY_NAV_PATH_AT_END_REVERSE, // as string: "reverse"
1226  DIGUY_NAV_PATH_AT_END_LOOP, // as string: "loop"
1227  DIGUY_NAV_PATH_AT_END_STOP, // as string: "stop"
1228  DIGUY_NAV_PATH_AT_END_TELEPORT, // as string: "teleport"
1229 
1230  // internal use only
1232 
1234 
1236 
1237 
1238 /****************************************************************************/
1239 /*l
1240  *b Description:
1241  **
1242  ** Errors various nav path functions may return.
1243  */
1244 typedef enum
1245 {
1256 
1257 
1258 /****************************************************************************/
1259 /*l
1260  *b Description:
1261  **
1262  ** Selection methods for records from crowd profiles.
1263  */
1264 typedef enum
1265 {
1269 
1273 /****************************************************************************/
1274 /*l
1275  *b Description:
1276  **
1277  ** DI-Guy agent repulsion zones for characters with dynamic
1278  ** avoidance method DIGUY_DYNAMIC_AVOIDANCE_METHOD_REPULSION_ZONES.
1279  */
1280 typedef enum
1281 {
1288 
1290 
1291 
1292 /****************************************************************************/
1293 /*l
1294  *b Description:
1295  **
1296  ** DI-Guy agent behaviors.
1297  **
1298  ** Following is a short description of each behavior. See the DI-Guy AI
1299  ** documentation for more details.
1300  **
1301  *i DIGUY_AGENT_BEHAVIOR_NONE
1302  **
1303  ** Agent functionality is completely inactive. The character's actions
1304  ** are determined by its character path or direct DI-Guy API calls.
1305  **
1306  *i DIGUY_AGENT_BEHAVIOR_TRAVEL
1307  **
1308  ** Agent attempts to travel close to a path shape. Many agents can use
1309  ** the same path shape for the travel behavior.
1310  **
1311  *i DIGUY_AGENT_BEHAVIOR_PATH_FOLLOW
1312  **
1313  ** Similar to DIGUY_AGENT_BEHAVIOR_TRAVEL, but agent follows a
1314  ** character path instead of a path shape, and attempts to match the
1315  ** timing of the character path in addition to the path shape. If the
1316  ** agent is interrupted from the path, it will attempt to resume it
1317  ** where it left off.
1318  **
1319  *i DIGUY_AGENT_BEHAVIOR_WANDER
1320  **
1321  ** Agent wanders a region. In this case wander means it will select a
1322  ** random point within the region and move close to it, and then wait
1323  ** there for a period of time before selecting a new point in the
1324  ** region.
1325  **
1326  *i DIGUY_AGENT_BEHAVIOR_MINGLE
1327  **
1328  ** Similar to wander, but agents attempt to move together to various
1329  ** places in the region.
1330  **
1331  *i DIGUY_AGENT_BEHAVIOR_FLEE
1332  **
1333  ** Agent attempts to move away from a specified character or point.
1334  **
1335  *i DIGUY_AGENT_BEHAVIOR_PURSUE
1336  **
1337  ** Agent attempts to stay close to a specified character or member of a
1338  ** group.
1339  **
1340  *i DIGUY_AGENT_BEHAVIOR_ATTACK
1341  **
1342  ** Similar to pursue, but once agents are close enough they will attack
1343  ** the target.
1344  **
1345  *i DIGUY_AGENT_BEHAVIOR_IDLE
1346  **
1347  ** Agent has no particular automatic behavior; it follows its path or
1348  ** moves toward its desired position as set by
1349  ** diguyCharacter::set_desired_position(). It will affect other agents
1350  ** in its crowd, and if pushed away from its desired position it will
1351  ** move back to it.
1352  */
1353 typedef enum
1354 {
1355  DIGUY_AGENT_BEHAVIOR_UNKNOWN = -1, // as string: "unknown"
1356  DIGUY_AGENT_BEHAVIOR_NONE = 0, // as string: "none"
1357  DIGUY_AGENT_BEHAVIOR_TRAVEL, // as string: "travel"
1358  DIGUY_AGENT_BEHAVIOR_PATH_FOLLOW, // as string: "path_follow"
1359  DIGUY_AGENT_BEHAVIOR_WANDER, // as string: "wander"
1360  DIGUY_AGENT_BEHAVIOR_FLEE, // as string: "flee"
1361  DIGUY_AGENT_BEHAVIOR_PURSUE, // as string: "pursue"
1362  DIGUY_AGENT_BEHAVIOR_MINGLE, // as string: "mingle"
1363  DIGUY_AGENT_BEHAVIOR_ATTACK, // as string: "attack"
1364  DIGUY_AGENT_BEHAVIOR_IDLE, // as string: "idle"
1366 
1368 
1369 
1370 /****************************************************************************/
1371 /*l
1372  *b Description:
1373  **
1374  ** DI-Guy agent untrap methods.
1375  **
1376  ** Following is a short description of each untrap method. See the
1377  ** DI-Guy AI documentation for more details.
1378  **
1379  *i DIGUY_AGENT_UNTRAP_METHOD_NONE
1380  **
1381  ** The agent makes no attempt to become untrapped. This can result in
1382  ** the agent blindly walking into a wall until its desired position
1383  ** changes.
1384  **
1385  *i DIGUY_AGENT_UNTRAP_METHOD_NAV_PATH
1386  **
1387  ** The agent will try to create a nav path in its current region to its
1388  ** desired position. If the desired position is not inside the region,
1389  ** a valid nav path may not be able to be found.
1390  **
1391  *i DIGUY_AGENT_UNTRAP_METHOD_RANDOM_TURN
1392  **
1393  ** The agent will stop moving and turn a random amount. This minor
1394  ** course change can sometimes move a character around a small
1395  ** obstacle.
1396  **
1397  *i DIGUY_AGENT_UNTRAP_METHOD_GHOST
1398  **
1399  ** Agent feelers will stop having an effect for a short time. This
1400  ** allows the agent to walk through a wall toward its desired
1401  ** position.
1402  **
1403  *i DIGUY_AGENT_UNTRAP_METHOD_TELEPORT
1404  **
1405  ** This is an extreme method, typically used as a last resort. The
1406  ** agent abruptly teleports to its desired position.
1407  **
1408  *i DIGUY_AGENT_UNTRAP_METHOD_STOP_MOVING
1409  **
1410  ** Somewhat similar to DIGUY_AGENT_UNTRAP_METHOD_NONE, but the current
1411  ** behavior of the agent is set to none, and the agent character's
1412  ** desired position is set to its current position.
1413  */
1414 typedef enum
1415 {
1416  DIGUY_AGENT_UNTRAP_METHOD_NONE = 0, // as string: "none"
1417  DIGUY_AGENT_UNTRAP_METHOD_NAV_PATH, // as string: "nav_path"
1418  DIGUY_AGENT_UNTRAP_METHOD_RANDOM_TURN, // as string: "random_turn"
1419  DIGUY_AGENT_UNTRAP_METHOD_GHOST, // as string: "ghost"
1420  DIGUY_AGENT_UNTRAP_METHOD_TELEPORT, // as string: "teleport"
1421  DIGUY_AGENT_UNTRAP_METHOD_STOP_MOVING, // as string: "stop_moving"
1423 
1425 
1426 
1427 /****************************************************************************/
1428 /*l
1429  *b Description:
1430  **
1431  ** DI-Guy region painting modes.
1432  **
1433  ** Painting modes identify what happens when a region paintbrush is used
1434  ** in some of the DI-Guy input modes.
1435  **
1436  *i DIGUY_REGION_PAINTBRUSH_MODE_ADDITIVE
1437  **
1438  ** Painting will add area to the current subregion. This may end up
1439  ** adding area to the base subregion, as well, as it contains at
1440  ** least the areas of all subregions.
1441  **
1442  *i DIGUY_REGION_PAINTBRUSH_MODE_ERASE
1443  **
1444  ** Painting will remove area from the current subregion. If the base
1445  ** subregion is erased, all matching areas in other subregions will be
1446  ** erased, as well.
1447  **
1448  *i DIGUY_REGION_PAINTBRUSH_MODE_UNGROUND_CLAMP
1449  **
1450  ** Painting will remove area from the current subregion, will also remove
1451  ** the height value from the region and the next time the area is painted
1452  ** it will adopt the height values of the new paint command.
1453  **
1454  *i DIGUY_REGION_PAINTBRUSH_MODE_MOVE_MESH
1455  **
1456  ** Moves the mesh to a new location in space and re-ground clamps
1457  **
1458  *i DIGUY_REGION_PAINTBRUSH_MODE_REACHABLE
1459  **
1460  ** Painting reachable will indicate that this is a spot the path planner
1461  ** should be willing to traverse. Erasing Reachable colors the spot black
1462  ** and indicates that it's not crossable or paint-able.
1463  **
1464  *i DIGUY_REGION_PAINTBRUSH_INTERNAL_MODE_UPDATE_BEHAVIOR_PATH
1465  **
1466  ** Internal use only.
1467  **
1468  *i DIGUY_REGION_PAINTBRUSH_INTERNAL_MODE_REPLACE
1469  **
1470  ** Internal use only.
1471  **
1472  */
1473 typedef enum
1474 {
1483 
1485 
1486 
1487 /****************************************************************************/
1488 /*l
1489  *b Description:
1490  **
1491  ** DI-Guy subregions.
1492  **
1493  ** Regions are irregularly shaped areas in the scene that can be used
1494  ** in a number of ways.
1495  **
1496  ** Regions contain a number of subregions. Each subregion is represented
1497  ** by a different color, and most often the subregions are referred to
1498  ** by their color. Subregions are not mutually exclusive; a point in
1499  ** the scene may be in all of the base, populate, and green subregions,
1500  ** for example.
1501  **
1502  ** Many functions that take one subregion as an argument use the string
1503  ** name of the subregion.
1504  **
1505  ** Functions that can have multiple subregions specified use a subregion
1506  ** mask made up of diguySubregionMask values that can be or'ed together
1507  ** to indicate multiple valid subregions. See diguySubregionMask for
1508  ** more information.
1509  **
1510  *i DIGUY_SUBREGION_BASE
1511  **
1512  ** This subregion is really a "super-region", in that its bounds contain
1513  ** all of the other subregions, and possibly more.
1514  **
1515  ** If any subregion of a top-level region is expanded beyond the bounds
1516  ** of the base subregion, the base subregion will be expanded until
1517  ** it encompasses the expansion.
1518  **
1519  ** If, however, a non-base subregion is subsequently shrunk, the base
1520  ** subregion will not shrink.
1521  **
1522  ** If the base subregion is shrunk, any portion of each non-base
1523  ** subregion that is no longer in the base subregion will be removed.
1524  **
1525  *i DIGUY_SUBREGION_POPULATE
1526  **
1527  ** The subregion into which new crowd agents will be placed if the
1528  ** region is populated or repopulated. This subregion is typically
1529  ** purple.
1530  **
1531  ** DIGUY_SUBREGION_[color]
1532  **
1533  ** The "color" subregions are free to be used in any way a scenario
1534  ** designer wants. Their colors are based on their name.
1535  **
1536  *i DIGUY_SUBREGION_ROAD
1537  **
1538  ** Road subregions are commonly used as preferred subregions for vehicle
1539  ** travel, and repulsion subregions for human travel. This subregion
1540  ** is typically gray.
1541  **
1542  *i DIGUY_SUBREGION_SIDEWALK
1543  **
1544  ** Sidewalk subregions are commonly used as preferred subregions for
1545  ** human travel, and repulsion subregions for vehicles. This subregion
1546  ** is typically white.
1547  **
1548  *i DIGUY_SUBREGION_CROSSWALK
1549  **
1550  ** Humans will tend to prefer crosswalk subregions over road subregions,
1551  ** but prefer sidewalk subregions over crosswalk subregions. This
1552  ** subregion is typically a light yellow.
1553  */
1554 typedef enum
1555 {
1556  DIGUY_SUBREGION_BASE = 0, // as string: "base"
1557  DIGUY_SUBREGION_POPULATE, // as string: "populate"
1558 
1559  DIGUY_SUBREGION_RED, // as string: "red"
1560  DIGUY_SUBREGION_GREEN, // as string: "green"
1561  DIGUY_SUBREGION_BLUE, // as string: "blue"
1562  DIGUY_SUBREGION_YELLOW, // as string: "yellow"
1563  DIGUY_SUBREGION_ORANGE, // as string: "orange"
1564  DIGUY_SUBREGION_WHITE, // as string: "white"
1566  DIGUY_SUBREGION_ROAD, // as string: "road"
1567  DIGUY_SUBREGION_SIDEWALK, // as string: "sidewalk"
1568  DIGUY_SUBREGION_CROSSWALK, // as string: "crosswalk"
1573 
1575 BDI_DECLSPEC_bdiutil const char* diguy_subregion_index_to_string(diguySubregionIndex subregion_index);
1576 BDI_DECLSPEC_bdiutil diguySubregionIndex diguy_subregion_index_from_string(const char* string);
1579 /****************************************************************************/
1580 /*l
1581  *b Description:
1582  **
1583  ** DI-Guy subregions mask values.
1584  **
1585  *b Example:
1586  **
1587  ** To specify that a function can use either the red or blue subregions,
1588  ** the following syntax is used.
1589  **
1590  ** In Perl or C++:
1591  **
1592  *e DIGUY_SUBREGION_MASK_RED | DIGUY_SUBREGION_MASK_BLUE
1593  **
1594  ** In Lua:
1595  **
1596  *e bit.bor( DIGUY_SUBREGION_MASK_RED, DIGUY_SUBREGION_MASK_BLUE,...)
1597  **
1598  ** Lua does not natively support bitfields, but support is automatically
1599  ** added via the "LuaBit" library located in $(DIGUY)/bin/lua/bit.lua.
1600  */
1601 typedef enum
1602 {
1603  DIGUY_SUBREGION_MASK_NONE = 0x00000000,
1604  DIGUY_SUBREGION_MASK_BASE = 0x00000020,
1606 
1610  DIGUY_SUBREGION_MASK_YELLOW = 0x00000400,
1611  DIGUY_SUBREGION_MASK_ORANGE = 0x00000800,
1612  DIGUY_SUBREGION_MASK_WHITE = 0x00001000,
1613 
1614  DIGUY_SUBREGION_MASK_ROAD = 0x00002000,
1615  DIGUY_SUBREGION_MASK_SIDEWALK = 0x00004000,
1616  DIGUY_SUBREGION_MASK_CROSSWALK = 0x00008000,
1617 
1619 
1620 
1621 /****************************************************************************/
1622 /*l
1623  *b Description:
1624  **
1625  ** DI-Guy navigation mesh path planner cost masks.
1626  **
1627  */
1628 typedef enum
1629 {
1630  DIGUY_NAVMESH_SHORTEST_PATH = 0x00000001,
1631  DIGUY_NAVMESH_LEAST_VISIBLE = 0x00000002,
1632  DIGUY_NAVMESH_MESH_EDGE = 0x00000004,
1635 
1639 /****************************************************************************/
1640 /*
1641  * USMC chain of command:
1642  *
1643  * fire team - three individuals - corporal
1644  * squad - three teams - sergeant
1645  * platoon - three squads (usually) - lieutenant
1646  * company - three platoons - captain
1647  * battalion - three companies - lt. colonel
1648  * regiment (or brigade) - three battalions - ?
1649  * division - three regiments - ?
1650  * marine corps - three or more divisions - ?
1651  *
1652  */
1653 typedef enum
1654 {
1656 
1657  DIGUY_TACTICS_UNIT_TYPE_MARINE, // an individual
1666 
1675  DIGUY_TACTICS_UNIT_TYPE_ARMY // two or more corps
1676 
1678 
1679 
1680 /****************************************************************************/
1681 /*l
1682  *b Description:
1683  **
1684  ** This enumeration lists the methods in which the datetime of a scenario
1685  ** can advance.
1686  **
1687  *i DIGUY_DATETIME_ADVANCE_METHOD_MANUAL
1688  **
1689  ** Datetime does not advance automatically. It can only be set
1690  ** manually, e.g. by a diguyScenario::set_current_datetime() call.
1691  **
1692  *i DIGUY_DATETIME_ADVANCE_METHOD_REAL_TIME_RATE
1693  **
1694  ** Datetime advances at the same rate as realtime.
1695  **
1696  *i DIGUY_DATETIME_ADVANCE_METHOD_SIMULATION_TIME_RATE
1697  **
1698  ** Datetime advances at the same rate as simulation time.
1699  */
1700 typedef enum
1705 
1707 
1708 
1709 /****************************************************************************/
1710 /*l
1711  *b Description:
1712  **
1713  *i DIGUY_DATETIME_NETWORK_MODE_LOCAL_ONLY
1714  **
1715  ** Datetime data will be handled locally on this host. No data will be
1716  ** sent on the netword, and no data will be read from the network.
1717  **
1718  *i DIGUY_DATETIME_NETWORK_MODE_BROADCAST
1719  **
1720  ** Datetime data will be sent from this host to other hosts in the
1721  ** network. The datetime will be encoded in a custom
1722  ** DIGUY_CUSTOM_PDU_ID_BROADCAST_EXERCISE_DATETIME PDU. In general
1723  ** there should be only one host on the network broadcasting datetime
1724  ** data; all others should receive or ignore it.
1725  **
1726  *i DIGUY_DATETIME_NETWORK_MODE_RECEIVE
1727  **
1728  ** Datetime data will be read from the network from custom
1729  ** DIGUY_CUSTOM_PDU_ID_BROADCAST_EXERCISE_DATETIME PDUs.
1730  */
1731 typedef enum
1738 
1739 
1740 /*****************************************************************************/
1741 /*****************************************************************************/
1745 /*****************************************************************************/
1746 /*****************************************************************************/
1747 
1749 /****************************************************************************/
1750 /*l
1751  *b Description:
1752  **
1753  ** This enumeration lists units of speed that can be passed to some
1754  ** DI-Guy API functions.
1755  **
1756  ** Note that if one of these values is used specifying an acceleration,
1757  ** add an implicit "per second" to the end. e.g., if 10.0 is passed as
1758  ** an acceleration, with units DIGUY_SPEED_UNITS_MILES_PER_HOUR,
1759  ** the resulting acceleration would be 10.0 miles per hour per second;
1760  ** or in other words, every 1 second speed would increase by 10.0 miles
1761  ** per hour.
1762  */
1763 typedef enum
1764 {
1768 
1769 } diguySpeedUnits;
1770 
1771 
1772 /****************************************************************************/
1773 /*l
1774  *b Description:
1775  **
1776  ** This enumeration lists the ways that data can be generated for DI-Guy
1777  ** characters. Data typically comes from the DI-Guy motion engine,
1778  ** but at times may be generated by other simulation methods.
1779  */
1780 typedef enum
1781 {
1787 
1790 
1791 /****************************************************************************/
1792 /*l
1793  *b Description:
1794  **
1795  ** This enumeration lists the modes that a DI-Guy character physics sim
1796  ** can be in, when the character simulator is set to
1797  ** DIGUY_CHARACTER_SIMULATOR_PHYSICS_SIM_MODULE.
1798  */
1799 typedef enum
1800 {
1805 
1807 
1808 
1809 /****************************************************************************/
1810 /*l
1811  *b Description:
1812  **
1813  ** This enumeration lists the collision groups that a DI-Guy physics sim
1814  ** object can be in. Characters in different collision groups may not
1815  ** have collisions calculated between them.
1816  */
1817 typedef enum
1818 {
1825 
1830 
1835 
1837 
1839 
1841 
1842 
1843 /****************************************************************************/
1844 /*l
1845  *b Description:
1846  **
1847  ** This enumeration lists the modes that the DI-Guy vehicle simulator
1848  ** can be in.
1849  */
1850 typedef enum
1851 {
1858 
1860 
1861 
1862 BDI_DECLSPEC_bdiutil const char* diguy_vehicle_simulation_mode_to_string(diguyVehicleSimulationMode mode);
1863 BDI_DECLSPEC_bdiutil diguyVehicleSimulationMode diguy_vehicle_simulation_mode_from_string(const char* string);
1864 
1865 
1866 /*****************************************************************************/
1867 /*****************************************************************************/
1871 /*****************************************************************************/
1872 /*****************************************************************************/
1873 
1874 
1875 /*****************************************************************************/
1876 /*****************************************************************************/
1880 /*****************************************************************************/
1881 /*****************************************************************************/
1882 
1883 /****************************************************************************/
1884 /*l
1885  *b Description:
1886  **
1887  ** This enumeration lists supported shader languages.
1888  */
1889 typedef enum
1890 {
1893 
1895 
1896 
1897 
1898 
1899 #endif /* __diguy_constants_H */
1900 
diguySubregionIndex diguy_subregion_index_from_string(const char *string)
Definition: diguy_constants.h:222
Definition: diguy_constants.h:410
Definition: diguy_constants.h:904
Definition: diguy_constants.h:1466
Definition: diguy_constants.h:138
Definition: diguy_constants.h:826
Definition: diguy_constants.h:789
Definition: diguy_constants.h:1031
Definition: diguy_constants.h:684
Definition: diguy_constants.h:579
Definition: diguy_constants.h:683
Definition: diguy_constants.h:1518
Definition: diguy_constants.h:522
Definition: diguy_constants.h:139
Definition: diguy_constants.h:897
Definition: diguy_constants.h:1472
Definition: diguy_constants.h:796
Definition: diguy_constants.h:786
diguyGraphicsTextureLoadingBehavior
Definition: diguy_constants.h:377
Definition: diguy_constants.h:1273
Definition: diguy_constants.h:1187
Definition: diguy_constants.h:304
Definition: diguy_constants.h:869
diguyAimAlgorithm
DI-Guy aim algorithms.
Definition: diguy_constants.h:934
Definition: diguy_constants.h:1685
Definition: diguy_constants.h:1514
Definition: diguy_constants.h:867
Definition: diguy_constants.h:800
Definition: diguy_constants.h:505
Definition: diguy_constants.h:1579
Definition: diguy_constants.h:682
Definition: diguy_constants.h:347
Definition: diguy_constants.h:1172
Definition: diguy_constants.h:1330
Definition: diguy_constants.h:1113
Definition: diguy_constants.h:901
Definition: diguy_constants.h:1026
Definition: diguy_constants.h:480
Definition: diguy_constants.h:793
Definition: diguy_constants.h:734
Definition: diguy_constants.h:578
diguyScenarioInputMode diguy_input_mode_from_string(const char *string)
Definition: diguy_constants.h:141
Definition: diguy_constants.h:1669
Definition: diguy_constants.h:1701
Definition: diguy_constants.h:1564
diguyEulerAngleOrder
DI-Guy Euler angle orders.
Definition: diguy_constants.h:576
Definition: diguy_constants.h:764
Definition: diguy_constants.h:475
Definition: diguy_constants.h:798
diguyGraphicsShaderLanguage
This enumeration lists supported shader languages.
Definition: diguy_constants.h:1789
diguySubregionIndex
DI-Guy subregions.
Definition: diguy_constants.h:1463
Definition: diguy_constants.h:818
Definition: diguy_constants.h:1684
Definition: diguy_constants.h:699
Definition: diguy_constants.h:1607
Definition: diguy_constants.h:1719
Definition: diguy_constants.h:132
diguyGraphicsJointType
DI-Guy graphics joint types.
Definition: diguy_constants.h:443
Definition: diguy_constants.h:925
Definition: diguy_constants.h:1538
Definition: diguy_constants.h:1468
Definition: diguy_constants.h:1750
Definition: diguy_constants.h:399
Definition: diguy_constants.h:1470
Definition: diguy_constants.h:402
Definition: diguy_constants.h:1569
Definition: diguy_constants.h:506
Definition: diguy_constants.h:1751
Definition: diguy_constants.h:1749
Definition: diguy_constants.h:1572
Definition: diguy_constants.h:286
Definition: diguy_constants.h:1576
Definition: diguy_constants.h:1094
Definition: diguy_constants.h:914
Definition: diguy_constants.h:1519
Definition: diguy_constants.h:171
Definition: diguy_constants.h:1476
Definition: diguy_constants.h:486
Definition: diguy_constants.h:1720
diguyHistoryType
DI-Guy history types.
Definition: diguy_constants.h:284
Definition: diguy_constants.h:840
Definition: diguy_constants.h:1280
Definition: diguy_constants.h:450
Definition: diguy_constants.h:831
diguyPluginMouseCursor
This enumeration lists the cursors returnable by the plugin function get_cursor().
Definition: diguy_constants.h:729
Definition: diguy_constants.h:1570
Definition: diguy_constants.h:118
Definition: diguy_constants.h:905
Definition: diguy_constants.h:1010
Definition: diguy_constants.h:134
Definition: diguy_constants.h:186
Definition: diguy_constants.h:474
Definition: diguy_constants.h:1112
Definition: diguy_constants.h:452
Definition: diguy_constants.h:819
Definition: diguy_constants.h:1473
Definition: diguy_constants.h:393
Definition: diguy_constants.h:482
Definition: diguy_constants.h:822
Definition: diguy_constants.h:864
Definition: diguy_constants.h:240
Definition: diguy_constants.h:1186
Definition: diguy_constants.h:1465
Definition: diguy_constants.h:583
Definition: diguy_constants.h:918
Definition: diguy_constants.h:484
Definition: diguy_constants.h:856
Definition: diguy_constants.h:157
Definition: diguy_constants.h:733
Definition: diguy_constants.h:409
diguyNavMeshPathPlannerCostMask
DI-Guy navigation mesh path planner cost masks.
Definition: diguy_constants.h:1536
Definition: diguy_constants.h:865
Definition: diguy_constants.h:893
Definition: diguy_constants.h:521
Definition: diguy_constants.h:456
Definition: diguy_constants.h:305
diguyViewCameraProjectionMode
DI-Guy camera projection modes.
Definition: diguy_constants.h:251
Definition: diguy_constants.h:485
Definition: diguy_constants.h:1471
Definition: diguy_constants.h:241
Definition: diguy_constants.h:832
Definition: diguy_constants.h:269
Definition: diguy_constants.h:922
Definition: diguy_constants.h:1329
Definition: diguy_constants.h:663
Definition: diguy_constants.h:866
Definition: diguy_constants.h:839
Definition: diguy_constants.h:1582
Definition: diguy_constants.h:345
Definition: diguy_constants.h:1515
Definition: diguy_constants.h:1526
Definition: diguy_constants.h:220
Definition: diguy_constants.h:841
Definition: diguy_constants.h:981
diguyChainCrossSection
This enumeration lists which cross-sections are available for DI-Guy chain simulation visuals...
Definition: diguy_constants.h:761
Definition: diguy_constants.h:411
Definition: diguy_constants.h:455
Definition: diguy_constants.h:169
Definition: diguy_constants.h:434
Definition: diguy_constants.h:310
Definition: diguy_constants.h:1033
Definition: diguy_constants.h:1730
Definition: diguy_constants.h:473
Definition: diguy_constants.h:184
Definition: diguy_constants.h:524
Definition: diguy_constants.h:830
Definition: diguy_constants.h:1574
Definition: diguy_constants.h:404
Definition: diguy_constants.h:920
Definition: diguy_constants.h:900
Definition: diguy_constants.h:400
Definition: diguy_constants.h:1727
Definition: diguy_constants.h:254
Definition: diguy_constants.h:791
Definition: diguy_constants.h:1580
Definition: diguy_constants.h:504
Definition: diguy_constants.h:187
Definition: diguy_constants.h:821
Definition: diguy_constants.h:660
Definition: diguy_constants.h:895
Definition: diguy_constants.h:662
Definition: diguy_constants.h:427
Definition: diguy_constants.h:1571
Definition: diguy_constants.h:658
Definition: diguy_constants.h:1541
diguyRenderPassFlags
DI-Guy renderer pass masks, set via diguyApp::set_render_pass_flags().
Definition: diguy_constants.h:341
Definition: diguy_constants.h:1111
Definition: diguy_constants.h:1386
Definition: diguy_constants.h:1203
Definition: diguy_constants.h:202
Definition: diguy_constants.h:1387
Definition: diguy_constants.h:344
Definition: diguy_constants.h:894
Definition: diguy_constants.h:1202
diguySpeedUnits
This enumeration lists units of speed that can be passed to some DI-Guy API functions.
Definition: diguy_constants.h:1667
Definition: diguy_constants.h:823
Definition: diguy_constants.h:1173
Definition: diguy_constants.h:1200
diguyViewCameraMoveMode
DI-Guy camera move modes.
Definition: diguy_constants.h:236
Definition: diguy_constants.h:921
diguyMuzzle
This is an enumeration of the different muzzles that can be specified to various DI-Guy function call...
Definition: diguy_constants.h:200
Definition: diguy_constants.h:429
Definition: diguy_constants.h:680
Definition: diguy_constants.h:1335
Definition: diguy_constants.h:665
diguyScenarioMergeInitialSettings
This enumeration tells DI-Guy what values to use as defaults when the diguyScenario::create_merge_set...
Definition: diguy_constants.h:678
Definition: diguy_constants.h:892
Definition: diguy_constants.h:697
Definition: diguy_constants.h:408
Definition: diguy_constants.h:288
Definition: diguy_constants.h:1522
Definition: diguy_constants.h:1748
Definition: diguy_constants.h:1637
Definition: diguy_constants.h:1154
Definition: diguy_constants.h:238
Definition: diguy_constants.h:861
Definition: diguy_constants.h:794
Definition: diguy_constants.h:379
Definition: diguy_constants.h:287
Definition: diguy_constants.h:803
Definition: diguy_constants.h:290
Definition: diguy_constants.h:221
Definition: diguy_constants.h:1542
Definition: diguy_constants.h:802
Definition: diguy_constants.h:454
Definition: diguy_constants.h:1175
Definition: diguy_constants.h:732
Definition: diguy_constants.h:1734
Definition: diguy_constants.h:1333
Definition: diguy_constants.h:1150
Definition: diguy_constants.h:1525
Definition: diguy_constants.h:1279
Definition: diguy_constants.h:380
Definition: diguy_constants.h:503
diguyCharacterSimulator
This enumeration lists the ways that data can be generated for DI-Guy characters. ...
Definition: diguy_constants.h:1682
Definition: diguy_constants.h:253
Definition: diguy_constants.h:1718
Definition: diguy_constants.h:1722
diguyCharacterClass
DI-Guy character classes.
Definition: diguy_constants.h:129
Definition: diguy_constants.h:312
Definition: diguy_constants.h:915
diguyStaticAvoidanceMethod
This enumeration lists the methods available for collision detection and avoidance against static obj...
Definition: diguy_constants.h:1008
const char * diguy_playback_mode_to_string(diguyScenarioPlaybackMode playback_mode)
Definition: diguy_constants.h:1539
Definition: diguy_constants.h:407
Definition: diguy_constants.h:397
diguyViewFogMode
DI-Guy fog modes.
Definition: diguy_constants.h:266
Definition: diguy_constants.h:827
Definition: diguy_constants.h:829
Definition: diguy_constants.h:834
Definition: diguy_constants.h:449
diguyRegionPaintbrushMode
DI-Guy region painting modes.
Definition: diguy_constants.h:1384
Definition: diguy_constants.h:1388
Definition: diguy_constants.h:913
Definition: diguy_constants.h:1524
Definition: diguy_constants.h:873
Definition: diguy_constants.h:204
Definition: diguy_constants.h:137
Definition: diguy_constants.h:205
Definition: diguy_constants.h:1334
Definition: diguy_constants.h:1201
Definition: diguy_constants.h:1168
Definition: diguy_constants.h:903
diguyNavPathSearchResults
Errors various nav path functions may return.
Definition: diguy_constants.h:1165
Definition: diguy_constants.h:1063
Definition: diguy_constants.h:797
Definition: diguy_constants.h:664
Definition: diguy_constants.h:1568
Definition: diguy_constants.h:446
Definition: diguy_constants.h:1331
Definition: diguy_constants.h:1204
Definition: diguy_constants.h:563
Definition: diguy_constants.h:1609
Definition: diguy_constants.h:239
Definition: diguy_constants.h:422
Definition: diguy_constants.h:451
Definition: diguy_constants.h:1169
Definition: diguy_constants.h:472
Definition: diguy_constants.h:1093
Definition: diguy_constants.h:1562
Definition: diguy_constants.h:936
const char * diguy_input_mode_to_string(diguyScenarioInputMode input_mode)
Definition: diguy_constants.h:874
Definition: diguy_constants.h:784
Definition: diguy_constants.h:502
diguyImpactType
This is an enumeration of the different impact types that are found in diguyImpact.
Definition: diguy_constants.h:217
Definition: diguy_constants.h:788
Definition: diguy_constants.h:428
diguyScenarioWindowId
This enumeration lists the windows that can be shown in the DI-Guy Scenario application.
Definition: diguy_constants.h:816
Definition: diguy_constants.h:311
Definition: diguy_constants.h:498
Definition: diguy_constants.h:255
Definition: diguy_constants.h:898
Definition: diguy_constants.h:923
Definition: diguy_constants.h:1270
Definition: diguy_constants.h:346
diguyScenarioPlaybackMode diguy_playback_mode_from_string(const char *string)
Definition: diguy_constants.h:1029
Definition: diguy_constants.h:912
Definition: diguy_constants.h:1061
Definition: diguy_constants.h:424
Definition: diguy_constants.h:501
Definition: diguy_constants.h:1389
Definition: diguy_constants.h:1725
Definition: diguy_constants.h:872
Definition: diguy_constants.h:868
Definition: diguy_constants.h:1025
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:1197
Definition: diguy_constants.h:1736
Definition: diguy_constants.h:1096
Definition: diguy_constants.h:799
Definition: diguy_constants.h:1062
Definition: diguy_constants.h:1731
Definition: diguy_constants.h:838
Definition: diguy_constants.h:156
Definition: diguy_constants.h:790
Definition: diguy_constants.h:1272
diguyAgentUntrapMethod
DI-Guy agent untrap methods.
Definition: diguy_constants.h:1327
Definition: diguy_constants.h:1469
Definition: diguy_constants.h:1149
Definition: diguy_constants.h:1703
Definition: diguy_constants.h:937
Definition: diguy_constants.h:274
Definition: diguy_constants.h:580
Definition: diguy_constants.h:1753
Definition: diguy_constants.h:917
Definition: diguy_constants.h:256
Definition: diguy_constants.h:453
Definition: diguy_constants.h:859
Definition: diguy_constants.h:207
Definition: diguy_constants.h:661
Definition: diguy_constants.h:582
Definition: diguy_constants.h:858
Definition: diguy_constants.h:919
Definition: diguy_constants.h:203
Definition: diguy_constants.h:219
Definition: diguy_constants.h:1199
Definition: diguy_constants.h:1721
Definition: diguy_constants.h:483
Definition: diguy_constants.h:792
Definition: diguy_constants.h:1540
Definition: diguy_constants.h:860
Definition: diguy_constants.h:735
Definition: diguy_constants.h:1686
Definition: diguy_constants.h:188
Definition: diguy_constants.h:1167
Definition: diguy_constants.h:907
Definition: diguy_constants.h:1581
Definition: diguy_constants.h:1148
diguyCrowdProfileSelectionMethod
Selection methods for records from crowd profiles.
Definition: diguy_constants.h:1183
Definition: diguy_constants.h:820
diguyNavPathDirection
Directions a character can be traveling on a navigation path (nav path).
Definition: diguy_constants.h:1109
Definition: diguy_constants.h:1028
Definition: diguy_constants.h:1513
diguyParameterComparison
This is an enumeration of the different parameter comparison options that can be specified to various...
Definition: diguy_constants.h:182
Definition: diguy_constants.h:891
Definition: diguy_constants.h:133
Definition: diguy_constants.h:581
diguyScenarioMergeFlag
This enumeration is used for various variables in the diguyScenarioMergeSettings object.
Definition: diguy_constants.h:656
Definition: diguy_constants.h:877
Definition: diguy_constants.h:1517
Definition: diguy_constants.h:308
Definition: diguy_constants.h:487
Definition: diguy_constants.h:1027
Definition: diguy_constants.h:500
Definition: diguy_constants.h:562
Definition: diguy_constants.h:1174
Definition: diguy_constants.h:899
Definition: diguy_constants.h:1011
Definition: diguy_constants.h:425
Definition: diguy_constants.h:343
Definition: diguy_constants.h:1565
diguyTacticsUnitType
Definition: diguy_constants.h:1560
Definition: diguy_constants.h:140
Definition: diguy_constants.h:1479
Definition: diguy_constants.h:785
Definition: diguy_constants.h:170
diguyCallbackReturn
DI-Guy callbacks return a value of type diguyCallbackReturn, which will be DIGUY_CALLBACK_STOP or DIG...
Definition: diguy_constants.h:115
Definition: diguy_constants.h:447
Definition: diguy_constants.h:405
Definition: diguy_constants.h:1688
Definition: diguy_constants.h:854
diguyNavPathAtEnd
What a character following a nav path will do once it reaches the end of a nav path.
Definition: diguy_constants.h:1145
Definition: diguy_constants.h:1729
Definition: diguy_constants.h:476
diguyDynamicAvoidanceMethod
This enumeration lists the methods available for collision detection and avoidance against dynamic ob...
Definition: diguy_constants.h:979
diguyCharacterMode
This is an enumeration of the different modes a DI-Guy character can be in.
Definition: diguy_constants.h:167
Definition: diguy_constants.h:835
diguyVisibleFlag
This enumeration lists the visibility options for various objects in the DI-Guy Scenario environment...
Definition: diguy_constants.h:519
Definition: diguy_constants.h:801
Definition: diguy_constants.h:1277
Definition: diguy_constants.h:396
diguyScenarioEditAction
This enumeration lists different types of editing actions that can be performed in the DI-Guy Scenari...
Definition: diguy_constants.h:851
Definition: diguy_constants.h:787
Definition: diguy_constants.h:523
Definition: diguy_constants.h:1276
Definition: diguy_constants.h:471
diguyVehicleSimulationMode diguy_vehicle_simulation_mode_from_string(const char *string)
Definition: diguy_constants.h:423
Definition: diguy_constants.h:154
Definition: diguy_constants.h:836
Definition: diguy_constants.h:1095
diguyAuthorVisualUpdateFlag
This enumeration lists which parts of a visual object may need to be updated.
Definition: diguy_constants.h:560
Definition: diguy_constants.h:1792
Definition: diguy_constants.h:289
Definition: diguy_constants.h:185
Definition: diguy_constants.h:155
Definition: diguy_constants.h:1147
Definition: diguy_constants.h:481
Definition: diguy_constants.h:499
Definition: diguy_constants.h:448
Definition: diguy_constants.h:910
Definition: diguy_constants.h:117
Definition: diguy_constants.h:896
const char * diguy_vehicle_simulation_mode_to_string(diguyVehicleSimulationMode mode)
Definition: diguy_constants.h:1151
Definition: diguy_constants.h:731
diguyCharacterAppearanceTypes
DI-Guy character appearance query API, this is for diguyCharacter::get_num_appearances_of_type() ...
Definition: diguy_constants.h:151
diguyPhysicsSimulationMode
This enumeration lists the modes that a DI-Guy character physics sim can be in, when the character si...
Definition: diguy_constants.h:1699
Definition: diguy_constants.h:153
Definition: diguy_constants.h:1275
Definition: diguy_constants.h:982
Definition: diguy_constants.h:1566
Definition: diguy_constants.h:1171
Definition: diguy_constants.h:1638
Definition: diguy_constants.h:828
Definition: diguy_constants.h:1114
diguyScenarioPlaybackMode
This enumeration identifies which playback mode time should follow.
Definition: diguy_constants.h:496
Definition: diguy_constants.h:1575
Definition: diguy_constants.h:765
Definition: diguy_constants.h:1671
Definition: diguy_constants.h:135
Definition: diguy_constants.h:309
Definition: diguy_constants.h:271
Definition: diguy_constants.h:306
diguyScenarioMergeResetFlag
This enumeration tells DI-Guy which scenario elements should be reset after the merge is complete...
Definition: diguy_constants.h:695
diguyCharacterFeelerTurnDirection
This enumeration lists the turn directions a feeler can use when its status is DIGUY_CHARACTER_FEELER...
Definition: diguy_constants.h:1091
Definition: diguy_constants.h:403
Definition: diguy_constants.h:1475
Definition: diguy_constants.h:698
Definition: diguy_constants.h:681
Definition: diguy_constants.h:270
Definition: diguy_constants.h:272
Definition: diguy_constants.h:1185
Definition: diguy_constants.h:1608
Definition: diguy_constants.h:401
Definition: diguy_constants.h:1271
Definition: diguy_constants.h:908
Definition: diguy_constants.h:855
Definition: diguy_constants.h:659
Definition: diguy_constants.h:302
Definition: diguy_constants.h:1687
Definition: diguy_constants.h:273
diguyDatetimeNetworkMode
DIGUY_DATETIME_NETWORK_MODE_LOCAL_ONLY
Definition: diguy_constants.h:1634
Definition: diguy_constants.h:445
diguyPhysicsCollisionGroup
This enumeration lists the collision groups that a DI-Guy physics sim object can be in...
Definition: diguy_constants.h:1715
Definition: diguy_constants.h:564
Definition: diguy_constants.h:268
Definition: diguy_constants.h:1791
Definition: diguy_constants.h:1392
Definition: diguy_constants.h:478
Definition: diguy_constants.h:1477
Definition: diguy_constants.h:136
Definition: diguy_constants.h:1032
Definition: diguy_constants.h:1717
Definition: diguy_constants.h:1393
Definition: diguy_constants.h:131
Definition: diguy_constants.h:223
Definition: diguy_constants.h:837
Definition: diguy_constants.h:566
Definition: diguy_constants.h:1521
Definition: diguy_constants.h:1636
Definition: diguy_constants.h:1030
Definition: diguy_constants.h:398
Definition: diguy_constants.h:763
Definition: diguy_constants.h:1724
Definition: diguy_constants.h:457
Definition: diguy_constants.h:584
Definition: diguy_constants.h:381
Definition: diguy_constants.h:395
Definition: diguy_constants.h:1274
Definition: diguy_constants.h:432
Definition: diguy_constants.h:1170
Definition: diguy_constants.h:825
diguyAgentBehavior
DI-Guy agent behaviors.
Definition: diguy_constants.h:1268
Definition: diguy_constants.h:1752
Definition: diguy_constants.h:565
Definition: diguy_constants.h:477
Definition: diguy_constants.h:479
Definition: diguy_constants.h:857
Definition: diguy_constants.h:1577
Definition: diguy_constants.h:1520
Definition: diguy_constants.h:1732
Definition: diguy_constants.h:1332
Definition: diguy_constants.h:906
diguyDatetimeAdvanceMethod
This enumeration lists the methods in which the datetime of a scenario can advance.
Definition: diguy_constants.h:1605
Definition: diguy_constants.h:1567
Definition: diguy_constants.h:909
Definition: diguy_constants.h:1390
Definition: diguy_constants.h:902
Definition: diguy_constants.h:431
Definition: diguy_constants.h:1278
int diguyCharacterFeelerNumber
This enumeration lists the standard feelers used for static object avoidance used by I-Guy and agent ...
Definition: diguy_constants.h:1021
diguySubregionMask
DI-Guy subregions mask values.
Definition: diguy_constants.h:1511
Definition: diguy_constants.h:1156
Definition: diguy_constants.h:206
diguyScenarioInputMode
This enumeration lists the input modes available in DI-Guy Scenario views (3D windows) and for DI-Guy...
Definition: diguy_constants.h:782
diguyVehicleSimulationMode
This enumeration lists the modes that the DI-Guy vehicle simulator can be in.
Definition: diguy_constants.h:1746
Definition: diguy_constants.h:824
Definition: diguy_constants.h:1670
Definition: diguy_constants.h:1578
diguyCharacterFeelerStatus
This enumeration lists the state character feelers may be in.
Definition: diguy_constants.h:1059
Definition: diguy_constants.h:916
Definition: diguy_constants.h:1702
Definition: diguy_constants.h:833
Definition: diguy_constants.h:1726
Definition: diguy_constants.h:433