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 
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  */
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  */
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 
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 
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 
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 
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 
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 
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 
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 
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 
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 
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:113
fawkes::NavGraphGeneratorInterface::AddMapObstaclesMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:1409
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::AddEdgeMessage
AddEdgeMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:2449
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:1385
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::maxlenof_p2_y
size_t maxlenof_p2_y() const
Get maximum length of p2_y value.
Definition: NavGraphGeneratorInterface.cpp:921
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage
AddPointOfInterestWithOriMessage Fawkes BlackBoard Interface Message.
Definition: NavGraphGeneratorInterface.h:534
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::maxlenof_y
size_t maxlenof_y() const
Get maximum length of y value.
Definition: NavGraphGeneratorInterface.cpp:1891
fawkes::NavGraphGeneratorInterface::SetGraphDefaultPropertyMessage::property_value
char * property_value() const
Get property_value value.
Definition: NavGraphGeneratorInterface.cpp:2748
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::name
char * name() const
Get name value.
Definition: NavGraphGeneratorInterface.cpp:2050
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::set_filter
void set_filter(const FilterType new_filter)
Set filter value.
Definition: NavGraphGeneratorInterface.cpp:1212
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::x
float x() const
Get x value.
Definition: NavGraphGeneratorInterface.cpp:2082
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::x
float x() const
Get x value.
Definition: NavGraphGeneratorInterface.cpp:1851
fawkes::NavGraphGeneratorInterface::RemoveObstacleMessage
RemoveObstacleMessage Fawkes BlackBoard Interface Message.
Definition: NavGraphGeneratorInterface.h:458
fawkes::NavGraphGeneratorInterface::RemovePointOfInterestMessage::maxlenof_name
size_t maxlenof_name() const
Get maximum length of name value.
Definition: NavGraphGeneratorInterface.cpp:2996
fawkes::NavGraphGeneratorInterface::RemovePointOfInterestMessage::~RemovePointOfInterestMessage
~RemovePointOfInterestMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:2961
fawkes::NavGraphGeneratorInterface::SetCopyGraphDefaultPropertiesMessage::maxlenof_enable_copy
size_t maxlenof_enable_copy() const
Get maximum length of enable_copy value.
Definition: NavGraphGeneratorInterface.cpp:2876
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::set_x
void set_x(const float new_x)
Set x value.
Definition: NavGraphGeneratorInterface.cpp:2102
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::~AddPointOfInterestMessage
~AddPointOfInterestMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:1794
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:1398
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::p1_x
float p1_x() const
Get p1_x value.
Definition: NavGraphGeneratorInterface.cpp:821
fawkes::NavGraphGeneratorInterface::SetCopyGraphDefaultPropertiesMessage::~SetCopyGraphDefaultPropertiesMessage
~SetCopyGraphDefaultPropertiesMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:2842
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::AddPointOfInterestMessage
AddPointOfInterestMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:1767
fawkes::NavGraphGeneratorInterface::SetAlgorithmParameterMessage::value
char * value() const
Get value value.
Definition: NavGraphGeneratorInterface.cpp:690
fawkes::NavGraphGeneratorInterface::ComputeMessage::ComputeMessage
ComputeMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:3031
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::mode
ConnectionMode mode() const
Get mode value.
Definition: NavGraphGeneratorInterface.cpp:2174
fawkes::NavGraphGeneratorInterface::SetCopyGraphDefaultPropertiesMessage::set_enable_copy
void set_enable_copy(const bool new_enable_copy)
Set enable_copy value.
Definition: NavGraphGeneratorInterface.cpp:2887
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::name
char * name() const
Get name value.
Definition: NavGraphGeneratorInterface.cpp:1819
fawkes::NavGraphGeneratorInterface::FILTER_MULTI_GRAPH
@ FILTER_MULTI_GRAPH
Sometimes after applying other filters one can end up with multiple disconnected graphs.
Definition: NavGraphGeneratorInterface.h:96
fawkes::NavGraphGeneratorInterface::SetAlgorithmMessage::algorithm
Algorithm algorithm() const
Get algorithm value.
Definition: NavGraphGeneratorInterface.cpp:531
fawkes::NavGraphGeneratorInterface::set_error_message
void set_error_message(const char *new_error_message)
Set error_message value.
Definition: NavGraphGeneratorInterface.cpp:308
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::x
float x() const
Get x value.
Definition: NavGraphGeneratorInterface.cpp:1537
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::param
char * param() const
Get param value.
Definition: NavGraphGeneratorInterface.cpp:1223
fawkes::NavGraphGeneratorInterface::SetFilterMessage::~SetFilterMessage
~SetFilterMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:1008
fawkes::NavGraphGeneratorInterface::SetAlgorithmParameterMessage::SetAlgorithmParameterMessage
SetAlgorithmParameterMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:605
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:1287
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:2207
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::SetFilterParamFloatMessage
SetFilterParamFloatMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:1141
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::maxlenof_y
size_t maxlenof_y() const
Get maximum length of y value.
Definition: NavGraphGeneratorInterface.cpp:2122
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::y
float y() const
Get y value.
Definition: NavGraphGeneratorInterface.cpp:1567
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::set_name
void set_name(const char *new_name)
Set name value.
Definition: NavGraphGeneratorInterface.cpp:1841
fawkes::Message
Base class for all messages passed through interfaces in Fawkes BlackBoard.
Definition: message.h:45
fawkes::NavGraphGeneratorInterface::SetCopyGraphDefaultPropertiesMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:2898
fawkes::NavGraphGeneratorInterface::SetFilterMessage::maxlenof_enable
size_t maxlenof_enable() const
Get maximum length of enable value.
Definition: NavGraphGeneratorInterface.cpp:1074
fawkes::NavGraphGeneratorInterface::SetGraphDefaultPropertyMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:2780
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::maxlenof_name
size_t maxlenof_name() const
Get maximum length of name value.
Definition: NavGraphGeneratorInterface.cpp:2315
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::~SetBoundingBoxMessage
~SetBoundingBoxMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:798
fawkes::NavGraphGeneratorInterface::SetGraphDefaultPropertyMessage::maxlenof_property_name
size_t maxlenof_property_name() const
Get maximum length of property_name value.
Definition: NavGraphGeneratorInterface.cpp:2727
fawkes::NavGraphGeneratorInterface::SetFilterMessage::set_filter
void set_filter(const FilterType new_filter)
Set filter value.
Definition: NavGraphGeneratorInterface.cpp:1053
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::set_mode
void set_mode(const EdgeMode new_mode)
Set mode value.
Definition: NavGraphGeneratorInterface.cpp:2615
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::maxlenof_p2_x
size_t maxlenof_p2_x() const
Get maximum length of p2_x value.
Definition: NavGraphGeneratorInterface.cpp:891
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::set_p2_x
void set_p2_x(const float new_p2_x)
Set p2_x value.
Definition: NavGraphGeneratorInterface.cpp:901
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::SetBoundingBoxMessage
SetBoundingBoxMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:771
fawkes::NavGraphGeneratorInterface::SetGraphDefaultPropertyMessage
SetGraphDefaultPropertyMessage Fawkes BlackBoard Interface Message.
Definition: NavGraphGeneratorInterface.h:667
fawkes::NavGraphGeneratorInterface::tostring_ConnectionMode
const char * tostring_ConnectionMode(ConnectionMode value) const
Convert ConnectionMode constant to string.
Definition: NavGraphGeneratorInterface.cpp:114
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::set_x
void set_x(const float new_x)
Set x value.
Definition: NavGraphGeneratorInterface.cpp:1557
fawkes::NavGraphGeneratorInterface::SetAlgorithmMessage::~SetAlgorithmMessage
~SetAlgorithmMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:508
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::maxlenof_param
size_t maxlenof_param() const
Get maximum length of param value.
Definition: NavGraphGeneratorInterface.cpp:1233
fawkes::NavGraphGeneratorInterface::SetGraphDefaultPropertyMessage::~SetGraphDefaultPropertyMessage
~SetGraphDefaultPropertyMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:2694
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::maxlenof_x
size_t maxlenof_x() const
Get maximum length of x value.
Definition: NavGraphGeneratorInterface.cpp:1547
fawkes::NavGraphGeneratorInterface::SetAlgorithmMessage::maxlenof_algorithm
size_t maxlenof_algorithm() const
Get maximum length of algorithm value.
Definition: NavGraphGeneratorInterface.cpp:541
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::name
char * name() const
Get name value.
Definition: NavGraphGeneratorInterface.cpp:2305
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::name
char * name() const
Get name value.
Definition: NavGraphGeneratorInterface.cpp:1505
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::ori
float ori() const
Get ori value.
Definition: NavGraphGeneratorInterface.cpp:2142
fawkes::NavGraphGeneratorInterface::RemoveObstacleMessage::~RemoveObstacleMessage
~RemoveObstacleMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:1661
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:2626
fawkes::NavGraphGeneratorInterface::SetGraphDefaultPropertyMessage::SetGraphDefaultPropertyMessage
SetGraphDefaultPropertyMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:2669
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::maxlenof_value
size_t maxlenof_value() const
Get maximum length of value value.
Definition: NavGraphGeneratorInterface.cpp:1265
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::maxlenof_property_name
size_t maxlenof_property_name() const
Get maximum length of property_name value.
Definition: NavGraphGeneratorInterface.cpp:2347
fawkes::NavGraphGeneratorInterface::SetCopyGraphDefaultPropertiesMessage
SetCopyGraphDefaultPropertiesMessage Fawkes BlackBoard Interface Message.
Definition: NavGraphGeneratorInterface.h:701
fawkes::NavGraphGeneratorInterface::SetFilterMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:1096
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:2509
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::set_y
void set_y(const float new_y)
Set y value.
Definition: NavGraphGeneratorInterface.cpp:1901
fawkes::NavGraphGeneratorInterface::ClearMessage
ClearMessage Fawkes BlackBoard Interface Message.
Definition: NavGraphGeneratorInterface.h:180
fawkes::NavGraphGeneratorInterface::create_message
virtual Message * create_message(const char *type) const
Create message based on type name.
Definition: NavGraphGeneratorInterface.cpp:315
fawkes::NavGraphGeneratorInterface::ALGORITHM_GRID
@ ALGORITHM_GRID
Grid-based algorithm with customizable spacing.
Definition: NavGraphGeneratorInterface.h:133
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::set_y
void set_y(const float new_y)
Set y value.
Definition: NavGraphGeneratorInterface.cpp:1587
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::set_property_value
void set_property_value(const char *new_property_value)
Set property_value value.
Definition: NavGraphGeneratorInterface.cpp:2389
fawkes::NavGraphGeneratorInterface::tostring_FilterType
const char * tostring_FilterType(FilterType value) const
Convert FilterType constant to string.
Definition: NavGraphGeneratorInterface.cpp:130
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::set_p2_y
void set_p2_y(const float new_p2_y)
Set p2_y value.
Definition: NavGraphGeneratorInterface.cpp:931
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::maxlenof_p1_x
size_t maxlenof_p1_x() const
Get maximum length of p1_x value.
Definition: NavGraphGeneratorInterface.cpp:831
fawkes::NavGraphGeneratorInterface::ClearMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:446
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::p2_x
float p2_x() const
Get p2_x value.
Definition: NavGraphGeneratorInterface.cpp:881
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::maxlenof_ori
size_t maxlenof_ori() const
Get maximum length of ori value.
Definition: NavGraphGeneratorInterface.cpp:2152
fawkes::NavGraphGeneratorInterface::RemoveObstacleMessage::RemoveObstacleMessage
RemoveObstacleMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:1637
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:79
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::set_x
void set_x(const float new_x)
Set x value.
Definition: NavGraphGeneratorInterface.cpp:1871
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::is_directed
bool is_directed() const
Get directed value.
Definition: NavGraphGeneratorInterface.cpp:2562
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::mode
EdgeMode mode() const
Get mode value.
Definition: NavGraphGeneratorInterface.cpp:2595
fawkes::NavGraphGeneratorInterface::ComputeMessage::~ComputeMessage
~ComputeMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:3054
fawkes::NavGraphGeneratorInterface::maxlenof_ok
size_t maxlenof_ok() const
Get maximum length of ok value.
Definition: NavGraphGeneratorInterface.cpp:259
fawkes::NavGraphGeneratorInterface::SetAlgorithmParameterMessage::maxlenof_param
size_t maxlenof_param() const
Get maximum length of param value.
Definition: NavGraphGeneratorInterface.cpp:665
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::set_ori
void set_ori(const float new_ori)
Set ori value.
Definition: NavGraphGeneratorInterface.cpp:2162
fawkes::NavGraphGeneratorInterface::EdgeMode
EdgeMode
When adding edges, the mode defines how to add edges.
Definition: NavGraphGeneratorInterface.h:108
fawkes::NavGraphGeneratorInterface::RemoveObstacleMessage::maxlenof_name
size_t maxlenof_name() const
Get maximum length of name value.
Definition: NavGraphGeneratorInterface.cpp:1696
fawkes::NavGraphGeneratorInterface::RemovePointOfInterestMessage::RemovePointOfInterestMessage
RemovePointOfInterestMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:2937
fawkes::NavGraphGeneratorInterface::SetFilterMessage::filter
FilterType filter() const
Get filter value.
Definition: NavGraphGeneratorInterface.cpp:1032
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::set_p1_x
void set_p1_x(const float new_p1_x)
Set p1_x value.
Definition: NavGraphGeneratorInterface.cpp:841
fawkes::NavGraphGeneratorInterface::SetAlgorithmMessage::set_algorithm
void set_algorithm(const Algorithm new_algorithm)
Set algorithm value.
Definition: NavGraphGeneratorInterface.cpp:551
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::set_y
void set_y(const float new_y)
Set y value.
Definition: NavGraphGeneratorInterface.cpp:2132
fawkes::NavGraphGeneratorInterface::RemoveObstacleMessage::set_name
void set_name(const char *new_name)
Set name value.
Definition: NavGraphGeneratorInterface.cpp:1708
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::set_directed
void set_directed(const bool new_directed)
Set directed value.
Definition: NavGraphGeneratorInterface.cpp:2585
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::maxlenof_name
size_t maxlenof_name() const
Get maximum length of name value.
Definition: NavGraphGeneratorInterface.cpp:1829
fawkes::NavGraphGeneratorInterface::RemovePointOfInterestMessage
RemovePointOfInterestMessage Fawkes BlackBoard Interface Message.
Definition: NavGraphGeneratorInterface.h:731
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:1598
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::p2_y
float p2_y() const
Get p2_y value.
Definition: NavGraphGeneratorInterface.cpp:911
fawkes::NavGraphGeneratorInterface::is_final
bool is_final() const
Get final value.
Definition: NavGraphGeneratorInterface.cpp:212
fawkes::NavGraphGeneratorInterface::SetFilterMessage::SetFilterMessage
SetFilterMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:983
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::y
float y() const
Get y value.
Definition: NavGraphGeneratorInterface.cpp:1881
fawkes::NavGraphGeneratorInterface::ALGORITHM_VORONOI
@ ALGORITHM_VORONOI
Voronoi-based algorithm for navgraph generation.
Definition: NavGraphGeneratorInterface.h:129
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::set_name
void set_name(const char *new_name)
Set name value.
Definition: NavGraphGeneratorInterface.cpp:1527
fawkes::NavGraphGeneratorInterface::SetAlgorithmParameterMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:724
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:91
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::value
float value() const
Get value value.
Definition: NavGraphGeneratorInterface.cpp:1255
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::maxlenof_x
size_t maxlenof_x() const
Get maximum length of x value.
Definition: NavGraphGeneratorInterface.cpp:1861
fawkes::NavGraphGeneratorInterface::FORCE
@ FORCE
The edge is added as-is, it may overlap or intersect with other edges.
Definition: NavGraphGeneratorInterface.h:118
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage
AddPointOfInterestMessage Fawkes BlackBoard Interface Message.
Definition: NavGraphGeneratorInterface.h:489
fawkes
Fawkes library namespace.
fawkes::NavGraphGeneratorInterface::SetAlgorithmParameterMessage::set_param
void set_param(const char *new_param)
Set param value.
Definition: NavGraphGeneratorInterface.cpp:677
fawkes::NavGraphGeneratorInterface::SetGraphDefaultPropertyMessage::property_name
char * property_name() const
Get property_name value.
Definition: NavGraphGeneratorInterface.cpp:2717
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:109
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::set_property_name
void set_property_name(const char *new_property_name)
Set property_name value.
Definition: NavGraphGeneratorInterface.cpp:2357
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::set_p1
void set_p1(const char *new_p1)
Set p1 value.
Definition: NavGraphGeneratorInterface.cpp:2519
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::~SetPointOfInterestPropertyMessage
~SetPointOfInterestPropertyMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:2280
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::p1
char * p1() const
Get p1 value.
Definition: NavGraphGeneratorInterface.cpp:2499
fawkes::NavGraphGeneratorInterface::Algorithm
Algorithm
Available generator algorithms.
Definition: NavGraphGeneratorInterface.h:128
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::AddPointOfInterestWithOriMessage
AddPointOfInterestWithOriMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:1997
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::set_param
void set_param(const char *new_param)
Set param value.
Definition: NavGraphGeneratorInterface.cpp:1244
fawkes::NavGraphGeneratorInterface::set_ok
void set_ok(const bool new_ok)
Set ok value.
Definition: NavGraphGeneratorInterface.cpp:272
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::property_name
char * property_name() const
Get property_name value.
Definition: NavGraphGeneratorInterface.cpp:2337
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::p2
char * p2() const
Get p2 value.
Definition: NavGraphGeneratorInterface.cpp:2529
fawkes::NavGraphGeneratorInterface::RemovePointOfInterestMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:3019
fawkes::NavGraphGeneratorInterface::AddMapObstaclesMessage::max_line_point_distance
float max_line_point_distance() const
Get max_line_point_distance value.
Definition: NavGraphGeneratorInterface.cpp:1375
fawkes::Interface
Base class for all Fawkes BlackBoard interfaces.
Definition: interface.h:79
fawkes::NavGraphGeneratorInterface::is_ok
bool is_ok() const
Get ok value.
Definition: NavGraphGeneratorInterface.cpp:249
fawkes::NavGraphGeneratorInterface::AddMapObstaclesMessage
AddMapObstaclesMessage Fawkes BlackBoard Interface Message.
Definition: NavGraphGeneratorInterface.h:387
fawkes::NavGraphGeneratorInterface::AddMapObstaclesMessage::~AddMapObstaclesMessage
~AddMapObstaclesMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:1349
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::set_p2
void set_p2(const char *new_p2)
Set p2 value.
Definition: NavGraphGeneratorInterface.cpp:2549
fawkes::NavGraphGeneratorInterface::SetFilterMessage::maxlenof_filter
size_t maxlenof_filter() const
Get maximum length of filter value.
Definition: NavGraphGeneratorInterface.cpp:1042
fawkes::NavGraphGeneratorInterface::CLOSEST_EDGE
@ CLOSEST_EDGE
Connect point to the edge in which segment it lies, i.e.
Definition: NavGraphGeneratorInterface.h:63
fawkes::NavGraphGeneratorInterface::AddMapObstaclesMessage::AddMapObstaclesMessage
AddMapObstaclesMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:1325
fawkes::NavGraphGeneratorInterface::error_message
char * error_message() const
Get error_message value.
Definition: NavGraphGeneratorInterface.cpp:285
fawkes::NavGraphGeneratorInterface::SetGraphDefaultPropertyMessage::set_property_value
void set_property_value(const char *new_property_value)
Set property_value value.
Definition: NavGraphGeneratorInterface.cpp:2769
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::set_value
void set_value(const float new_value)
Set value value.
Definition: NavGraphGeneratorInterface.cpp:1276
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::maxlenof_y
size_t maxlenof_y() const
Get maximum length of y value.
Definition: NavGraphGeneratorInterface.cpp:1577
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::~AddObstacleMessage
~AddObstacleMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:1480
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::maxlenof_mode
size_t maxlenof_mode() const
Get maximum length of mode value.
Definition: NavGraphGeneratorInterface.cpp:1923
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::~AddPointOfInterestWithOriMessage
~AddPointOfInterestWithOriMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:2025
fawkes::interface_enum_map_t
std::map< int, std::string > interface_enum_map_t
Map of enum integer to string values.
Definition: types.h:54
fawkes::NavGraphGeneratorInterface::CLOSEST_EDGE_OR_NODE
@ CLOSEST_EDGE_OR_NODE
First try the CLOSEST_EDGE method.
Definition: NavGraphGeneratorInterface.h:70
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::maxlenof_p1_y
size_t maxlenof_p1_y() const
Get maximum length of p1_y value.
Definition: NavGraphGeneratorInterface.cpp:861
fawkes::NavGraphGeneratorInterface::message_valid
virtual bool message_valid(const Message *message) const
Check if message is valid and can be enqueued.
Definition: NavGraphGeneratorInterface.cpp:3087
fawkes::NavGraphGeneratorInterface::NOT_CONNECTED
@ NOT_CONNECTED
The node is will not be initially connected.
Definition: NavGraphGeneratorInterface.h:43
fawkes::NavGraphGeneratorInterface::SetCopyGraphDefaultPropertiesMessage::SetCopyGraphDefaultPropertiesMessage
SetCopyGraphDefaultPropertiesMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:2818
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::maxlenof_p2
size_t maxlenof_p2() const
Get maximum length of p2 value.
Definition: NavGraphGeneratorInterface.cpp:2539
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::y
float y() const
Get y value.
Definition: NavGraphGeneratorInterface.cpp:2112
fawkes::NavGraphGeneratorInterface::SetGraphDefaultPropertyMessage::set_property_name
void set_property_name(const char *new_property_name)
Set property_name value.
Definition: NavGraphGeneratorInterface.cpp:2737
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::set_name
void set_name(const char *new_name)
Set name value.
Definition: NavGraphGeneratorInterface.cpp:2072
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::mode
ConnectionMode mode() const
Get mode value.
Definition: NavGraphGeneratorInterface.cpp:1913
fawkes::NavGraphGeneratorInterface::SetAlgorithmMessage::SetAlgorithmMessage
SetAlgorithmMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:484
fawkes::NavGraphGeneratorInterface::tostring_EdgeMode
const char * tostring_EdgeMode(EdgeMode value) const
Convert EdgeMode constant to string.
Definition: NavGraphGeneratorInterface.cpp:144
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::maxlenof_filter
size_t maxlenof_filter() const
Get maximum length of filter value.
Definition: NavGraphGeneratorInterface.cpp:1201
fawkes::NavGraphGeneratorInterface::ComputeMessage
ComputeMessage Fawkes BlackBoard Interface Message.
Definition: NavGraphGeneratorInterface.h:762
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::set_name
void set_name(const char *new_name)
Set name value.
Definition: NavGraphGeneratorInterface.cpp:2327
fawkes::NavGraphGeneratorInterface::FilterType
FilterType
Post-processing filtering type.
Definition: NavGraphGeneratorInterface.h:78
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:1946
fawkes::NavGraphGeneratorInterface::SetAlgorithmParameterMessage::maxlenof_value
size_t maxlenof_value() const
Get maximum length of value value.
Definition: NavGraphGeneratorInterface.cpp:700
fawkes::NavGraphGeneratorInterface::SetAlgorithmMessage
SetAlgorithmMessage Fawkes BlackBoard Interface Message.
Definition: NavGraphGeneratorInterface.h:204
fawkes::NavGraphGeneratorInterface::UNCONNECTED
@ UNCONNECTED
The node is marked as unconnected and will not be connected to another node.
Definition: NavGraphGeneratorInterface.h:50
fawkes::NavGraphGeneratorInterface::AddEdgeMessage
AddEdgeMessage Fawkes BlackBoard Interface Message.
Definition: NavGraphGeneratorInterface.h:623
fawkes::NavGraphGeneratorInterface::CLOSEST_NODE
@ CLOSEST_NODE
Connect point to the node on the graph closest to the given point.
Definition: NavGraphGeneratorInterface.h:59
fawkes::NavGraphGeneratorInterface::SetFilterMessage::set_enable
void set_enable(const bool new_enable)
Set enable value.
Definition: NavGraphGeneratorInterface.cpp:1085
fawkes::NavGraphGeneratorInterface::RemovePointOfInterestMessage::set_name
void set_name(const char *new_name)
Set name value.
Definition: NavGraphGeneratorInterface.cpp:3008
fawkes::NavGraphGeneratorInterface::RemoveObstacleMessage::name
char * name() const
Get name value.
Definition: NavGraphGeneratorInterface.cpp:1686
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::~SetFilterParamFloatMessage
~SetFilterParamFloatMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:1167
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::maxlenof_mode
size_t maxlenof_mode() const
Get maximum length of mode value.
Definition: NavGraphGeneratorInterface.cpp:2184
fawkes::NavGraphGeneratorInterface::SetFilterMessage
SetFilterMessage Fawkes BlackBoard Interface Message.
Definition: NavGraphGeneratorInterface.h:312
fawkes::NavGraphGeneratorInterface::RemovePointOfInterestMessage::name
char * name() const
Get name value.
Definition: NavGraphGeneratorInterface.cpp:2986
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::SetPointOfInterestPropertyMessage
SetPointOfInterestPropertyMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:2254
fawkes::NavGraphGeneratorInterface::SetFilterMessage::is_enable
bool is_enable() const
Get enable value.
Definition: NavGraphGeneratorInterface.cpp:1064
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::maxlenof_name
size_t maxlenof_name() const
Get maximum length of name value.
Definition: NavGraphGeneratorInterface.cpp:1515
fawkes::NavGraphGeneratorInterface::msgid
uint32_t msgid() const
Get msgid value.
Definition: NavGraphGeneratorInterface.cpp:175
fawkes::NavGraphGeneratorInterface::ClearMessage::~ClearMessage
~ClearMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:422
fawkes::NavGraphGeneratorInterface::maxlenof_error_message
size_t maxlenof_error_message() const
Get maximum length of error_message value.
Definition: NavGraphGeneratorInterface.cpp:295
fawkes::NavGraphGeneratorInterface::maxlenof_final
size_t maxlenof_final() const
Get maximum length of final value.
Definition: NavGraphGeneratorInterface.cpp:222
fawkes::NavGraphGeneratorInterface::SetAlgorithmParameterMessage::set_value
void set_value(const char *new_value)
Set value value.
Definition: NavGraphGeneratorInterface.cpp:713
fawkes::NavGraphGeneratorInterface::maxlenof_msgid
size_t maxlenof_msgid() const
Get maximum length of msgid value.
Definition: NavGraphGeneratorInterface.cpp:185
fawkes::NavGraphGeneratorInterface::SetAlgorithmParameterMessage::~SetAlgorithmParameterMessage
~SetAlgorithmParameterMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:630
fawkes::NavGraphGeneratorInterface::ConnectionMode
ConnectionMode
Describe how to connect nodes to the graph.
Definition: NavGraphGeneratorInterface.h:42
fawkes::NavGraphGeneratorInterface::enum_tostring
virtual const char * enum_tostring(const char *enumtype, int val) const
Convert arbitrary enum value to string.
Definition: NavGraphGeneratorInterface.cpp:373
fawkes::NavGraphGeneratorInterface::copy_values
virtual void copy_values(const Interface *other)
Copy values from other interface.
Definition: NavGraphGeneratorInterface.cpp:362
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::maxlenof_x
size_t maxlenof_x() const
Get maximum length of x value.
Definition: NavGraphGeneratorInterface.cpp:2092
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:2400
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage::filter
FilterType filter() const
Get filter value.
Definition: NavGraphGeneratorInterface.cpp:1191
fawkes::NavGraphGeneratorInterface::SetAlgorithmParameterMessage
SetAlgorithmParameterMessage Fawkes BlackBoard Interface Message.
Definition: NavGraphGeneratorInterface.h:233
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::set_mode
void set_mode(const ConnectionMode new_mode)
Set mode value.
Definition: NavGraphGeneratorInterface.cpp:2196
fawkes::NavGraphGeneratorInterface::ComputeMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:3078
fawkes::NavGraphGeneratorInterface::RemoveObstacleMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:1719
fawkes::NavGraphGeneratorInterface::SetCopyGraphDefaultPropertiesMessage::is_enable_copy
bool is_enable_copy() const
Get enable_copy value.
Definition: NavGraphGeneratorInterface.cpp:2866
fawkes::NavGraphGeneratorInterface::AddObstacleMessage
AddObstacleMessage Fawkes BlackBoard Interface Message.
Definition: NavGraphGeneratorInterface.h:419
fawkes::NavGraphGeneratorInterface::tostring_Algorithm
const char * tostring_Algorithm(Algorithm value) const
Convert Algorithm constant to string.
Definition: NavGraphGeneratorInterface.cpp:158
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::set_p1_y
void set_p1_y(const float new_p1_y)
Set p1_y value.
Definition: NavGraphGeneratorInterface.cpp:871
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:942
fawkes::NavGraphGeneratorInterface::SetGraphDefaultPropertyMessage::maxlenof_property_value
size_t maxlenof_property_value() const
Get maximum length of property_value value.
Definition: NavGraphGeneratorInterface.cpp:2758
fawkes::NavGraphGeneratorInterface::AddPointOfInterestMessage::set_mode
void set_mode(const ConnectionMode new_mode)
Set mode value.
Definition: NavGraphGeneratorInterface.cpp:1935
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage
SetPointOfInterestPropertyMessage Fawkes BlackBoard Interface Message.
Definition: NavGraphGeneratorInterface.h:583
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::maxlenof_mode
size_t maxlenof_mode() const
Get maximum length of mode value.
Definition: NavGraphGeneratorInterface.cpp:2605
fawkes::NavGraphGeneratorInterface::SetAlgorithmParameterMessage::param
char * param() const
Get param value.
Definition: NavGraphGeneratorInterface.cpp:655
fawkes::NavGraphGeneratorInterface::set_final
void set_final(const bool new_final)
Set final value.
Definition: NavGraphGeneratorInterface.cpp:236
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::maxlenof_property_value
size_t maxlenof_property_value() const
Get maximum length of property_value value.
Definition: NavGraphGeneratorInterface.cpp:2378
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::~AddEdgeMessage
~AddEdgeMessage()
Destructor.
Definition: NavGraphGeneratorInterface.cpp:2476
fawkes::NavGraphGeneratorInterface::set_msgid
void set_msgid(const uint32_t new_msgid)
Set msgid value.
Definition: NavGraphGeneratorInterface.cpp:198
fawkes::NavGraphGeneratorInterface::SetPointOfInterestPropertyMessage::property_value
char * property_value() const
Get property_value value.
Definition: NavGraphGeneratorInterface.cpp:2368
fawkes::NavGraphGeneratorInterface::AddEdgeMessage::maxlenof_directed
size_t maxlenof_directed() const
Get maximum length of directed value.
Definition: NavGraphGeneratorInterface.cpp:2572
fawkes::NavGraphGeneratorInterface::ClearMessage::ClearMessage
ClearMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:399
fawkes::NavGraphGeneratorInterface
NavGraphGeneratorInterface Fawkes BlackBoard Interface.
Definition: NavGraphGeneratorInterface.h:34
fawkes::NavGraphGeneratorInterface::AddObstacleMessage::AddObstacleMessage
AddObstacleMessage()
Constructor.
Definition: NavGraphGeneratorInterface.cpp:1454
fawkes::NavGraphGeneratorInterface::SetAlgorithmMessage::clone
virtual Message * clone() const
Clone this message.
Definition: NavGraphGeneratorInterface.cpp:562
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage
SetBoundingBoxMessage Fawkes BlackBoard Interface Message.
Definition: NavGraphGeneratorInterface.h:271
fawkes::NavGraphGeneratorInterface::SetBoundingBoxMessage::p1_y
float p1_y() const
Get p1_y value.
Definition: NavGraphGeneratorInterface.cpp:851
fawkes::NavGraphGeneratorInterface::SetFilterParamFloatMessage
SetFilterParamFloatMessage Fawkes BlackBoard Interface Message.
Definition: NavGraphGeneratorInterface.h:347
fawkes::NavGraphGeneratorInterface::AddPointOfInterestWithOriMessage::maxlenof_name
size_t maxlenof_name() const
Get maximum length of name value.
Definition: NavGraphGeneratorInterface.cpp:2060