Fawkes API  Fawkes Development Version
NavGraphGeneratorInterface.h
1 
2 /***************************************************************************
3  * NavGraphGeneratorInterface.h - Fawkes BlackBoard Interface - NavGraphGeneratorInterface
4  *
5  * Templated created: Thu Oct 12 10:49:19 2006
6  * Copyright 2015-2017 Tim Niemueller
7  *
8  ****************************************************************************/
9 
10 /* This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version. A runtime exception applies to
14  * this software (see LICENSE.GPL_WRE file mentioned below for details).
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU Library General Public License for more details.
20  *
21  * Read the full text in the LICENSE.GPL_WRE file in the doc directory.
22  */
23 
24 #ifndef _INTERFACES_NAVGRAPHGENERATORINTERFACE_H_
25 #define _INTERFACES_NAVGRAPHGENERATORINTERFACE_H_
26 
27 #include <interface/interface.h>
28 #include <interface/message.h>
29 #include <interface/field_iterator.h>
30 
31 namespace fawkes {
32 
33 class NavGraphGeneratorInterface : public Interface
34 {
35  /// @cond INTERNALS
36  INTERFACE_MGMT_FRIENDS(NavGraphGeneratorInterface)
37  /// @endcond
38  public:
39  /* constants */
40 
41  /** Describe how to connect nodes to the graph. */
42  typedef enum {
43  NOT_CONNECTED /**<
44  The node is will not be initially connected.
45 
46  The difference to UNCONNECTED is that we do not connect the
47  nodes just now, but will do so later, e.g. by adding
48  edges. Note that it is an error not to connect the node later.
49  */,
50  UNCONNECTED /**<
51  The node is marked as unconnected and will not be connected to
52  another node. This kind of nodes is useful to mark points and
53  possibly assign properties without needing to travel to it.
54 
55  The difference to NOT_CONNECTED is that the nodes will be
56  explicitly marked as not being connected and it is an error to
57  connect them.
58  */,
59  CLOSEST_NODE /**<
60  Connect point to the node on the graph closest to the given
61  point.
62  */,
63  CLOSEST_EDGE /**<
64  Connect point to the edge in which segment it lies, i.e. search
65  for an edge where we can find a perpendicular line going
66  through the given point and any point on the edge's line
67  segment. If no such segment is found, the point cannot be
68  added.
69  */,
71  First try the CLOSEST_EDGE method. If that yields no result,
72  use the CLOSEST_NODE method as a fallback.
73  */
75  const char * tostring_ConnectionMode(ConnectionMode value) const;
76 
77  /** Post-processing filtering type. */
78  typedef enum {
80  If enabled, filters out all edges after the map generation that
81  pass too close by an occupied cell of the map. Use this to get
82  rid of connections which "pass through walls".
83  Note that this step is done before adding points of interest.
84  Therefore edges going to POIs might still pass through or close
85  by occupied cells.
86 
87  Parameters:
88  distance: minimum distance from edges to occupied map grid
89  cells to consider it safe.
90  */,
92  If enabled, filters out all nodes which are not connected to
93  any other node. These can occur, for example, after performing
94  the FILTER_EDGES_BY_MAP filter.
95  */,
96  FILTER_MULTI_GRAPH /**<
97  Sometimes after applying other filters one can end up with
98  multiple disconnected graphs. Enabling this filter will keep
99  only the largest connected graph and simply remove all nodes
100  and edges from smaller graphs not connected to the largest.
101  */
102  } FilterType;
103  const char * tostring_FilterType(FilterType value) const;
104 
105  /**
106  When adding edges, the mode defines how to add edges.
107  */
108  typedef enum {
109  NO_INTERSECTION /**<
110  Only insert edge if it does not intersect with any other
111  existing edge in the graph.
112  */,
113  SPLIT_INTERSECTION /**<
114  If the new edge intersects with one or more edges, add new
115  points at the intersections and split the edges for this
116  point.
117  */,
118  FORCE /**<
119  The edge is added as-is, it may overlap or intersect with
120  other edges.
121  */
122  } EdgeMode;
123  const char * tostring_EdgeMode(EdgeMode value) const;
124 
125  /**
126  Available generator algorithms.
127  */
128  typedef enum {
129  ALGORITHM_VORONOI /**<
130  Voronoi-based algorithm for navgraph generation.
131  This is the default if no algorithm is set.
132  */,
133  ALGORITHM_GRID /**<
134  Grid-based algorithm with customizable spacing.
135 
136  Parameters:
137  - spacing: the grid spacing in meters
138  (float, m, mandatory)
139  - margin: the minimum distances of edges to obstacles
140  (float, m, mandatory)
141  - add-diagonals: enable adding of diagonal edges in grid cells
142  (bool, optional, default: false)
143  */
144  } Algorithm;
145  const char * tostring_Algorithm(Algorithm value) const;
146 
147  private:
148  /** Internal data storage, do NOT modify! */
149  typedef struct {
150  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
151  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
152  uint32_t msgid; /**<
153  The ID of the message that is currently being processed or
154  was processed last.
155  */
156  bool final; /**<
157  True, if the last generation triggered by a ComputeMessage has
158  been completed, false if it is still running. Also check the
159  msgid field if this field applies to the correct message.
160  */
161  bool ok; /**<
162  Indicate success (true) or failure (false) of the most recent
163  navgraph generation (valid if final equals true).
164  */
165  char error_message[128]; /**<
166  If the "ok" field is false, may give an additional clue about
167  the encountered error.
168  */
169  } NavGraphGeneratorInterface_data_t;
170 
171  NavGraphGeneratorInterface_data_t *data;
172 
173  interface_enum_map_t enum_map_ConnectionMode;
174  interface_enum_map_t enum_map_FilterType;
175  interface_enum_map_t enum_map_EdgeMode;
176  interface_enum_map_t enum_map_Algorithm;
177  public:
178  /* messages */
179  class ClearMessage : public Message
180  {
181  private:
182  /** Internal data storage, do NOT modify! */
183  typedef struct {
184  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
185  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
186  } ClearMessage_data_t;
187 
188  ClearMessage_data_t *data;
189 
190  interface_enum_map_t enum_map_ConnectionMode;
191  interface_enum_map_t enum_map_FilterType;
192  interface_enum_map_t enum_map_EdgeMode;
193  interface_enum_map_t enum_map_Algorithm;
194  public:
195  ClearMessage();
196  ~ClearMessage();
197 
198  explicit ClearMessage(const ClearMessage *m);
199  /* Methods */
200  virtual Message * clone() const;
201  };
202 
203  class SetAlgorithmMessage : public Message
204  {
205  private:
206  /** Internal data storage, do NOT modify! */
207  typedef struct {
208  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
209  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
210  int32_t algorithm; /**< Algorithm to use. */
211  } SetAlgorithmMessage_data_t;
212 
213  SetAlgorithmMessage_data_t *data;
214 
215  interface_enum_map_t enum_map_ConnectionMode;
216  interface_enum_map_t enum_map_FilterType;
217  interface_enum_map_t enum_map_EdgeMode;
218  interface_enum_map_t enum_map_Algorithm;
219  public:
220  SetAlgorithmMessage(const Algorithm ini_algorithm);
223 
224  explicit SetAlgorithmMessage(const SetAlgorithmMessage *m);
225  /* Methods */
226  Algorithm algorithm() const;
227  void set_algorithm(const Algorithm new_algorithm);
228  size_t maxlenof_algorithm() const;
229  virtual Message * clone() const;
230  };
231 
233  {
234  private:
235  /** Internal data storage, do NOT modify! */
236  typedef struct {
237  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
238  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
239  char param[32]; /**< Parameter name, see
240  Algorithm enum description for algorithm-specific
241  parameters. Unknown parameters will be ignored. */
242  char value[64]; /**< Value of parameter
243  encoded as string. The algorithm will perform the conversion to
244  the required data type (e.g., float). An error will make the
245  generation fail. */
246  } SetAlgorithmParameterMessage_data_t;
247 
248  SetAlgorithmParameterMessage_data_t *data;
249 
250  interface_enum_map_t enum_map_ConnectionMode;
251  interface_enum_map_t enum_map_FilterType;
252  interface_enum_map_t enum_map_EdgeMode;
253  interface_enum_map_t enum_map_Algorithm;
254  public:
255  SetAlgorithmParameterMessage(const char * ini_param, const char * ini_value);
258 
260  /* Methods */
261  char * param() const;
262  void set_param(const char * new_param);
263  size_t maxlenof_param() const;
264  char * value() const;
265  void set_value(const char * new_value);
266  size_t maxlenof_value() const;
267  virtual Message * clone() const;
268  };
269 
270  class SetBoundingBoxMessage : public Message
271  {
272  private:
273  /** Internal data storage, do NOT modify! */
274  typedef struct {
275  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
276  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
277  float p1_x; /**< X coordinate of bbox start point in global frame. */
278  float p1_y; /**< Y coordinate of bbox start point in global frame. */
279  float p2_x; /**< X coordinate of bbox end point in global frame. */
280  float p2_y; /**< Y coordinate of bbox end point in global frame. */
281  } SetBoundingBoxMessage_data_t;
282 
283  SetBoundingBoxMessage_data_t *data;
284 
285  interface_enum_map_t enum_map_ConnectionMode;
286  interface_enum_map_t enum_map_FilterType;
287  interface_enum_map_t enum_map_EdgeMode;
288  interface_enum_map_t enum_map_Algorithm;
289  public:
290  SetBoundingBoxMessage(const float ini_p1_x, const float ini_p1_y, const float ini_p2_x, const float ini_p2_y);
293 
294  explicit SetBoundingBoxMessage(const SetBoundingBoxMessage *m);
295  /* Methods */
296  float p1_x() const;
297  void set_p1_x(const float new_p1_x);
298  size_t maxlenof_p1_x() const;
299  float p1_y() const;
300  void set_p1_y(const float new_p1_y);
301  size_t maxlenof_p1_y() const;
302  float p2_x() const;
303  void set_p2_x(const float new_p2_x);
304  size_t maxlenof_p2_x() const;
305  float p2_y() const;
306  void set_p2_y(const float new_p2_y);
307  size_t maxlenof_p2_y() const;
308  virtual Message * clone() const;
309  };
310 
311  class SetFilterMessage : public Message
312  {
313  private:
314  /** Internal data storage, do NOT modify! */
315  typedef struct {
316  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
317  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
318  int32_t filter; /**< Which filter to
319  enable/disable. */
320  bool enable; /**< True to enable, false to
321  disable */
322  } SetFilterMessage_data_t;
323 
324  SetFilterMessage_data_t *data;
325 
326  interface_enum_map_t enum_map_ConnectionMode;
327  interface_enum_map_t enum_map_FilterType;
328  interface_enum_map_t enum_map_EdgeMode;
329  interface_enum_map_t enum_map_Algorithm;
330  public:
331  SetFilterMessage(const FilterType ini_filter, const bool ini_enable);
334 
335  explicit SetFilterMessage(const SetFilterMessage *m);
336  /* Methods */
337  FilterType filter() const;
338  void set_filter(const FilterType new_filter);
339  size_t maxlenof_filter() const;
340  bool is_enable() const;
341  void set_enable(const bool new_enable);
342  size_t maxlenof_enable() const;
343  virtual Message * clone() const;
344  };
345 
346  class SetFilterParamFloatMessage : public Message
347  {
348  private:
349  /** Internal data storage, do NOT modify! */
350  typedef struct {
351  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
352  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
353  int32_t filter; /**< Which filter to
354  enable/disable. */
355  char param[32]; /**< Parameter name, see FilterType
356  description for possible values. */
357  float value; /**< True to enable, false to
358  disable */
359  } SetFilterParamFloatMessage_data_t;
360 
361  SetFilterParamFloatMessage_data_t *data;
362 
363  interface_enum_map_t enum_map_ConnectionMode;
364  interface_enum_map_t enum_map_FilterType;
365  interface_enum_map_t enum_map_EdgeMode;
366  interface_enum_map_t enum_map_Algorithm;
367  public:
368  SetFilterParamFloatMessage(const FilterType ini_filter, const char * ini_param, const float ini_value);
371 
373  /* Methods */
374  FilterType filter() const;
375  void set_filter(const FilterType new_filter);
376  size_t maxlenof_filter() const;
377  char * param() const;
378  void set_param(const char * new_param);
379  size_t maxlenof_param() const;
380  float value() const;
381  void set_value(const float new_value);
382  size_t maxlenof_value() const;
383  virtual Message * clone() const;
384  };
385 
386  class AddMapObstaclesMessage : public Message
387  {
388  private:
389  /** Internal data storage, do NOT modify! */
390  typedef struct {
391  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
392  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
393  float max_line_point_distance; /**<
394  For points generated on lines found in the map, do not exceed
395  this threshold in terms of maximum distance of points on line.
396  */
397  } AddMapObstaclesMessage_data_t;
398 
399  AddMapObstaclesMessage_data_t *data;
400 
401  interface_enum_map_t enum_map_ConnectionMode;
402  interface_enum_map_t enum_map_FilterType;
403  interface_enum_map_t enum_map_EdgeMode;
404  interface_enum_map_t enum_map_Algorithm;
405  public:
406  AddMapObstaclesMessage(const float ini_max_line_point_distance);
409 
411  /* Methods */
412  float max_line_point_distance() const;
413  void set_max_line_point_distance(const float new_max_line_point_distance);
414  size_t maxlenof_max_line_point_distance() const;
415  virtual Message * clone() const;
416  };
417 
418  class AddObstacleMessage : public Message
419  {
420  private:
421  /** Internal data storage, do NOT modify! */
422  typedef struct {
423  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
424  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
425  char name[64]; /**<
426  ID of the obstacle. Can later be used to remove it again.
427  */
428  float x; /**< X coordinate of obstacle in global frame. */
429  float y; /**< Y coordinate of obstacle in global frame. */
430  } AddObstacleMessage_data_t;
431 
432  AddObstacleMessage_data_t *data;
433 
434  interface_enum_map_t enum_map_ConnectionMode;
435  interface_enum_map_t enum_map_FilterType;
436  interface_enum_map_t enum_map_EdgeMode;
437  interface_enum_map_t enum_map_Algorithm;
438  public:
439  AddObstacleMessage(const char * ini_name, const float ini_x, const float ini_y);
442 
443  explicit AddObstacleMessage(const AddObstacleMessage *m);
444  /* Methods */
445  char * name() const;
446  void set_name(const char * new_name);
447  size_t maxlenof_name() const;
448  float x() const;
449  void set_x(const float new_x);
450  size_t maxlenof_x() const;
451  float y() const;
452  void set_y(const float new_y);
453  size_t maxlenof_y() const;
454  virtual Message * clone() const;
455  };
456 
457  class RemoveObstacleMessage : public Message
458  {
459  private:
460  /** Internal data storage, do NOT modify! */
461  typedef struct {
462  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
463  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
464  char name[64]; /**<
465  ID of the obstacle to remove.
466  */
467  } RemoveObstacleMessage_data_t;
468 
469  RemoveObstacleMessage_data_t *data;
470 
471  interface_enum_map_t enum_map_ConnectionMode;
472  interface_enum_map_t enum_map_FilterType;
473  interface_enum_map_t enum_map_EdgeMode;
474  interface_enum_map_t enum_map_Algorithm;
475  public:
476  RemoveObstacleMessage(const char * ini_name);
479 
480  explicit RemoveObstacleMessage(const RemoveObstacleMessage *m);
481  /* Methods */
482  char * name() const;
483  void set_name(const char * new_name);
484  size_t maxlenof_name() const;
485  virtual Message * clone() const;
486  };
487 
488  class AddPointOfInterestMessage : public Message
489  {
490  private:
491  /** Internal data storage, do NOT modify! */
492  typedef struct {
493  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
494  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
495  char name[64]; /**<
496  ID of the obstacle. Can later be used to remove it again.
497  */
498  float x; /**< X coordinate of obstacle in global frame. */
499  float y; /**< Y coordinate of obstacle in global frame. */
500  int32_t mode; /**<
501  The connection mode to use to connect the POI with the graph.
502  */
503  } AddPointOfInterestMessage_data_t;
504 
505  AddPointOfInterestMessage_data_t *data;
506 
507  interface_enum_map_t enum_map_ConnectionMode;
508  interface_enum_map_t enum_map_FilterType;
509  interface_enum_map_t enum_map_EdgeMode;
510  interface_enum_map_t enum_map_Algorithm;
511  public:
512  AddPointOfInterestMessage(const char * ini_name, const float ini_x, const float ini_y, const ConnectionMode ini_mode);
515 
517  /* Methods */
518  char * name() const;
519  void set_name(const char * new_name);
520  size_t maxlenof_name() const;
521  float x() const;
522  void set_x(const float new_x);
523  size_t maxlenof_x() const;
524  float y() const;
525  void set_y(const float new_y);
526  size_t maxlenof_y() const;
527  ConnectionMode mode() const;
528  void set_mode(const ConnectionMode new_mode);
529  size_t maxlenof_mode() const;
530  virtual Message * clone() const;
531  };
532 
533  class AddPointOfInterestWithOriMessage : public Message
534  {
535  private:
536  /** Internal data storage, do NOT modify! */
537  typedef struct {
538  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
539  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
540  char name[64]; /**<
541  ID of the obstacle. Can later be used to remove it again.
542  */
543  float x; /**< X coordinate of obstacle in global frame. */
544  float y; /**< Y coordinate of obstacle in global frame. */
545  float ori; /**< Orientation for target point (rad). */
546  int32_t mode; /**<
547  The connection mode to use to connect the POI with the graph.
548  */
549  } AddPointOfInterestWithOriMessage_data_t;
550 
551  AddPointOfInterestWithOriMessage_data_t *data;
552 
553  interface_enum_map_t enum_map_ConnectionMode;
554  interface_enum_map_t enum_map_FilterType;
555  interface_enum_map_t enum_map_EdgeMode;
556  interface_enum_map_t enum_map_Algorithm;
557  public:
558  AddPointOfInterestWithOriMessage(const char * ini_name, const float ini_x, const float ini_y, const float ini_ori, const ConnectionMode ini_mode);
561 
563  /* Methods */
564  char * name() const;
565  void set_name(const char * new_name);
566  size_t maxlenof_name() const;
567  float x() const;
568  void set_x(const float new_x);
569  size_t maxlenof_x() const;
570  float y() const;
571  void set_y(const float new_y);
572  size_t maxlenof_y() const;
573  float ori() const;
574  void set_ori(const float new_ori);
575  size_t maxlenof_ori() const;
576  ConnectionMode mode() const;
577  void set_mode(const ConnectionMode new_mode);
578  size_t maxlenof_mode() const;
579  virtual Message * clone() const;
580  };
581 
582  class SetPointOfInterestPropertyMessage : public Message
583  {
584  private:
585  /** Internal data storage, do NOT modify! */
586  typedef struct {
587  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
588  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
589  char name[64]; /**<
590  ID of the point of interest.
591  */
592  char property_name[64]; /**< Name of the property to set. */
593  char property_value[1024]; /**< Value of the property
594  to set. */
595  } SetPointOfInterestPropertyMessage_data_t;
596 
597  SetPointOfInterestPropertyMessage_data_t *data;
598 
599  interface_enum_map_t enum_map_ConnectionMode;
600  interface_enum_map_t enum_map_FilterType;
601  interface_enum_map_t enum_map_EdgeMode;
602  interface_enum_map_t enum_map_Algorithm;
603  public:
604  SetPointOfInterestPropertyMessage(const char * ini_name, const char * ini_property_name, const char * ini_property_value);
607 
609  /* Methods */
610  char * name() const;
611  void set_name(const char * new_name);
612  size_t maxlenof_name() const;
613  char * property_name() const;
614  void set_property_name(const char * new_property_name);
615  size_t maxlenof_property_name() const;
616  char * property_value() const;
617  void set_property_value(const char * new_property_value);
618  size_t maxlenof_property_value() const;
619  virtual Message * clone() const;
620  };
621 
622  class AddEdgeMessage : public Message
623  {
624  private:
625  /** Internal data storage, do NOT modify! */
626  typedef struct {
627  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
628  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
629  char p1[64]; /**< ID of first node. */
630  char p2[64]; /**< ID of second node. */
631  bool directed; /**<
632  True to create a directed edge from p1 to p2, otherwise the edge
633  is assumed to be undirected.
634  */
635  int32_t mode; /**< The edge insertion mode. */
636  } AddEdgeMessage_data_t;
637 
638  AddEdgeMessage_data_t *data;
639 
640  interface_enum_map_t enum_map_ConnectionMode;
641  interface_enum_map_t enum_map_FilterType;
642  interface_enum_map_t enum_map_EdgeMode;
643  interface_enum_map_t enum_map_Algorithm;
644  public:
645  AddEdgeMessage(const char * ini_p1, const char * ini_p2, const bool ini_directed, const EdgeMode ini_mode);
646  AddEdgeMessage();
647  ~AddEdgeMessage();
648 
649  explicit AddEdgeMessage(const AddEdgeMessage *m);
650  /* Methods */
651  char * p1() const;
652  void set_p1(const char * new_p1);
653  size_t maxlenof_p1() const;
654  char * p2() const;
655  void set_p2(const char * new_p2);
656  size_t maxlenof_p2() const;
657  bool is_directed() const;
658  void set_directed(const bool new_directed);
659  size_t maxlenof_directed() const;
660  EdgeMode mode() const;
661  void set_mode(const EdgeMode new_mode);
662  size_t maxlenof_mode() const;
663  virtual Message * clone() const;
664  };
665 
666  class SetGraphDefaultPropertyMessage : public Message
667  {
668  private:
669  /** Internal data storage, do NOT modify! */
670  typedef struct {
671  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
672  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
673  char property_name[64]; /**< Name of the property to set. */
674  char property_value[1024]; /**< Value of the property
675  to set. */
676  } SetGraphDefaultPropertyMessage_data_t;
677 
678  SetGraphDefaultPropertyMessage_data_t *data;
679 
680  interface_enum_map_t enum_map_ConnectionMode;
681  interface_enum_map_t enum_map_FilterType;
682  interface_enum_map_t enum_map_EdgeMode;
683  interface_enum_map_t enum_map_Algorithm;
684  public:
685  SetGraphDefaultPropertyMessage(const char * ini_property_name, const char * ini_property_value);
688 
690  /* Methods */
691  char * property_name() const;
692  void set_property_name(const char * new_property_name);
693  size_t maxlenof_property_name() const;
694  char * property_value() const;
695  void set_property_value(const char * new_property_value);
696  size_t maxlenof_property_value() const;
697  virtual Message * clone() const;
698  };
699 
701  {
702  private:
703  /** Internal data storage, do NOT modify! */
704  typedef struct {
705  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
706  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
707  bool enable_copy; /**< True to enable copying
708  (default) false to disable). */
709  } SetCopyGraphDefaultPropertiesMessage_data_t;
710 
711  SetCopyGraphDefaultPropertiesMessage_data_t *data;
712 
713  interface_enum_map_t enum_map_ConnectionMode;
714  interface_enum_map_t enum_map_FilterType;
715  interface_enum_map_t enum_map_EdgeMode;
716  interface_enum_map_t enum_map_Algorithm;
717  public:
718  SetCopyGraphDefaultPropertiesMessage(const bool ini_enable_copy);
721 
723  /* Methods */
724  bool is_enable_copy() const;
725  void set_enable_copy(const bool new_enable_copy);
726  size_t maxlenof_enable_copy() const;
727  virtual Message * clone() const;
728  };
729 
731  {
732  private:
733  /** Internal data storage, do NOT modify! */
734  typedef struct {
735  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
736  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
737  char name[64]; /**<
738  ID of the obstacle to remove.
739  */
740  } RemovePointOfInterestMessage_data_t;
741 
742  RemovePointOfInterestMessage_data_t *data;
743 
744  interface_enum_map_t enum_map_ConnectionMode;
745  interface_enum_map_t enum_map_FilterType;
746  interface_enum_map_t enum_map_EdgeMode;
747  interface_enum_map_t enum_map_Algorithm;
748  public:
749  RemovePointOfInterestMessage(const char * ini_name);
752 
754  /* Methods */
755  char * name() const;
756  void set_name(const char * new_name);
757  size_t maxlenof_name() const;
758  virtual Message * clone() const;
759  };
760 
761  class ComputeMessage : public Message
762  {
763  private:
764  /** Internal data storage, do NOT modify! */
765  typedef struct {
766  int64_t timestamp_sec; /**< Interface Unix timestamp, seconds */
767  int64_t timestamp_usec; /**< Interface Unix timestamp, micro-seconds */
768  } ComputeMessage_data_t;
769 
770  ComputeMessage_data_t *data;
771 
772  interface_enum_map_t enum_map_ConnectionMode;
773  interface_enum_map_t enum_map_FilterType;
774  interface_enum_map_t enum_map_EdgeMode;
775  interface_enum_map_t enum_map_Algorithm;
776  public:
777  ComputeMessage();
778  ~ComputeMessage();
779 
780  explicit ComputeMessage(const ComputeMessage *m);
781  /* Methods */
782  virtual Message * clone() const;
783  };
784 
785  virtual bool message_valid(const Message *message) const;
786  private:
789 
790  public:
791  /* Methods */
792  uint32_t msgid() const;
793  void set_msgid(const uint32_t new_msgid);
794  size_t maxlenof_msgid() const;
795  bool is_final() const;
796  void set_final(const bool new_final);
797  size_t maxlenof_final() const;
798  bool is_ok() const;
799  void set_ok(const bool new_ok);
800  size_t maxlenof_ok() const;
801  char * error_message() const;
802  void set_error_message(const char * new_error_message);
803  size_t maxlenof_error_message() const;
804  virtual Message * create_message(const char *type) const;
805 
806  virtual void copy_values(const Interface *other);
807  virtual const char * enum_tostring(const char *enumtype, int val) const;
808 
809 };
810 
811 } // end namespace fawkes
812 
813 #endif
fawkes::NavGraphGeneratorInterface::SPLIT_INTERSECTION
@ SPLIT_INTERSECTION
If the new edge intersects with one or more edges, add new points at the intersections and split the ...
Definition: NavGraphGeneratorInterface.h:125
fawkes::NavGraphGeneratorInterface::AddMapObstaclesMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:1423
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::AddEdgeMessage
AddEdgeMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:2470
fawkes::NavGraphGeneratorInterface::AddMapObstaclesMessage::maxlenof_max_line_point_distance
size_t maxlenof_max_line_point_distance() const
Get maximum length of max_line_point_distance value.
Definition: NavGraphGeneratorInterface.cpp:1399
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::maxlenof_p2_y
size_t maxlenof_p2_y() const
Get maximum length of p2_y value.
Definition: NavGraphGeneratorInterface.cpp:934
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage
Definition: NavGraphGeneratorInterface.h:545
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::maxlenof_y
size_t maxlenof_y() const
Get maximum length of y value.
Definition: NavGraphGeneratorInterface.cpp:1908
fawkes::NavGraphGeneratorInterface::SetGraphDefaultPropertyMessage::property_value
char * property_value() const
Get property_value value.
Definition: NavGraphGeneratorInterface.cpp:2772
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::name
char * name() const
Get name value.
Definition: NavGraphGeneratorInterface.cpp:2067
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::set_filter
void set_filter(const FilterType new_filter)
Set filter value.
Definition: NavGraphGeneratorInterface.cpp:1225
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::x
float x() const
Get x value.
Definition: NavGraphGeneratorInterface.cpp:2100
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::x
float x() const
Get x value.
Definition: NavGraphGeneratorInterface.cpp:1868
fawkes::NavGraphGeneratorInterface::RemoveObstacleMessage
Definition: NavGraphGeneratorInterface.h:469
fawkes::NavGraphGeneratorInterface::RemovePointOfInterestMessage::maxlenof_name
size_t maxlenof_name() const
Get maximum length of name value.
Definition: NavGraphGeneratorInterface.cpp:3021
fawkes::NavGraphGeneratorInterface::RemovePointOfInterestMessage::~RemovePointOfInterestMessage
~RemovePointOfInterestMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:2986
fawkes::NavGraphGeneratorInterface::SetCopyGraphDefaultPropertiesMessage::maxlenof_enable_copy
size_t maxlenof_enable_copy() const
Get maximum length of enable_copy value.
Definition: NavGraphGeneratorInterface.cpp:2901
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::set_x
void set_x(const float new_x)
Set x value.
Definition: NavGraphGeneratorInterface.cpp:2120
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::~AddPointOfInterestMessage
~AddPointOfInterestMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:1810
fawkes::NavGraphGeneratorInterface::AddMapObstaclesMessage::set_max_line_point_distance
void set_max_line_point_distance(const float new_max_line_point_distance)
Set max_line_point_distance value.
Definition: NavGraphGeneratorInterface.cpp:1412
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::p1_x
float p1_x() const
Get p1_x value.
Definition: NavGraphGeneratorInterface.cpp:834
fawkes::NavGraphGeneratorInterface::SetCopyGraphDefaultPropertiesMessage::~SetCopyGraphDefaultPropertiesMessage
~SetCopyGraphDefaultPropertiesMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:2867
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::AddPointOfInterestMessage
AddPointOfInterestMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:1783
fawkes::NavGraphGeneratorInterface::SetAlgorithmParameterMessage::value
char * value() const
Get value value.
Definition: NavGraphGeneratorInterface.cpp:702
fawkes::NavGraphGeneratorInterface::ComputeMessage::ComputeMessage
ComputeMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:3057
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::mode
ConnectionMode mode() const
Get mode value.
Definition: NavGraphGeneratorInterface.cpp:2192
fawkes::NavGraphGeneratorInterface::SetCopyGraphDefaultPropertiesMessage::set_enable_copy
void set_enable_copy(const bool new_enable_copy)
Set enable_copy value.
Definition: NavGraphGeneratorInterface.cpp:2912
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::name
char * name() const
Get name value.
Definition: NavGraphGeneratorInterface.cpp:1835
fawkes::NavGraphGeneratorInterface::FILTER_MULTI_GRAPH
@ FILTER_MULTI_GRAPH
Sometimes after applying other filters one can end up with multiple disconnected graphs.
Definition: NavGraphGeneratorInterface.h:108
fawkes::NavGraphGeneratorInterface::SetAlgorithmMessage::algorithm
Algorithm algorithm() const
Get algorithm value.
Definition: NavGraphGeneratorInterface.cpp:542
fawkes::NavGraphGeneratorInterface::set_error_message
void set_error_message(const char *new_error_message)
Set error_message value.
Definition: NavGraphGeneratorInterface.cpp:317
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::x
float x() const
Get x value.
Definition: NavGraphGeneratorInterface.cpp:1552
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::param
char * param() const
Get param value.
Definition: NavGraphGeneratorInterface.cpp:1236
fawkes::NavGraphGeneratorInterface::SetFilterMessage::~SetFilterMessage
~SetFilterMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:1021
fawkes::NavGraphGeneratorInterface::SetAlgorithmParameterMessage::SetAlgorithmParameterMessage
SetAlgorithmParameterMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:616
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:1301
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:2225
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::SetFilterParamFloatMessage
SetFilterParamFloatMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:1154
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::maxlenof_y
size_t maxlenof_y() const
Get maximum length of y value.
Definition: NavGraphGeneratorInterface.cpp:2140
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::y
float y() const
Get y value.
Definition: NavGraphGeneratorInterface.cpp:1582
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::set_name
void set_name(const char *new_name)
Set name value.
Definition: NavGraphGeneratorInterface.cpp:1857
fawkes::Message
Definition: message.h:41
fawkes::NavGraphGeneratorInterface::SetCopyGraphDefaultPropertiesMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:2923
fawkes::NavGraphGeneratorInterface::SetFilterMessage::maxlenof_enable
size_t maxlenof_enable() const
Get maximum length of enable value.
Definition: NavGraphGeneratorInterface.cpp:1087
fawkes::NavGraphGeneratorInterface::SetGraphDefaultPropertyMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:2805
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::maxlenof_name
size_t maxlenof_name() const
Get maximum length of name value.
Definition: NavGraphGeneratorInterface.cpp:2333
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::~SetBoundingBoxMessage
~SetBoundingBoxMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:811
fawkes::NavGraphGeneratorInterface::SetGraphDefaultPropertyMessage::maxlenof_property_name
size_t maxlenof_property_name() const
Get maximum length of property_name value.
Definition: NavGraphGeneratorInterface.cpp:2750
fawkes::NavGraphGeneratorInterface::SetFilterMessage::set_filter
void set_filter(const FilterType new_filter)
Set filter value.
Definition: NavGraphGeneratorInterface.cpp:1066
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::set_mode
void set_mode(const EdgeMode new_mode)
Set mode value.
Definition: NavGraphGeneratorInterface.cpp:2638
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::maxlenof_p2_x
size_t maxlenof_p2_x() const
Get maximum length of p2_x value.
Definition: NavGraphGeneratorInterface.cpp:904
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::set_p2_x
void set_p2_x(const float new_p2_x)
Set p2_x value.
Definition: NavGraphGeneratorInterface.cpp:914
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::SetBoundingBoxMessage
SetBoundingBoxMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:784
fawkes::NavGraphGeneratorInterface::SetGraphDefaultPropertyMessage
Definition: NavGraphGeneratorInterface.h:678
fawkes::NavGraphGeneratorInterface::tostring_ConnectionMode
const char * tostring_ConnectionMode(ConnectionMode value) const
Convert ConnectionMode constant to string.
Definition: NavGraphGeneratorInterface.cpp:120
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::set_x
void set_x(const float new_x)
Set x value.
Definition: NavGraphGeneratorInterface.cpp:1572
fawkes::NavGraphGeneratorInterface::SetAlgorithmMessage::~SetAlgorithmMessage
~SetAlgorithmMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:519
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::maxlenof_param
size_t maxlenof_param() const
Get maximum length of param value.
Definition: NavGraphGeneratorInterface.cpp:1246
fawkes::NavGraphGeneratorInterface::SetGraphDefaultPropertyMessage::~SetGraphDefaultPropertyMessage
~SetGraphDefaultPropertyMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:2717
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::maxlenof_x
size_t maxlenof_x() const
Get maximum length of x value.
Definition: NavGraphGeneratorInterface.cpp:1562
fawkes::NavGraphGeneratorInterface::SetAlgorithmMessage::maxlenof_algorithm
size_t maxlenof_algorithm() const
Get maximum length of algorithm value.
Definition: NavGraphGeneratorInterface.cpp:552
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::name
char * name() const
Get name value.
Definition: NavGraphGeneratorInterface.cpp:2323
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::name
char * name() const
Get name value.
Definition: NavGraphGeneratorInterface.cpp:1519
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::ori
float ori() const
Get ori value.
Definition: NavGraphGeneratorInterface.cpp:2160
fawkes::NavGraphGeneratorInterface::RemoveObstacleMessage::~RemoveObstacleMessage
~RemoveObstacleMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:1676
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:2649
fawkes::NavGraphGeneratorInterface::SetGraphDefaultPropertyMessage::SetGraphDefaultPropertyMessage
SetGraphDefaultPropertyMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:2692
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::maxlenof_value
size_t maxlenof_value() const
Get maximum length of value value.
Definition: NavGraphGeneratorInterface.cpp:1279
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::maxlenof_property_name
size_t maxlenof_property_name() const
Get maximum length of property_name value.
Definition: NavGraphGeneratorInterface.cpp:2366
fawkes::NavGraphGeneratorInterface::SetCopyGraphDefaultPropertiesMessage
Definition: NavGraphGeneratorInterface.h:712
fawkes::NavGraphGeneratorInterface::SetFilterMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:1109
fawkes::Interface::type
const char * type() const
Get type of interface.
Definition: interface.cpp:645
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::maxlenof_p1
size_t maxlenof_p1() const
Get maximum length of p1 value.
Definition: NavGraphGeneratorInterface.cpp:2530
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::set_y
void set_y(const float new_y)
Set y value.
Definition: NavGraphGeneratorInterface.cpp:1918
fawkes::NavGraphGeneratorInterface::ClearMessage
Definition: NavGraphGeneratorInterface.h:191
fawkes::NavGraphGeneratorInterface::create_message
virtual Message * create_message(const char *type) const
Definition: NavGraphGeneratorInterface.cpp:326
fawkes::NavGraphGeneratorInterface::ALGORITHM_GRID
@ ALGORITHM_GRID
Grid-based algorithm with customizable spacing.
Definition: NavGraphGeneratorInterface.h:145
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::set_y
void set_y(const float new_y)
Set y value.
Definition: NavGraphGeneratorInterface.cpp:1602
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::set_property_value
void set_property_value(const char *new_property_value)
Set property_value value.
Definition: NavGraphGeneratorInterface.cpp:2409
fawkes::NavGraphGeneratorInterface::tostring_FilterType
const char * tostring_FilterType(FilterType value) const
Convert FilterType constant to string.
Definition: NavGraphGeneratorInterface.cpp:136
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::set_p2_y
void set_p2_y(const float new_p2_y)
Set p2_y value.
Definition: NavGraphGeneratorInterface.cpp:944
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::maxlenof_p1_x
size_t maxlenof_p1_x() const
Get maximum length of p1_x value.
Definition: NavGraphGeneratorInterface.cpp:844
fawkes::NavGraphGeneratorInterface::ClearMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:457
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::p2_x
float p2_x() const
Get p2_x value.
Definition: NavGraphGeneratorInterface.cpp:894
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::maxlenof_ori
size_t maxlenof_ori() const
Get maximum length of ori value.
Definition: NavGraphGeneratorInterface.cpp:2170
fawkes::NavGraphGeneratorInterface::RemoveObstacleMessage::RemoveObstacleMessage
RemoveObstacleMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:1652
fawkes::NavGraphGeneratorInterface::FILTER_EDGES_BY_MAP
@ FILTER_EDGES_BY_MAP
If enabled, filters out all edges after the map generation that pass too close by an occupied cell of...
Definition: NavGraphGeneratorInterface.h:91
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::set_x
void set_x(const float new_x)
Set x value.
Definition: NavGraphGeneratorInterface.cpp:1888
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::is_directed
bool is_directed() const
Get directed value.
Definition: NavGraphGeneratorInterface.cpp:2585
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::mode
EdgeMode mode() const
Get mode value.
Definition: NavGraphGeneratorInterface.cpp:2618
fawkes::NavGraphGeneratorInterface::ComputeMessage::~ComputeMessage
~ComputeMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:3080
fawkes::NavGraphGeneratorInterface::maxlenof_ok
size_t maxlenof_ok() const
Get maximum length of ok value.
Definition: NavGraphGeneratorInterface.cpp:267
fawkes::NavGraphGeneratorInterface::SetAlgorithmParameterMessage::maxlenof_param
size_t maxlenof_param() const
Get maximum length of param value.
Definition: NavGraphGeneratorInterface.cpp:676
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::set_ori
void set_ori(const float new_ori)
Set ori value.
Definition: NavGraphGeneratorInterface.cpp:2180
fawkes::NavGraphGeneratorInterface::EdgeMode
EdgeMode
When adding edges, the mode defines how to add edges.
Definition: NavGraphGeneratorInterface.h:120
fawkes::NavGraphGeneratorInterface::RemoveObstacleMessage::maxlenof_name
size_t maxlenof_name() const
Get maximum length of name value.
Definition: NavGraphGeneratorInterface.cpp:1711
fawkes::NavGraphGeneratorInterface::RemovePointOfInterestMessage::RemovePointOfInterestMessage
RemovePointOfInterestMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:2962
fawkes::NavGraphGeneratorInterface::SetFilterMessage::filter
FilterType filter() const
Get filter value.
Definition: NavGraphGeneratorInterface.cpp:1045
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::set_p1_x
void set_p1_x(const float new_p1_x)
Set p1_x value.
Definition: NavGraphGeneratorInterface.cpp:854
fawkes::NavGraphGeneratorInterface::SetAlgorithmMessage::set_algorithm
void set_algorithm(const Algorithm new_algorithm)
Set algorithm value.
Definition: NavGraphGeneratorInterface.cpp:562
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::set_y
void set_y(const float new_y)
Set y value.
Definition: NavGraphGeneratorInterface.cpp:2150
fawkes::NavGraphGeneratorInterface::RemoveObstacleMessage::set_name
void set_name(const char *new_name)
Set name value.
Definition: NavGraphGeneratorInterface.cpp:1723
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::set_directed
void set_directed(const bool new_directed)
Set directed value.
Definition: NavGraphGeneratorInterface.cpp:2608
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::maxlenof_name
size_t maxlenof_name() const
Get maximum length of name value.
Definition: NavGraphGeneratorInterface.cpp:1845
fawkes::NavGraphGeneratorInterface::RemovePointOfInterestMessage
Definition: NavGraphGeneratorInterface.h:742
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:1613
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::p2_y
float p2_y() const
Get p2_y value.
Definition: NavGraphGeneratorInterface.cpp:924
fawkes::NavGraphGeneratorInterface::is_final
bool is_final() const
Get final value.
Definition: NavGraphGeneratorInterface.cpp:219
fawkes::NavGraphGeneratorInterface::SetFilterMessage::SetFilterMessage
SetFilterMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:996
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::y
float y() const
Get y value.
Definition: NavGraphGeneratorInterface.cpp:1898
fawkes::NavGraphGeneratorInterface::ALGORITHM_VORONOI
@ ALGORITHM_VORONOI
Voronoi-based algorithm for navgraph generation.
Definition: NavGraphGeneratorInterface.h:141
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::set_name
void set_name(const char *new_name)
Set name value.
Definition: NavGraphGeneratorInterface.cpp:1541
fawkes::NavGraphGeneratorInterface::SetAlgorithmParameterMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:737
fawkes::NavGraphGeneratorInterface::FILTER_ORPHAN_NODES
@ FILTER_ORPHAN_NODES
If enabled, filters out all nodes which are not connected to any other node.
Definition: NavGraphGeneratorInterface.h:103
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::value
float value() const
Get value value.
Definition: NavGraphGeneratorInterface.cpp:1269
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::maxlenof_x
size_t maxlenof_x() const
Get maximum length of x value.
Definition: NavGraphGeneratorInterface.cpp:1878
fawkes::NavGraphGeneratorInterface::FORCE
@ FORCE
The edge is added as-is, it may overlap or intersect with other edges.
Definition: NavGraphGeneratorInterface.h:130
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage
Definition: NavGraphGeneratorInterface.h:500
fawkes
fawkes::NavGraphGeneratorInterface::SetAlgorithmParameterMessage::set_param
void set_param(const char *new_param)
Set param value.
Definition: NavGraphGeneratorInterface.cpp:688
fawkes::NavGraphGeneratorInterface::SetGraphDefaultPropertyMessage::property_name
char * property_name() const
Get property_name value.
Definition: NavGraphGeneratorInterface.cpp:2740
fawkes::NavGraphGeneratorInterface::NO_INTERSECTION
@ NO_INTERSECTION
Only insert edge if it does not intersect with any other existing edge in the graph.
Definition: NavGraphGeneratorInterface.h:121
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::set_property_name
void set_property_name(const char *new_property_name)
Set property_name value.
Definition: NavGraphGeneratorInterface.cpp:2376
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::set_p1
void set_p1(const char *new_p1)
Set p1 value.
Definition: NavGraphGeneratorInterface.cpp:2540
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::~SetPointOfInterestPropertyMessage
~SetPointOfInterestPropertyMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:2298
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::p1
char * p1() const
Get p1 value.
Definition: NavGraphGeneratorInterface.cpp:2520
fawkes::NavGraphGeneratorInterface::Algorithm
Algorithm
Available generator algorithms.
Definition: NavGraphGeneratorInterface.h:140
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::AddPointOfInterestWithOriMessage
AddPointOfInterestWithOriMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:2014
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::set_param
void set_param(const char *new_param)
Set param value.
Definition: NavGraphGeneratorInterface.cpp:1257
fawkes::NavGraphGeneratorInterface::set_ok
void set_ok(const bool new_ok)
Set ok value.
Definition: NavGraphGeneratorInterface.cpp:280
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::property_name
char * property_name() const
Get property_name value.
Definition: NavGraphGeneratorInterface.cpp:2356
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::p2
char * p2() const
Get p2 value.
Definition: NavGraphGeneratorInterface.cpp:2551
fawkes::NavGraphGeneratorInterface::RemovePointOfInterestMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:3045
fawkes::NavGraphGeneratorInterface::AddMapObstaclesMessage::max_line_point_distance
float max_line_point_distance() const
Get max_line_point_distance value.
Definition: NavGraphGeneratorInterface.cpp:1389
fawkes::Interface
Definition: interface.h:78
fawkes::NavGraphGeneratorInterface::is_ok
bool is_ok() const
Get ok value.
Definition: NavGraphGeneratorInterface.cpp:257
fawkes::NavGraphGeneratorInterface::AddMapObstaclesMessage
Definition: NavGraphGeneratorInterface.h:398
fawkes::NavGraphGeneratorInterface::AddMapObstaclesMessage::~AddMapObstaclesMessage
~AddMapObstaclesMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:1363
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::set_p2
void set_p2(const char *new_p2)
Set p2 value.
Definition: NavGraphGeneratorInterface.cpp:2571
fawkes::NavGraphGeneratorInterface::SetFilterMessage::maxlenof_filter
size_t maxlenof_filter() const
Get maximum length of filter value.
Definition: NavGraphGeneratorInterface.cpp:1055
fawkes::NavGraphGeneratorInterface::CLOSEST_EDGE
@ CLOSEST_EDGE
Connect point to the edge in which segment it lies, i.e.
Definition: NavGraphGeneratorInterface.h:81
fawkes::NavGraphGeneratorInterface::AddMapObstaclesMessage::AddMapObstaclesMessage
AddMapObstaclesMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:1339
fawkes::NavGraphGeneratorInterface::error_message
char * error_message() const
Get error_message value.
Definition: NavGraphGeneratorInterface.cpp:294
fawkes::NavGraphGeneratorInterface::SetGraphDefaultPropertyMessage::set_property_value
void set_property_value(const char *new_property_value)
Set property_value value.
Definition: NavGraphGeneratorInterface.cpp:2793
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::set_value
void set_value(const float new_value)
Set value value.
Definition: NavGraphGeneratorInterface.cpp:1290
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::maxlenof_y
size_t maxlenof_y() const
Get maximum length of y value.
Definition: NavGraphGeneratorInterface.cpp:1592
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::~AddObstacleMessage
~AddObstacleMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:1494
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::maxlenof_mode
size_t maxlenof_mode() const
Get maximum length of mode value.
Definition: NavGraphGeneratorInterface.cpp:1940
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::~AddPointOfInterestWithOriMessage
~AddPointOfInterestWithOriMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:2042
fawkes::interface_enum_map_t
std::map< int, std::string > interface_enum_map_t
Map of enum integer to string values.
Definition: types.h:61
fawkes::NavGraphGeneratorInterface::CLOSEST_EDGE_OR_NODE
@ CLOSEST_EDGE_OR_NODE
First try the CLOSEST_EDGE method.
Definition: NavGraphGeneratorInterface.h:88
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::maxlenof_p1_y
size_t maxlenof_p1_y() const
Get maximum length of p1_y value.
Definition: NavGraphGeneratorInterface.cpp:874
fawkes::NavGraphGeneratorInterface::message_valid
virtual bool message_valid(const Message *message) const
Check if message is valid and can be enqueued.
Definition: NavGraphGeneratorInterface.cpp:3113
fawkes::NavGraphGeneratorInterface::NOT_CONNECTED
@ NOT_CONNECTED
The node is will not be initially connected.
Definition: NavGraphGeneratorInterface.h:61
fawkes::NavGraphGeneratorInterface::SetCopyGraphDefaultPropertiesMessage::SetCopyGraphDefaultPropertiesMessage
SetCopyGraphDefaultPropertiesMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:2843
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::maxlenof_p2
size_t maxlenof_p2() const
Get maximum length of p2 value.
Definition: NavGraphGeneratorInterface.cpp:2561
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::y
float y() const
Get y value.
Definition: NavGraphGeneratorInterface.cpp:2130
fawkes::NavGraphGeneratorInterface::SetGraphDefaultPropertyMessage::set_property_name
void set_property_name(const char *new_property_name)
Set property_name value.
Definition: NavGraphGeneratorInterface.cpp:2760
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::set_name
void set_name(const char *new_name)
Set name value.
Definition: NavGraphGeneratorInterface.cpp:2089
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::mode
ConnectionMode mode() const
Get mode value.
Definition: NavGraphGeneratorInterface.cpp:1930
fawkes::NavGraphGeneratorInterface::SetAlgorithmMessage::SetAlgorithmMessage
SetAlgorithmMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:495
fawkes::NavGraphGeneratorInterface::tostring_EdgeMode
const char * tostring_EdgeMode(EdgeMode value) const
Convert EdgeMode constant to string.
Definition: NavGraphGeneratorInterface.cpp:150
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::maxlenof_filter
size_t maxlenof_filter() const
Get maximum length of filter value.
Definition: NavGraphGeneratorInterface.cpp:1214
fawkes::NavGraphGeneratorInterface::ComputeMessage
Definition: NavGraphGeneratorInterface.h:773
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::set_name
void set_name(const char *new_name)
Set name value.
Definition: NavGraphGeneratorInterface.cpp:2345
fawkes::NavGraphGeneratorInterface::FilterType
FilterType
Post-processing filtering type.
Definition: NavGraphGeneratorInterface.h:90
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:1963
fawkes::NavGraphGeneratorInterface::SetAlgorithmParameterMessage::maxlenof_value
size_t maxlenof_value() const
Get maximum length of value value.
Definition: NavGraphGeneratorInterface.cpp:712
fawkes::NavGraphGeneratorInterface::SetAlgorithmMessage
Definition: NavGraphGeneratorInterface.h:215
fawkes::NavGraphGeneratorInterface::UNCONNECTED
@ UNCONNECTED
The node is marked as unconnected and will not be connected to another node.
Definition: NavGraphGeneratorInterface.h:68
fawkes::NavGraphGeneratorInterface::AddEdgeMessage
Definition: NavGraphGeneratorInterface.h:634
fawkes::NavGraphGeneratorInterface::CLOSEST_NODE
@ CLOSEST_NODE
Connect point to the node on the graph closest to the given point.
Definition: NavGraphGeneratorInterface.h:77
fawkes::NavGraphGeneratorInterface::SetFilterMessage::set_enable
void set_enable(const bool new_enable)
Set enable value.
Definition: NavGraphGeneratorInterface.cpp:1098
fawkes::NavGraphGeneratorInterface::RemovePointOfInterestMessage::set_name
void set_name(const char *new_name)
Set name value.
Definition: NavGraphGeneratorInterface.cpp:3033
fawkes::NavGraphGeneratorInterface::RemoveObstacleMessage::name
char * name() const
Get name value.
Definition: NavGraphGeneratorInterface.cpp:1701
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::~SetFilterParamFloatMessage
~SetFilterParamFloatMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:1180
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::maxlenof_mode
size_t maxlenof_mode() const
Get maximum length of mode value.
Definition: NavGraphGeneratorInterface.cpp:2202
fawkes::NavGraphGeneratorInterface::SetFilterMessage
Definition: NavGraphGeneratorInterface.h:323
fawkes::NavGraphGeneratorInterface::RemovePointOfInterestMessage::name
char * name() const
Get name value.
Definition: NavGraphGeneratorInterface.cpp:3011
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::SetPointOfInterestPropertyMessage
SetPointOfInterestPropertyMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:2272
fawkes::NavGraphGeneratorInterface::SetFilterMessage::is_enable
bool is_enable() const
Get enable value.
Definition: NavGraphGeneratorInterface.cpp:1077
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::maxlenof_name
size_t maxlenof_name() const
Get maximum length of name value.
Definition: NavGraphGeneratorInterface.cpp:1529
fawkes::NavGraphGeneratorInterface::msgid
uint32_t msgid() const
Get msgid value.
Definition: NavGraphGeneratorInterface.cpp:181
fawkes::NavGraphGeneratorInterface::ClearMessage::~ClearMessage
~ClearMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:433
fawkes::NavGraphGeneratorInterface::maxlenof_error_message
size_t maxlenof_error_message() const
Get maximum length of error_message value.
Definition: NavGraphGeneratorInterface.cpp:304
fawkes::NavGraphGeneratorInterface::maxlenof_final
size_t maxlenof_final() const
Get maximum length of final value.
Definition: NavGraphGeneratorInterface.cpp:229
fawkes::NavGraphGeneratorInterface::SetAlgorithmParameterMessage::set_value
void set_value(const char *new_value)
Set value value.
Definition: NavGraphGeneratorInterface.cpp:725
fawkes::NavGraphGeneratorInterface::maxlenof_msgid
size_t maxlenof_msgid() const
Get maximum length of msgid value.
Definition: NavGraphGeneratorInterface.cpp:191
fawkes::NavGraphGeneratorInterface::SetAlgorithmParameterMessage::~SetAlgorithmParameterMessage
~SetAlgorithmParameterMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:641
fawkes::NavGraphGeneratorInterface::ConnectionMode
ConnectionMode
Describe how to connect nodes to the graph.
Definition: NavGraphGeneratorInterface.h:54
fawkes::NavGraphGeneratorInterface::enum_tostring
virtual const char * enum_tostring(const char *enumtype, int val) const
Definition: NavGraphGeneratorInterface.cpp:384
fawkes::NavGraphGeneratorInterface::copy_values
virtual void copy_values(const Interface *other)
Copy values from other interface.
Definition: NavGraphGeneratorInterface.cpp:373
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::maxlenof_x
size_t maxlenof_x() const
Get maximum length of x value.
Definition: NavGraphGeneratorInterface.cpp:2110
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:2421
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::filter
FilterType filter() const
Get filter value.
Definition: NavGraphGeneratorInterface.cpp:1204
fawkes::NavGraphGeneratorInterface::SetAlgorithmParameterMessage
Definition: NavGraphGeneratorInterface.h:244
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::set_mode
void set_mode(const ConnectionMode new_mode)
Set mode value.
Definition: NavGraphGeneratorInterface.cpp:2214
fawkes::NavGraphGeneratorInterface::ComputeMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:3104
fawkes::NavGraphGeneratorInterface::RemoveObstacleMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:1735
fawkes::NavGraphGeneratorInterface::SetCopyGraphDefaultPropertiesMessage::is_enable_copy
bool is_enable_copy() const
Get enable_copy value.
Definition: NavGraphGeneratorInterface.cpp:2891
fawkes::NavGraphGeneratorInterface::AddObstacleMessage
Definition: NavGraphGeneratorInterface.h:430
fawkes::NavGraphGeneratorInterface::tostring_Algorithm
const char * tostring_Algorithm(Algorithm value) const
Convert Algorithm constant to string.
Definition: NavGraphGeneratorInterface.cpp:164
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::set_p1_y
void set_p1_y(const float new_p1_y)
Set p1_y value.
Definition: NavGraphGeneratorInterface.cpp:884
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:955
fawkes::NavGraphGeneratorInterface::SetGraphDefaultPropertyMessage::maxlenof_property_value
size_t maxlenof_property_value() const
Get maximum length of property_value value.
Definition: NavGraphGeneratorInterface.cpp:2782
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::set_mode
void set_mode(const ConnectionMode new_mode)
Set mode value.
Definition: NavGraphGeneratorInterface.cpp:1952
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage
Definition: NavGraphGeneratorInterface.h:594
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::maxlenof_mode
size_t maxlenof_mode() const
Get maximum length of mode value.
Definition: NavGraphGeneratorInterface.cpp:2628
fawkes::NavGraphGeneratorInterface::SetAlgorithmParameterMessage::param
char * param() const
Get param value.
Definition: NavGraphGeneratorInterface.cpp:666
fawkes::NavGraphGeneratorInterface::set_final
void set_final(const bool new_final)
Set final value.
Definition: NavGraphGeneratorInterface.cpp:243
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::maxlenof_property_value
size_t maxlenof_property_value() const
Get maximum length of property_value value.
Definition: NavGraphGeneratorInterface.cpp:2398
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::~AddEdgeMessage
~AddEdgeMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:2497
fawkes::NavGraphGeneratorInterface::set_msgid
void set_msgid(const uint32_t new_msgid)
Set msgid value.
Definition: NavGraphGeneratorInterface.cpp:204
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::property_value
char * property_value() const
Get property_value value.
Definition: NavGraphGeneratorInterface.cpp:2388
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::maxlenof_directed
size_t maxlenof_directed() const
Get maximum length of directed value.
Definition: NavGraphGeneratorInterface.cpp:2595
fawkes::NavGraphGeneratorInterface::ClearMessage::ClearMessage
ClearMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:410
fawkes::NavGraphGeneratorInterface
Definition: NavGraphGeneratorInterface.h:39
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::AddObstacleMessage
AddObstacleMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:1468
fawkes::NavGraphGeneratorInterface::SetAlgorithmMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:573
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage
Definition: NavGraphGeneratorInterface.h:282
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::p1_y
float p1_y() const
Get p1_y value.
Definition: NavGraphGeneratorInterface.cpp:864
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage
Definition: NavGraphGeneratorInterface.h:358
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::maxlenof_name
size_t maxlenof_name() const
Get maximum length of name value.
Definition: NavGraphGeneratorInterface.cpp:2077