DI-Guy SDK Documentation  13.6
diguy_module_net.h
Go to the documentation of this file.
1 /****************************************************************************
2  * Copyright (c) 2022 MAK Technologies, Inc.
3  * All rights reserved.
4  ****************************************************************************/
5 
9 
10 #pragma once
11 
12 /*********************************************************************
13  **
14  *t DI-Guy API, VR-Link
15  **
16  *b Link against: libdiguy_module_dis or libdiguy_module_hla
17  **
18  */
19 
20 #include <declspec_diguy.h>
21 
22 #include <diguy_constants.h>
23 
24 #include <stddef.h>
25 
26 class diguyCharacter;
27 class diguyScenario;
28 class diguyNetInterface;
29 struct diguyNetInterfaceData;
30 
31 class bdiDataTracker;
32 
33 
34 /****************************************************************************/
35 typedef enum
36 {
41 
43 
44 
45 extern "C"
46 {
47 
48 /*l
49  *b Description:
50  **
51  ** This function allows VR-Link to install some callbacks so that DSS file
52  ** load and save will include VR-Link-specific info.
53  **
54  ** It should be called BEFORE the scenario object is constructed.
55  **
56  *b Returns:
57  **
58  ** 0 on success, -1 on failure
59  **
60  *b Example:
61  **
62  *e diguy_module_net_initialize();
63  */
64 BDI_DECLSPEC_diguy int diguy_module_net_initialize();
65 
66 /*l
67  *b Description:
68  **
69  ** This function allows DI-Guy networking to clean up.
70  **
71  ** It should be called once, on application shutdown, after the scenario
72  ** object has been destroyed.
73  **
74  *b Returns:
75  **
76  ** 0 on success, -1 on failure
77  **
78  *b Example:
79  **
80  *e diguy_module_net_deinitialize();
81  */
82 BDI_DECLSPEC_diguy int diguy_module_net_deinitialize();
83 
84 /*l
85  *b Description:
86  **
87  ** This function returns a diguyNetInterface which can be used to change
88  ** settings on the networking module. This will be an appropriate
89  ** version of the net interface, i.e. a DIS or a HLA interface, depending
90  ** on which library was linked in.
91  **
92  *b Returns:
93  **
94  ** pointer to a diguyNetInterface
95  */
96 BDI_DECLSPEC_diguy diguyNetInterface* get_net_interface();
97 
98 }
99 
100 
101 /****************************************************************************/
102 /*l
103  *b Description:
104  **
105  ** This class provides accessors to the interface parameters, as well as
106  ** functions for going online and offline.
107  **
108  */
109 class BDI_DECLSPEC_diguy diguyNetInterface
110 {
111 public:
112 
113  /*l
114  *b Description:
115  **
116  ** This function tells DI-Guy that it should start talking over
117  ** VR-Link.
118  **
119  ** It should be called when DI-Guy should join an exercise.
120  **
121  *b Arguments:
122  **
123  *a scenario - pointer to the diguyScenario which will be connected to
124  *a the network
125  *a exconn - optional pointer to a VR-Link exercise connection to use
126  **
127  *b Returns:
128  **
129  ** 0 on success, -1 on failure
130  */
131  virtual int go_online( diguyScenario* scenario, void* exconn = NULL ) = 0;
132 
133  /*l
134  *b Description:
135  **
136  ** This function tells DI-Guy that it should stop talking over
137  ** VR-Link.
138  **
139  *b Returns:
140  **
141  ** 0 on success, -1 on failure
142  */
143  virtual int go_offline() = 0;
144 
145  /*l
146  *b Description:
147  **
148  ** This function asks if DI-Guy is connected to the network.
149  **
150  *b Returns:
151  **
152  ** 1 if yes, 0 if no
153  */
154  virtual int get_online() = 0;
155 
156  /*l
157  *b Description:
158  **
159  ** This function sets the filename of the VR-Link configuration file
160  ** that will be read by the DI-Guy software. The default is
161  ** "network.cfg". This function must be called before the network
162  ** module is initialized.
163  **
164  *i C++ only
165  **
166  *b Arguments:
167  **
168  *a cfg_file - filename of desired configuration file
169  **
170  *b Returns:
171  **
172  ** 0 on success, -1 on failure
173  */
174  virtual int set_cfg_file(const char* cfg_filename) = 0;
175 
176  /*l
177  *b Description:
178  **
179  ** This function tells DI-Guy that it should read PDUs from the
180  ** network and process them. Call this function periodically.
181  **
182  *b Returns:
183  **
184  ** 0 on success, -1 on failure
185  */
186  virtual int update() = 0;
187 
188  /*l
189  *b Description:
190  **
191  ** Sets the exercise id to be used by DI-Guy networking.
192  **
193  ** The function will fail if DI-Guy is on-line (is participating in
194  ** an exercise).
195  **
196  *b Arguments:
197  **
198  *a exercise - the exercise id to use. Must be <= 255 in DIS
199  **
200  *b Returns:
201  **
202  ** 0 on success, -1 on failure
203  */
204  virtual int set_exercise(int exercise) = 0;
205 
206  /*l
207  *b Description:
208  **
209  ** Gets the exercise id being used by DI-Guy networking.
210  **
211  *b Returns:
212  **
213  ** the exercise id
214  */
215  virtual int get_exercise() = 0;
216 
217  /*l
218  *b Description:
219  **
220  ** Sets the host id to be used by DI-Guy networking.
221  **
222  ** The function will fail if DI-Guy is on-line (is participating in
223  ** an exercise).
224  **
225  *b Arguments:
226  **
227  *a host - the host id to use; the host id identifies the local
228  *a machine
229  **
230  *b Returns:
231  **
232  ** 0 on success, -1 on failure
233  */
234  virtual int set_host(int host) = 0;
235 
236  /*l
237  *b Description:
238  **
239  ** Gets the host id being used by DI-Guy networking.
240  **
241  *b Returns:
242  **
243  ** the host id
244  */
245  virtual int get_host() = 0;
246 
247  /*l
248  *b Description:
249  **
250  ** Sets the site id to be used by DI-Guy networking.
251  **
252  ** The function will fail if DI-Guy is on-line (is participating in
253  ** an exercise).
254  **
255  *b Arguments:
256  **
257  *a site - the site id to use; the site id identifies where the local
258  *a machine is located
259  **
260  *b Returns:
261  **
262  ** 0 on success, -1 on failure
263  */
264  virtual int set_site(int site) = 0;
265 
266  /*l
267  *b Description:
268  **
269  ** Gets the site id being used by DI-Guy networking.
270  **
271  *b Returns:
272  **
273  ** the site id
274  */
275  virtual int get_site() = 0;
276 
277  /*l
278  *b Description:
279  **
280  ** Sets the network port number to be used by DI-Guy networking.
281  **
282  ** The function will fail if DI-Guy is on-line (is participating in
283  ** an exercise).
284  **
285  *b Arguments:
286  **
287  *a port - the port number to use
288  **
289  *b Returns:
290  **
291  ** 0 on success, -1 on failure
292  */
293  virtual int set_port(int port) = 0;
294 
295  /*l
296  *b Description:
297  **
298  ** Gets the port number of the port being used for DI-Guy networking.
299  **
300  *b Returns:
301  **
302  ** the port address
303  */
304  virtual int get_port() = 0;
305 
306  /*l
307  *b Description:
308  **
309  ** Sets the IP address to be used by DI-Guy networking. This address
310  ** is the address to which messages are sent. Normally, it is a
311  ** broadcast or multicast address.
312  **
313  ** The function will fail if DI-Guy is on-line (is participating in
314  ** an exercise).
315  **
316  *b Arguments:
317  **
318  *a ipaddr - the IP address
319  **
320  ** ipaddr is a string containing 4 integers separated by periods, or
321  ** the null string, which means "let DI-Guy choose the address". An
322  ** address of "0" or "0.0.0.0" means broadcast.
323  **
324  *b Returns:
325  **
326  ** 0 on success, -1 on failure
327  */
328  virtual int set_ipaddr(const char* ipaddr) = 0;
329 
330  /*l
331  *b Description:
332  **
333  ** Gets the IP address currently being used by DI-Guy networking.
334  ** This address is the address to which messages are sent. Normally
335  ** this is a broadcast or multicast address.
336  **
337  *b Arguments:
338  **
339  *a ipaddr - IP address, returned; see below
340  **
341  *b Returns:
342  **
343  ** 0 on success, -1 on failure
344  **
345  ** ipaddr is a char**, into which a char* will be placed. This char*
346  ** points to static data owned by DI-Guy. Do not store this pointer,
347  ** and do not modify what it points to. Copy the strings you need
348  ** out of the static buffer. (Assignment of a char* to a Microsoft
349  ** CString will work very nicely, for example.)
350  **
351  ** ipaddr is a string containing 4 integers separated by periods.
352  */
353  virtual int get_ipaddr(char** ipaddr) = 0;
354 
355  /*l
356  *b Description:
357  **
358  ** Sets the IP address to be used by DI-Guy networking.
359  ** This address is the address of the network device to use for sending.
360  ** Normally, it is the address assigned to the network card to use.
361  **
362  ** The function will fail if DI-Guy is on-line (is participating in
363  ** an exercise).
364  **
365  *b Arguments:
366  **
367  *a ipaddr - the IP address
368  **
369  ** ipaddr is a string containing 4 integers separated by periods, or
370  ** the null string, which means "let DI-Guy choose the address". An
371  ** address of "0" or "0.0.0.0" means broadcast.
372  **
373  *b Returns:
374  **
375  ** 0 on success, -1 on failure
376  */
377  virtual int set_device_ipaddr( const char* ipaddr ) = 0;
378 
379  /*l
380  *b Description:
381  **
382  ** Gets the IP address to be used by DI-Guy networking.
383  ** This address is the address of the network device to use for sending.
384  ** Normally, it is the address assigned to the network card to use.
385  **
386  *b Returns:
387  **
388  ** String containing the device address.
389  **
390  */
391  virtual const char* get_device_ipaddr() = 0;
392 
393  /*l
394  *b Description:
395  **
396  ** Sets the HLA Federation name you wish to create or join.
397  **
398  *b Arguments:
399  **
400  *a federation_name - as string
401  **
402  *b Returns:
403  **
404  ** 0 on success, -1 on failure
405  */
406  virtual int set_federation_name(const char* federation_name);
407 
408  /*l
409  *b Description:
410  **
411  ** Gets the HLA Federation name.
412  **
413  *b Returns:
414  **
415  ** String containing HLA federation name
416  */
417  virtual const char* get_federation_name();
418 
419  /*l
420  *b Description:
421  **
422  ** Sets the HLA Federate name to use. Federate names should be
423  ** unique for each connection instance.
424  **
425  *b Arguments:
426  **
427  *a federate_name - as string
428  **
429  *b Returns:
430  **
431  ** 0 on success, -1 on failure
432  */
433  virtual int set_federate_name(const char* federate_name);
434 
435  /*l
436  *b Description:
437  **
438  ** Gets the HLA Federate name.
439  **
440  *b Returns:
441  **
442  ** String containing HLA federate name
443  */
444  virtual const char* get_federate_name();
445 
446  /*l
447  *b Description:
448  **
449  ** Sets the HLA Federate type to identify as.
450  **
451  *b Arguments:
452  **
453  *a federate_type - as string
454  **
455  *b Returns:
456  **
457  ** 0 on success, -1 on failure
458  */
459  virtual int set_federate_type(const char* federate_type);
460 
461  /*l
462  *b Description:
463  **
464  ** Gets the HLA Federate name.
465  **
466  *b Returns:
467  **
468  ** String containing HLA federate type
469  */
470  virtual const char* get_federate_type();
471 
472  /*l
473  *b Description:
474  **
475  ** Sets whether DI-Guy networking will display remote characters.
476  **
477  ** The function will fail if DI-Guy is on-line (is participating in
478  ** an exercise).
479  **
480  *b Arguments:
481  **
482  *a display - pass 1 if DI-Guy networking should display remote
483  *a characters, 0 if not
484  **
485  *b Returns:
486  **
487  ** 0 on success, -1 on failure
488  */
489  virtual int set_display_remote_chars(int display) = 0;
490 
491  /*l
492  *b Description:
493  **
494  ** Returns whether DI-Guy networking will display remote characters
495  ** when online.
496  **
497  *b Returns:
498  **
499  ** 1 if enabled, 0 if not
500  */
501  virtual int get_display_remote_chars() = 0;
502 
503  /*l
504  *b Description:
505  **
506  ** This function sets whether DI-Guy is sending diguy state attributes.
507  **
508  *b Arguments:
509  **
510  ** 0 if diguy state attributes should not be sent,
511  ** 1 if diguy state attributes should be sent
512  */
513  virtual void set_send_diguy_state( int ) = 0;
514 
515  /*l
516  *b Description:
517  **
518  ** This function returns whether DI-Guy is sending diguy state attributes.
519  **
520  *b Returns:
521  **
522  ** 0 if diguy state attributes are not being sent,
523  ** 1 if diguy state attributes are being sent
524  */
525  virtual int get_send_diguy_state() = 0;
526 
527  /*l
528  *b Description:
529  **
530  ** This function sets whether DI-Guy is sending custom pdus.
531  **
532  *b Arguments:
533  **
534  ** 0 if custom pdus should not be sent,
535  ** 1 if custom pdus should be sent
536  */
537  virtual void set_send_custom_pdus( int ) = 0;
538 
539  /*l
540  *b Description:
541  **
542  ** This function returns whether DI-Guy is sending custom pdus.
543  **
544  *b Returns:
545  **
546  ** 0 if custom pdus are not being sent,
547  ** 1 if custom pdus are being sent
548  */
549  virtual int get_send_custom_pdus() = 0;
550 
551  /*l
552  *b Description:
553  **
554  ** This function returns whether DI-Guy sends custom pdus that concatenate
555  ** hand item with the body appearance name. DI-Guy 13.0 and up separate these.
556  */
557  virtual int get_send_diguy_125_appearance_packets() = 0;
558  /*l
559  *b Description:
560  **
561  ** This function set whether whether DI-Guy sends custom pdus that concatenate
562  ** hand item with the body appearance name. DI-Guy 13.0 and up separate these.
563  */
564  virtual void set_send_diguy_125_appearance_packets(int) = 0;
565 
566 
567  /*l
568  *b Description:
569  **
570  ** Turns the 'never create character' bit on.
571  */
572  virtual void enter_vpnet_mode() = 0;
573 
574  /*l
575  *b Description:
576  **
577  ** returns the diguyCharacter associated with the entity id specified.
578  **
579  *b Arguments:
580  **
581  *a id - Under HLA, two formats are permitted: the H L A object name,
582  *a or the DIS entity identifier ("site:application:entity", where
583  *a each is an integer)
584  **
585  ** Under DIS, only the DIS Entity Identifier is permitted.
586  */
587  virtual diguyCharacter* get_character_from_id(char const* id) = 0;
588 
589  /*l
590  *b Description:
591  **
592  ** Returns the name corresponding to the entity. The caller must
593  ** delete the returned string.
594  **
595  *b Arguments:
596  **
597  *a reflected_entity - entity to be named
598  **
599  *b Returns:
600  **
601  ** name of reflected entity
602  */
603  virtual char* get_name_from_entity(void* reflected_entity) = 0;
604 
605  /*l
606  *b Description:
607  **
608  ** Sets whether DI-Guy networking will publish local characters to the
609  ** network.
610  **
611  ** This function WILL succeed even if DI-Guy is on-line (is
612  ** participating in an exercise).
613  **
614  *b Arguments:
615  **
616  *a publish - pass 1 if DI-Guy networking should publish local characters
617  *a to the network, 0 if not
618  **
619  *b Returns:
620  **
621  ** 0 on success, -1 on failure
622  */
623  virtual int set_publish_local_chars(int publish) = 0;
624 
625  /*l
626  *b Description:
627  **
628  ** Returns whether DI-Guy networking will publish local characters
629  ** when online.
630  **
631  *b Returns:
632  **
633  ** 1 if enabled, 0 if not
634  */
635  virtual int get_publish_local_chars() = 0;
636 
637  /*l
638  *b Description:
639  **
640  ** This function sets the position offset which is currently added to
641  ** each character when it is published, and subtracted from each
642  ** character when it is reflected. This is useful to compensate for
643  ** inter-application location error.
644  **
645  *b Arguments:
646  **
647  *a z - z offset in meters
648  *a yaw - orientation offset in degrees
649  *a roll - orientation offset in degrees
650  *a pitch - orientation offset in degrees
651  **
652  *b Returns:
653  **
654  ** 0 on success, -1 on failure
655  */
656  virtual int set_position_offset(float z, float yaw, float roll, float pitch) = 0;
657 
658  /*l
659  *b Description:
660  **
661  ** This function gets the position offset which is currently added to
662  ** each character when it is published, and subtracted from each
663  ** character when it is reflected. The offset is useful to
664  ** compensate for inter-application database location and orientation
665  ** error.
666  **
667  *b Arguments:
668  **
669  *a z - z offset in meters
670  *a yaw - orientation offset in degrees
671  *a roll - orientation offset in degrees
672  *a pitch - orientation offset in degrees
673  **
674  *b Returns:
675  **
676  ** 0 on success, -1 on failure
677  */
678  virtual int get_position_offset(float* z,
679  float* yaw,
680  float* roll,
681  float* pitch) = 0;
682 
683  /*l
684  *b Description:
685  **
686  ** This function allows iteration through the list of names remote
687  ** VR-Link hosts that DI-Guy knows about.
688  **
689  *b Arguments:
690  **
691  *a buf - destination buffer for host name (64 bytes is plenty)
692  *a handle - return value from last call to the function; pass NULL
693  *a to get the first host name; pass previous return value
694  *a to get the next host name
695  **
696  *b Returns:
697  **
698  ** void* to be passed as handle argument on the next call; NULL when
699  ** end of list is reached
700  */
701  virtual void* get_next_participant_name(char* buf, void* handle) = 0;
702 
703  /*l
704  *b Description:
705  **
706  ** Fetches what character type and what appearance should be used for
707  ** a given DIS entity type septet.
708  **
709  *b Arguments:
710  **
711  *a chartype - address of char*, for returning a string which
712  *a names the DI-Guy character type
713  *a appearance - address of char*, for returning a string which
714  *a names the DI-Guy character appearance
715  *a septet - array of seven integers specifying the kind,
716  *a domain, country, category, subCategory, specific,
717  *a and extra of the entity in question
718  **
719  *b Returns:
720  **
721  ** 0 on success, -1 on failure
722  */
723  virtual int get_model_from_septet(const char** chartype,
724  const char** appearance,
725  const char** hand_item,
726  const int septet[7]) = 0;
727 
728  /*l
729  *b Description:
730  **
731  ** Fetches what DIS entity type septet should be used for a given
732  ** character type and appearance.
733  **
734  *b Arguments:
735  **
736  *a chartype - a string which names the DI-Guy character type
737  *a appearance - a string which names the DI-Guy character appearance
738  *a septet - array of seven integers, returned, indicating the kind,
739  *a domain, country, category, subCategory, specific, and
740  *a extra of the entity in question
741  **
742  *b Returns:
743  **
744  ** 0 on success, -1 on failure
745  */
746  virtual int get_septet_from_model(int septet[7],
747  const char* chartype,
748  const char* appearance,
749  const char* hand_item) = 0;
750 
751  /*l
752  *b Description:
753  **
754  ** This functions sets the amount of time that can elapse since the
755  ** last update before an entity is timed out. The default is 12
756  ** seconds.
757  **
758  *b Arguments:
759  **
760  *a interval - number of seconds until timeout
761  */
762  virtual void set_timeout_interval(float interval) = 0;
763 
764  /*l
765  *b Returns:
766  **
767  ** timeout value in seconds; see set_timeout_interval()
768  */
769  virtual float get_timeout_interval() = 0;
770 
771  /*l
772  *b Description:
773  **
774  ** This function sets the number of hops a packet can take before
775  ** being killed. Setting this value to -1 means that the system
776  ** default will be used.
777  **
778  ** This value must be set before the connection goes online.
779  **
780  *b Arguments:
781  **
782  *a time_to_live - number of hops until packed is killed
783  */
784  virtual void set_time_to_live(int time_to_live) = 0;
785 
786  /*l
787  *b Returns:
788  **
789  ** number of hops until packed is killed; see set_time_to_live()
790  */
791  virtual int get_time_to_live() = 0;
792 
793 
794 /*****************************************************************************/
798 /****************************************************************************/
799 
800  /*l
801  *b Description:
802  **
803  ** Sets the latitude and longitude to be used by DI-Guy networking.
804  ** The latitude and longitude are taken as the location, on Earth, of
805  ** the origin of the database.
806  **
807  ** The function will fail if DI-Guy is on-line (is participating in
808  ** an exercise).
809  **
810  *b Arguments:
811  **
812  *a lat - the latitude in radians, positive north
813  *a lon - the longitude in radians, positive east
814  **
815  *b Returns:
816  **
817  ** 0 on success, -1 on failure
818  */
819  virtual int set_lat_lon(double lat, double lon) = 0;
820 
821  /*l
822  *b Description:
823  **
824  ** Gets the latitude and longitude currently being used by DI-Guy
825  ** networking for the placement of the database origin.
826  **
827  *b Arguments:
828  **
829  *a lat - latitude of origin, returned; see below
830  *a lon - longitude of origin, returned; see below
831  **
832  *b Returns:
833  **
834  ** 0 on success, -1 on failure
835  **
836  ** lat and lon are char**'s, into which char*'s will be placed.
837  ** These char*'s point to static data owned by DI-Guy. Do not
838  ** store these pointers, and do not modify what they point to. Copy
839  ** the strings needed out of the static buffers. (Assignment of a
840  ** char* to a Microsoft CString will work very nicely, for example.)
841  **
842  ** lat and lon are expressed as strings of the form:
843  **
844  *- - [-]d [N|W|S|E] or
845  *- - [-]d m [N|W|S|E] or
846  *- - [-]d m s [N|W|S|E]
847  **
848  ** N and E are taken as positive. S and W will negate the value
849  ** otherwise computed. d, m, and s are positive, floating point
850  ** values, taken as degrees, minutes, and seconds, respectively.
851  ** A leading minus sign will negate the entire value otherwise
852  ** computed (so, e.g., a '-' and a 'S' will result in a double-
853  ** negation).
854  */
855  virtual int get_lat_lon(double* lat, double* lon) = 0;
856 
857  /*l
858  *b Description:
859  **
860  ** returns a string of the form
861  **
862  *- - d [N|W|S|E] or
863  *- - d m s [N|W|S|E]
864  **
865  ** N and E are used for positive angles. S and W are used for
866  ** negative angles. In the d m s format, d and m are integers
867  ** (degrees and minutes) and s (seconds) is a floating point value.
868  ** In the d format, d (degrees) is a floating point value.
869  **
870  *b Arguments:
871  **
872  *a outbuf - a buffer into which to copy the resulting string
873  *a value - the lat or lon value to be converted into a string
874  *a is_lat - boolean indicating latitude (North/South) rather than
875  *a longitude(East/West)
876  *a is_decimal - boolean indicating that decimal degrees are
877  *a desired, rather than degrees, minutes, and seconds
878  *a value_is_degrees - boolean indicating whether the input value is
879  *a in degrees (as opposed to radians)
880  */
881  virtual void format_lat_or_lon(char* outbuf,
882  double value,
883  bool is_lat,
884  bool is_decimal,
885  bool value_is_degrees) = 0;
886 
887  /*l
888  *b Description:
889  **
890  ** Sets the UTM zone of the location currently being used by DI-Guy
891  ** networking for the placement of the database origin. The easting
892  ** and northing are assumed not to change.
893  **
894  *b Arguments:
895  **
896  *a zone - the utm zone
897  *a southzone - pass 1 if the origin is in the southern hemisphere
898  **
899  *b Returns:
900  **
901  ** 0 on success, -1 on failure
902  */
903  virtual int set_utm_zone(int zone, int southzone) = 0;
904 
905  /*l
906  *b Description:
907  **
908  ** Sets, in UTM coordinates, the location currently being used by
909  ** DI-Guy networking for the placement of the database origin.
910  **
911  *b Arguments:
912  **
913  *a zone - the utm zone
914  *a southzone - pass 1 if the origin is in the southern hemisphere
915  *a easting - the normalized (positive only) easting of the database
916  *a origin within the zone
917  *a northing - the normalized (positive only) northing of the
918  *a database origin within the zone
919  **
920  *b Returns:
921  **
922  ** 0 on success, -1 on failure
923  */
924  virtual int set_utm(int zone,
925  int southzone,
926  double easting,
927  double northing) = 0;
928 
929  /*l
930  *b Description:
931  **
932  ** Gets, in UTM coordinates, the location currently being used by
933  ** DI-Guy networking for the placement of the database origin.
934  **
935  *b Arguments:
936  **
937  *a zone - the utm zone, returned
938  *a southzone - 1 if the origin is in the southern hemisphere,
939  *a returned
940  *a easting - the normalized (positive only) easting of the database
941  *a origin within the zone, returned
942  *a northing - the normalized (positive only) northing of the
943  *a database origin within the zone, returned
944  **
945  *b Returns:
946  **
947  ** 0 on success, -1 on failure
948  */
949  virtual int get_utm(int* zone,
950  int* southzone,
951  double* easting,
952  double* northing) = 0;
953 
954  /*l
955  *b Description:
956  **
957  ** This function sets whether user-defined latitude/longitude
958  ** coordinates should be used for the origin of the database, or the
959  ** coordinates that come from graphics files for scenario scene
960  ** objects.
961  **
962  *b Arguments:
963  **
964  *a use_user_defined - pass 1 if user-defined coordinates should be
965  *a used, 0 if coordinates from graphics file
966  *a should be used
967  **
968  *b Returns:
969  **
970  ** 0 on success, -1 on failure
971  */
972  virtual int set_use_user_defined_coords(int use_user_defined) = 0;
973 
974  /*l
975  *b Returns:
976  **
977  ** 0 if graphics file coordinates are used,
978  ** 1 if user-defined coordinates are used
979  */
980  virtual int get_use_user_defined_coords() = 0;
981 
982  /*l
983  *b Description:
984  **
985  ** Converts a 3d database-origin-relative location into a string
986  ** describing it in earth coordinates. This string could be in a
987  ** number of different formats including decimal lat/lon, dms
988  ** lat/lon, and UTM.
989  **
990  *b Arguments:
991  **
992  *a outbuf - buffer into which to put the output string
993  *a x, y, z - 3 floats specifying location
994  **
995  *b Returns:
996  **
997  ** 0 on success, -1 on failure. Fails if DI-Guy Scenario is not currently
998  ** on the network, meaning that a database-to-earth coordinate conversion
999  ** cannot be performed.
1000  */
1001  virtual int get_earth_coord(char* outbuf,
1002  const float x,
1003  const float y,
1004  const float z) = 0;
1005 
1006  /*l
1007  *b Description:
1008  **
1009  ** Changes the format of the output of get_earth_coord. Toggles
1010  ** between UTM, dms lat/lon, decimal lat/lon, and "punting", meaning
1011  ** that the caller of get_earth_coord() should fend for itself. This
1012  ** generally means that the caller will use database-origin-relative
1013  ** coordinates.
1014  */
1015  virtual void toggle_earth_coord_format() = 0;
1016 
1017  /*l
1018  *b Description:
1019  **
1020  ** Sets whether networking should use database coordinates or not.
1021  ** If database coordinates are used, the database origin is placed at
1022  ** the center of the earth. This makes coordinate conversion to and
1023  ** from UTM unnecessary. Using database coordinates renders
1024  ** ineffective any UTM-related settings which would position the
1025  ** database.
1026  **
1027  *b Arguments:
1028  **
1029  *a use_database_coords - 1 if database coordinates should be used,
1030  *a 0 otherwise
1031  **
1032  *b Returns:
1033  **
1034  ** 0 if successful, -1 on failure.
1035  */
1036  virtual int set_use_database_coords(int use_dbc) = 0;
1037 
1038  /*l
1039  *b Description:
1040  **
1041  ** This function returns the number of potential coordinate converters
1042  ** that the networking module supports.
1043  **
1044  *b Returns:
1045  **
1046  ** number of converters
1047  */
1048  virtual int get_num_coordinate_systems();
1049 
1050  /*l
1051  *b Description:
1052  **
1053  ** This function returns the name of the coordinate system at the
1054  ** specified index. This is a string representation of a
1055  ** diguyCoordinateSystemType enumeration.
1056  **
1057  *b Returns:
1058  **
1059  ** name of converter
1060  */
1061  virtual const char* get_coordinate_system_name(int index);
1062 
1063  /*l
1064  *b Description:
1065  **
1066  ** Sets the coordinate system based on the name given. Currently
1067  ** supports: "No Conversion", "UTM", "Flat Earth", "Geocentric".
1068  **
1069  *b Returns:
1070  **
1071  ** 0 on success, -1 on failure.
1072  */
1073  virtual int set_coordinate_system_type(const char* name);
1074 
1075  /*l
1076  *b Description:
1077  **
1078  ** returns the coordinate system name. Current possible values are
1079  ** "No Conversion", "UTM", "Flat Earth", "Geocentric".
1080  **
1081  *b Returns:
1082  **
1083  ** name of coordinate system type
1084  */
1085  virtual const char* get_coordinate_system_type_name();
1086 
1087  /*l
1088  *b Description:
1089  **
1090  ** Sets the coordinate system based on the system type.
1091  **
1092  *b Returns:
1093  **
1094  ** 0 on success, -1 on failure.
1095  */
1096  virtual int set_coordinate_system_type(diguyCoordinateSystemType system_type);
1097 
1098  /*l
1099  **
1100  *b Description:
1101  **
1102  ** Gets the current coordinate system in use.
1103  **
1104  *b Returns:
1105  **
1106  ** diguyCoordinateSystemType enumeration
1107  */
1108  virtual diguyCoordinateSystemType get_coordinate_system_type();
1109 
1110  /*l
1111  *b Description:
1112  **
1113  ** Set whether or not to use standard UTM offsets.
1114  */
1115  virtual void set_use_UTM_standard_offsets( int standard_offsets );
1116 
1117  /*l
1118  *b Description:
1119  **
1120  ** Get whether or not to use standard UTM offsets.
1121  */
1122  virtual int get_use_UTM_standard_offsets();
1123 
1124  /*l
1125  *b Description:
1126  **
1127  ** Parses a string of the form
1128  **
1129  *- - [-]d [N|W|S|E] or
1130  *- - [-]d m [N|W|S|E] or
1131  *- - [-]d m s [N|W|S|E]
1132  **
1133  ** N and E are taken as positive. S and W will negate the value
1134  ** otherwise computed. d m and s are positive, floating point
1135  ** values, taken as degrees, minutes, and seconds, respectively. A
1136  ** leading minus sign will negate the entire value otherwise computed
1137  ** (so, e.g., a '-' and a 'S' will result in a double-negation).
1138  **
1139  *b Arguments:
1140  **
1141  *a dms_string - a string of the format described above
1142  **
1143  *b Returns:
1144  **
1145  ** a double precision floating point value in radians.
1146  */
1147  virtual double parse_dms_to_radians(const char* dms_string) = 0;
1148 
1149  /*l
1150  *b Description:
1151  **
1152  ** Convert the given MGRS coordinate string to local coordinates.
1153  */
1154  virtual int convert_mgrs_to_local( const char* MGRS_str, float* x, float* y, float* z ) = 0;
1155 
1156  /*l
1157  *b Description:
1158  **
1159  ** Convert the given local coordinates to an MGRS coordinate string.
1160  */
1161  virtual const char* convert_local_to_mgrs( float x, float y, float z ) = 0;
1162 
1163  /*l
1164  *b Description:
1165  **
1166  ** Returns the (float) latitude component of the given local coordinates.
1167  */
1168  virtual float convert_local_to_lat( float x, float y, float z ) = 0;
1169 
1170  /*l
1171  *b Description:
1172  **
1173  ** Returns the (double) latitude component of the given local coordinates.
1174  */
1175  virtual double convert_local_to_lat_double( double x, double y, double z ) = 0;
1176 
1177  /*l
1178  *b Description:
1179  **
1180  ** Returns the (float) longitude component of the given local coordinates.
1181  */
1182  virtual float convert_local_to_long( float x, float y, float z ) = 0;
1183 
1184  /*l
1185  *b Description:
1186  **
1187  ** Returns the (double) longitude component of the given local coordinates.
1188  */
1189  virtual double convert_local_to_long_double( double x, double y, double z ) = 0;
1190 
1191  /*l
1192  *b Description:
1193  **
1194  ** Convert the given local coordinates to a latitude/longitude string.
1195  */
1196  virtual const char* convert_local_to_lat_long_string(float x, float y, float z) = 0;
1197 
1198  /*l
1199  *b Description:
1200  **
1201  ** Convert the given (float) latitude/longitude to local coordinates.
1202  */
1203  virtual int convert_lat_long_to_local(float lat, float lon, float* x, float* y, float* z) = 0;
1204 
1205  /*l
1206  *b Description:
1207  **
1208  ** Convert the given (double) latitude/longitude to local coordinates.
1209  */
1210  virtual int convert_lat_long_to_local_double(double lat, double lon, float* x, float* y, float* z) = 0;
1211 
1212 
1213 /*****************************************************************************/
1218  /*l
1219  *b Description:
1220  **
1221  ** Sets whether land-based network entities will be ground clamped,
1222  ** changing their altitude to better correlate with the local
1223  ** terrain.
1224  **
1225  *b Arguments:
1226  **
1227  *a enabled - pass 1 to enable automatic ground clamping; 0 to disable
1228  **
1229  *b Returns:
1230  **
1231  ** 0 on success, -1 on failure
1232  */
1233  virtual int set_ground_clamp_reflected_land_entities_enabled(int enabled);
1234 
1235  /*l
1236  *b Returns:
1237  **
1238  ** 1 if land-based network entities will be ground clamped, 0 if not
1239  */
1240  virtual int get_ground_clamp_reflected_land_entities_enabled();
1241 
1242  /*l
1243  *b Description:
1244  **
1245  ** Similar to set_ground_clamp_reflected_land_entities_enabled(), but
1246  ** will clamp only entities from the specified host. If there is one
1247  ** host on the network that has particular trouble sending correlated
1248  ** altitudes this function can be used to clamp its entities without
1249  ** clamping all entities from all hosts.
1250  **
1251  ** This has been useful in some simulation exercises where
1252  ** participants from multiple vendors are in use. Entities from
1253  ** JCATS in particular have required this.
1254  **
1255  *b Arguments:
1256  **
1257  *a from_host - host whose land entities will be clamped
1258  **
1259  *b Returns:
1260  **
1261  ** 0 on success, -1 on failure
1262  */
1263  virtual int set_ground_clamp_reflected_land_entities_from_host(int from_host);
1264 
1265  /*l
1266  *b Returns:
1267  **
1268  ** host whose land entities will be clamped; see
1269  ** set_ground_clamp_reflected_land_entities_from_host()
1270  */
1271  virtual int get_ground_clamp_reflected_land_entities_from_host();
1272 
1273  /*l
1274  *b Description:
1275  **
1276  ** Sets the maximum upward change in altitude that ground clamping
1277  ** will have.
1278  **
1279  *b Arguments:
1280  **
1281  *a max_climb - maximum upward change in altitude, in meters
1282  **
1283  *b Returns:
1284  **
1285  ** 0 on success, -1 on failure
1286  */
1287  virtual int set_ground_clamp_max_climb(float max_climb);
1288 
1289  /*l
1290  *b Returns:
1291  **
1292  ** maximum upward change in altitude from ground clamping, in meters
1293  */
1294  virtual float get_ground_clamp_max_climb();
1295 
1296  /*l
1297  *b Description:
1298  **
1299  ** Similar to set_ground_clamp_max_climb(), but for downward change.
1300  */
1301  virtual int set_ground_clamp_max_drop(float max_drop);
1302 
1303  /*l
1304  *b Returns:
1305  **
1306  ** maximum downward change in altitude from ground clamping, in
1307  ** meters
1308  */
1309  virtual float get_ground_clamp_max_drop();
1310 
1311  virtual void set_translation_threshold(float value);
1312  virtual float get_translation_threshold();
1313 
1314  virtual void set_z_velocity_threshold(float value);
1315  virtual float get_z_velocity_threshold();
1316 
1317  virtual void set_rotation_threshold(float value);
1318  virtual float get_rotation_threshold();
1319 
1320 /****************************************************************************/
1325  /*l
1326  *b Description:
1327  **
1328  ** Sets whether network datetime data will be broadcast, received, or
1329  ** ignored. See documentation for diguyDatetimeNetworkMode for more
1330  ** information.
1331  **
1332  *b Arguments:
1333  **
1334  *a network_datetime_mode - how to handle network datetime data
1335  */
1336  virtual void set_network_datetime_mode(diguyDatetimeNetworkMode network_datetime_mode);
1337 
1338  /*l
1339  *b Returns:
1340  **
1341  ** how handle network datetime data will be handled; see
1342  ** set_network_datetime_mode().
1343  */
1344  virtual diguyDatetimeNetworkMode get_network_datetime_mode();
1345 
1346  /*l
1347  *b Description:
1348  **
1349  ** Sets how often datetime data will be broadcast if this host is
1350  ** in mode DIGUY_DATETIME_NETWORK_MODE_BROADCAST.
1351  **
1352  ** Default is broadcast every 5 seconds.
1353  **
1354  *b Arguments:
1355  **
1356  *a broadcast_interval - how often to broadcast datetime data, in
1357  *a seconds
1358  */
1359  virtual void set_network_datetime_broadcast_interval(float broadcast_interval);
1360 
1361  /*l
1362  *b Returns:
1363  **
1364  ** how often datetime data will broadcast, in seconds
1365  */
1366  virtual float get_network_datetime_broadcast_interval();
1367 
1368 
1369 /****************************************************************************/
1376 /****************************************************************************/
1377 
1378  /*l
1379  *b Description:
1380  **
1381  ** Sets whether sync mode will be enabled when online.
1382  **
1383  ** The function will fail if DI-Guy is already online, participating
1384  ** in an exercise.
1385  **
1386  *b Arguments:
1387  **
1388  *a enabled - pass 1 if sync mode should be enabled when online,
1389  *a 0 if not
1390  **
1391  *b Returns:
1392  **
1393  ** 0 on success, -1 on failure
1394  */
1395  virtual int set_sync_mode_enabled(int enabled) = 0;
1396 
1397  /*l
1398  *b Description:
1399  **
1400  ** Gets whether sync mode is enabled when online.
1401  **
1402  *b Returns:
1403  **
1404  ** 1 if sync mode is enabled when online, 0 if not
1405  */
1406  virtual int get_sync_mode_enabled() = 0;
1407 
1408  /*l
1409  *b Description:
1410  **
1411  ** Sets whether this machine will serve as sync master when online
1412  ** and in sync mode.
1413  **
1414  *b Arguments:
1415  **
1416  *a master - pass 1 if this machine will serve as sync master when
1417  *a online and in sync mode, 0 if not
1418  **
1419  *b Returns:
1420  **
1421  ** 0 on success, -1 on failure
1422  */
1423  virtual int set_sync_mode_master(int master) = 0;
1424 
1425  /*l
1426  *b Description:
1427  **
1428  ** Gets whether this machine will serve as sync master when online
1429  ** and in sync mode.
1430  **
1431  *b Returns:
1432  **
1433  ** 1 if this machine will serve as sync master when online
1434  ** and in sync mode, 0 if not
1435  */
1436  virtual int get_sync_mode_master() = 0;
1437 
1438  /*l
1439  *b Description:
1440  **
1441  ** Sets whether this machine's camera will be slaved to a remote
1442  ** master when online and in sync mode and not sync master.
1443  **
1444  ** The function will fail if DI-Guy is already online, participating
1445  ** in an exercise.
1446  **
1447  *b Arguments:
1448  **
1449  ** sl_cam - pass 1 if this machine's camera will be slaved to a
1450  ** remote master when online and in sync mode and not sync
1451  ** master, 0 if not
1452  **
1453  *b Returns:
1454  **
1455  ** 0 on success, -1 on failure
1456  */
1457  virtual int set_sync_mode_slave_cam(int sl_cam) = 0;
1458 
1459  /*l
1460  *b Description:
1461  **
1462  ** Gets whether this machine's camera will be slaved to a remote
1463  ** master when online, in sync mode, and not sync master.
1464  **
1465  *b Returns:
1466  **
1467  ** 1 if this machine's camera will be slaved, 0 if not
1468  */
1469  virtual int get_sync_mode_slave_cam() = 0;
1470 
1471  /*l
1472  *b Description:
1473  **
1474  ** This function sets the camera orientation offset to be used in
1475  ** sync_mode (when VR-Link is online).
1476  **
1477  *b Arguments:
1478  **
1479  *a offset_r - orientation offset
1480  *a offset_y - orientation offset
1481  *a offset_p - orientation offset
1482  **
1483  ** yaw and pitch represent PERCENTAGES of the camera's
1484  ** horizontal and vertical field of view, respectively. The
1485  ** ROLL (which is in degrees) is applied first, then the yaw,
1486  ** then the pitch.
1487  **
1488  ** A typical two screen arrangement would use yaws of 50 and -50 for the
1489  ** left screen, and right screen, respectively. For three screens, the
1490  ** yaws would be -100, 0, and 100.
1491  **
1492  ** Using percentages this way makes the screens contiguous even if the
1493  ** camera's field of view changes.
1494  **
1495  ** THIS FUNCTION DOES NOTHING (and returns -1) if called while VR-Link is
1496  ** online
1497  **
1498  *b Returns:
1499  **
1500  ** 0 on success, -1 on failure (VR-Link is online).
1501  */
1502  virtual int set_sync_mode_camera_offset(float offset_r, float offset_y, float offset_p) = 0;
1503 
1504  /*l
1505  *b Description:
1506  **
1507  ** This function gets the camera orientation offset to be used in
1508  ** sync_mode (when VR-Link is online).
1509  **
1510  *b Arguments:
1511  **
1512  *a offset_r - orientation offset
1513  *a offset_y - orientation offset
1514  *a offset_p - orientation offset
1515  **
1516  ** yaw and pitch represent PERCENTAGES of the camera's
1517  ** horizontal and vertical field of view, respectively. The
1518  ** ROLL (which is in degrees) is applied first, then the yaw,
1519  ** then the pitch.
1520  **
1521  ** In the orientation offset the yaw and pitch
1522  ** represent PERCENTAGES of the camera's horizontal and vertical field
1523  ** of view, respectively. The ROLL (which is in degrees) is applied
1524  ** first, then the yaw, then the pitch.
1525  **
1526  ** A typical two screen arrangement would use yaws of 50 and -50 for the
1527  ** left screen, and right screen, respectively. For three screens, the
1528  ** yaws would be 100, 0, and -100 going from left to right.
1529  **
1530  ** Using percentages this way makes the screens contiguous even if the
1531  ** camera's field of view changes.
1532  **
1533  *b Returns:
1534  **
1535  ** 0 on success, -1 on failure
1536  */
1537  virtual int get_sync_mode_camera_offset(float* offset_r,
1538  float* offset_y,
1539  float* offset_p) = 0;
1540 
1541  /*l
1542  *b Description:
1543  **
1544  ** This function sets whether the camera will be slaved when VR-Link is
1545  ** online, in sync mode, and not sync master.
1546  **
1547  ** It can be set even when VR-Link is online.
1548  **
1549  *b Arguments:
1550  **
1551  *a slaved - whether the camera will be slaved when VR-Link is
1552  ** online, in sync mode, and not sync master.
1553  **
1554  *b Returns:
1555  **
1556  ** 0 on success, -1 on failure
1557  */
1558  virtual int set_sync_mode_camera_slaved(int slaved) = 0;
1560  /*l
1561  *b Description:
1562  **
1563  ** This function gets whether the camera is currently slaved. It does
1564  ** NOT simply return what was passed to set_sync_mode_camera_slaved().
1565  **
1566  *b Returns:
1567  **
1568  ** Whether the camera is currently slaved. This will be 1 only if
1569  ** VR-link is online, is in sync mode, and is not the sync master, and if
1570  ** sync_mode_camera_slaved has been set to 1.
1571  */
1572  virtual int get_sync_mode_camera_slaved() = 0;
1573 
1574  /*l
1575  *b Description:
1576  **
1577  ** Lets VR-Link know that the user has moved the camera, so that if
1578  ** it is in sync mode, and is the sync master, it can let other hosts
1579  ** know the new camera position so they can move their cameras.
1580  **
1581  *b Returns:
1582  **
1583  ** 0 on success, -1 on failure
1584  */
1585  virtual int set_camera_details_out_of_date() = 0;
1586 
1587 
1588  /*l
1589  *b Description:
1590  **
1591  ** Lets DI-Guy know that it should use an adaptive guide that attempts
1592  ** to fix reckoning errors by stepping. Defaults to on.
1593  **
1594  *b Returns:
1595  **
1596  ** 0 on success, -1 on failure
1597  */
1598  virtual int set_use_adaptive_guide(int use_adaptive_guide) = 0;
1599 
1600  /*l
1601  *b Returns:
1602  **
1603  ** 0 if adaptive guide is disabled 1 otherwise.
1604  */
1605  virtual int get_use_adaptive_guide() = 0;
1606 
1607 
1608 /****************************************************************************/
1609 /****************************************************************************/
1610 /*****************************************************************************/
1617 /****************************************************************************/
1618 /****************************************************************************/
1619 /****************************************************************************/
1620 
1621  virtual int set_fom_file_name(const char* file_name);
1622  virtual const char* get_fom_file_name();
1623 
1624  virtual int set_base_module_name(const char* file_name);
1625  virtual const char* get_base_module_name();
1626 
1627  virtual int set_rpr_fom_version( float version );
1628  virtual float get_rpr_fom_version() const;
1629 
1630  virtual int set_rpr_fom_revision( int revision );
1631  virtual int get_rpr_fom_revision() const;
1632 
1633  virtual int set_culling_enabled(int culling);
1634  virtual int get_culling_enabled();
1635 
1636  /*l
1637  *b Description:
1638  **
1639  ** Sets whether network datetime data will be broadcast via custom
1640  ** PDUs.
1641  **
1642  ** *NOTE:* This is functionality that is under development and
1643  ** should currently not be used by non DI-Guy programmers.
1644  **
1645  *b Arguments:
1646  **
1647  *a enable_diguy_custom_pdus - pass 1 to broadcast network datetime
1648  *a data via custom PDUs, 0 to not
1649  */
1650  virtual void set_network_datetime_enable_diguy_custom_pdus(int enable_diguy_custom_pdus);
1651 
1652  /*l
1653  *b Returns:
1654  **
1655  ** 1 if network datetime data will be broadcast via custom PDUs, 0 if
1656  ** not
1657  */
1658  virtual int get_network_datetime_enable_diguy_custom_pdus();
1659 
1660  /*l
1661  *b Description:
1662  **
1663  ** Sets whether this host will send DIS standard start/resume PDUs.
1664  **
1665  ** *NOTE:* This is functionality that is under development and
1666  ** should currently not be used by non DI-Guy programmers.
1667  **
1668  *b Arguments:
1669  **
1670  *a enable_dis_start_resume_pdus - pass 1 to send DIS start/resume
1671  *a PDUs, 0 to not
1672  */
1673  virtual void set_network_datetime_enable_dis_start_resume_pdus(int enable_dis_start_resume_pdus);
1674 
1675  /*l
1676  *b Returns:
1677  **
1678  ** 1 if DIS start/resume should be send, 0 if not
1679  */
1680  virtual int get_network_datetime_enable_dis_start_resume_pdus();
1681 
1683  virtual int set_draw_laser_designators_effects(int enabled) = 0;
1684  virtual int get_draw_laser_designators_effects() = 0;
1685 
1687  virtual int set_laser_designators_effects_visible(int visible) = 0;
1688 
1690  virtual int set_draw_laser_designators_lines(int enabled) = 0;
1691  virtual int get_draw_laser_designators_lines() = 0;
1692 
1694  virtual int set_use_wildcards_in_munitions_map(int enabled) = 0;
1695  virtual int get_use_wildcards_in_munitions_map() = 0;
1696 
1697 
1703  /*l
1704  ** internal functions
1705  */
1706  virtual void read_config_info() = 0;
1707  virtual void write_config_info() = 0;
1708  virtual int server_mode() = 0;
1709  virtual int client_mode() = 0;
1710  virtual void establish_new_offsets() = 0;
1711  virtual void draw() = 0;
1712  virtual bdiDataTracker* get_network_datetime_data_tracker() = 0;
1713 
1714 public:
1715 
1716  diguyNetInterfaceData* get_data() {return m_data;}
1717 
1718 protected:
1719 
1720  diguyNetInterfaceData* m_data;
1721 
1722  virtual int update_coordinate_sytem() = 0;
1723  virtual int update_settings() = 0;
1724  /*l
1725  ** A private constructor. Use the DI-Guy function
1726  ** diguy_module_net_initialize() to create a diguyNetInterface. Use
1727  ** get_net_interface() to obtain a pointer to it.
1728  */
1730 
1731  /*l
1732  ** A private destructor. Use the DI-Guy function
1733  ** diguy_module_net_deinitialize() to destroy the diguyNetInterface.
1734  */
1735  virtual ~diguyNetInterface();
1736 
1737  friend BDI_DECLSPEC_diguy int diguy_module_net_initialize();
1738 
1739 };
Definition: diguy_module_net.h:36
diguyCoordinateSystemType
Definition: diguy_module_net.h:33
Definition: diguy_module_net.h:38
int diguy_module_net_deinitialize()
This function allows DI-Guy networking to clean up.
This class provides accessors to the interface parameters, as well as functions for going online and ...
Definition: diguy_module_net.h:105
diguyNetInterface * get_net_interface()
This function returns a diguyNetInterface which can be used to change settings on the networking modu...
Definition: diguy_module_net.h:37
Represents the scenario currently being portrayed.
Definition: diguyScenario.h:99
The class that represents a DI-Guy Entity in the world.
Definition: diguyCharacter.h:82
int diguy_module_net_initialize()
This function allows VR-Link to install some callbacks so that DSS file load and save will include VR...
Definition: diguy_module_net.h:35
diguyDatetimeNetworkMode
DIGUY_DATETIME_NETWORK_MODE_LOCAL_ONLY
Definition: diguy_constants.h:1692
static diguyScenario * scenario
Definition: simple_playback_ogl.cpp:57