DI-Guy SDK Documentation  13.2
diguy_constants.h
Go to the documentation of this file.
1 
2 /*********************************************************************
3  ** Copyright (c) 1992-2019 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 /*****************************************************************************/
37 //now live in diguy_version.h
38 
39 
40 /*****************************************************************************/
41 /*****************************************************************************/
45 /*****************************************************************************/
46 /*****************************************************************************/
47 
48 
49 /****************************************************************************/
50 /*l
51  *b Description:
52  **
53  ** DI-Guy radians and degrees conversion factors.
54  **
55  */
56 #define DIGUY_PI (3.14159265358979323f)
57 
58 #define DIGUY_RAD2DEG (180.0f / DIGUY_PI)
59 #define DIGUY_DEG2RAD (DIGUY_PI / 180.0f)
60 
61 
62 /****************************************************************************/
63 /*l
64  *b Description:
65  **
66  ** This value is a magic number that, when passed to certain functions,
67  ** means that the function should use or compute an appropriate default
68  ** value for the argument.
69  **
70  */
71 #define DIGUY_DEFAULT_FLOAT (-16384.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_INT (-16384)
84 
85 
86 /*****************************************************************************/
87 /*****************************************************************************/
91 /*****************************************************************************/
92 /*****************************************************************************/
93 
94 
95 /****************************************************************************/
96 /*l
97  *b Description:
98  **
99  ** DI-Guy callbacks return a value of type diguyCallbackReturn,
100  ** which will be DIGUY_CALLBACK_STOP or DIGUY_CALLBACK_CONTINUE.
101  ** If the callback returns DIGUY_CALLBACK_STOP, the default handler
102  ** of the function will not be called; the callback is asserting
103  ** that it has done everything necessary for the function call.
104  ** If the callback returns DIGUY_CALLBACK_CONTINUE, the default
105  ** handler for the function will be called after the callback.
106  **
107  */
108 typedef enum
109 {
116 /****************************************************************************/
117 /*l
118  *b Description:
119  **
120  ** DI-Guy character classes. This is a high-level description of the
121  ** type of thing a character represents.
122  **
123  */
124 typedef enum
125 {
139 
140 /****************************************************************************/
141 /*l
142  *b Description:
143  **
144  ** DI-Guy character appearance query API, this is for diguyCharacter::get_num_appearances_of_type()
145  **
146  */
148 {
154 };
155 
156 /****************************************************************************/
157 /*l
158  *b Description:
159  **
160  ** This is an enumeration of the different modes a
161  ** DI-Guy character can be in. See diguyCharacter::get_action_mode(),
162  ** diguyCharacter::get_position_mode().
163  */
164 typedef enum
165 {
171 
172 
173 /****************************************************************************/
174 /*l
175  *b Description:
176  **
177  ** This is an enumeration of the different parameter comparison
178  ** options that can be specified to various DI-Guy function calls,
179  ** such as diguyCharacter::get_action_from_description().
180  */
181 typedef enum
182 {
190 
191 
192 /****************************************************************************/
193 /*l
194  *b Description:
195  **
196  ** This is an enumeration of the different muzzles that can
197  ** be specified to various DI-Guy function calls, such as
198  ** diguyCharacter::set_default_weapon_muzzle() and
199  ** diguyCharacter::fire_weapon().
200  */
201 typedef enum
202 {
209 
210 } diguyMuzzle;
211 
212 
213 /****************************************************************************/
214 /*l
215  *b Description:
216  **
217  ** This is an enumeration of the different impact types that are found
218  ** in diguyImpact.
219  */
220 typedef enum
221 {
227 
229 
230 
231 /****************************************************************************/
232 /*l
233  *b Description:
234  **
235  ** DI-Guy camera move modes.
236  **
237  ** In DI-Guy Scenario in Camera Input Mode, the movement
238  ** mode of the camera determines what will happen when
239  ** mouse buttons are pressed in the view window.
240  */
241 typedef enum
242 {
248 
252 /****************************************************************************/
253 /*l
254  *b Description:
255  **
256  ** Aspects of the DI-Guy camera that can be servoed.
257  **
258  ** Servoing can also be disabled on each of these.
259  */
260 typedef enum
261 {
268 /****************************************************************************/
269 /*l
270  *b Description:
271  **
272  ** DI-Guy camera projection modes.
273  **
274  */
275 typedef enum
276 {
281 
285 /****************************************************************************/
286 /*l
287  *b Description:
288  **
289  ** DI-Guy fog modes.
290  **
291  */
292 typedef enum
293 {
295  DIGUY_FOG_MODE_EXP = 1,
303 
305 /****************************************************************************/
306 /*l
307  *b Description:
308  **
309  ** DI-Guy history types.
310  **
311  */
312 typedef enum
313 {
319 
321 
322 
323 /****************************************************************************/
324 /*l
325  *b Description:
326  **
327  ** DI-Guy renderer class ids.
328  **
329  */
330 enum
331 {
332  DIGUY_CLASSID_START = 0x400,
333 
343 } ;
345 
346 /****************************************************************************/
347 /*l
348  *b Description:
349  **
350  ** DI-Guy renderer pass masks, set via diguyApp::set_render_pass_flags().
351  *>
352  *i DIGUY_RENDER_PASS_SKIP_PARTICLES
353  **
354  ** Particle rendering is skipped.
355  **
356  *i DIGUY_RENDER_PASS_USE_STORED_LOD_SETTINGS
357  **
358  ** LOD recalculation is skipped (for built-in OGL pipeline).
359  **
360  *i DIGUY_RENDER_PASS_REFLECTION
361  **
362  ** Internal use; water reflection objects are skipped.
363  **
364  *i DIGUY_RENDER_PASS_SHADOW
365  **
366  ** Shadow pass assumed; water, environmental effects are skipped.
367  **
368  *i DIGUY_RENDER_PASS_INTERSECTION
369  **
370  ** Pick pass assumed; link and shape colors are sent.
371  *<
372  */
374 {
377  DIGUY_RENDER_PASS_REFLECTION = 0x00000004,
378  DIGUY_RENDER_PASS_SHADOW = 0x00000008,
379  DIGUY_RENDER_PASS_INTERSECTION = 0x00000010,
380  DIGUY_RENDER_PASS_DEBUGGING = 0x00000020
381 };
382 
383 
384 
385 /*****************************************************************************/
386 /*****************************************************************************/
409 typedef enum
410 {
413  DIGUY_LOAD_ASYNC = 2,
414 
418 /****************************************************************************/
419 /*l
420  *b Description:
421  **
422  ** DI-Guy error codes.
423  **
424  */
425 enum
426 {
428 
446 };
449 /****************************************************************************/
450 /*l
451  *b Description:
452  **
453  ** DI-Guy vector indices.
454  **
455  */
456 enum
457 {
458  DIGUY_VEC_X = 0,
459  DIGUY_VEC_Y,
460  DIGUY_VEC_Z,
461  DIGUY_VEC_W,
462 
463  DIGUY_VEC_RZ = 0,
471 };
474 /****************************************************************************/
475 /*l
476  *b Description:
477  **
478  ** DI-Guy graphics joint types.
479  **
480  */
481 typedef enum
482 {
500 /****************************************************************************/
501 /*l
502  *b Description:
503  **
504  ** When a scene is rendered in order to select a DI-Guy object from,
505  ** say, a mouse click, the type of object selected is identified by
506  ** this enumeration.
507  **
508  */
509 enum
510 {
528 };
529 
530 
531 /****************************************************************************/
532 /*l
533  *b Description:
534  **
535  ** This enumeration identifies which playback mode time should follow.
536  ** Only valid inside DI-Guy Scenario.
537  */
538 typedef enum
539 {
549 
551 
552 BDI_DECLSPEC_bdiutil const char* diguy_playback_mode_to_string(diguyScenarioPlaybackMode playback_mode);
553 BDI_DECLSPEC_bdiutil diguyScenarioPlaybackMode diguy_playback_mode_from_string(const char* string);
554 
556 /****************************************************************************/
557 /*l
558  *b Description:
559  **
560  ** This enumeration lists the visibility options for various objects
561  ** in the DI-Guy Scenario environment.
562  */
563 typedef enum
564 {
565  DIGUY_VISIBLE_NONE = 0,
569 
571 
572 
573 /****************************************************************************/
574 /*l
575  *b Description:
576  **
577  ** This enumeration lists which parts of a visual object may need to be
578  ** updated. The values can be or-ed together.
579  **
580  *i DIGUY_GRAPHICS_VISUAL_UPDATE_NONE
581  **
582  ** Nothing in the visual needs to be updated.
583  **
584  *i DIGUY_GRAPHICS_VISUAL_UPDATE_GEOMETRY
585  **
586  ** The overall geometry of the visual needs to be updated. This means
587  ** that vertices and other parts of polygons need to be recalculated.
588  **
589  *i DIGUY_GRAPHICS_VISUAL_UPDATE_POSITION
590  **
591  ** The position and/or orientation of the visual needs to be updated.
592  ** The overall geometry of the visual (polygons, lines, etc.) remains
593  ** unchanged.
594  **
595  *i DIGUY_GRAPHICS_VISUAL_UPDATE_MATERIAL
596  **
597  ** The material of the visual needs to be updated. This can include
598  ** color, fill options, line width, etc. The geometry and position of
599  ** the visual remain the same.
600  **
601  *i DIGUY_GRAPHICS_VISUAL_UPDATE_ALL
602  **
603  ** All aspects of the visual need to be updated.
604  **
605  */
606 typedef enum
607 {
613 
615 
616 
617 /****************************************************************************/
618 /*l
619  *b Description:
620  **
621  ** DI-Guy Euler angle orders.
622  **
623  ** ZXY is the order most commonly used in DIGuy. The meaning is: "rotate around
624  ** object's z axis (yaw), then its x axis (roll), then its y axis (pitch)."
625  **
626  ** However, the DI-Guy camera system uses ZYX, since that's more intuitive.
627  **
628  */
629 typedef enum
630 {
638 
640 
641 
642 /****************************************************************************/
643 /*l
644  *b Description:
645  **
646  ** This enumeration is used for various variables in the
647  ** diguyScenarioMergeSettings object. In general it tells
648  ** the diguyScenario::merge() function whether to load
649  ** objects of a specified type at all, and if so, what to
650  ** do if a merged object conflicts with an existing object.
651  **
652  *i DIGUY_MERGE_FLAG_DONT_MERGE
653  **
654  ** Objects in the merged scenario are not loaded.
655  **
656  *i DIGUY_MERGE_FLAG_OVERWRITE_EXISTING
657  **
658  ** Objects in the merged scenario are loaded.
659  **
660  ** In the case of a conflict, the exiting object is overwritten
661  ** with the values of the merge object.
662  **
663  *i DIGUY_MERGE_FLAG_KEEP_BOTH
664  **
665  ** Objects in the merged scenario are loaded.
666  **
667  ** In the case of a conflict, both the exiting object
668  ** and the merge object are kept, with no modifications.
669  ** Note that this will leave some ambiguity of referencing
670  ** objects by name. A warning will be printed.
671  **
672  ** Note that this value is here to allow for backward
673  ** compatibility; it is not recommended for general use.
674  **
675  *i DIGUY_MERGE_FLAG_KEEP_EXISTING_ONLY
676  **
677  ** Objects in the merged scenario are loaded.
678  **
679  ** In the case of a conflict, the exiting object is kept
680  ** as is and the merge object is discarded.
681  **
682  *i DIGUY_MERGE_FLAG_KEEP_EXISTING_ONLY_AND_WARN
683  **
684  ** Same as DIGUY_MERGE_FLAG_KEEP_EXISTING, but also prints
685  ** a warning.
686  **
687  *i DIGUY_MERGE_FLAG_RENAME_MERGED
688  **
689  ** Objects in the merged scenario are loaded.
690  **
691  ** In the case of a conflict, both the exiting object
692  ** and the merge object are kept, but the merged object
693  ** is renamed.
694  **
695  *i DIGUY_MERGE_FLAG_RENAME_MERGED_AND_WARN
696  **
697  ** Same as DIGUY_MERGE_FLAG_RENAME_MERGED, but also prints
698  ** a warning.
699  **
700  *i DIGUY_MERGE_FLAG_RENAME_MERGED_IF_NOT_EQUAL
701  **
702  ** Objects in the merged scenario are loaded.
703  **
704  ** In the case of a conflict, the existing object and merged
705  ** object are checked for "equality". If they are the same,
706  ** the existing object will be kept and the merge object will
707  ** be discarded. If they are different, both objects will
708  ** be kept, but the merge object will be renamed.
709  **
710  */
711 typedef enum
712 {
721 
723 
724 
725 /****************************************************************************/
726 /*l
727  *b Description:
728  **
729  ** This enumeration tells DI-Guy what values to use as defaults
730  ** when the diguyScenario::create_merge_settings() functions
731  ** is called. See the documentation for that function for
732  ** details on what the different values mean.
733  **
734  */
735 typedef enum
736 {
742 
744 
745 
746 /****************************************************************************/
747 /*l
748  *b Description:
749  **
750  ** This enumeration tells DI-Guy which scenario elements should be
751  ** reset after the merge is complete.
752  **
753  */
754 typedef enum
755 {
763 /****************************************************************************/
764 /*l
765  *b Description:
766  **
767  ** This enumeration lists the cursors returnable by the plugin
768  ** function get_cursor().
769  **
770  *i DIGUY_PLUGIN_MOUSE_CURSOR_NONE
771  **
772  ** Plugin takes responsibility for drawing cursor, if any.
773  **
774  *i DIGUY_PLUGIN_MOUSE_CURSOR_LEFT_ARROW
775  **
776  ** The standard window-system left arrow cursor is shown.
777  **
778  *i DIGUY_PLUGIN_MOUSE_CURSOR_CROSSHAIR
779  **
780  ** Crosshair (plus-shaped) cursor is shown.
781  **
782  *i DIGUY_PLUGIN_MOUSE_CURSOR_POINTING_HAND
783  **
784  ** Pointing hand cursor is shown.
785  **
786  *i DIGUY_PLUGIN_MOUSE_CURSOR_FORBIDDEN
787  **
788  ** Action forbidden cursor is shown.
789  */
790 typedef enum
791 {
801 /****************************************************************************/
802 /*l
803  *b Description:
804  **
805  ** This enumeration lists which cross-sections are available for
806  ** DI-Guy chain simulation visuals.
807  **
808  *i DIGUY_CHAIN_CROSS_SECTION_SQUARE
809  **
810  ** The square cross-section is good for tube-like visuals, such as
811  ** hoses. The normals of the square cross-section point radially
812  ** outward from the center, giving the visual a rounded, tube-like
813  ** appearance.
814  **
815  *i DIGUY_CHAIN_CROSS_SECTION_PLUS
816  **
817  ** The plus cross-section is good for thin, chain-like visuals.
818  **
819  *i DIGUY_CHAIN_CROSS_SECTION_COIL
820  **
821  ** The coil cross-section is good for wires. The chain masses are
822  ** connected by line segments.
823  */
824 typedef enum
825 {
833 /****************************************************************************/
834 /*l
835  *b Description:
836  **
837  */
838 #define DIGUY_LOAD_MANAGER_NUM_ZONES (4)
839 #define DIGUY_LOAD_MANAGER_NUM_NONVISIBLE_ZONE_INDEX (3)
840 
841 
842 /****************************************************************************/
843 /*l
844  *b Description:
845  **
846  ** This enumeration lists the input modes available in DI-Guy
847  ** Scenario views (3D windows) and for DI-Guy Author.
848  */
849 typedef enum
850 {
873 
874 BDI_DECLSPEC_bdiutil const char* diguy_input_mode_to_string(diguyScenarioInputMode input_mode);
875 BDI_DECLSPEC_bdiutil diguyScenarioInputMode diguy_input_mode_from_string(const char* string);
876 
877 
878 /****************************************************************************/
879 /*l
880  *b Description:
881  **
882  ** This enumeration lists the windows that can be shown in the
883  ** DI-Guy Scenario application.
884  */
885 typedef enum
886 {
915 /****************************************************************************/
916 /*l
917  *b Description:
918  **
919  ** This enumeration lists different types of editing actions that
920  ** can be performed in the DI-Guy Scenario application.
921  */
922 typedef enum
923 {
924  // File menu
933 
934  // Edit menu
941 
942  // Help menu
946 
947  // number of edit actions
949 
951 
952 
953 /****************************************************************************/
954 /*l
955  *b Description:
956  **
957  ** This enumeration lists "special" (non-ASCII) keys that DI-Guy plugins
958  ** may respond to.
959  **
960  ** (These enumerations currently match the Qt 4 Qt::Key_* values.)
961  */
962 enum
963 {
964  DIGUY_SPECIAL_KEY_MIN = 0x1000000,
965  DIGUY_SPECIAL_KEY_ESC = 0x1000000,
966  DIGUY_SPECIAL_KEY_TAB = 0x1000001,
967  DIGUY_SPECIAL_KEY_BACKTAB = 0x1000002,
968  DIGUY_SPECIAL_KEY_BACKSPACE = 0x1000003,
969  DIGUY_SPECIAL_KEY_RETURN = 0x1000004,
970  DIGUY_SPECIAL_KEY_ENTER = 0x1000005,
971  DIGUY_SPECIAL_KEY_INSERT = 0x1000006,
972  DIGUY_SPECIAL_KEY_DELETE = 0x1000007,
974  DIGUY_SPECIAL_KEY_PRINT = 0x1000009,
978  DIGUY_SPECIAL_KEY_UP = 0x1000013,
979  DIGUY_SPECIAL_KEY_RIGHT = 0x1000014,
980  DIGUY_SPECIAL_KEY_DOWN = 0x1000015,
981  DIGUY_SPECIAL_KEY_PAGE_UP = 0x1000016,
982  DIGUY_SPECIAL_KEY_PAGE_DOWN = 0x1000017,
983  DIGUY_SPECIAL_KEY_SHIFT = 0x1000020,
984 
985  DIGUY_SPECIAL_F1 = 0x1000030,
986  DIGUY_SPECIAL_F2 = 0x1000031,
987  DIGUY_SPECIAL_F3 = 0x1000032,
988  DIGUY_SPECIAL_F4 = 0x1000033,
989  DIGUY_SPECIAL_F5 = 0x1000034,
990  DIGUY_SPECIAL_F6 = 0x1000035,
991  DIGUY_SPECIAL_F7 = 0x1000036,
992  DIGUY_SPECIAL_F8 = 0x1000037,
993  DIGUY_SPECIAL_F9 = 0x1000038,
994  DIGUY_SPECIAL_F10 = 0x1000039,
995  DIGUY_SPECIAL_F11 = 0x100003A,
996  DIGUY_SPECIAL_F12 = 0x100003B,
997 
998  DIGUY_SPECIAL_KEY_MAX = 0x10000FF
999 };
1000 
1001 
1002 /****************************************************************************/
1003 /*l
1004  *b Description:
1005  **
1006  ** DI-Guy aim algorithms.
1007  **
1008  */
1009 typedef enum
1010 {
1013 
1016 
1017 
1018 
1019 /*****************************************************************************/
1020 /*****************************************************************************/
1024 /*****************************************************************************/
1025 /*****************************************************************************/
1028 /****************************************************************************/
1029 /*l
1030  *b Description:
1031  **
1032  ** This enumeration lists the methods available for collision detection
1033  ** and avoidance against dynamic objects.
1034  **
1035  *i DIGUY_DYNAMIC_AVOIDANCE_METHOD_DISABLED
1036  **
1037  ** Dynamic objects are not detected or avoided. In effect this means
1038  ** that characters will walk through each other.
1039  **
1040  ** If a crowd is far away from the viewpoint, it is not obvious that
1041  ** this is happening. Disabling the crowd's dynamic avoidance can
1042  ** reduce the overhead of the crowd on performance.
1043  **
1044  *i DIGUY_DYNAMIC_AVOIDANCE_METHOD_REPULSION_ZONES
1045  **
1046  ** Characters are surrounded by zones of repulsion. Other characters
1047  ** that enter these zones have their position, orientation, and/or
1048  ** action changed to try to get out of the zones.
1049  **
1050  *i DIGUY_DYNAMIC_AVOIDANCE_METHOD_SIMPLE
1051  **
1052  ** This is an experimental method that is still being developed.
1053  ** It should not be used for now.
1054  */
1055 typedef enum
1060 
1062 
1063 
1064 /****************************************************************************/
1065 /*l
1066  *b Description:
1067  **
1068  ** This enumeration lists the methods available for collision detection
1069  ** and avoidance against static objects in the environment. These are
1070  ** usually scene objects and non-moving props.
1071  **
1072  *i DIGUY_STATIC_AVOIDANCE_METHOD_DISABLED
1073  **
1074  ** Static objects are not detected or avoided. In effect this means
1075  ** that characters can walk through walls.
1076  **
1077  ** If a crowd is not near any buildings, walls, or solid objects,
1078  ** disabling static avoidance can reduce the overhead of the crowd
1079  ** on performance.
1080  **
1081  *i DIGUY_STATIC_AVOIDANCE_METHOD_FEELERS
1082  **
1083  ** The character uses 'feelers' to detect static objects and turn
1084  ** away from them.
1085  */
1086 typedef enum
1092 
1093 
1094 /****************************************************************************/
1095 /*l
1096  *b Description:
1097  **
1098  ** This enumeration lists the standard feelers used for static object
1099  ** avoidance used by I-Guy and agent characters.
1100  */
1101 typedef int diguyCharacterFeelerNumber;
1102 
1103 enum
1104 {
1109  DIGUY_CHARACTER_FEELER_R, // right
1110  DIGUY_CHARACTER_FEELER_BL, // back left
1111  DIGUY_CHARACTER_FEELER_BR, // back right
1112  DIGUY_CHARACTER_FEELER_B, // back
1114 };
1115 
1116 
1117 /****************************************************************************/
1118 /*l
1119  *b Description:
1120  **
1121  ** This enumeration lists the state character feelers may be in.
1122  **
1123  *i DIGUY_CHARACTER_FEELER_STATUS_NO_CONTACT
1124  **
1125  ** Feeler is not in contact with anything.
1126  **
1127  *i DIGUY_CHARACTER_FEELER_STATUS_CONTACT_TURN
1128  **
1129  ** Feeler is in contact with an object just enough to cause the
1130  ** character to begin to turn.
1131  **
1132  *i DIGUY_CHARACTER_FEELER_STATUS_CONTACT_COLLIDE
1133  **
1134  ** Feeler is in close contact with an object. The object should be
1135  ** pushing the character away.
1136  **
1137  *i DIGUY_CHARACTER_FEELER_STATUS_CONTACT_TURN_AND_COLLIDE
1138  **
1139  ** Feeler is within both turn and contact distances of an object.
1140  */
1141 typedef enum
1147 
1149 
1151 /****************************************************************************/
1152 /*l
1153  *b Description:
1154  **
1155  ** This enumeration lists the turn directions a feeler can use when
1156  ** its status is DIGUY_CHARACTER_FEELER_STATUS_CONTACT_TURN.
1157  **
1158  *i DIGUY_CHARACTER_FEELER_TURN_DIRECTION_NONE
1159  **
1160  ** Feeler does not turn the character.
1161  **
1162  *i DIGUY_CHARACTER_FEELER_TURN_DIRECTION_L
1163  **
1164  ** Feeler turns the character to the left.
1165  **
1166  *i DIGUY_CHARACTER_FEELER_TURN_DIRECTION_R
1167  **
1168  ** Feeler turns the character to the right.
1169  **
1170  *i DIGUY_CHARACTER_FEELER_TURN_DIRECTION_L_OR_R
1171  **
1172  ** Feeler turns the character to the left or right, whichever
1173  ** will result in the turn behavior ending more quickly.
1174  */
1175 typedef enum
1176 {
1178  DIGUY_CHARACTER_FEELER_TURN_DIRECTION_L, // as string: "left"
1180  DIGUY_CHARACTER_FEELER_TURN_DIRECTION_L_OR_R // as string: "left_or_right"
1183 
1184 
1185 /****************************************************************************/
1186 /*l
1187  *b Description:
1188  **
1189  ** Directions a character can be traveling on a navigation path
1190  ** (nav path).
1191  **
1192  ** The travel behavior of agents use nav paths.
1193  **
1194  */
1195 typedef enum
1197  DIGUY_NAV_PATH_DIRECTION_UNKNOWN = 0, // as string: "unknown"
1198  DIGUY_NAV_PATH_DIRECTION_FORWARD, // as string: "forward"
1199  DIGUY_NAV_PATH_DIRECTION_BACKWARD, // as string: "backward"
1201 
1203 
1204 
1205 /****************************************************************************/
1206 /*l
1207  *b Description:
1208  **
1209  ** What a character following a nav path will do once it reaches the
1210  ** end of a nav path.
1211  **
1212  ** The travel behavior of agents use nav paths.
1213  **
1214  *i DIGUY_NAV_PATH_AT_END_REVERSE
1215  **
1216  ** Agent reverses direction on the nav path, going through waypoints
1217  ** in opposite order.
1218  **
1219  *i DIGUY_NAV_PATH_AT_END_LOOP
1220  **
1221  ** Agent's next waypoint is waypoint 0. Best when last waypoint and
1222  ** first waypoint are close to each other, as in a loop path.
1223  **
1224  *i DIGUY_NAV_PATH_AT_END_STOP
1225  **
1226  ** Stop at the end, switching to behavior none.
1227  **
1228  *i DIGUY_NAV_PATH_AT_END_TELEPORT
1229  **
1230  ** Teleport to the beginning. In general agents should be out of view
1231  ** at the beginning and end of the path, if possible.
1232  */
1233 typedef enum
1234 {
1235  DIGUY_NAV_PATH_AT_END_UNKNOWN = 0, // as string: "unknown"
1236  DIGUY_NAV_PATH_AT_END_REVERSE, // as string: "reverse"
1237  DIGUY_NAV_PATH_AT_END_LOOP, // as string: "loop"
1238  DIGUY_NAV_PATH_AT_END_STOP, // as string: "stop"
1239  DIGUY_NAV_PATH_AT_END_TELEPORT, // as string: "teleport"
1240 
1241  // internal use only
1243 
1245 
1247 
1248 
1249 /****************************************************************************/
1250 /*l
1251  *b Description:
1252  **
1253  ** Errors various nav path functions may return.
1254  */
1255 typedef enum
1256 {
1269 /****************************************************************************/
1270 /*l
1271  *b Description:
1272  **
1273  ** Selection methods for records from crowd profiles.
1274  */
1275 typedef enum
1276 {
1280 
1282 
1283 
1284 /****************************************************************************/
1285 /*l
1286  *b Description:
1287  **
1288  ** DI-Guy agent repulsion zones for characters with dynamic
1289  ** avoidance method DIGUY_DYNAMIC_AVOIDANCE_METHOD_REPULSION_ZONES.
1290  */
1291 typedef enum
1292 {
1299 
1301 
1302 
1303 /****************************************************************************/
1304 /*l
1305  *b Description:
1306  **
1307  ** DI-Guy agent behaviors.
1308  **
1309  ** Following is a short description of each behavior. See the DI-Guy AI
1310  ** documentation for more details.
1311  **
1312  *i DIGUY_AGENT_BEHAVIOR_NONE
1313  **
1314  ** Agent functionality is completely inactive. The character's actions
1315  ** are determined by its character path or direct DI-Guy API calls.
1316  **
1317  *i DIGUY_AGENT_BEHAVIOR_TRAVEL
1318  **
1319  ** Agent attempts to travel close to a path shape. Many agents can use
1320  ** the same path shape for the travel behavior.
1321  **
1322  *i DIGUY_AGENT_BEHAVIOR_PATH_FOLLOW
1323  **
1324  ** Similar to DIGUY_AGENT_BEHAVIOR_TRAVEL, but agent follows a
1325  ** character path instead of a path shape, and attempts to match the
1326  ** timing of the character path in addition to the path shape. If the
1327  ** agent is interrupted from the path, it will attempt to resume it
1328  ** where it left off.
1329  **
1330  *i DIGUY_AGENT_BEHAVIOR_WANDER
1331  **
1332  ** Agent wanders a region. In this case wander means it will select a
1333  ** random point within the region and move close to it, and then wait
1334  ** there for a period of time before selecting a new point in the
1335  ** region.
1336  **
1337  *i DIGUY_AGENT_BEHAVIOR_MINGLE
1338  **
1339  ** Similar to wander, but agents attempt to move together to various
1340  ** places in the region.
1341  **
1342  *i DIGUY_AGENT_BEHAVIOR_FLEE
1343  **
1344  ** Agent attempts to move away from a specified character or point.
1345  **
1346  *i DIGUY_AGENT_BEHAVIOR_PURSUE
1347  **
1348  ** Agent attempts to stay close to a specified character or member of a
1349  ** group.
1350  **
1351  *i DIGUY_AGENT_BEHAVIOR_ATTACK
1352  **
1353  ** Similar to pursue, but once agents are close enough they will attack
1354  ** the target.
1355  **
1356  *i DIGUY_AGENT_BEHAVIOR_IDLE
1357  **
1358  ** Agent has no particular automatic behavior; it follows its path or
1359  ** moves toward its desired position as set by
1360  ** diguyCharacter::set_desired_position(). It will affect other agents
1361  ** in its crowd, and if pushed away from its desired position it will
1362  ** move back to it.
1363  */
1364 typedef enum
1365 {
1366  DIGUY_AGENT_BEHAVIOR_UNKNOWN = -1, // as string: "unknown"
1367  DIGUY_AGENT_BEHAVIOR_NONE = 0, // as string: "none"
1368  DIGUY_AGENT_BEHAVIOR_TRAVEL, // as string: "travel"
1369  DIGUY_AGENT_BEHAVIOR_PATH_FOLLOW, // as string: "path_follow"
1370  DIGUY_AGENT_BEHAVIOR_WANDER, // as string: "wander"
1371  DIGUY_AGENT_BEHAVIOR_FLEE, // as string: "flee"
1372  DIGUY_AGENT_BEHAVIOR_PURSUE, // as string: "pursue"
1373  DIGUY_AGENT_BEHAVIOR_MINGLE, // as string: "mingle"
1374  DIGUY_AGENT_BEHAVIOR_ATTACK, // as string: "attack"
1375  DIGUY_AGENT_BEHAVIOR_IDLE, // as string: "idle"
1377 
1379 
1381 /****************************************************************************/
1382 /*l
1383  *b Description:
1384  **
1385  ** DI-Guy agent untrap methods.
1386  **
1387  ** Following is a short description of each untrap method. See the
1388  ** DI-Guy AI documentation for more details.
1389  **
1390  *i DIGUY_AGENT_UNTRAP_METHOD_NONE
1391  **
1392  ** The agent makes no attempt to become untrapped. This can result in
1393  ** the agent blindly walking into a wall until its desired position
1394  ** changes.
1395  **
1396  *i DIGUY_AGENT_UNTRAP_METHOD_NAV_PATH
1397  **
1398  ** The agent will try to create a nav path in its current region to its
1399  ** desired position. If the desired position is not inside the region,
1400  ** a valid nav path may not be able to be found.
1401  **
1402  *i DIGUY_AGENT_UNTRAP_METHOD_RANDOM_TURN
1403  **
1404  ** The agent will stop moving and turn a random amount. This minor
1405  ** course change can sometimes move a character around a small
1406  ** obstacle.
1407  **
1408  *i DIGUY_AGENT_UNTRAP_METHOD_GHOST
1409  **
1410  ** Agent feelers will stop having an effect for a short time. This
1411  ** allows the agent to walk through a wall toward its desired
1412  ** position.
1413  **
1414  *i DIGUY_AGENT_UNTRAP_METHOD_TELEPORT
1415  **
1416  ** This is an extreme method, typically used as a last resort. The
1417  ** agent abruptly teleports to its desired position.
1418  **
1419  *i DIGUY_AGENT_UNTRAP_METHOD_STOP_MOVING
1420  **
1421  ** Somewhat similar to DIGUY_AGENT_UNTRAP_METHOD_NONE, but the current
1422  ** behavior of the agent is set to none, and the agent character's
1423  ** desired position is set to its current position.
1424  */
1425 typedef enum
1426 {
1427  DIGUY_AGENT_UNTRAP_METHOD_NONE = 0, // as string: "none"
1428  DIGUY_AGENT_UNTRAP_METHOD_NAV_PATH, // as string: "nav_path"
1429  DIGUY_AGENT_UNTRAP_METHOD_RANDOM_TURN, // as string: "random_turn"
1430  DIGUY_AGENT_UNTRAP_METHOD_GHOST, // as string: "ghost"
1431  DIGUY_AGENT_UNTRAP_METHOD_TELEPORT, // as string: "teleport"
1432  DIGUY_AGENT_UNTRAP_METHOD_STOP_MOVING, // as string: "stop_moving"
1434 
1436 
1437 
1438 /****************************************************************************/
1439 /*l
1440  *b Description:
1441  **
1442  ** DI-Guy region painting modes.
1443  **
1444  ** Painting modes identify what happens when a region paintbrush is used
1445  ** in some of the DI-Guy input modes.
1446  **
1447  *i DIGUY_REGION_PAINTBRUSH_MODE_ADDITIVE
1448  **
1449  ** Painting will add area to the current subregion. This may end up
1450  ** adding area to the base subregion, as well, as it contains at
1451  ** least the areas of all subregions.
1452  **
1453  *i DIGUY_REGION_PAINTBRUSH_MODE_ERASE
1454  **
1455  ** Painting will remove area from the current subregion. If the base
1456  ** subregion is erased, all matching areas in other subregions will be
1457  ** erased, as well.
1458  **
1459  *i DIGUY_REGION_PAINTBRUSH_MODE_UNGROUND_CLAMP
1460  **
1461  ** Painting will remove area from the current subregion, will also remove
1462  ** the height value from the region and the next time the area is painted
1463  ** it will adopt the height values of the new paint command.
1464  **
1465  *i DIGUY_REGION_PAINTBRUSH_MODE_MOVE_MESH
1466  **
1467  ** Moves the mesh to a new location in space and re-ground clamps
1468  **
1469  *i DIGUY_REGION_PAINTBRUSH_MODE_REACHABLE
1470  **
1471  ** Painting reachable will indicate that this is a spot the path planner
1472  ** should be willing to traverse. Erasing Reachable colors the spot black
1473  ** and indicates that it's not crossable or paint-able.
1474  **
1475  *i DIGUY_REGION_PAINTBRUSH_INTERNAL_MODE_UPDATE_BEHAVIOR_PATH
1476  **
1477  ** Internal use only.
1478  **
1479  *i DIGUY_REGION_PAINTBRUSH_INTERNAL_MODE_REPLACE
1480  **
1481  ** Internal use only.
1482  **
1483  */
1484 typedef enum
1485 {
1494 
1496 
1497 
1498 /****************************************************************************/
1499 /*l
1500  *b Description:
1501  **
1502  ** DI-Guy subregions.
1503  **
1504  ** Regions are irregularly shaped areas in the scene that can be used
1505  ** in a number of ways.
1506  **
1507  ** Regions contain a number of subregions. Each subregion is represented
1508  ** by a different color, and most often the subregions are referred to
1509  ** by their color. Subregions are not mutually exclusive; a point in
1510  ** the scene may be in all of the base, populate, and green subregions,
1511  ** for example.
1512  **
1513  ** Many functions that take one subregion as an argument use the string
1514  ** name of the subregion.
1515  **
1516  ** Functions that can have multiple subregions specified use a subregion
1517  ** mask made up of diguySubregionMask values that can be or'ed together
1518  ** to indicate multiple valid subregions. See diguySubregionMask for
1519  ** more information.
1520  **
1521  *i DIGUY_SUBREGION_BASE
1522  **
1523  ** This subregion is really a "super-region", in that its bounds contain
1524  ** all of the other subregions, and possibly more.
1525  **
1526  ** If any subregion of a top-level region is expanded beyond the bounds
1527  ** of the base subregion, the base subregion will be expanded until
1528  ** it encompasses the expansion.
1529  **
1530  ** If, however, a non-base subregion is subsequently shrunk, the base
1531  ** subregion will not shrink.
1532  **
1533  ** If the base subregion is shrunk, any portion of each non-base
1534  ** subregion that is no longer in the base subregion will be removed.
1535  **
1536  *i DIGUY_SUBREGION_POPULATE
1537  **
1538  ** The subregion into which new crowd agents will be placed if the
1539  ** region is populated or repopulated. This subregion is typically
1540  ** purple.
1541  **
1542  ** DIGUY_SUBREGION_[color]
1543  **
1544  ** The "color" subregions are free to be used in any way a scenario
1545  ** designer wants. Their colors are based on their name.
1546  **
1547  *i DIGUY_SUBREGION_ROAD
1548  **
1549  ** Road subregions are commonly used as preferred subregions for vehicle
1550  ** travel, and repulsion subregions for human travel. This subregion
1551  ** is typically gray.
1552  **
1553  *i DIGUY_SUBREGION_SIDEWALK
1554  **
1555  ** Sidewalk subregions are commonly used as preferred subregions for
1556  ** human travel, and repulsion subregions for vehicles. This subregion
1557  ** is typically white.
1558  **
1559  *i DIGUY_SUBREGION_CROSSWALK
1560  **
1561  ** Humans will tend to prefer crosswalk subregions over road subregions,
1562  ** but prefer sidewalk subregions over crosswalk subregions. This
1563  ** subregion is typically a light yellow.
1564  */
1565 typedef enum
1567  DIGUY_SUBREGION_BASE = 0, // as string: "base"
1568  DIGUY_SUBREGION_POPULATE, // as string: "populate"
1569 
1570  DIGUY_SUBREGION_RED, // as string: "red"
1571  DIGUY_SUBREGION_GREEN, // as string: "green"
1572  DIGUY_SUBREGION_BLUE, // as string: "blue"
1573  DIGUY_SUBREGION_YELLOW, // as string: "yellow"
1574  DIGUY_SUBREGION_ORANGE, // as string: "orange"
1575  DIGUY_SUBREGION_WHITE, // as string: "white"
1577  DIGUY_SUBREGION_ROAD, // as string: "road"
1578  DIGUY_SUBREGION_SIDEWALK, // as string: "sidewalk"
1579  DIGUY_SUBREGION_CROSSWALK, // as string: "crosswalk"
1580 
1582 
1584 
1585 
1586 BDI_DECLSPEC_bdiutil const char* diguy_subregion_index_to_string(diguySubregionIndex subregion_index);
1587 BDI_DECLSPEC_bdiutil diguySubregionIndex diguy_subregion_index_from_string(const char* string);
1588 
1589 
1590 /****************************************************************************/
1591 /*l
1592  *b Description:
1593  **
1594  ** DI-Guy subregions mask values.
1595  **
1596  *b Example:
1597  **
1598  ** To specify that a function can use either the red or blue subregions,
1599  ** the following syntax is used.
1600  **
1601  ** In Perl or C++:
1602  **
1603  *e DIGUY_SUBREGION_MASK_RED | DIGUY_SUBREGION_MASK_BLUE
1604  **
1605  ** In Lua:
1606  **
1607  *e bit.bor( DIGUY_SUBREGION_MASK_RED, DIGUY_SUBREGION_MASK_BLUE,...)
1608  **
1609  ** Lua does not natively support bitfields, but support is automatically
1610  ** added via the "LuaBit" library located in $DIGUY/bin/lua/bit.lua.
1611  */
1612 typedef enum
1613 {
1614  DIGUY_SUBREGION_MASK_NONE = 0x00000000,
1615  DIGUY_SUBREGION_MASK_BASE = 0x00000020,
1616  DIGUY_SUBREGION_MASK_POPULATE = 0x00000040,
1617 
1618  DIGUY_SUBREGION_MASK_RED = 0x00000080,
1619  DIGUY_SUBREGION_MASK_GREEN = 0x00000100,
1620  DIGUY_SUBREGION_MASK_BLUE = 0x00000200,
1621  DIGUY_SUBREGION_MASK_YELLOW = 0x00000400,
1622  DIGUY_SUBREGION_MASK_ORANGE = 0x00000800,
1623  DIGUY_SUBREGION_MASK_WHITE = 0x00001000,
1624 
1625  DIGUY_SUBREGION_MASK_ROAD = 0x00002000,
1626  DIGUY_SUBREGION_MASK_SIDEWALK = 0x00004000,
1627  DIGUY_SUBREGION_MASK_CROSSWALK = 0x00008000,
1628 
1631 
1632 /****************************************************************************/
1633 /*l
1634  *b Description:
1635  **
1636  ** DI-Guy navigation mesh path planner cost masks.
1637  **
1638  ** Documentation pending: these require more explanation.
1639  **
1640  */
1641 typedef enum
1642 {
1643  DIGUY_NAVMESH_SHORTEST_PATH = 0x00000001,
1644  DIGUY_NAVMESH_LEAST_VISIBLE = 0x00000002,
1645  DIGUY_NAVMESH_MESH_EDGE = 0x00000004,
1647  DIGUY_NAVMESH_MESH_AVOID_EDGES = 0x00000008,
1648 
1650 
1651 
1652 /****************************************************************************/
1653 /*
1654  * USMC chain of command:
1655  *
1656  * fire team - three individuals - corporal
1657  * squad - three teams - sergeant
1658  * platoon - three squads (usually) - lieutenant
1659  * company - three platoons - captain
1660  * battalion - three companies - lt. colonel
1661  * regiment (or brigade) - three battalions - ?
1662  * division - three regiments - ?
1663  * marine corps - three or more divisions - ?
1664  *
1665  */
1666 typedef enum
1667 {
1669 
1670  DIGUY_TACTICS_UNIT_TYPE_MARINE, // an individual
1688  DIGUY_TACTICS_UNIT_TYPE_ARMY // two or more corps
1689 
1692 
1693 /****************************************************************************/
1694 /*l
1695  *b Description:
1696  **
1697  ** This enumeration lists the methods in which the datetime of a scenario
1698  ** can advance.
1699  **
1700  *i DIGUY_DATETIME_ADVANCE_METHOD_MANUAL
1701  **
1702  ** Datetime does not advance automatically. It can only be set
1703  ** manually, e.g. by a diguyScenario::set_current_datetime() call.
1704  **
1705  *i DIGUY_DATETIME_ADVANCE_METHOD_REAL_TIME_RATE
1706  **
1707  ** Datetime advances at the same rate as realtime.
1708  **
1709  *i DIGUY_DATETIME_ADVANCE_METHOD_SIMULATION_TIME_RATE
1710  **
1711  ** Datetime advances at the same rate as simulation time.
1712  */
1713 typedef enum
1720 
1722 /****************************************************************************/
1723 /*l
1724  *b Description:
1725  **
1726  *i DIGUY_DATETIME_NETWORK_MODE_LOCAL_ONLY
1727  **
1728  ** Datetime data will be handled locally on this host. No data will be
1729  ** sent on the netword, and no data will be read from the network.
1730  **
1731  *i DIGUY_DATETIME_NETWORK_MODE_BROADCAST
1732  **
1733  ** Datetime data will be sent from this host to other hosts in the
1734  ** network. The datetime will be encoded in a custom
1735  ** DIGUY_CUSTOM_PDU_ID_BROADCAST_EXERCISE_DATETIME PDU. In general
1736  ** there should be only one host on the network broadcasting datetime
1737  ** data; all others should receive or ignore it.
1738  **
1739  *i DIGUY_DATETIME_NETWORK_MODE_RECEIVE
1740  **
1741  ** Datetime data will be read from the network from custom
1742  ** DIGUY_CUSTOM_PDU_ID_BROADCAST_EXERCISE_DATETIME PDUs.
1743  */
1744 typedef enum
1749 
1751 
1752 
1753 /*****************************************************************************/
1754 /*****************************************************************************/
1758 /*****************************************************************************/
1759 /*****************************************************************************/
1760 
1761 
1762 /****************************************************************************/
1763 /*l
1764  *b Description:
1765  **
1766  ** This enumeration lists units of speed that can be passed to some
1767  ** DI-Guy API functions.
1768  **
1769  ** Note that if one of these values is used specifying an acceleration,
1770  ** add an implicit "per second" to the end. e.g., if 10.0 is passed as
1771  ** an acceleration, with units DIGUY_SPEED_UNITS_MILES_PER_HOUR,
1772  ** the resulting acceleration would be 10.0 miles per hour per second;
1773  ** or in other words, every 1 second speed would increase by 10.0 miles
1774  ** per hour.
1775  */
1776 typedef enum
1777 {
1781 
1782 } diguySpeedUnits;
1783 
1784 
1785 /****************************************************************************/
1786 /*l
1787  *b Description:
1788  **
1789  ** This enumeration lists the ways that data can be generated for DI-Guy
1790  ** characters. Data typically comes from the DI-Guy motion engine,
1791  ** but at times may be generated by other simulation methods.
1792  */
1793 typedef enum
1794 {
1800 
1802 
1803 
1804 /****************************************************************************/
1805 /*l
1806  *b Description:
1807  **
1808  ** This enumeration lists the modes that a DI-Guy character physics sim
1809  ** can be in, when the character simulator is set to
1810  ** DIGUY_CHARACTER_SIMULATOR_PHYSICS_SIM_MODULE.
1811  */
1812 typedef enum
1813 {
1818 
1820 
1821 
1822 /****************************************************************************/
1823 /*l
1824  *b Description:
1825  **
1826  ** This enumeration lists the collision groups that a DI-Guy physics sim
1827  ** object can be in. Characters in different collision groups may not
1828  ** have collisions calculated between them.
1829  */
1830 typedef enum
1831 {
1838 
1843 
1848 
1850 
1852 
1854 
1855 
1856 /****************************************************************************/
1857 /*l
1858  *b Description:
1859  **
1860  ** This enumeration lists the modes that the DI-Guy vehicle simulator
1861  ** can be in.
1862  */
1863 typedef enum
1864 {
1871 
1873 
1874 
1875 BDI_DECLSPEC_bdiutil const char* diguy_vehicle_simulation_mode_to_string(diguyVehicleSimulationMode mode);
1876 BDI_DECLSPEC_bdiutil diguyVehicleSimulationMode diguy_vehicle_simulation_mode_from_string(const char* string);
1877 
1878 
1879 /*****************************************************************************/
1880 /*****************************************************************************/
1884 /*****************************************************************************/
1885 /*****************************************************************************/
1886 
1887 
1888 /*****************************************************************************/
1889 /*****************************************************************************/
1893 /*****************************************************************************/
1894 /*****************************************************************************/
1895 
1896 /****************************************************************************/
1897 /*l
1898  *b Description:
1899  **
1900  ** This enumeration lists supported shader languages.
1901  */
1902 typedef enum
1903 {
1906 
1908 
1909 
1910 
1911 
1912 #endif /* __diguy_constants_H */
1913 
diguySubregionIndex diguy_subregion_index_from_string(const char *string)
Definition: diguy_constants.h:203
Definition: diguy_constants.h:403
Definition: diguy_constants.h:902
Definition: diguy_constants.h:1460
Definition: diguy_constants.h:119
Definition: diguy_constants.h:824
Definition: diguy_constants.h:787
Definition: diguy_constants.h:1025
Definition: diguy_constants.h:682
Definition: diguy_constants.h:577
Definition: diguy_constants.h:681
Definition: diguy_constants.h:1512
Definition: diguy_constants.h:515
Definition: diguy_constants.h:120
Definition: diguy_constants.h:895
Definition: diguy_constants.h:1466
Definition: diguy_constants.h:794
Definition: diguy_constants.h:784
diguyGraphicsTextureLoadingBehavior
Definition: diguy_constants.h:370
Definition: diguy_constants.h:1267
Definition: diguy_constants.h:1181
Definition: diguy_constants.h:300
Definition: diguy_constants.h:867
diguyAimAlgorithm
DI-Guy aim algorithms.
Definition: diguy_constants.h:932
Definition: diguy_constants.h:1677
Definition: diguy_constants.h:1508
Definition: diguy_constants.h:865
Definition: diguy_constants.h:798
Definition: diguy_constants.h:498
Definition: diguy_constants.h:1575
Definition: diguy_constants.h:680
Definition: diguy_constants.h:343
Definition: diguy_constants.h:1166
Definition: diguy_constants.h:1324
Definition: diguy_constants.h:1107
Definition: diguy_constants.h:899
Definition: diguy_constants.h:1020
Definition: diguy_constants.h:473
Definition: diguy_constants.h:791
Definition: diguy_constants.h:732
Definition: diguy_constants.h:576
diguyScenarioInputMode diguy_input_mode_from_string(const char *string)
Definition: diguy_constants.h:122
Definition: diguy_constants.h:1661
Definition: diguy_constants.h:1693
Definition: diguy_constants.h:1560
diguyEulerAngleOrder
DI-Guy Euler angle orders.
Definition: diguy_constants.h:574
Definition: diguy_constants.h:762
Definition: diguy_constants.h:468
Definition: diguy_constants.h:796
diguyGraphicsShaderLanguage
This enumeration lists supported shader languages.
Definition: diguy_constants.h:1773
diguySubregionIndex
DI-Guy subregions.
Definition: diguy_constants.h:1457
Definition: diguy_constants.h:816
Definition: diguy_constants.h:1676
Definition: diguy_constants.h:697
Definition: diguy_constants.h:1603
Definition: diguy_constants.h:1711
Definition: diguy_constants.h:113
diguyGraphicsJointType
DI-Guy graphics joint types.
Definition: diguy_constants.h:436
Definition: diguy_constants.h:923
Definition: diguy_constants.h:1534
Definition: diguy_constants.h:1462
Definition: diguy_constants.h:1742
Definition: diguy_constants.h:392
Definition: diguy_constants.h:1464
Definition: diguy_constants.h:395
Definition: diguy_constants.h:1565
Definition: diguy_constants.h:499
Definition: diguy_constants.h:1743
Definition: diguy_constants.h:1741
Definition: diguy_constants.h:1568
Definition: diguy_constants.h:282
Definition: diguy_constants.h:1572
Definition: diguy_constants.h:1088
Definition: diguy_constants.h:912
Definition: diguy_constants.h:1513
Definition: diguy_constants.h:152
Definition: diguy_constants.h:1470
Definition: diguy_constants.h:479
Definition: diguy_constants.h:1712
diguyHistoryType
DI-Guy history types.
Definition: diguy_constants.h:280
Definition: diguy_constants.h:838
Definition: diguy_constants.h:1274
Definition: diguy_constants.h:443
Definition: diguy_constants.h:829
diguyPluginMouseCursor
This enumeration lists the cursors returnable by the plugin function get_cursor().
Definition: diguy_constants.h:727
Definition: diguy_constants.h:1566
Definition: diguy_constants.h:99
Definition: diguy_constants.h:903
Definition: diguy_constants.h:1004
Definition: diguy_constants.h:115
Definition: diguy_constants.h:167
Definition: diguy_constants.h:467
Definition: diguy_constants.h:1106
Definition: diguy_constants.h:445
Definition: diguy_constants.h:817
Definition: diguy_constants.h:1467
Definition: diguy_constants.h:386
Definition: diguy_constants.h:475
Definition: diguy_constants.h:820
Definition: diguy_constants.h:862
Definition: diguy_constants.h:222
Definition: diguy_constants.h:1180
Definition: diguy_constants.h:1459
Definition: diguy_constants.h:581
Definition: diguy_constants.h:916
Definition: diguy_constants.h:477
Definition: diguy_constants.h:238
Definition: diguy_constants.h:854
Definition: diguy_constants.h:138
Definition: diguy_constants.h:731
Definition: diguy_constants.h:402
diguyNavMeshPathPlannerCostMask
DI-Guy navigation mesh path planner cost masks.
Definition: diguy_constants.h:1532
Definition: diguy_constants.h:863
Definition: diguy_constants.h:891
Definition: diguy_constants.h:514
Definition: diguy_constants.h:449
Definition: diguy_constants.h:301
diguyViewCameraProjectionMode
DI-Guy camera projection modes.
Definition: diguy_constants.h:247
Definition: diguy_constants.h:478
Definition: diguy_constants.h:1465
Definition: diguy_constants.h:223
Definition: diguy_constants.h:830
Definition: diguy_constants.h:265
Definition: diguy_constants.h:920
Definition: diguy_constants.h:1323
Definition: diguy_constants.h:661
Definition: diguy_constants.h:864
Definition: diguy_constants.h:837
Definition: diguy_constants.h:1578
Definition: diguy_constants.h:341
Definition: diguy_constants.h:1509
Definition: diguy_constants.h:1520
Definition: diguy_constants.h:201
Definition: diguy_constants.h:839
Definition: diguy_constants.h:975
diguyChainCrossSection
This enumeration lists which cross-sections are available for DI-Guy chain simulation visuals...
Definition: diguy_constants.h:759
Definition: diguy_constants.h:404
Definition: diguy_constants.h:448
Definition: diguy_constants.h:150
Definition: diguy_constants.h:427
Definition: diguy_constants.h:306
Definition: diguy_constants.h:1027
Definition: diguy_constants.h:1722
Definition: diguy_constants.h:466
Definition: diguy_constants.h:165
Definition: diguy_constants.h:517
Definition: diguy_constants.h:828
Definition: diguy_constants.h:1570
Definition: diguy_constants.h:397
Definition: diguy_constants.h:918
Definition: diguy_constants.h:898
Definition: diguy_constants.h:393
Definition: diguy_constants.h:1719
Definition: diguy_constants.h:250
Definition: diguy_constants.h:789
Definition: diguy_constants.h:1576
Definition: diguy_constants.h:497
Definition: diguy_constants.h:168
Definition: diguy_constants.h:819
Definition: diguy_constants.h:658
Definition: diguy_constants.h:893
Definition: diguy_constants.h:660
Definition: diguy_constants.h:420
Definition: diguy_constants.h:1567
Definition: diguy_constants.h:656
Definition: diguy_constants.h:1537
diguyRenderPassFlags
DI-Guy renderer pass masks, set via diguyApp::set_render_pass_flags().
Definition: diguy_constants.h:337
Definition: diguy_constants.h:1105
Definition: diguy_constants.h:1380
Definition: diguy_constants.h:1197
Definition: diguy_constants.h:183
Definition: diguy_constants.h:1381
Definition: diguy_constants.h:340
Definition: diguy_constants.h:892
Definition: diguy_constants.h:1196
diguySpeedUnits
This enumeration lists units of speed that can be passed to some DI-Guy API functions.
Definition: diguy_constants.h:1659
Definition: diguy_constants.h:821
Definition: diguy_constants.h:1167
Definition: diguy_constants.h:1194
diguyViewCameraMoveMode
DI-Guy camera move modes.
Definition: diguy_constants.h:217
Definition: diguy_constants.h:919
diguyMuzzle
This is an enumeration of the different muzzles that can be specified to various DI-Guy function call...
Definition: diguy_constants.h:181
Definition: diguy_constants.h:422
Definition: diguy_constants.h:678
Definition: diguy_constants.h:1329
Definition: diguy_constants.h:663
diguyScenarioMergeInitialSettings
This enumeration tells DI-Guy what values to use as defaults when the diguyScenario::create_merge_set...
Definition: diguy_constants.h:676
Definition: diguy_constants.h:890
Definition: diguy_constants.h:695
Definition: diguy_constants.h:401
Definition: diguy_constants.h:284
Definition: diguy_constants.h:1516
Definition: diguy_constants.h:1740
Definition: diguy_constants.h:1633
Definition: diguy_constants.h:1148
Definition: diguy_constants.h:219
Definition: diguy_constants.h:859
Definition: diguy_constants.h:792
Definition: diguy_constants.h:372
Definition: diguy_constants.h:283
Definition: diguy_constants.h:801
Definition: diguy_constants.h:286
Definition: diguy_constants.h:202
Definition: diguy_constants.h:1538
Definition: diguy_constants.h:800
Definition: diguy_constants.h:447
Definition: diguy_constants.h:1169
Definition: diguy_constants.h:730
Definition: diguy_constants.h:1726
Definition: diguy_constants.h:1327
Definition: diguy_constants.h:1144
Definition: diguy_constants.h:1519
Definition: diguy_constants.h:1273
Definition: diguy_constants.h:373
Definition: diguy_constants.h:496
diguyCharacterSimulator
This enumeration lists the ways that data can be generated for DI-Guy characters. ...
Definition: diguy_constants.h:1674
Definition: diguy_constants.h:249
Definition: diguy_constants.h:1710
Definition: diguy_constants.h:1714
diguyCharacterClass
DI-Guy character classes.
Definition: diguy_constants.h:110
Definition: diguy_constants.h:308
Definition: diguy_constants.h:913
diguyStaticAvoidanceMethod
This enumeration lists the methods available for collision detection and avoidance against static obj...
Definition: diguy_constants.h:1002
const char * diguy_playback_mode_to_string(diguyScenarioPlaybackMode playback_mode)
Definition: diguy_constants.h:1535
Definition: diguy_constants.h:400
Definition: diguy_constants.h:390
diguyViewFogMode
DI-Guy fog modes.
Definition: diguy_constants.h:262
Definition: diguy_constants.h:825
Definition: diguy_constants.h:827
Definition: diguy_constants.h:832
Definition: diguy_constants.h:442
diguyRegionPaintbrushMode
DI-Guy region painting modes.
Definition: diguy_constants.h:1378
Definition: diguy_constants.h:1382
Definition: diguy_constants.h:911
Definition: diguy_constants.h:1518
Definition: diguy_constants.h:871
Definition: diguy_constants.h:185
Definition: diguy_constants.h:118
Definition: diguy_constants.h:186
Definition: diguy_constants.h:1328
Definition: diguy_constants.h:1195
Definition: diguy_constants.h:1162
Definition: diguy_constants.h:901
diguyNavPathSearchResults
Errors various nav path functions may return.
Definition: diguy_constants.h:1159
Definition: diguy_constants.h:1057
Definition: diguy_constants.h:795
Definition: diguy_constants.h:662
Definition: diguy_constants.h:1564
Definition: diguy_constants.h:439
Definition: diguy_constants.h:1325
Definition: diguy_constants.h:1198
Definition: diguy_constants.h:556
Definition: diguy_constants.h:1605
Definition: diguy_constants.h:221
Definition: diguy_constants.h:415
Definition: diguy_constants.h:444
Definition: diguy_constants.h:1163
Definition: diguy_constants.h:465
Definition: diguy_constants.h:1087
Definition: diguy_constants.h:1558
Definition: diguy_constants.h:934
const char * diguy_input_mode_to_string(diguyScenarioInputMode input_mode)
Definition: diguy_constants.h:872
Definition: diguy_constants.h:782
Definition: diguy_constants.h:495
diguyImpactType
This is an enumeration of the different impact types that are found in diguyImpact.
Definition: diguy_constants.h:198
Definition: diguy_constants.h:786
Definition: diguy_constants.h:421
diguyScenarioWindowId
This enumeration lists the windows that can be shown in the DI-Guy Scenario application.
Definition: diguy_constants.h:814
Definition: diguy_constants.h:307
Definition: diguy_constants.h:491
Definition: diguy_constants.h:251
Definition: diguy_constants.h:896
Definition: diguy_constants.h:921
Definition: diguy_constants.h:1264
Definition: diguy_constants.h:342
diguyScenarioPlaybackMode diguy_playback_mode_from_string(const char *string)
Definition: diguy_constants.h:1023
Definition: diguy_constants.h:910
Definition: diguy_constants.h:1055
Definition: diguy_constants.h:417
Definition: diguy_constants.h:494
Definition: diguy_constants.h:1383
Definition: diguy_constants.h:1717
Definition: diguy_constants.h:870
Definition: diguy_constants.h:866
Definition: diguy_constants.h:236
Definition: diguy_constants.h:1019
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:1191
Definition: diguy_constants.h:1728
Definition: diguy_constants.h:1090
Definition: diguy_constants.h:797
Definition: diguy_constants.h:1056
Definition: diguy_constants.h:1723
Definition: diguy_constants.h:836
Definition: diguy_constants.h:137
Definition: diguy_constants.h:788
Definition: diguy_constants.h:1266
diguyAgentUntrapMethod
DI-Guy agent untrap methods.
Definition: diguy_constants.h:1321
Definition: diguy_constants.h:1463
Definition: diguy_constants.h:1143
Definition: diguy_constants.h:1695
Definition: diguy_constants.h:935
Definition: diguy_constants.h:270
Definition: diguy_constants.h:578
Definition: diguy_constants.h:1745
Definition: diguy_constants.h:915
Definition: diguy_constants.h:252
Definition: diguy_constants.h:446
Definition: diguy_constants.h:857
Definition: diguy_constants.h:188
Definition: diguy_constants.h:659
Definition: diguy_constants.h:580
Definition: diguy_constants.h:856
Definition: diguy_constants.h:237
Definition: diguy_constants.h:917
Definition: diguy_constants.h:184
Definition: diguy_constants.h:200
Definition: diguy_constants.h:1193
Definition: diguy_constants.h:1713
diguyViewCameraServoTarget
Aspects of the DI-Guy camera that can be servoed.
Definition: diguy_constants.h:234
Definition: diguy_constants.h:476
Definition: diguy_constants.h:790
Definition: diguy_constants.h:1536
Definition: diguy_constants.h:858
Definition: diguy_constants.h:733
Definition: diguy_constants.h:1678
Definition: diguy_constants.h:169
Definition: diguy_constants.h:1161
Definition: diguy_constants.h:905
Definition: diguy_constants.h:1577
Definition: diguy_constants.h:1142
diguyCrowdProfileSelectionMethod
Selection methods for records from crowd profiles.
Definition: diguy_constants.h:1177
Definition: diguy_constants.h:818
diguyNavPathDirection
Directions a character can be traveling on a navigation path (nav path).
Definition: diguy_constants.h:1103
Definition: diguy_constants.h:1022
Definition: diguy_constants.h:1507
diguyParameterComparison
This is an enumeration of the different parameter comparison options that can be specified to various...
Definition: diguy_constants.h:163
Definition: diguy_constants.h:889
Definition: diguy_constants.h:114
Definition: diguy_constants.h:579
diguyScenarioMergeFlag
This enumeration is used for various variables in the diguyScenarioMergeSettings object.
Definition: diguy_constants.h:654
Definition: diguy_constants.h:875
Definition: diguy_constants.h:1511
Definition: diguy_constants.h:304
Definition: diguy_constants.h:480
Definition: diguy_constants.h:1021
Definition: diguy_constants.h:493
Definition: diguy_constants.h:555
Definition: diguy_constants.h:1168
Definition: diguy_constants.h:897
Definition: diguy_constants.h:1005
Definition: diguy_constants.h:344
Definition: diguy_constants.h:418
Definition: diguy_constants.h:339
Definition: diguy_constants.h:1561
diguyTacticsUnitType
Definition: diguy_constants.h:1556
Definition: diguy_constants.h:121
Definition: diguy_constants.h:1473
Definition: diguy_constants.h:783
Definition: diguy_constants.h:151
diguyCallbackReturn
DI-Guy callbacks return a value of type diguyCallbackReturn, which will be DIGUY_CALLBACK_STOP or DIG...
Definition: diguy_constants.h:96
Definition: diguy_constants.h:220
Definition: diguy_constants.h:440
Definition: diguy_constants.h:398
Definition: diguy_constants.h:1680
Definition: diguy_constants.h:852
diguyNavPathAtEnd
What a character following a nav path will do once it reaches the end of a nav path.
Definition: diguy_constants.h:1139
Definition: diguy_constants.h:1721
Definition: diguy_constants.h:469
diguyDynamicAvoidanceMethod
This enumeration lists the methods available for collision detection and avoidance against dynamic ob...
Definition: diguy_constants.h:973
diguyCharacterMode
This is an enumeration of the different modes a DI-Guy character can be in.
Definition: diguy_constants.h:148
Definition: diguy_constants.h:833
diguyVisibleFlag
This enumeration lists the visibility options for various objects in the DI-Guy Scenario environment...
Definition: diguy_constants.h:512
Definition: diguy_constants.h:799
Definition: diguy_constants.h:1271
Definition: diguy_constants.h:389
diguyScenarioEditAction
This enumeration lists different types of editing actions that can be performed in the DI-Guy Scenari...
Definition: diguy_constants.h:849
Definition: diguy_constants.h:785
Definition: diguy_constants.h:516
Definition: diguy_constants.h:1270
Definition: diguy_constants.h:464
diguyVehicleSimulationMode diguy_vehicle_simulation_mode_from_string(const char *string)
Definition: diguy_constants.h:416
Definition: diguy_constants.h:135
Definition: diguy_constants.h:834
Definition: diguy_constants.h:1089
diguyAuthorVisualUpdateFlag
This enumeration lists which parts of a visual object may need to be updated.
Definition: diguy_constants.h:553
Definition: diguy_constants.h:1776
Definition: diguy_constants.h:285
Definition: diguy_constants.h:166
Definition: diguy_constants.h:136
Definition: diguy_constants.h:1141
Definition: diguy_constants.h:474
Definition: diguy_constants.h:492
Definition: diguy_constants.h:441
Definition: diguy_constants.h:908
Definition: diguy_constants.h:98
Definition: diguy_constants.h:894
const char * diguy_vehicle_simulation_mode_to_string(diguyVehicleSimulationMode mode)
Definition: diguy_constants.h:1145
Definition: diguy_constants.h:729
diguyCharacterAppearanceTypes
DI-Guy character appearance query API, this is for diguyCharacter::get_num_appearances_of_type() ...
Definition: diguy_constants.h:132
diguyPhysicsSimulationMode
This enumeration lists the modes that a DI-Guy character physics sim can be in, when the character si...
Definition: diguy_constants.h:1691
Definition: diguy_constants.h:134
Definition: diguy_constants.h:1269
Definition: diguy_constants.h:976
Definition: diguy_constants.h:1562
Definition: diguy_constants.h:1165
Definition: diguy_constants.h:1634
Definition: diguy_constants.h:826
Definition: diguy_constants.h:1108
diguyScenarioPlaybackMode
This enumeration identifies which playback mode time should follow.
Definition: diguy_constants.h:489
Definition: diguy_constants.h:1571
Definition: diguy_constants.h:763
Definition: diguy_constants.h:1663
Definition: diguy_constants.h:116
Definition: diguy_constants.h:305
Definition: diguy_constants.h:267
Definition: diguy_constants.h:302
diguyScenarioMergeResetFlag
This enumeration tells DI-Guy which scenario elements should be reset after the merge is complete...
Definition: diguy_constants.h:693
diguyCharacterFeelerTurnDirection
This enumeration lists the turn directions a feeler can use when its status is DIGUY_CHARACTER_FEELER...
Definition: diguy_constants.h:1085
Definition: diguy_constants.h:396
Definition: diguy_constants.h:1469
Definition: diguy_constants.h:696
Definition: diguy_constants.h:679
Definition: diguy_constants.h:266
Definition: diguy_constants.h:268
Definition: diguy_constants.h:1179
Definition: diguy_constants.h:1604
Definition: diguy_constants.h:394
Definition: diguy_constants.h:1265
Definition: diguy_constants.h:906
Definition: diguy_constants.h:853
Definition: diguy_constants.h:657
Definition: diguy_constants.h:298
Definition: diguy_constants.h:1679
Definition: diguy_constants.h:269
diguyDatetimeNetworkMode
DIGUY_DATETIME_NETWORK_MODE_LOCAL_ONLY
Definition: diguy_constants.h:1630
Definition: diguy_constants.h:438
diguyPhysicsCollisionGroup
This enumeration lists the collision groups that a DI-Guy physics sim object can be in...
Definition: diguy_constants.h:1707
Definition: diguy_constants.h:557
Definition: diguy_constants.h:264
Definition: diguy_constants.h:1775
Definition: diguy_constants.h:1386
Definition: diguy_constants.h:471
Definition: diguy_constants.h:1471
Definition: diguy_constants.h:117
Definition: diguy_constants.h:1026
Definition: diguy_constants.h:1709
Definition: diguy_constants.h:1387
Definition: diguy_constants.h:112
Definition: diguy_constants.h:204
Definition: diguy_constants.h:835
Definition: diguy_constants.h:559
Definition: diguy_constants.h:1515
Definition: diguy_constants.h:1632
Definition: diguy_constants.h:1024
Definition: diguy_constants.h:391
Definition: diguy_constants.h:761
Definition: diguy_constants.h:1716
Definition: diguy_constants.h:450
Definition: diguy_constants.h:582
Definition: diguy_constants.h:374
Definition: diguy_constants.h:388
Definition: diguy_constants.h:1268
Definition: diguy_constants.h:425
Definition: diguy_constants.h:1164
Definition: diguy_constants.h:823
diguyAgentBehavior
DI-Guy agent behaviors.
Definition: diguy_constants.h:1262
Definition: diguy_constants.h:1744
Definition: diguy_constants.h:558
Definition: diguy_constants.h:470
Definition: diguy_constants.h:472
Definition: diguy_constants.h:855
Definition: diguy_constants.h:1573
Definition: diguy_constants.h:1514
Definition: diguy_constants.h:1724
Definition: diguy_constants.h:1326
Definition: diguy_constants.h:904
diguyDatetimeAdvanceMethod
This enumeration lists the methods in which the datetime of a scenario can advance.
Definition: diguy_constants.h:1601
Definition: diguy_constants.h:1563
Definition: diguy_constants.h:907
Definition: diguy_constants.h:1384
Definition: diguy_constants.h:900
Definition: diguy_constants.h:424
Definition: diguy_constants.h:1272
int diguyCharacterFeelerNumber
This enumeration lists the standard feelers used for static object avoidance used by I-Guy and agent ...
Definition: diguy_constants.h:1015
diguySubregionMask
DI-Guy subregions mask values.
Definition: diguy_constants.h:1505
Definition: diguy_constants.h:1150
Definition: diguy_constants.h:187
diguyScenarioInputMode
This enumeration lists the input modes available in DI-Guy Scenario views (3D windows) and for DI-Guy...
Definition: diguy_constants.h:780
diguyVehicleSimulationMode
This enumeration lists the modes that the DI-Guy vehicle simulator can be in.
Definition: diguy_constants.h:1738
Definition: diguy_constants.h:822
Definition: diguy_constants.h:1662
Definition: diguy_constants.h:1574
diguyCharacterFeelerStatus
This enumeration lists the state character feelers may be in.
Definition: diguy_constants.h:1053
Definition: diguy_constants.h:914
Definition: diguy_constants.h:1694
Definition: diguy_constants.h:831
Definition: diguy_constants.h:1718
Definition: diguy_constants.h:426