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  */
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 
700  class SetCopyGraphDefaultPropertiesMessage : public Message
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 
730  class RemovePointOfInterestMessage : public Message
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
If the new edge intersects with one or more edges, add new points at the intersections and split the ...
Definition: NavGraphGeneratorInterface.h:122
fawkes::NavGraphGeneratorInterface::AddMapObstaclesMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:1421
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::AddEdgeMessage
AddEdgeMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:2468
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:1397
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::maxlenof_p2_y
size_t maxlenof_p2_y() const
Get maximum length of p2_y value.
Definition: NavGraphGeneratorInterface.cpp:932
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage
Definition: NavGraphGeneratorInterface.h:542
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::maxlenof_y
size_t maxlenof_y() const
Get maximum length of y value.
Definition: NavGraphGeneratorInterface.cpp:1906
fawkes::NavGraphGeneratorInterface::SetGraphDefaultPropertyMessage::property_value
char * property_value() const
Get property_value value.
Definition: NavGraphGeneratorInterface.cpp:2770
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::name
char * name() const
Get name value.
Definition: NavGraphGeneratorInterface.cpp:2065
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::set_filter
void set_filter(const FilterType new_filter)
Set filter value.
Definition: NavGraphGeneratorInterface.cpp:1223
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::x
float x() const
Get x value.
Definition: NavGraphGeneratorInterface.cpp:2098
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::x
float x() const
Get x value.
Definition: NavGraphGeneratorInterface.cpp:1866
fawkes::NavGraphGeneratorInterface::RemoveObstacleMessage
Definition: NavGraphGeneratorInterface.h:466
fawkes::NavGraphGeneratorInterface::RemovePointOfInterestMessage::maxlenof_name
size_t maxlenof_name() const
Get maximum length of name value.
Definition: NavGraphGeneratorInterface.cpp:3019
fawkes::NavGraphGeneratorInterface::RemovePointOfInterestMessage::~RemovePointOfInterestMessage
~RemovePointOfInterestMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:2984
fawkes::NavGraphGeneratorInterface::SetCopyGraphDefaultPropertiesMessage::maxlenof_enable_copy
size_t maxlenof_enable_copy() const
Get maximum length of enable_copy value.
Definition: NavGraphGeneratorInterface.cpp:2899
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::set_x
void set_x(const float new_x)
Set x value.
Definition: NavGraphGeneratorInterface.cpp:2118
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::~AddPointOfInterestMessage
~AddPointOfInterestMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:1808
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:1410
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::p1_x
float p1_x() const
Get p1_x value.
Definition: NavGraphGeneratorInterface.cpp:832
fawkes::NavGraphGeneratorInterface::SetCopyGraphDefaultPropertiesMessage::~SetCopyGraphDefaultPropertiesMessage
~SetCopyGraphDefaultPropertiesMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:2865
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::AddPointOfInterestMessage
AddPointOfInterestMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:1781
fawkes::NavGraphGeneratorInterface::SetAlgorithmParameterMessage::value
char * value() const
Get value value.
Definition: NavGraphGeneratorInterface.cpp:700
fawkes::NavGraphGeneratorInterface::ComputeMessage::ComputeMessage
ComputeMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:3055
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::mode
ConnectionMode mode() const
Get mode value.
Definition: NavGraphGeneratorInterface.cpp:2190
fawkes::NavGraphGeneratorInterface::SetCopyGraphDefaultPropertiesMessage::set_enable_copy
void set_enable_copy(const bool new_enable_copy)
Set enable_copy value.
Definition: NavGraphGeneratorInterface.cpp:2910
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::name
char * name() const
Get name value.
Definition: NavGraphGeneratorInterface.cpp:1833
fawkes::NavGraphGeneratorInterface::FILTER_MULTI_GRAPH
Sometimes after applying other filters one can end up with multiple disconnected graphs.
Definition: NavGraphGeneratorInterface.h:105
fawkes::NavGraphGeneratorInterface::SetAlgorithmMessage::algorithm
Algorithm algorithm() const
Get algorithm value.
Definition: NavGraphGeneratorInterface.cpp:540
fawkes::NavGraphGeneratorInterface::set_error_message
void set_error_message(const char *new_error_message)
Set error_message value.
Definition: NavGraphGeneratorInterface.cpp:315
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::x
float x() const
Get x value.
Definition: NavGraphGeneratorInterface.cpp:1550
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::param
char * param() const
Get param value.
Definition: NavGraphGeneratorInterface.cpp:1234
fawkes::NavGraphGeneratorInterface::SetFilterMessage::~SetFilterMessage
~SetFilterMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:1019
fawkes::NavGraphGeneratorInterface::SetAlgorithmParameterMessage::SetAlgorithmParameterMessage
SetAlgorithmParameterMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:614
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:1299
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:2223
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::SetFilterParamFloatMessage
SetFilterParamFloatMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:1152
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::maxlenof_y
size_t maxlenof_y() const
Get maximum length of y value.
Definition: NavGraphGeneratorInterface.cpp:2138
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::y
float y() const
Get y value.
Definition: NavGraphGeneratorInterface.cpp:1580
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::set_name
void set_name(const char *new_name)
Set name value.
Definition: NavGraphGeneratorInterface.cpp:1855
fawkes::Message
Definition: message.h:40
fawkes::NavGraphGeneratorInterface::SetCopyGraphDefaultPropertiesMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:2921
fawkes::NavGraphGeneratorInterface::SetFilterMessage::maxlenof_enable
size_t maxlenof_enable() const
Get maximum length of enable value.
Definition: NavGraphGeneratorInterface.cpp:1085
fawkes::NavGraphGeneratorInterface::SetGraphDefaultPropertyMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:2803
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::maxlenof_name
size_t maxlenof_name() const
Get maximum length of name value.
Definition: NavGraphGeneratorInterface.cpp:2331
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::~SetBoundingBoxMessage
~SetBoundingBoxMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:809
fawkes::NavGraphGeneratorInterface::SetGraphDefaultPropertyMessage::maxlenof_property_name
size_t maxlenof_property_name() const
Get maximum length of property_name value.
Definition: NavGraphGeneratorInterface.cpp:2748
fawkes::NavGraphGeneratorInterface::SetFilterMessage::set_filter
void set_filter(const FilterType new_filter)
Set filter value.
Definition: NavGraphGeneratorInterface.cpp:1064
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::set_mode
void set_mode(const EdgeMode new_mode)
Set mode value.
Definition: NavGraphGeneratorInterface.cpp:2636
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::maxlenof_p2_x
size_t maxlenof_p2_x() const
Get maximum length of p2_x value.
Definition: NavGraphGeneratorInterface.cpp:902
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::set_p2_x
void set_p2_x(const float new_p2_x)
Set p2_x value.
Definition: NavGraphGeneratorInterface.cpp:912
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::SetBoundingBoxMessage
SetBoundingBoxMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:782
fawkes::NavGraphGeneratorInterface::SetGraphDefaultPropertyMessage
Definition: NavGraphGeneratorInterface.h:675
fawkes::NavGraphGeneratorInterface::tostring_ConnectionMode
const char * tostring_ConnectionMode(ConnectionMode value) const
Convert ConnectionMode constant to string.
Definition: NavGraphGeneratorInterface.cpp:118
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::set_x
void set_x(const float new_x)
Set x value.
Definition: NavGraphGeneratorInterface.cpp:1570
fawkes::NavGraphGeneratorInterface::SetAlgorithmMessage::~SetAlgorithmMessage
~SetAlgorithmMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:517
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::maxlenof_param
size_t maxlenof_param() const
Get maximum length of param value.
Definition: NavGraphGeneratorInterface.cpp:1244
fawkes::NavGraphGeneratorInterface::SetGraphDefaultPropertyMessage::~SetGraphDefaultPropertyMessage
~SetGraphDefaultPropertyMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:2715
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::maxlenof_x
size_t maxlenof_x() const
Get maximum length of x value.
Definition: NavGraphGeneratorInterface.cpp:1560
fawkes::NavGraphGeneratorInterface::SetAlgorithmMessage::maxlenof_algorithm
size_t maxlenof_algorithm() const
Get maximum length of algorithm value.
Definition: NavGraphGeneratorInterface.cpp:550
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::name
char * name() const
Get name value.
Definition: NavGraphGeneratorInterface.cpp:2321
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::name
char * name() const
Get name value.
Definition: NavGraphGeneratorInterface.cpp:1517
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::ori
float ori() const
Get ori value.
Definition: NavGraphGeneratorInterface.cpp:2158
fawkes::NavGraphGeneratorInterface::RemoveObstacleMessage::~RemoveObstacleMessage
~RemoveObstacleMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:1674
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:2647
fawkes::NavGraphGeneratorInterface::SetGraphDefaultPropertyMessage::SetGraphDefaultPropertyMessage
SetGraphDefaultPropertyMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:2690
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::maxlenof_value
size_t maxlenof_value() const
Get maximum length of value value.
Definition: NavGraphGeneratorInterface.cpp:1277
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::maxlenof_property_name
size_t maxlenof_property_name() const
Get maximum length of property_name value.
Definition: NavGraphGeneratorInterface.cpp:2364
fawkes::NavGraphGeneratorInterface::SetCopyGraphDefaultPropertiesMessage
Definition: NavGraphGeneratorInterface.h:709
fawkes::NavGraphGeneratorInterface::SetFilterMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:1107
fawkes::Interface::type
const char * type() const
Get type of interface.
Definition: interface.cpp:643
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::maxlenof_p1
size_t maxlenof_p1() const
Get maximum length of p1 value.
Definition: NavGraphGeneratorInterface.cpp:2528
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::set_y
void set_y(const float new_y)
Set y value.
Definition: NavGraphGeneratorInterface.cpp:1916
fawkes::NavGraphGeneratorInterface::ClearMessage
Definition: NavGraphGeneratorInterface.h:188
fawkes::NavGraphGeneratorInterface::create_message
virtual Message * create_message(const char *type) const
Definition: NavGraphGeneratorInterface.cpp:324
fawkes::NavGraphGeneratorInterface::ALGORITHM_GRID
Grid-based algorithm with customizable spacing.
Definition: NavGraphGeneratorInterface.h:142
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::set_y
void set_y(const float new_y)
Set y value.
Definition: NavGraphGeneratorInterface.cpp:1600
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::set_property_value
void set_property_value(const char *new_property_value)
Set property_value value.
Definition: NavGraphGeneratorInterface.cpp:2407
fawkes::NavGraphGeneratorInterface::tostring_FilterType
const char * tostring_FilterType(FilterType value) const
Convert FilterType constant to string.
Definition: NavGraphGeneratorInterface.cpp:134
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::set_p2_y
void set_p2_y(const float new_p2_y)
Set p2_y value.
Definition: NavGraphGeneratorInterface.cpp:942
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::maxlenof_p1_x
size_t maxlenof_p1_x() const
Get maximum length of p1_x value.
Definition: NavGraphGeneratorInterface.cpp:842
fawkes::NavGraphGeneratorInterface::ClearMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:455
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::p2_x
float p2_x() const
Get p2_x value.
Definition: NavGraphGeneratorInterface.cpp:892
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::maxlenof_ori
size_t maxlenof_ori() const
Get maximum length of ori value.
Definition: NavGraphGeneratorInterface.cpp:2168
fawkes::NavGraphGeneratorInterface::RemoveObstacleMessage::RemoveObstacleMessage
RemoveObstacleMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:1650
fawkes::NavGraphGeneratorInterface::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:88
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::set_x
void set_x(const float new_x)
Set x value.
Definition: NavGraphGeneratorInterface.cpp:1886
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::is_directed
bool is_directed() const
Get directed value.
Definition: NavGraphGeneratorInterface.cpp:2583
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::mode
EdgeMode mode() const
Get mode value.
Definition: NavGraphGeneratorInterface.cpp:2616
fawkes::NavGraphGeneratorInterface::ComputeMessage::~ComputeMessage
~ComputeMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:3078
fawkes::NavGraphGeneratorInterface::maxlenof_ok
size_t maxlenof_ok() const
Get maximum length of ok value.
Definition: NavGraphGeneratorInterface.cpp:265
fawkes::NavGraphGeneratorInterface::SetAlgorithmParameterMessage::maxlenof_param
size_t maxlenof_param() const
Get maximum length of param value.
Definition: NavGraphGeneratorInterface.cpp:674
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::set_ori
void set_ori(const float new_ori)
Set ori value.
Definition: NavGraphGeneratorInterface.cpp:2178
fawkes::NavGraphGeneratorInterface::EdgeMode
EdgeMode
When adding edges, the mode defines how to add edges.
Definition: NavGraphGeneratorInterface.h:117
fawkes::NavGraphGeneratorInterface::RemoveObstacleMessage::maxlenof_name
size_t maxlenof_name() const
Get maximum length of name value.
Definition: NavGraphGeneratorInterface.cpp:1709
fawkes::NavGraphGeneratorInterface::RemovePointOfInterestMessage::RemovePointOfInterestMessage
RemovePointOfInterestMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:2960
fawkes::NavGraphGeneratorInterface::SetFilterMessage::filter
FilterType filter() const
Get filter value.
Definition: NavGraphGeneratorInterface.cpp:1043
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::set_p1_x
void set_p1_x(const float new_p1_x)
Set p1_x value.
Definition: NavGraphGeneratorInterface.cpp:852
fawkes::NavGraphGeneratorInterface::SetAlgorithmMessage::set_algorithm
void set_algorithm(const Algorithm new_algorithm)
Set algorithm value.
Definition: NavGraphGeneratorInterface.cpp:560
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::set_y
void set_y(const float new_y)
Set y value.
Definition: NavGraphGeneratorInterface.cpp:2148
fawkes::NavGraphGeneratorInterface::RemoveObstacleMessage::set_name
void set_name(const char *new_name)
Set name value.
Definition: NavGraphGeneratorInterface.cpp:1721
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::set_directed
void set_directed(const bool new_directed)
Set directed value.
Definition: NavGraphGeneratorInterface.cpp:2606
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::maxlenof_name
size_t maxlenof_name() const
Get maximum length of name value.
Definition: NavGraphGeneratorInterface.cpp:1843
fawkes::NavGraphGeneratorInterface::RemovePointOfInterestMessage
Definition: NavGraphGeneratorInterface.h:739
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:1611
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::p2_y
float p2_y() const
Get p2_y value.
Definition: NavGraphGeneratorInterface.cpp:922
fawkes::NavGraphGeneratorInterface::is_final
bool is_final() const
Get final value.
Definition: NavGraphGeneratorInterface.cpp:217
fawkes::NavGraphGeneratorInterface::SetFilterMessage::SetFilterMessage
SetFilterMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:994
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::y
float y() const
Get y value.
Definition: NavGraphGeneratorInterface.cpp:1896
fawkes::NavGraphGeneratorInterface::ALGORITHM_VORONOI
Voronoi-based algorithm for navgraph generation.
Definition: NavGraphGeneratorInterface.h:138
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::set_name
void set_name(const char *new_name)
Set name value.
Definition: NavGraphGeneratorInterface.cpp:1539
fawkes::NavGraphGeneratorInterface::SetAlgorithmParameterMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:735
fawkes::NavGraphGeneratorInterface::FILTER_ORPHAN_NODES
If enabled, filters out all nodes which are not connected to any other node.
Definition: NavGraphGeneratorInterface.h:100
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::value
float value() const
Get value value.
Definition: NavGraphGeneratorInterface.cpp:1267
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::maxlenof_x
size_t maxlenof_x() const
Get maximum length of x value.
Definition: NavGraphGeneratorInterface.cpp:1876
fawkes::NavGraphGeneratorInterface::FORCE
The edge is added as-is, it may overlap or intersect with other edges.
Definition: NavGraphGeneratorInterface.h:127
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage
Definition: NavGraphGeneratorInterface.h:497
fawkes
fawkes::NavGraphGeneratorInterface::SetAlgorithmParameterMessage::set_param
void set_param(const char *new_param)
Set param value.
Definition: NavGraphGeneratorInterface.cpp:686
fawkes::NavGraphGeneratorInterface::SetGraphDefaultPropertyMessage::property_name
char * property_name() const
Get property_name value.
Definition: NavGraphGeneratorInterface.cpp:2738
fawkes::NavGraphGeneratorInterface::NO_INTERSECTION
Only insert edge if it does not intersect with any other existing edge in the graph.
Definition: NavGraphGeneratorInterface.h:118
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::set_property_name
void set_property_name(const char *new_property_name)
Set property_name value.
Definition: NavGraphGeneratorInterface.cpp:2374
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::set_p1
void set_p1(const char *new_p1)
Set p1 value.
Definition: NavGraphGeneratorInterface.cpp:2538
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::~SetPointOfInterestPropertyMessage
~SetPointOfInterestPropertyMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:2296
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::p1
char * p1() const
Get p1 value.
Definition: NavGraphGeneratorInterface.cpp:2518
fawkes::NavGraphGeneratorInterface::Algorithm
Algorithm
Available generator algorithms.
Definition: NavGraphGeneratorInterface.h:137
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::AddPointOfInterestWithOriMessage
AddPointOfInterestWithOriMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:2012
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::set_param
void set_param(const char *new_param)
Set param value.
Definition: NavGraphGeneratorInterface.cpp:1255
fawkes::NavGraphGeneratorInterface::set_ok
void set_ok(const bool new_ok)
Set ok value.
Definition: NavGraphGeneratorInterface.cpp:278
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::property_name
char * property_name() const
Get property_name value.
Definition: NavGraphGeneratorInterface.cpp:2354
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::p2
char * p2() const
Get p2 value.
Definition: NavGraphGeneratorInterface.cpp:2549
fawkes::NavGraphGeneratorInterface::RemovePointOfInterestMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:3043
fawkes::NavGraphGeneratorInterface::AddMapObstaclesMessage::max_line_point_distance
float max_line_point_distance() const
Get max_line_point_distance value.
Definition: NavGraphGeneratorInterface.cpp:1387
fawkes::Interface
Definition: interface.h:77
fawkes::NavGraphGeneratorInterface::is_ok
bool is_ok() const
Get ok value.
Definition: NavGraphGeneratorInterface.cpp:255
fawkes::NavGraphGeneratorInterface::AddMapObstaclesMessage
Definition: NavGraphGeneratorInterface.h:395
fawkes::NavGraphGeneratorInterface::AddMapObstaclesMessage::~AddMapObstaclesMessage
~AddMapObstaclesMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:1361
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::set_p2
void set_p2(const char *new_p2)
Set p2 value.
Definition: NavGraphGeneratorInterface.cpp:2569
fawkes::NavGraphGeneratorInterface::SetFilterMessage::maxlenof_filter
size_t maxlenof_filter() const
Get maximum length of filter value.
Definition: NavGraphGeneratorInterface.cpp:1053
fawkes::NavGraphGeneratorInterface::CLOSEST_EDGE
Connect point to the edge in which segment it lies, i.e.
Definition: NavGraphGeneratorInterface.h:77
fawkes::NavGraphGeneratorInterface::AddMapObstaclesMessage::AddMapObstaclesMessage
AddMapObstaclesMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:1337
fawkes::NavGraphGeneratorInterface::error_message
char * error_message() const
Get error_message value.
Definition: NavGraphGeneratorInterface.cpp:292
fawkes::NavGraphGeneratorInterface::SetGraphDefaultPropertyMessage::set_property_value
void set_property_value(const char *new_property_value)
Set property_value value.
Definition: NavGraphGeneratorInterface.cpp:2791
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::set_value
void set_value(const float new_value)
Set value value.
Definition: NavGraphGeneratorInterface.cpp:1288
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::maxlenof_y
size_t maxlenof_y() const
Get maximum length of y value.
Definition: NavGraphGeneratorInterface.cpp:1590
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::~AddObstacleMessage
~AddObstacleMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:1492
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::maxlenof_mode
size_t maxlenof_mode() const
Get maximum length of mode value.
Definition: NavGraphGeneratorInterface.cpp:1938
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::~AddPointOfInterestWithOriMessage
~AddPointOfInterestWithOriMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:2040
fawkes::interface_enum_map_t
std::map< int, std::string > interface_enum_map_t
Map of enum integer to string values.
Definition: types.h:59
fawkes::NavGraphGeneratorInterface::CLOSEST_EDGE_OR_NODE
First try the CLOSEST_EDGE method.
Definition: NavGraphGeneratorInterface.h:84
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::maxlenof_p1_y
size_t maxlenof_p1_y() const
Get maximum length of p1_y value.
Definition: NavGraphGeneratorInterface.cpp:872
fawkes::NavGraphGeneratorInterface::message_valid
virtual bool message_valid(const Message *message) const
Check if message is valid and can be enqueued.
Definition: NavGraphGeneratorInterface.cpp:3111
fawkes::NavGraphGeneratorInterface::NOT_CONNECTED
The node is will not be initially connected.
Definition: NavGraphGeneratorInterface.h:57
fawkes::NavGraphGeneratorInterface::SetCopyGraphDefaultPropertiesMessage::SetCopyGraphDefaultPropertiesMessage
SetCopyGraphDefaultPropertiesMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:2841
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::maxlenof_p2
size_t maxlenof_p2() const
Get maximum length of p2 value.
Definition: NavGraphGeneratorInterface.cpp:2559
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::y
float y() const
Get y value.
Definition: NavGraphGeneratorInterface.cpp:2128
fawkes::NavGraphGeneratorInterface::SetGraphDefaultPropertyMessage::set_property_name
void set_property_name(const char *new_property_name)
Set property_name value.
Definition: NavGraphGeneratorInterface.cpp:2758
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::set_name
void set_name(const char *new_name)
Set name value.
Definition: NavGraphGeneratorInterface.cpp:2087
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::mode
ConnectionMode mode() const
Get mode value.
Definition: NavGraphGeneratorInterface.cpp:1928
fawkes::NavGraphGeneratorInterface::SetAlgorithmMessage::SetAlgorithmMessage
SetAlgorithmMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:493
fawkes::NavGraphGeneratorInterface::tostring_EdgeMode
const char * tostring_EdgeMode(EdgeMode value) const
Convert EdgeMode constant to string.
Definition: NavGraphGeneratorInterface.cpp:148
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::maxlenof_filter
size_t maxlenof_filter() const
Get maximum length of filter value.
Definition: NavGraphGeneratorInterface.cpp:1212
fawkes::NavGraphGeneratorInterface::ComputeMessage
Definition: NavGraphGeneratorInterface.h:770
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::set_name
void set_name(const char *new_name)
Set name value.
Definition: NavGraphGeneratorInterface.cpp:2343
fawkes::NavGraphGeneratorInterface::FilterType
FilterType
Post-processing filtering type.
Definition: NavGraphGeneratorInterface.h:87
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:1961
fawkes::NavGraphGeneratorInterface::SetAlgorithmParameterMessage::maxlenof_value
size_t maxlenof_value() const
Get maximum length of value value.
Definition: NavGraphGeneratorInterface.cpp:710
fawkes::NavGraphGeneratorInterface::SetAlgorithmMessage
Definition: NavGraphGeneratorInterface.h:212
fawkes::NavGraphGeneratorInterface::UNCONNECTED
The node is marked as unconnected and will not be connected to another node.
Definition: NavGraphGeneratorInterface.h:64
fawkes::NavGraphGeneratorInterface::AddEdgeMessage
Definition: NavGraphGeneratorInterface.h:631
fawkes::NavGraphGeneratorInterface::CLOSEST_NODE
Connect point to the node on the graph closest to the given point.
Definition: NavGraphGeneratorInterface.h:73
fawkes::NavGraphGeneratorInterface::SetFilterMessage::set_enable
void set_enable(const bool new_enable)
Set enable value.
Definition: NavGraphGeneratorInterface.cpp:1096
fawkes::NavGraphGeneratorInterface::RemovePointOfInterestMessage::set_name
void set_name(const char *new_name)
Set name value.
Definition: NavGraphGeneratorInterface.cpp:3031
fawkes::NavGraphGeneratorInterface::RemoveObstacleMessage::name
char * name() const
Get name value.
Definition: NavGraphGeneratorInterface.cpp:1699
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::~SetFilterParamFloatMessage
~SetFilterParamFloatMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:1178
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::maxlenof_mode
size_t maxlenof_mode() const
Get maximum length of mode value.
Definition: NavGraphGeneratorInterface.cpp:2200
fawkes::NavGraphGeneratorInterface::SetFilterMessage
Definition: NavGraphGeneratorInterface.h:320
fawkes::NavGraphGeneratorInterface::RemovePointOfInterestMessage::name
char * name() const
Get name value.
Definition: NavGraphGeneratorInterface.cpp:3009
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::SetPointOfInterestPropertyMessage
SetPointOfInterestPropertyMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:2270
fawkes::NavGraphGeneratorInterface::SetFilterMessage::is_enable
bool is_enable() const
Get enable value.
Definition: NavGraphGeneratorInterface.cpp:1075
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::maxlenof_name
size_t maxlenof_name() const
Get maximum length of name value.
Definition: NavGraphGeneratorInterface.cpp:1527
fawkes::NavGraphGeneratorInterface::msgid
uint32_t msgid() const
Get msgid value.
Definition: NavGraphGeneratorInterface.cpp:179
fawkes::NavGraphGeneratorInterface::ClearMessage::~ClearMessage
~ClearMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:431
fawkes::NavGraphGeneratorInterface::maxlenof_error_message
size_t maxlenof_error_message() const
Get maximum length of error_message value.
Definition: NavGraphGeneratorInterface.cpp:302
fawkes::NavGraphGeneratorInterface::maxlenof_final
size_t maxlenof_final() const
Get maximum length of final value.
Definition: NavGraphGeneratorInterface.cpp:227
fawkes::NavGraphGeneratorInterface::SetAlgorithmParameterMessage::set_value
void set_value(const char *new_value)
Set value value.
Definition: NavGraphGeneratorInterface.cpp:723
fawkes::NavGraphGeneratorInterface::maxlenof_msgid
size_t maxlenof_msgid() const
Get maximum length of msgid value.
Definition: NavGraphGeneratorInterface.cpp:189
fawkes::NavGraphGeneratorInterface::SetAlgorithmParameterMessage::~SetAlgorithmParameterMessage
~SetAlgorithmParameterMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:639
fawkes::NavGraphGeneratorInterface::ConnectionMode
ConnectionMode
Describe how to connect nodes to the graph.
Definition: NavGraphGeneratorInterface.h:51
fawkes::NavGraphGeneratorInterface::enum_tostring
virtual const char * enum_tostring(const char *enumtype, int val) const
Definition: NavGraphGeneratorInterface.cpp:382
fawkes::NavGraphGeneratorInterface::copy_values
virtual void copy_values(const Interface *other)
Copy values from other interface.
Definition: NavGraphGeneratorInterface.cpp:371
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::maxlenof_x
size_t maxlenof_x() const
Get maximum length of x value.
Definition: NavGraphGeneratorInterface.cpp:2108
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:2419
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::filter
FilterType filter() const
Get filter value.
Definition: NavGraphGeneratorInterface.cpp:1202
fawkes::NavGraphGeneratorInterface::SetAlgorithmParameterMessage
Definition: NavGraphGeneratorInterface.h:241
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::set_mode
void set_mode(const ConnectionMode new_mode)
Set mode value.
Definition: NavGraphGeneratorInterface.cpp:2212
fawkes::NavGraphGeneratorInterface::ComputeMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:3102
fawkes::NavGraphGeneratorInterface::RemoveObstacleMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:1733
fawkes::NavGraphGeneratorInterface::SetCopyGraphDefaultPropertiesMessage::is_enable_copy
bool is_enable_copy() const
Get enable_copy value.
Definition: NavGraphGeneratorInterface.cpp:2889
fawkes::NavGraphGeneratorInterface::AddObstacleMessage
Definition: NavGraphGeneratorInterface.h:427
fawkes::NavGraphGeneratorInterface::tostring_Algorithm
const char * tostring_Algorithm(Algorithm value) const
Convert Algorithm constant to string.
Definition: NavGraphGeneratorInterface.cpp:162
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::set_p1_y
void set_p1_y(const float new_p1_y)
Set p1_y value.
Definition: NavGraphGeneratorInterface.cpp:882
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:953
fawkes::NavGraphGeneratorInterface::SetGraphDefaultPropertyMessage::maxlenof_property_value
size_t maxlenof_property_value() const
Get maximum length of property_value value.
Definition: NavGraphGeneratorInterface.cpp:2780
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::set_mode
void set_mode(const ConnectionMode new_mode)
Set mode value.
Definition: NavGraphGeneratorInterface.cpp:1950
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage
Definition: NavGraphGeneratorInterface.h:591
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::maxlenof_mode
size_t maxlenof_mode() const
Get maximum length of mode value.
Definition: NavGraphGeneratorInterface.cpp:2626
fawkes::NavGraphGeneratorInterface::SetAlgorithmParameterMessage::param
char * param() const
Get param value.
Definition: NavGraphGeneratorInterface.cpp:664
fawkes::NavGraphGeneratorInterface::set_final
void set_final(const bool new_final)
Set final value.
Definition: NavGraphGeneratorInterface.cpp:241
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::maxlenof_property_value
size_t maxlenof_property_value() const
Get maximum length of property_value value.
Definition: NavGraphGeneratorInterface.cpp:2396
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::~AddEdgeMessage
~AddEdgeMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:2495
fawkes::NavGraphGeneratorInterface::set_msgid
void set_msgid(const uint32_t new_msgid)
Set msgid value.
Definition: NavGraphGeneratorInterface.cpp:202
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::property_value
char * property_value() const
Get property_value value.
Definition: NavGraphGeneratorInterface.cpp:2386
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::maxlenof_directed
size_t maxlenof_directed() const
Get maximum length of directed value.
Definition: NavGraphGeneratorInterface.cpp:2593
fawkes::NavGraphGeneratorInterface::ClearMessage::ClearMessage
ClearMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:408
fawkes::NavGraphGeneratorInterface
Definition: NavGraphGeneratorInterface.h:37
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::AddObstacleMessage
AddObstacleMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:1466
fawkes::NavGraphGeneratorInterface::SetAlgorithmMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:571
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage
Definition: NavGraphGeneratorInterface.h:279
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::p1_y
float p1_y() const
Get p1_y value.
Definition: NavGraphGeneratorInterface.cpp:862
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage
Definition: NavGraphGeneratorInterface.h:355
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::maxlenof_name
size_t maxlenof_name() const
Get maximum length of name value.
Definition: NavGraphGeneratorInterface.cpp:2075