DI-Guy SDK Documentation  13.5
diguy_constants.h
Go to the documentation of this file.
1 
2 /*********************************************************************
3  ** Copyright (c) 1992-2020 MAK Technologies, Inc.
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 {
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 
337 
343 } ;
344 
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  *i DIGUY_RENDER_PASS_DEBUGGING
373  **
374  ** Used for Shader debugging visualization
375  **
376  *i DIGUY_RENDER_PASS_TRANSPARENCY_DEBUGGING ,
377  **
378  ** Used to skip the 2nd render pass optimizations. Assumes that work normally done in pass1 needs to be redone.
379  **
380  *<
381  */
383 {
387  DIGUY_RENDER_PASS_SHADOW = 0x00000008,
388  DIGUY_RENDER_PASS_INTERSECTION = 0x00000010,
389  DIGUY_RENDER_PASS_DEBUGGING = 0x00000020,
392 
393 };
394 
395 
396 
397 /*****************************************************************************/
398 /*****************************************************************************/
421 typedef enum
422 {
425  DIGUY_LOAD_ASYNC = 2,
426 
430 /****************************************************************************/
431 /*l
432  *b Description:
433  **
434  ** DI-Guy error codes.
435  **
436  */
437 enum
438 {
440 
458 };
461 /****************************************************************************/
462 /*l
463  *b Description:
464  **
465  ** DI-Guy vector indices.
466  **
467  */
468 enum
469 {
470  DIGUY_VEC_X = 0,
471  DIGUY_VEC_Y,
472  DIGUY_VEC_Z,
473  DIGUY_VEC_W,
474 
475  DIGUY_VEC_RZ = 0,
483 };
486 /****************************************************************************/
487 /*l
488  *b Description:
489  **
490  ** DI-Guy graphics joint types.
491  **
492  */
493 typedef enum
494 {
512 /****************************************************************************/
513 /*l
514  *b Description:
515  **
516  ** When a scene is rendered in order to select a DI-Guy object from,
517  ** say, a mouse click, the type of object selected is identified by
518  ** this enumeration.
519  **
520  */
521 enum
522 {
540 };
541 
542 
543 /****************************************************************************/
544 /*l
545  *b Description:
546  **
547  ** This enumeration identifies which playback mode time should follow.
548  ** Only valid inside DI-Guy Scenario.
549  */
550 typedef enum
551 {
561 
563 
564 BDI_DECLSPEC_bdiutil const char* diguy_playback_mode_to_string(diguyScenarioPlaybackMode playback_mode);
565 BDI_DECLSPEC_bdiutil diguyScenarioPlaybackMode diguy_playback_mode_from_string(const char* string);
566 
568 /****************************************************************************/
569 /*l
570  *b Description:
571  **
572  ** This enumeration lists the visibility options for various objects
573  ** in the DI-Guy Scenario environment.
574  */
575 typedef enum
576 {
577  DIGUY_VISIBLE_NONE = 0,
581 
583 
584 
585 /****************************************************************************/
586 /*l
587  *b Description:
588  **
589  ** This enumeration lists which parts of a visual object may need to be
590  ** updated. The values can be or-ed together.
591  **
592  *i DIGUY_GRAPHICS_VISUAL_UPDATE_NONE
593  **
594  ** Nothing in the visual needs to be updated.
595  **
596  *i DIGUY_GRAPHICS_VISUAL_UPDATE_GEOMETRY
597  **
598  ** The overall geometry of the visual needs to be updated. This means
599  ** that vertices and other parts of polygons need to be recalculated.
600  **
601  *i DIGUY_GRAPHICS_VISUAL_UPDATE_POSITION
602  **
603  ** The position and/or orientation of the visual needs to be updated.
604  ** The overall geometry of the visual (polygons, lines, etc.) remains
605  ** unchanged.
606  **
607  *i DIGUY_GRAPHICS_VISUAL_UPDATE_MATERIAL
608  **
609  ** The material of the visual needs to be updated. This can include
610  ** color, fill options, line width, etc. The geometry and position of
611  ** the visual remain the same.
612  **
613  *i DIGUY_GRAPHICS_VISUAL_UPDATE_ALL
614  **
615  ** All aspects of the visual need to be updated.
616  **
617  */
618 typedef enum
619 {
625 
627 
628 
629 /****************************************************************************/
630 /*l
631  *b Description:
632  **
633  ** DI-Guy Euler angle orders.
634  **
635  ** ZXY is the order most commonly used in DIGuy. The meaning is: "rotate around
636  ** object's z axis (yaw), then its x axis (roll), then its y axis (pitch)."
637  **
638  ** However, the DI-Guy camera system uses ZYX, since that's more intuitive.
639  **
640  */
641 typedef enum
642 {
650 
652 
653 
654 /****************************************************************************/
655 /*l
656  *b Description:
657  **
658  ** This enumeration is used for various variables in the
659  ** diguyScenarioMergeSettings object. In general it tells
660  ** the diguyScenario::merge() function whether to load
661  ** objects of a specified type at all, and if so, what to
662  ** do if a merged object conflicts with an existing object.
663  **
664  *i DIGUY_MERGE_FLAG_DONT_MERGE
665  **
666  ** Objects in the merged scenario are not loaded.
667  **
668  *i DIGUY_MERGE_FLAG_OVERWRITE_EXISTING
669  **
670  ** Objects in the merged scenario are loaded.
671  **
672  ** In the case of a conflict, the exiting object is overwritten
673  ** with the values of the merge object.
674  **
675  *i DIGUY_MERGE_FLAG_KEEP_BOTH
676  **
677  ** Objects in the merged scenario are loaded.
678  **
679  ** In the case of a conflict, both the exiting object
680  ** and the merge object are kept, with no modifications.
681  ** Note that this will leave some ambiguity of referencing
682  ** objects by name. A warning will be printed.
683  **
684  ** Note that this value is here to allow for backward
685  ** compatibility; it is not recommended for general use.
686  **
687  *i DIGUY_MERGE_FLAG_KEEP_EXISTING_ONLY
688  **
689  ** Objects in the merged scenario are loaded.
690  **
691  ** In the case of a conflict, the exiting object is kept
692  ** as is and the merge object is discarded.
693  **
694  *i DIGUY_MERGE_FLAG_KEEP_EXISTING_ONLY_AND_WARN
695  **
696  ** Same as DIGUY_MERGE_FLAG_KEEP_EXISTING, but also prints
697  ** a warning.
698  **
699  *i DIGUY_MERGE_FLAG_RENAME_MERGED
700  **
701  ** Objects in the merged scenario are loaded.
702  **
703  ** In the case of a conflict, both the exiting object
704  ** and the merge object are kept, but the merged object
705  ** is renamed.
706  **
707  *i DIGUY_MERGE_FLAG_RENAME_MERGED_AND_WARN
708  **
709  ** Same as DIGUY_MERGE_FLAG_RENAME_MERGED, but also prints
710  ** a warning.
711  **
712  *i DIGUY_MERGE_FLAG_RENAME_MERGED_IF_NOT_EQUAL
713  **
714  ** Objects in the merged scenario are loaded.
715  **
716  ** In the case of a conflict, the existing object and merged
717  ** object are checked for "equality". If they are the same,
718  ** the existing object will be kept and the merge object will
719  ** be discarded. If they are different, both objects will
720  ** be kept, but the merge object will be renamed.
721  **
722  */
723 typedef enum
724 {
733 
735 
736 
737 /****************************************************************************/
738 /*l
739  *b Description:
740  **
741  ** This enumeration tells DI-Guy what values to use as defaults
742  ** when the diguyScenario::create_merge_settings() functions
743  ** is called. See the documentation for that function for
744  ** details on what the different values mean.
745  **
746  */
747 typedef enum
748 {
754 
756 
757 
758 /****************************************************************************/
759 /*l
760  *b Description:
761  **
762  ** This enumeration tells DI-Guy which scenario elements should be
763  ** reset after the merge is complete.
764  **
765  */
766 typedef enum
767 {
775 /****************************************************************************/
776 /*l
777  *b Description:
778  **
779  ** This enumeration lists the cursors returnable by the plugin
780  ** function get_cursor().
781  **
782  *i DIGUY_PLUGIN_MOUSE_CURSOR_NONE
783  **
784  ** Plugin takes responsibility for drawing cursor, if any.
785  **
786  *i DIGUY_PLUGIN_MOUSE_CURSOR_LEFT_ARROW
787  **
788  ** The standard window-system left arrow cursor is shown.
789  **
790  *i DIGUY_PLUGIN_MOUSE_CURSOR_CROSSHAIR
791  **
792  ** Crosshair (plus-shaped) cursor is shown.
793  **
794  *i DIGUY_PLUGIN_MOUSE_CURSOR_POINTING_HAND
795  **
796  ** Pointing hand cursor is shown.
797  **
798  *i DIGUY_PLUGIN_MOUSE_CURSOR_FORBIDDEN
799  **
800  ** Action forbidden cursor is shown.
801  */
802 typedef enum
803 {
813 /****************************************************************************/
814 /*l
815  *b Description:
816  **
817  ** This enumeration lists which cross-sections are available for
818  ** DI-Guy chain simulation visuals.
819  **
820  *i DIGUY_CHAIN_CROSS_SECTION_SQUARE
821  **
822  ** The square cross-section is good for tube-like visuals, such as
823  ** hoses. The normals of the square cross-section point radially
824  ** outward from the center, giving the visual a rounded, tube-like
825  ** appearance.
826  **
827  *i DIGUY_CHAIN_CROSS_SECTION_PLUS
828  **
829  ** The plus cross-section is good for thin, chain-like visuals.
830  **
831  *i DIGUY_CHAIN_CROSS_SECTION_COIL
832  **
833  ** The coil cross-section is good for wires. The chain masses are
834  ** connected by line segments.
835  */
836 typedef enum
837 {
845 /****************************************************************************/
846 /*l
847  *b Description:
848  **
849  */
850 #define DIGUY_LOAD_MANAGER_NUM_ZONES (4)
851 #define DIGUY_LOAD_MANAGER_NUM_NONVISIBLE_ZONE_INDEX (3)
852 
853 
854 /****************************************************************************/
855 /*l
856  *b Description:
857  **
858  ** This enumeration lists the input modes available in DI-Guy
859  ** Scenario views (3D windows) and for DI-Guy Author.
860  */
861 typedef enum
862 {
885 
886 BDI_DECLSPEC_bdiutil const char* diguy_input_mode_to_string(diguyScenarioInputMode input_mode);
887 BDI_DECLSPEC_bdiutil diguyScenarioInputMode diguy_input_mode_from_string(const char* string);
888 
889 
890 /****************************************************************************/
891 /*l
892  *b Description:
893  **
894  ** This enumeration lists the windows that can be shown in the
895  ** DI-Guy Scenario application.
896  */
897 typedef enum
898 {
927 /****************************************************************************/
928 /*l
929  *b Description:
930  **
931  ** This enumeration lists different types of editing actions that
932  ** can be performed in the DI-Guy Scenario application.
933  */
934 typedef enum
935 {
936  // File menu
945 
946  // Edit menu
953 
954  // Help menu
958 
959  // number of edit actions
961 
963 
964 
965 /****************************************************************************/
966 /*l
967  *b Description:
968  **
969  ** This enumeration lists "special" (non-ASCII) keys that DI-Guy plugins
970  ** may respond to.
971  **
972  ** (These enumerations currently match the Qt 4 Qt::Key_* values.)
973  */
974 enum
975 {
976  DIGUY_SPECIAL_KEY_MIN = 0x1000000,
977  DIGUY_SPECIAL_KEY_ESC = 0x1000000,
978  DIGUY_SPECIAL_KEY_TAB = 0x1000001,
979  DIGUY_SPECIAL_KEY_BACKTAB = 0x1000002,
980  DIGUY_SPECIAL_KEY_BACKSPACE = 0x1000003,
981  DIGUY_SPECIAL_KEY_RETURN = 0x1000004,
982  DIGUY_SPECIAL_KEY_ENTER = 0x1000005,
983  DIGUY_SPECIAL_KEY_INSERT = 0x1000006,
984  DIGUY_SPECIAL_KEY_DELETE = 0x1000007,
986  DIGUY_SPECIAL_KEY_PRINT = 0x1000009,
990  DIGUY_SPECIAL_KEY_UP = 0x1000013,
991  DIGUY_SPECIAL_KEY_RIGHT = 0x1000014,
992  DIGUY_SPECIAL_KEY_DOWN = 0x1000015,
993  DIGUY_SPECIAL_KEY_PAGE_UP = 0x1000016,
994  DIGUY_SPECIAL_KEY_PAGE_DOWN = 0x1000017,
995  DIGUY_SPECIAL_KEY_SHIFT = 0x1000020,
996 
997  DIGUY_SPECIAL_F1 = 0x1000030,
998  DIGUY_SPECIAL_F2 = 0x1000031,
999  DIGUY_SPECIAL_F3 = 0x1000032,
1000  DIGUY_SPECIAL_F4 = 0x1000033,
1001  DIGUY_SPECIAL_F5 = 0x1000034,
1002  DIGUY_SPECIAL_F6 = 0x1000035,
1003  DIGUY_SPECIAL_F7 = 0x1000036,
1004  DIGUY_SPECIAL_F8 = 0x1000037,
1005  DIGUY_SPECIAL_F9 = 0x1000038,
1006  DIGUY_SPECIAL_F10 = 0x1000039,
1007  DIGUY_SPECIAL_F11 = 0x100003A,
1008  DIGUY_SPECIAL_F12 = 0x100003B,
1009 
1010  DIGUY_SPECIAL_KEY_MAX = 0x10000FF
1011 };
1012 
1013 
1014 /****************************************************************************/
1015 /*l
1016  *b Description:
1017  **
1018  ** DI-Guy aim algorithms.
1019  **
1020  */
1021 typedef enum
1022 {
1025 
1028 
1029 
1030 
1031 /*****************************************************************************/
1032 /*****************************************************************************/
1036 /*****************************************************************************/
1037 /*****************************************************************************/
1040 /****************************************************************************/
1041 /*l
1042  *b Description:
1043  **
1044  ** This enumeration lists the methods available for collision detection
1045  ** and avoidance against dynamic objects.
1046  **
1047  *i DIGUY_DYNAMIC_AVOIDANCE_METHOD_DISABLED
1048  **
1049  ** Dynamic objects are not detected or avoided. In effect this means
1050  ** that characters will walk through each other.
1051  **
1052  ** If a crowd is far away from the viewpoint, it is not obvious that
1053  ** this is happening. Disabling the crowd's dynamic avoidance can
1054  ** reduce the overhead of the crowd on performance.
1055  **
1056  *i DIGUY_DYNAMIC_AVOIDANCE_METHOD_REPULSION_ZONES
1057  **
1058  ** Characters are surrounded by zones of repulsion. Other characters
1059  ** that enter these zones have their position, orientation, and/or
1060  ** action changed to try to get out of the zones.
1061  **
1062  *i DIGUY_DYNAMIC_AVOIDANCE_METHOD_SIMPLE
1063  **
1064  ** This is an experimental method that is still being developed.
1065  ** It should not be used for now.
1066  */
1067 typedef enum
1072 
1074 
1075 
1076 /****************************************************************************/
1077 /*l
1078  *b Description:
1079  **
1080  ** This enumeration lists the methods available for collision detection
1081  ** and avoidance against static objects in the environment. These are
1082  ** usually scene objects and non-moving props.
1083  **
1084  *i DIGUY_STATIC_AVOIDANCE_METHOD_DISABLED
1085  **
1086  ** Static objects are not detected or avoided. In effect this means
1087  ** that characters can walk through walls.
1088  **
1089  ** If a crowd is not near any buildings, walls, or solid objects,
1090  ** disabling static avoidance can reduce the overhead of the crowd
1091  ** on performance.
1092  **
1093  *i DIGUY_STATIC_AVOIDANCE_METHOD_FEELERS
1094  **
1095  ** The character uses 'feelers' to detect static objects and turn
1096  ** away from them.
1097  */
1098 typedef enum
1104 
1105 
1106 /****************************************************************************/
1107 /*l
1108  *b Description:
1109  **
1110  ** This enumeration lists the standard feelers used for static object
1111  ** avoidance used by I-Guy and agent characters.
1112  */
1113 typedef int diguyCharacterFeelerNumber;
1114 
1115 enum
1116 {
1121  DIGUY_CHARACTER_FEELER_R, // right
1122  DIGUY_CHARACTER_FEELER_BL, // back left
1123  DIGUY_CHARACTER_FEELER_BR, // back right
1124  DIGUY_CHARACTER_FEELER_B, // back
1126 };
1127 
1128 
1129 /****************************************************************************/
1130 /*l
1131  *b Description:
1132  **
1133  ** This enumeration lists the state character feelers may be in.
1134  **
1135  *i DIGUY_CHARACTER_FEELER_STATUS_NO_CONTACT
1136  **
1137  ** Feeler is not in contact with anything.
1138  **
1139  *i DIGUY_CHARACTER_FEELER_STATUS_CONTACT_TURN
1140  **
1141  ** Feeler is in contact with an object just enough to cause the
1142  ** character to begin to turn.
1143  **
1144  *i DIGUY_CHARACTER_FEELER_STATUS_CONTACT_COLLIDE
1145  **
1146  ** Feeler is in close contact with an object. The object should be
1147  ** pushing the character away.
1148  **
1149  *i DIGUY_CHARACTER_FEELER_STATUS_CONTACT_TURN_AND_COLLIDE
1150  **
1151  ** Feeler is within both turn and contact distances of an object.
1152  */
1153 typedef enum
1159 
1161 
1163 /****************************************************************************/
1164 /*l
1165  *b Description:
1166  **
1167  ** This enumeration lists the turn directions a feeler can use when
1168  ** its status is DIGUY_CHARACTER_FEELER_STATUS_CONTACT_TURN.
1169  **
1170  *i DIGUY_CHARACTER_FEELER_TURN_DIRECTION_NONE
1171  **
1172  ** Feeler does not turn the character.
1173  **
1174  *i DIGUY_CHARACTER_FEELER_TURN_DIRECTION_L
1175  **
1176  ** Feeler turns the character to the left.
1177  **
1178  *i DIGUY_CHARACTER_FEELER_TURN_DIRECTION_R
1179  **
1180  ** Feeler turns the character to the right.
1181  **
1182  *i DIGUY_CHARACTER_FEELER_TURN_DIRECTION_L_OR_R
1183  **
1184  ** Feeler turns the character to the left or right, whichever
1185  ** will result in the turn behavior ending more quickly.
1186  */
1187 typedef enum
1188 {
1190  DIGUY_CHARACTER_FEELER_TURN_DIRECTION_L, // as string: "left"
1192  DIGUY_CHARACTER_FEELER_TURN_DIRECTION_L_OR_R // as string: "left_or_right"
1195 
1196 
1197 /****************************************************************************/
1198 /*l
1199  *b Description:
1200  **
1201  ** Directions a character can be traveling on a navigation path
1202  ** (nav path).
1203  **
1204  ** The travel behavior of agents use nav paths.
1205  **
1206  */
1207 typedef enum
1209  DIGUY_NAV_PATH_DIRECTION_UNKNOWN = 0, // as string: "unknown"
1210  DIGUY_NAV_PATH_DIRECTION_FORWARD, // as string: "forward"
1211  DIGUY_NAV_PATH_DIRECTION_BACKWARD, // as string: "backward"
1213 
1215 
1216 
1217 /****************************************************************************/
1218 /*l
1219  *b Description:
1220  **
1221  ** What a character following a nav path will do once it reaches the
1222  ** end of a nav path.
1223  **
1224  ** The travel behavior of agents use nav paths.
1225  **
1226  *i DIGUY_NAV_PATH_AT_END_REVERSE
1227  **
1228  ** Agent reverses direction on the nav path, going through waypoints
1229  ** in opposite order.
1230  **
1231  *i DIGUY_NAV_PATH_AT_END_LOOP
1232  **
1233  ** Agent's next waypoint is waypoint 0. Best when last waypoint and
1234  ** first waypoint are close to each other, as in a loop path.
1235  **
1236  *i DIGUY_NAV_PATH_AT_END_STOP
1237  **
1238  ** Stop at the end, switching to behavior none.
1239  **
1240  *i DIGUY_NAV_PATH_AT_END_TELEPORT
1241  **
1242  ** Teleport to the beginning. In general agents should be out of view
1243  ** at the beginning and end of the path, if possible.
1244  */
1245 typedef enum
1246 {
1247  DIGUY_NAV_PATH_AT_END_UNKNOWN = 0, // as string: "unknown"
1248  DIGUY_NAV_PATH_AT_END_REVERSE, // as string: "reverse"
1249  DIGUY_NAV_PATH_AT_END_LOOP, // as string: "loop"
1250  DIGUY_NAV_PATH_AT_END_STOP, // as string: "stop"
1251  DIGUY_NAV_PATH_AT_END_TELEPORT, // as string: "teleport"
1252 
1253  // internal use only
1255 
1257 
1259 
1260 
1261 /****************************************************************************/
1262 /*l
1263  *b Description:
1264  **
1265  ** Errors various nav path functions may return.
1266  */
1267 typedef enum
1268 {
1281 /****************************************************************************/
1282 /*l
1283  *b Description:
1284  **
1285  ** Selection methods for records from crowd profiles.
1286  */
1287 typedef enum
1288 {
1292 
1294 
1295 
1296 /****************************************************************************/
1297 /*l
1298  *b Description:
1299  **
1300  ** DI-Guy agent repulsion zones for characters with dynamic
1301  ** avoidance method DIGUY_DYNAMIC_AVOIDANCE_METHOD_REPULSION_ZONES.
1302  */
1303 typedef enum
1304 {
1311 
1313 
1314 
1315 /****************************************************************************/
1316 /*l
1317  *b Description:
1318  **
1319  ** DI-Guy agent behaviors.
1320  **
1321  ** Following is a short description of each behavior. See the DI-Guy AI
1322  ** documentation for more details.
1323  **
1324  *i DIGUY_AGENT_BEHAVIOR_NONE
1325  **
1326  ** Agent functionality is completely inactive. The character's actions
1327  ** are determined by its character path or direct DI-Guy API calls.
1328  **
1329  *i DIGUY_AGENT_BEHAVIOR_TRAVEL
1330  **
1331  ** Agent attempts to travel close to a path shape. Many agents can use
1332  ** the same path shape for the travel behavior.
1333  **
1334  *i DIGUY_AGENT_BEHAVIOR_PATH_FOLLOW
1335  **
1336  ** Similar to DIGUY_AGENT_BEHAVIOR_TRAVEL, but agent follows a
1337  ** character path instead of a path shape, and attempts to match the
1338  ** timing of the character path in addition to the path shape. If the
1339  ** agent is interrupted from the path, it will attempt to resume it
1340  ** where it left off.
1341  **
1342  *i DIGUY_AGENT_BEHAVIOR_WANDER
1343  **
1344  ** Agent wanders a region. In this case wander means it will select a
1345  ** random point within the region and move close to it, and then wait
1346  ** there for a period of time before selecting a new point in the
1347  ** region.
1348  **
1349  *i DIGUY_AGENT_BEHAVIOR_MINGLE
1350  **
1351  ** Similar to wander, but agents attempt to move together to various
1352  ** places in the region.
1353  **
1354  *i DIGUY_AGENT_BEHAVIOR_FLEE
1355  **
1356  ** Agent attempts to move away from a specified character or point.
1357  **
1358  *i DIGUY_AGENT_BEHAVIOR_PURSUE
1359  **
1360  ** Agent attempts to stay close to a specified character or member of a
1361  ** group.
1362  **
1363  *i DIGUY_AGENT_BEHAVIOR_ATTACK
1364  **
1365  ** Similar to pursue, but once agents are close enough they will attack
1366  ** the target.
1367  **
1368  *i DIGUY_AGENT_BEHAVIOR_IDLE
1369  **
1370  ** Agent has no particular automatic behavior; it follows its path or
1371  ** moves toward its desired position as set by
1372  ** diguyCharacter::set_desired_position(). It will affect other agents
1373  ** in its crowd, and if pushed away from its desired position it will
1374  ** move back to it.
1375  */
1376 typedef enum
1377 {
1378  DIGUY_AGENT_BEHAVIOR_UNKNOWN = -1, // as string: "unknown"
1379  DIGUY_AGENT_BEHAVIOR_NONE = 0, // as string: "none"
1380  DIGUY_AGENT_BEHAVIOR_TRAVEL, // as string: "travel"
1381  DIGUY_AGENT_BEHAVIOR_PATH_FOLLOW, // as string: "path_follow"
1382  DIGUY_AGENT_BEHAVIOR_WANDER, // as string: "wander"
1383  DIGUY_AGENT_BEHAVIOR_FLEE, // as string: "flee"
1384  DIGUY_AGENT_BEHAVIOR_PURSUE, // as string: "pursue"
1385  DIGUY_AGENT_BEHAVIOR_MINGLE, // as string: "mingle"
1386  DIGUY_AGENT_BEHAVIOR_ATTACK, // as string: "attack"
1387  DIGUY_AGENT_BEHAVIOR_IDLE, // as string: "idle"
1389 
1391 
1393 /****************************************************************************/
1394 /*l
1395  *b Description:
1396  **
1397  ** DI-Guy agent untrap methods.
1398  **
1399  ** Following is a short description of each untrap method. See the
1400  ** DI-Guy AI documentation for more details.
1401  **
1402  *i DIGUY_AGENT_UNTRAP_METHOD_NONE
1403  **
1404  ** The agent makes no attempt to become untrapped. This can result in
1405  ** the agent blindly walking into a wall until its desired position
1406  ** changes.
1407  **
1408  *i DIGUY_AGENT_UNTRAP_METHOD_NAV_PATH
1409  **
1410  ** The agent will try to create a nav path in its current region to its
1411  ** desired position. If the desired position is not inside the region,
1412  ** a valid nav path may not be able to be found.
1413  **
1414  *i DIGUY_AGENT_UNTRAP_METHOD_RANDOM_TURN
1415  **
1416  ** The agent will stop moving and turn a random amount. This minor
1417  ** course change can sometimes move a character around a small
1418  ** obstacle.
1419  **
1420  *i DIGUY_AGENT_UNTRAP_METHOD_GHOST
1421  **
1422  ** Agent feelers will stop having an effect for a short time. This
1423  ** allows the agent to walk through a wall toward its desired
1424  ** position.
1425  **
1426  *i DIGUY_AGENT_UNTRAP_METHOD_TELEPORT
1427  **
1428  ** This is an extreme method, typically used as a last resort. The
1429  ** agent abruptly teleports to its desired position.
1430  **
1431  *i DIGUY_AGENT_UNTRAP_METHOD_STOP_MOVING
1432  **
1433  ** Somewhat similar to DIGUY_AGENT_UNTRAP_METHOD_NONE, but the current
1434  ** behavior of the agent is set to none, and the agent character's
1435  ** desired position is set to its current position.
1436  */
1437 typedef enum
1438 {
1439  DIGUY_AGENT_UNTRAP_METHOD_NONE = 0, // as string: "none"
1440  DIGUY_AGENT_UNTRAP_METHOD_NAV_PATH, // as string: "nav_path"
1441  DIGUY_AGENT_UNTRAP_METHOD_RANDOM_TURN, // as string: "random_turn"
1442  DIGUY_AGENT_UNTRAP_METHOD_GHOST, // as string: "ghost"
1443  DIGUY_AGENT_UNTRAP_METHOD_TELEPORT, // as string: "teleport"
1444  DIGUY_AGENT_UNTRAP_METHOD_STOP_MOVING, // as string: "stop_moving"
1446 
1448 
1449 
1450 /****************************************************************************/
1451 /*l
1452  *b Description:
1453  **
1454  ** DI-Guy region painting modes.
1455  **
1456  ** Painting modes identify what happens when a region paintbrush is used
1457  ** in some of the DI-Guy input modes.
1458  **
1459  *i DIGUY_REGION_PAINTBRUSH_MODE_ADDITIVE
1460  **
1461  ** Painting will add area to the current subregion. This may end up
1462  ** adding area to the base subregion, as well, as it contains at
1463  ** least the areas of all subregions.
1464  **
1465  *i DIGUY_REGION_PAINTBRUSH_MODE_ERASE
1466  **
1467  ** Painting will remove area from the current subregion. If the base
1468  ** subregion is erased, all matching areas in other subregions will be
1469  ** erased, as well.
1470  **
1471  *i DIGUY_REGION_PAINTBRUSH_MODE_UNGROUND_CLAMP
1472  **
1473  ** Painting will remove area from the current subregion, will also remove
1474  ** the height value from the region and the next time the area is painted
1475  ** it will adopt the height values of the new paint command.
1476  **
1477  *i DIGUY_REGION_PAINTBRUSH_MODE_MOVE_MESH
1478  **
1479  ** Moves the mesh to a new location in space and re-ground clamps
1480  **
1481  *i DIGUY_REGION_PAINTBRUSH_MODE_REACHABLE
1482  **
1483  ** Painting reachable will indicate that this is a spot the path planner
1484  ** should be willing to traverse. Erasing Reachable colors the spot black
1485  ** and indicates that it's not crossable or paint-able.
1486  **
1487  *i DIGUY_REGION_PAINTBRUSH_INTERNAL_MODE_UPDATE_BEHAVIOR_PATH
1488  **
1489  ** Internal use only.
1490  **
1491  *i DIGUY_REGION_PAINTBRUSH_INTERNAL_MODE_REPLACE
1492  **
1493  ** Internal use only.
1494  **
1495  */
1496 typedef enum
1497 {
1506 
1508 
1509 
1510 /****************************************************************************/
1511 /*l
1512  *b Description:
1513  **
1514  ** DI-Guy subregions.
1515  **
1516  ** Regions are irregularly shaped areas in the scene that can be used
1517  ** in a number of ways.
1518  **
1519  ** Regions contain a number of subregions. Each subregion is represented
1520  ** by a different color, and most often the subregions are referred to
1521  ** by their color. Subregions are not mutually exclusive; a point in
1522  ** the scene may be in all of the base, populate, and green subregions,
1523  ** for example.
1524  **
1525  ** Many functions that take one subregion as an argument use the string
1526  ** name of the subregion.
1527  **
1528  ** Functions that can have multiple subregions specified use a subregion
1529  ** mask made up of diguySubregionMask values that can be or'ed together
1530  ** to indicate multiple valid subregions. See diguySubregionMask for
1531  ** more information.
1532  **
1533  *i DIGUY_SUBREGION_BASE
1534  **
1535  ** This subregion is really a "super-region", in that its bounds contain
1536  ** all of the other subregions, and possibly more.
1537  **
1538  ** If any subregion of a top-level region is expanded beyond the bounds
1539  ** of the base subregion, the base subregion will be expanded until
1540  ** it encompasses the expansion.
1541  **
1542  ** If, however, a non-base subregion is subsequently shrunk, the base
1543  ** subregion will not shrink.
1544  **
1545  ** If the base subregion is shrunk, any portion of each non-base
1546  ** subregion that is no longer in the base subregion will be removed.
1547  **
1548  *i DIGUY_SUBREGION_POPULATE
1549  **
1550  ** The subregion into which new crowd agents will be placed if the
1551  ** region is populated or repopulated. This subregion is typically
1552  ** purple.
1553  **
1554  ** DIGUY_SUBREGION_[color]
1555  **
1556  ** The "color" subregions are free to be used in any way a scenario
1557  ** designer wants. Their colors are based on their name.
1558  **
1559  *i DIGUY_SUBREGION_ROAD
1560  **
1561  ** Road subregions are commonly used as preferred subregions for vehicle
1562  ** travel, and repulsion subregions for human travel. This subregion
1563  ** is typically gray.
1564  **
1565  *i DIGUY_SUBREGION_SIDEWALK
1566  **
1567  ** Sidewalk subregions are commonly used as preferred subregions for
1568  ** human travel, and repulsion subregions for vehicles. This subregion
1569  ** is typically white.
1570  **
1571  *i DIGUY_SUBREGION_CROSSWALK
1572  **
1573  ** Humans will tend to prefer crosswalk subregions over road subregions,
1574  ** but prefer sidewalk subregions over crosswalk subregions. This
1575  ** subregion is typically a light yellow.
1576  */
1577 typedef enum
1579  DIGUY_SUBREGION_BASE = 0, // as string: "base"
1580  DIGUY_SUBREGION_POPULATE, // as string: "populate"
1581 
1582  DIGUY_SUBREGION_RED, // as string: "red"
1583  DIGUY_SUBREGION_GREEN, // as string: "green"
1584  DIGUY_SUBREGION_BLUE, // as string: "blue"
1585  DIGUY_SUBREGION_YELLOW, // as string: "yellow"
1586  DIGUY_SUBREGION_ORANGE, // as string: "orange"
1587  DIGUY_SUBREGION_WHITE, // as string: "white"
1589  DIGUY_SUBREGION_ROAD, // as string: "road"
1590  DIGUY_SUBREGION_SIDEWALK, // as string: "sidewalk"
1591  DIGUY_SUBREGION_CROSSWALK, // as string: "crosswalk"
1592 
1594 
1596 
1597 
1598 BDI_DECLSPEC_bdiutil const char* diguy_subregion_index_to_string(diguySubregionIndex subregion_index);
1599 BDI_DECLSPEC_bdiutil diguySubregionIndex diguy_subregion_index_from_string(const char* string);
1600 
1601 
1602 /****************************************************************************/
1603 /*l
1604  *b Description:
1605  **
1606  ** DI-Guy subregions mask values.
1607  **
1608  *b Example:
1609  **
1610  ** To specify that a function can use either the red or blue subregions,
1611  ** the following syntax is used.
1612  **
1613  ** In Perl or C++:
1614  **
1615  *e DIGUY_SUBREGION_MASK_RED | DIGUY_SUBREGION_MASK_BLUE
1616  **
1617  ** In Lua:
1618  **
1619  *e bit.bor( DIGUY_SUBREGION_MASK_RED, DIGUY_SUBREGION_MASK_BLUE,...)
1620  **
1621  ** Lua does not natively support bitfields, but support is automatically
1622  ** added via the "LuaBit" library located in $DIGUY/bin/lua/bit.lua.
1623  */
1624 typedef enum
1625 {
1626  DIGUY_SUBREGION_MASK_NONE = 0x00000000,
1627  DIGUY_SUBREGION_MASK_BASE = 0x00000020,
1628  DIGUY_SUBREGION_MASK_POPULATE = 0x00000040,
1629 
1630  DIGUY_SUBREGION_MASK_RED = 0x00000080,
1631  DIGUY_SUBREGION_MASK_GREEN = 0x00000100,
1632  DIGUY_SUBREGION_MASK_BLUE = 0x00000200,
1633  DIGUY_SUBREGION_MASK_YELLOW = 0x00000400,
1634  DIGUY_SUBREGION_MASK_ORANGE = 0x00000800,
1635  DIGUY_SUBREGION_MASK_WHITE = 0x00001000,
1636 
1637  DIGUY_SUBREGION_MASK_ROAD = 0x00002000,
1638  DIGUY_SUBREGION_MASK_SIDEWALK = 0x00004000,
1639  DIGUY_SUBREGION_MASK_CROSSWALK = 0x00008000,
1640 
1643 
1644 /****************************************************************************/
1645 /*l
1646  *b Description:
1647  **
1648  ** DI-Guy navigation mesh path planner cost masks.
1649  **
1650  ** Documentation pending: these require more explanation.
1651  **
1652  */
1653 typedef enum
1654 {
1655  DIGUY_NAVMESH_SHORTEST_PATH = 0x00000001,
1656  DIGUY_NAVMESH_LEAST_VISIBLE = 0x00000002,
1657  DIGUY_NAVMESH_MESH_EDGE = 0x00000004,
1659  DIGUY_NAVMESH_MESH_AVOID_EDGES = 0x00000008,
1660 
1662 
1663 
1664 /****************************************************************************/
1665 /*
1666  * USMC chain of command:
1667  *
1668  * fire team - three individuals - corporal
1669  * squad - three teams - sergeant
1670  * platoon - three squads (usually) - lieutenant
1671  * company - three platoons - captain
1672  * battalion - three companies - lt. colonel
1673  * regiment (or brigade) - three battalions - ?
1674  * division - three regiments - ?
1675  * marine corps - three or more divisions - ?
1676  *
1677  */
1678 typedef enum
1679 {
1681 
1682  DIGUY_TACTICS_UNIT_TYPE_MARINE, // an individual
1700  DIGUY_TACTICS_UNIT_TYPE_ARMY // two or more corps
1701 
1704 
1705 /****************************************************************************/
1706 /*l
1707  *b Description:
1708  **
1709  ** This enumeration lists the methods in which the datetime of a scenario
1710  ** can advance.
1711  **
1712  *i DIGUY_DATETIME_ADVANCE_METHOD_MANUAL
1713  **
1714  ** Datetime does not advance automatically. It can only be set
1715  ** manually, e.g. by a diguyScenario::set_current_datetime() call.
1716  **
1717  *i DIGUY_DATETIME_ADVANCE_METHOD_REAL_TIME_RATE
1718  **
1719  ** Datetime advances at the same rate as realtime.
1720  **
1721  *i DIGUY_DATETIME_ADVANCE_METHOD_SIMULATION_TIME_RATE
1722  **
1723  ** Datetime advances at the same rate as simulation time.
1724  */
1725 typedef enum
1732 
1734 /****************************************************************************/
1735 /*l
1736  *b Description:
1737  **
1738  *i DIGUY_DATETIME_NETWORK_MODE_LOCAL_ONLY
1739  **
1740  ** Datetime data will be handled locally on this host. No data will be
1741  ** sent on the netword, and no data will be read from the network.
1742  **
1743  *i DIGUY_DATETIME_NETWORK_MODE_BROADCAST
1744  **
1745  ** Datetime data will be sent from this host to other hosts in the
1746  ** network. The datetime will be encoded in a custom
1747  ** DIGUY_CUSTOM_PDU_ID_BROADCAST_EXERCISE_DATETIME PDU. In general
1748  ** there should be only one host on the network broadcasting datetime
1749  ** data; all others should receive or ignore it.
1750  **
1751  *i DIGUY_DATETIME_NETWORK_MODE_RECEIVE
1752  **
1753  ** Datetime data will be read from the network from custom
1754  ** DIGUY_CUSTOM_PDU_ID_BROADCAST_EXERCISE_DATETIME PDUs.
1755  */
1756 typedef enum
1761 
1763 
1764 
1765 /*****************************************************************************/
1766 /*****************************************************************************/
1770 /*****************************************************************************/
1771 /*****************************************************************************/
1772 
1773 
1774 /****************************************************************************/
1775 /*l
1776  *b Description:
1777  **
1778  ** This enumeration lists units of speed that can be passed to some
1779  ** DI-Guy API functions.
1780  **
1781  ** Note that if one of these values is used specifying an acceleration,
1782  ** add an implicit "per second" to the end. e.g., if 10.0 is passed as
1783  ** an acceleration, with units DIGUY_SPEED_UNITS_MILES_PER_HOUR,
1784  ** the resulting acceleration would be 10.0 miles per hour per second;
1785  ** or in other words, every 1 second speed would increase by 10.0 miles
1786  ** per hour.
1787  */
1788 typedef enum
1789 {
1793 
1794 } diguySpeedUnits;
1795 
1796 
1797 /****************************************************************************/
1798 /*l
1799  *b Description:
1800  **
1801  ** This enumeration lists the ways that data can be generated for DI-Guy
1802  ** characters. Data typically comes from the DI-Guy motion engine,
1803  ** but at times may be generated by other simulation methods.
1804  */
1805 typedef enum
1806 {
1812 
1814 
1815 
1816 /****************************************************************************/
1817 /*l
1818  *b Description:
1819  **
1820  ** This enumeration lists the modes that a DI-Guy character physics sim
1821  ** can be in, when the character simulator is set to
1822  ** DIGUY_CHARACTER_SIMULATOR_PHYSICS_SIM_MODULE.
1823  */
1824 typedef enum
1825 {
1830 
1832 
1833 
1834 /****************************************************************************/
1835 /*l
1836  *b Description:
1837  **
1838  ** This enumeration lists the collision groups that a DI-Guy physics sim
1839  ** object can be in. Characters in different collision groups may not
1840  ** have collisions calculated between them.
1841  */
1842 typedef enum
1843 {
1850 
1855 
1860 
1862 
1864 
1866 
1867 
1868 /****************************************************************************/
1869 /*l
1870  *b Description:
1871  **
1872  ** This enumeration lists the modes that the DI-Guy vehicle simulator
1873  ** can be in.
1874  */
1875 typedef enum
1876 {
1883 
1885 
1886 
1887 BDI_DECLSPEC_bdiutil const char* diguy_vehicle_simulation_mode_to_string(diguyVehicleSimulationMode mode);
1888 BDI_DECLSPEC_bdiutil diguyVehicleSimulationMode diguy_vehicle_simulation_mode_from_string(const char* string);
1889 
1890 
1891 /*****************************************************************************/
1892 /*****************************************************************************/
1896 /*****************************************************************************/
1897 /*****************************************************************************/
1898 
1899 
1900 /*****************************************************************************/
1901 /*****************************************************************************/
1905 /*****************************************************************************/
1906 /*****************************************************************************/
1907 
1908 /****************************************************************************/
1909 /*l
1910  *b Description:
1911  **
1912  ** This enumeration lists supported shader languages.
1913  */
1914 typedef enum
1915 {
1918 
1920 
1921 
1922 
1923 
1924 #endif /* __diguy_constants_H */
1925 
diguySubregionIndex diguy_subregion_index_from_string(const char *string)
Definition: diguy_constants.h:203
Definition: diguy_constants.h:415
Definition: diguy_constants.h:914
Definition: diguy_constants.h:1472
Definition: diguy_constants.h:119
Definition: diguy_constants.h:836
Definition: diguy_constants.h:799
Definition: diguy_constants.h:1037
Definition: diguy_constants.h:694
Definition: diguy_constants.h:589
Definition: diguy_constants.h:693
Definition: diguy_constants.h:1524
Definition: diguy_constants.h:527
Definition: diguy_constants.h:120
Definition: diguy_constants.h:907
Definition: diguy_constants.h:1478
Definition: diguy_constants.h:806
Definition: diguy_constants.h:796
diguyGraphicsTextureLoadingBehavior
Definition: diguy_constants.h:382
Definition: diguy_constants.h:1279
Definition: diguy_constants.h:1193
Definition: diguy_constants.h:300
Definition: diguy_constants.h:879
diguyAimAlgorithm
DI-Guy aim algorithms.
Definition: diguy_constants.h:944
Definition: diguy_constants.h:1689
Definition: diguy_constants.h:1520
Definition: diguy_constants.h:877
Definition: diguy_constants.h:810
Definition: diguy_constants.h:510
Definition: diguy_constants.h:1587
Definition: diguy_constants.h:692
Definition: diguy_constants.h:352
Definition: diguy_constants.h:1178
Definition: diguy_constants.h:1336
Definition: diguy_constants.h:1119
Definition: diguy_constants.h:911
Definition: diguy_constants.h:1032
Definition: diguy_constants.h:485
Definition: diguy_constants.h:803
Definition: diguy_constants.h:744
Definition: diguy_constants.h:588
diguyScenarioInputMode diguy_input_mode_from_string(const char *string)
Definition: diguy_constants.h:122
Definition: diguy_constants.h:1673
Definition: diguy_constants.h:1705
Definition: diguy_constants.h:1572
diguyEulerAngleOrder
DI-Guy Euler angle orders.
Definition: diguy_constants.h:586
Definition: diguy_constants.h:774
Definition: diguy_constants.h:480
Definition: diguy_constants.h:808
diguyGraphicsShaderLanguage
This enumeration lists supported shader languages.
Definition: diguy_constants.h:1785
diguySubregionIndex
DI-Guy subregions.
Definition: diguy_constants.h:1469
Definition: diguy_constants.h:828
Definition: diguy_constants.h:1688
Definition: diguy_constants.h:709
Definition: diguy_constants.h:1615
Definition: diguy_constants.h:1723
Definition: diguy_constants.h:113
diguyGraphicsJointType
DI-Guy graphics joint types.
Definition: diguy_constants.h:448
Definition: diguy_constants.h:935
Definition: diguy_constants.h:1546
Definition: diguy_constants.h:1474
Definition: diguy_constants.h:1754
Definition: diguy_constants.h:404
Definition: diguy_constants.h:1476
Definition: diguy_constants.h:407
Definition: diguy_constants.h:1577
Definition: diguy_constants.h:511
Definition: diguy_constants.h:1755
Definition: diguy_constants.h:1753
Definition: diguy_constants.h:1580
Definition: diguy_constants.h:282
Definition: diguy_constants.h:1584
Definition: diguy_constants.h:1100
Definition: diguy_constants.h:924
Definition: diguy_constants.h:1525
Definition: diguy_constants.h:152
Definition: diguy_constants.h:1482
Definition: diguy_constants.h:491
Definition: diguy_constants.h:1724
diguyHistoryType
DI-Guy history types.
Definition: diguy_constants.h:280
Definition: diguy_constants.h:850
Definition: diguy_constants.h:1286
Definition: diguy_constants.h:455
Definition: diguy_constants.h:841
diguyPluginMouseCursor
This enumeration lists the cursors returnable by the plugin function get_cursor().
Definition: diguy_constants.h:739
Definition: diguy_constants.h:1578
Definition: diguy_constants.h:99
Definition: diguy_constants.h:915
Definition: diguy_constants.h:1016
Definition: diguy_constants.h:115
Definition: diguy_constants.h:167
Definition: diguy_constants.h:479
Definition: diguy_constants.h:1118
Definition: diguy_constants.h:457
Definition: diguy_constants.h:829
Definition: diguy_constants.h:1479
Definition: diguy_constants.h:398
Definition: diguy_constants.h:487
Definition: diguy_constants.h:832
Definition: diguy_constants.h:874
Definition: diguy_constants.h:222
Definition: diguy_constants.h:1192
Definition: diguy_constants.h:1471
Definition: diguy_constants.h:593
Definition: diguy_constants.h:928
Definition: diguy_constants.h:489
Definition: diguy_constants.h:238
Definition: diguy_constants.h:866
Definition: diguy_constants.h:138
Definition: diguy_constants.h:743
Definition: diguy_constants.h:414
diguyNavMeshPathPlannerCostMask
DI-Guy navigation mesh path planner cost masks.
Definition: diguy_constants.h:1544
Definition: diguy_constants.h:875
Definition: diguy_constants.h:903
Definition: diguy_constants.h:526
Definition: diguy_constants.h:461
Definition: diguy_constants.h:301
diguyViewCameraProjectionMode
DI-Guy camera projection modes.
Definition: diguy_constants.h:247
Definition: diguy_constants.h:490
Definition: diguy_constants.h:1477
Definition: diguy_constants.h:223
Definition: diguy_constants.h:842
Definition: diguy_constants.h:265
Definition: diguy_constants.h:932
Definition: diguy_constants.h:1335
Definition: diguy_constants.h:673
Definition: diguy_constants.h:876
Definition: diguy_constants.h:849
Definition: diguy_constants.h:1590
Definition: diguy_constants.h:350
Definition: diguy_constants.h:1521
Definition: diguy_constants.h:1532
Definition: diguy_constants.h:201
Definition: diguy_constants.h:851
Definition: diguy_constants.h:987
diguyChainCrossSection
This enumeration lists which cross-sections are available for DI-Guy chain simulation visuals...
Definition: diguy_constants.h:771
Definition: diguy_constants.h:416
Definition: diguy_constants.h:460
Definition: diguy_constants.h:150
Definition: diguy_constants.h:439
Definition: diguy_constants.h:306
Definition: diguy_constants.h:1039
Definition: diguy_constants.h:1734
Definition: diguy_constants.h:478
Definition: diguy_constants.h:224
Definition: diguy_constants.h:165
Definition: diguy_constants.h:529
Definition: diguy_constants.h:840
Definition: diguy_constants.h:1582
Definition: diguy_constants.h:409
Definition: diguy_constants.h:930
Definition: diguy_constants.h:910
Definition: diguy_constants.h:405
Definition: diguy_constants.h:1731
Definition: diguy_constants.h:250
Definition: diguy_constants.h:801
Definition: diguy_constants.h:1588
Definition: diguy_constants.h:509
Definition: diguy_constants.h:168
Definition: diguy_constants.h:831
Definition: diguy_constants.h:670
Definition: diguy_constants.h:905
Definition: diguy_constants.h:672
Definition: diguy_constants.h:432
Definition: diguy_constants.h:1579
Definition: diguy_constants.h:668
Definition: diguy_constants.h:1549
diguyRenderPassFlags
DI-Guy renderer pass masks, set via diguyApp::set_render_pass_flags().
Definition: diguy_constants.h:346
Definition: diguy_constants.h:1117
Definition: diguy_constants.h:1392
Definition: diguy_constants.h:1209
Definition: diguy_constants.h:183
Definition: diguy_constants.h:1393
Definition: diguy_constants.h:349
Definition: diguy_constants.h:904
Definition: diguy_constants.h:1208
diguySpeedUnits
This enumeration lists units of speed that can be passed to some DI-Guy API functions.
Definition: diguy_constants.h:1671
Definition: diguy_constants.h:833
Definition: diguy_constants.h:1179
Definition: diguy_constants.h:1206
diguyViewCameraMoveMode
DI-Guy camera move modes.
Definition: diguy_constants.h:217
Definition: diguy_constants.h:931
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:434
Definition: diguy_constants.h:690
Definition: diguy_constants.h:1341
Definition: diguy_constants.h:675
diguyScenarioMergeInitialSettings
This enumeration tells DI-Guy what values to use as defaults when the diguyScenario::create_merge_set...
Definition: diguy_constants.h:688
Definition: diguy_constants.h:902
Definition: diguy_constants.h:707
Definition: diguy_constants.h:413
Definition: diguy_constants.h:284
Definition: diguy_constants.h:1528
Definition: diguy_constants.h:1752
Definition: diguy_constants.h:1645
Definition: diguy_constants.h:1160
Definition: diguy_constants.h:219
Definition: diguy_constants.h:871
Definition: diguy_constants.h:804
Definition: diguy_constants.h:384
Definition: diguy_constants.h:283
Definition: diguy_constants.h:813
Definition: diguy_constants.h:286
Definition: diguy_constants.h:202
Definition: diguy_constants.h:1550
Definition: diguy_constants.h:812
Definition: diguy_constants.h:459
Definition: diguy_constants.h:1181
Definition: diguy_constants.h:742
Definition: diguy_constants.h:1738
Definition: diguy_constants.h:1339
Definition: diguy_constants.h:1156
Definition: diguy_constants.h:1531
Definition: diguy_constants.h:1285
Definition: diguy_constants.h:385
Definition: diguy_constants.h:508
diguyCharacterSimulator
This enumeration lists the ways that data can be generated for DI-Guy characters. ...
Definition: diguy_constants.h:1686
Definition: diguy_constants.h:249
Definition: diguy_constants.h:1722
Definition: diguy_constants.h:1726
diguyCharacterClass
DI-Guy character classes.
Definition: diguy_constants.h:110
Definition: diguy_constants.h:308
Definition: diguy_constants.h:925
diguyStaticAvoidanceMethod
This enumeration lists the methods available for collision detection and avoidance against static obj...
Definition: diguy_constants.h:1014
const char * diguy_playback_mode_to_string(diguyScenarioPlaybackMode playback_mode)
Definition: diguy_constants.h:1547
Definition: diguy_constants.h:412
Definition: diguy_constants.h:402
Definition: diguy_constants.h:354
diguyViewFogMode
DI-Guy fog modes.
Definition: diguy_constants.h:262
Definition: diguy_constants.h:837
Definition: diguy_constants.h:839
Definition: diguy_constants.h:844
Definition: diguy_constants.h:454
diguyRegionPaintbrushMode
DI-Guy region painting modes.
Definition: diguy_constants.h:1390
Definition: diguy_constants.h:1394
Definition: diguy_constants.h:923
Definition: diguy_constants.h:1530
Definition: diguy_constants.h:883
Definition: diguy_constants.h:185
Definition: diguy_constants.h:118
Definition: diguy_constants.h:186
Definition: diguy_constants.h:1340
Definition: diguy_constants.h:1207
Definition: diguy_constants.h:1174
Definition: diguy_constants.h:913
diguyNavPathSearchResults
Errors various nav path functions may return.
Definition: diguy_constants.h:1171
Definition: diguy_constants.h:1069
Definition: diguy_constants.h:807
Definition: diguy_constants.h:674
Definition: diguy_constants.h:1576
Definition: diguy_constants.h:451
Definition: diguy_constants.h:1337
Definition: diguy_constants.h:1210
Definition: diguy_constants.h:568
Definition: diguy_constants.h:1617
Definition: diguy_constants.h:221
Definition: diguy_constants.h:427
Definition: diguy_constants.h:456
Definition: diguy_constants.h:1175
Definition: diguy_constants.h:477
Definition: diguy_constants.h:1099
Definition: diguy_constants.h:355
Definition: diguy_constants.h:1570
Definition: diguy_constants.h:946
const char * diguy_input_mode_to_string(diguyScenarioInputMode input_mode)
Definition: diguy_constants.h:884
Definition: diguy_constants.h:794
Definition: diguy_constants.h:507
diguyImpactType
This is an enumeration of the different impact types that are found in diguyImpact.
Definition: diguy_constants.h:198
Definition: diguy_constants.h:798
Definition: diguy_constants.h:433
diguyScenarioWindowId
This enumeration lists the windows that can be shown in the DI-Guy Scenario application.
Definition: diguy_constants.h:826
Definition: diguy_constants.h:307
Definition: diguy_constants.h:503
Definition: diguy_constants.h:251
Definition: diguy_constants.h:908
Definition: diguy_constants.h:933
Definition: diguy_constants.h:1276
Definition: diguy_constants.h:351
diguyScenarioPlaybackMode diguy_playback_mode_from_string(const char *string)
Definition: diguy_constants.h:1035
Definition: diguy_constants.h:922
Definition: diguy_constants.h:1067
Definition: diguy_constants.h:429
Definition: diguy_constants.h:506
Definition: diguy_constants.h:1395
Definition: diguy_constants.h:1729
Definition: diguy_constants.h:882
Definition: diguy_constants.h:878
Definition: diguy_constants.h:236
Definition: diguy_constants.h:1031
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:1203
Definition: diguy_constants.h:1740
Definition: diguy_constants.h:1102
Definition: diguy_constants.h:809
Definition: diguy_constants.h:1068
Definition: diguy_constants.h:1735
Definition: diguy_constants.h:848
Definition: diguy_constants.h:137
Definition: diguy_constants.h:800
Definition: diguy_constants.h:1278
diguyAgentUntrapMethod
DI-Guy agent untrap methods.
Definition: diguy_constants.h:1333
Definition: diguy_constants.h:1475
Definition: diguy_constants.h:1155
Definition: diguy_constants.h:1707
Definition: diguy_constants.h:947
Definition: diguy_constants.h:270
Definition: diguy_constants.h:590
Definition: diguy_constants.h:1757
Definition: diguy_constants.h:927
Definition: diguy_constants.h:252
Definition: diguy_constants.h:458
Definition: diguy_constants.h:869
Definition: diguy_constants.h:188
Definition: diguy_constants.h:671
Definition: diguy_constants.h:592
Definition: diguy_constants.h:868
Definition: diguy_constants.h:237
Definition: diguy_constants.h:929
Definition: diguy_constants.h:184
Definition: diguy_constants.h:200
Definition: diguy_constants.h:1205
Definition: diguy_constants.h:1725
diguyViewCameraServoTarget
Aspects of the DI-Guy camera that can be servoed.
Definition: diguy_constants.h:234
Definition: diguy_constants.h:488
Definition: diguy_constants.h:802
Definition: diguy_constants.h:1548
Definition: diguy_constants.h:870
Definition: diguy_constants.h:745
Definition: diguy_constants.h:1690
Definition: diguy_constants.h:169
Definition: diguy_constants.h:1173
Definition: diguy_constants.h:917
Definition: diguy_constants.h:1589
Definition: diguy_constants.h:1154
diguyCrowdProfileSelectionMethod
Selection methods for records from crowd profiles.
Definition: diguy_constants.h:1189
Definition: diguy_constants.h:830
diguyNavPathDirection
Directions a character can be traveling on a navigation path (nav path).
Definition: diguy_constants.h:1115
Definition: diguy_constants.h:1034
Definition: diguy_constants.h:1519
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:901
Definition: diguy_constants.h:114
Definition: diguy_constants.h:591
diguyScenarioMergeFlag
This enumeration is used for various variables in the diguyScenarioMergeSettings object.
Definition: diguy_constants.h:666
Definition: diguy_constants.h:887
Definition: diguy_constants.h:1523
Definition: diguy_constants.h:304
Definition: diguy_constants.h:492
Definition: diguy_constants.h:1033
Definition: diguy_constants.h:505
Definition: diguy_constants.h:567
Definition: diguy_constants.h:1180
Definition: diguy_constants.h:909
Definition: diguy_constants.h:1017
Definition: diguy_constants.h:353
Definition: diguy_constants.h:430
Definition: diguy_constants.h:348
Definition: diguy_constants.h:1573
diguyTacticsUnitType
Definition: diguy_constants.h:1568
Definition: diguy_constants.h:121
Definition: diguy_constants.h:1485
Definition: diguy_constants.h:795
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:452
Definition: diguy_constants.h:410
Definition: diguy_constants.h:1692
Definition: diguy_constants.h:864
diguyNavPathAtEnd
What a character following a nav path will do once it reaches the end of a nav path.
Definition: diguy_constants.h:1151
Definition: diguy_constants.h:1733
Definition: diguy_constants.h:481
diguyDynamicAvoidanceMethod
This enumeration lists the methods available for collision detection and avoidance against dynamic ob...
Definition: diguy_constants.h:985
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:845
diguyVisibleFlag
This enumeration lists the visibility options for various objects in the DI-Guy Scenario environment...
Definition: diguy_constants.h:524
Definition: diguy_constants.h:811
Definition: diguy_constants.h:1283
Definition: diguy_constants.h:401
diguyScenarioEditAction
This enumeration lists different types of editing actions that can be performed in the DI-Guy Scenari...
Definition: diguy_constants.h:861
Definition: diguy_constants.h:797
Definition: diguy_constants.h:528
Definition: diguy_constants.h:1282
Definition: diguy_constants.h:476
diguyVehicleSimulationMode diguy_vehicle_simulation_mode_from_string(const char *string)
Definition: diguy_constants.h:428
Definition: diguy_constants.h:135
Definition: diguy_constants.h:846
Definition: diguy_constants.h:1101
diguyAuthorVisualUpdateFlag
This enumeration lists which parts of a visual object may need to be updated.
Definition: diguy_constants.h:565
Definition: diguy_constants.h:1788
Definition: diguy_constants.h:285
Definition: diguy_constants.h:166
Definition: diguy_constants.h:136
Definition: diguy_constants.h:1153
Definition: diguy_constants.h:486
Definition: diguy_constants.h:504
Definition: diguy_constants.h:453
Definition: diguy_constants.h:920
Definition: diguy_constants.h:98
Definition: diguy_constants.h:906
const char * diguy_vehicle_simulation_mode_to_string(diguyVehicleSimulationMode mode)
Definition: diguy_constants.h:1157
Definition: diguy_constants.h:741
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:1703
Definition: diguy_constants.h:134
Definition: diguy_constants.h:1281
Definition: diguy_constants.h:988
Definition: diguy_constants.h:1574
Definition: diguy_constants.h:1177
Definition: diguy_constants.h:1646
Definition: diguy_constants.h:838
Definition: diguy_constants.h:1120
diguyScenarioPlaybackMode
This enumeration identifies which playback mode time should follow.
Definition: diguy_constants.h:501
Definition: diguy_constants.h:1583
Definition: diguy_constants.h:775
Definition: diguy_constants.h:1675
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:705
diguyCharacterFeelerTurnDirection
This enumeration lists the turn directions a feeler can use when its status is DIGUY_CHARACTER_FEELER...
Definition: diguy_constants.h:1097
Definition: diguy_constants.h:408
Definition: diguy_constants.h:1481
Definition: diguy_constants.h:708
Definition: diguy_constants.h:691
Definition: diguy_constants.h:266
Definition: diguy_constants.h:268
Definition: diguy_constants.h:1191
Definition: diguy_constants.h:1616
Definition: diguy_constants.h:406
Definition: diguy_constants.h:1277
Definition: diguy_constants.h:918
Definition: diguy_constants.h:865
Definition: diguy_constants.h:669
Definition: diguy_constants.h:298
Definition: diguy_constants.h:1691
Definition: diguy_constants.h:269
diguyDatetimeNetworkMode
DIGUY_DATETIME_NETWORK_MODE_LOCAL_ONLY
Definition: diguy_constants.h:1642
Definition: diguy_constants.h:450
diguyPhysicsCollisionGroup
This enumeration lists the collision groups that a DI-Guy physics sim object can be in...
Definition: diguy_constants.h:1719
Definition: diguy_constants.h:569
Definition: diguy_constants.h:264
Definition: diguy_constants.h:1787
Definition: diguy_constants.h:1398
Definition: diguy_constants.h:483
Definition: diguy_constants.h:1483
Definition: diguy_constants.h:117
Definition: diguy_constants.h:1038
Definition: diguy_constants.h:1721
Definition: diguy_constants.h:1399
Definition: diguy_constants.h:112
Definition: diguy_constants.h:204
Definition: diguy_constants.h:847
Definition: diguy_constants.h:571
Definition: diguy_constants.h:1527
Definition: diguy_constants.h:1644
Definition: diguy_constants.h:1036
Definition: diguy_constants.h:403
Definition: diguy_constants.h:773
Definition: diguy_constants.h:1728
Definition: diguy_constants.h:462
Definition: diguy_constants.h:594
Definition: diguy_constants.h:386
Definition: diguy_constants.h:400
Definition: diguy_constants.h:1280
Definition: diguy_constants.h:437
Definition: diguy_constants.h:1176
Definition: diguy_constants.h:835
diguyAgentBehavior
DI-Guy agent behaviors.
Definition: diguy_constants.h:1274
Definition: diguy_constants.h:1756
Definition: diguy_constants.h:570
Definition: diguy_constants.h:482
Definition: diguy_constants.h:484
Definition: diguy_constants.h:867
Definition: diguy_constants.h:1585
Definition: diguy_constants.h:1526
Definition: diguy_constants.h:1736
Definition: diguy_constants.h:1338
Definition: diguy_constants.h:916
diguyDatetimeAdvanceMethod
This enumeration lists the methods in which the datetime of a scenario can advance.
Definition: diguy_constants.h:1613
Definition: diguy_constants.h:1575
Definition: diguy_constants.h:919
Definition: diguy_constants.h:1396
Definition: diguy_constants.h:912
Definition: diguy_constants.h:436
Definition: diguy_constants.h:1284
int diguyCharacterFeelerNumber
This enumeration lists the standard feelers used for static object avoidance used by I-Guy and agent ...
Definition: diguy_constants.h:1027
diguySubregionMask
DI-Guy subregions mask values.
Definition: diguy_constants.h:1517
Definition: diguy_constants.h:1162
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:792
diguyVehicleSimulationMode
This enumeration lists the modes that the DI-Guy vehicle simulator can be in.
Definition: diguy_constants.h:1750
Definition: diguy_constants.h:834
Definition: diguy_constants.h:1674
Definition: diguy_constants.h:1586
diguyCharacterFeelerStatus
This enumeration lists the state character feelers may be in.
Definition: diguy_constants.h:1065
Definition: diguy_constants.h:926
Definition: diguy_constants.h:1706
Definition: diguy_constants.h:843
Definition: diguy_constants.h:1730
Definition: diguy_constants.h:438