YARP
Yet Another Robot Platform
PointCloudTypes.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2006-2020 Istituto Italiano di Tecnologia (IIT)
3  * Copyright (C) 2010 Willow Garage, Inc.
4  * Copyright (C) 2012 Open Perception, Inc.
5  * All rights reserved.
6  *
7  * This software may be modified and distributed under the terms of the
8  * BSD-3-Clause license. See the accompanying LICENSE file for details.
9  */
10 
11 
12 #ifndef YARP_SIG_POINTCLOUDTYPES_H
13 #define YARP_SIG_POINTCLOUDTYPES_H
14 
15 #include <yarp/conf/system.h>
16 
17 #include <yarp/os/Bottle.h>
18 #include <yarp/os/LogStream.h>
19 #include <yarp/os/NetInt32.h>
20 #include <yarp/sig/Vector.h>
21 
22 namespace yarp {
23 namespace sig {
24 
25 
26 // Plain xy point is not supported for now ... does it make sense to have it?
27 // How to let the user to add his own type?
28 
29 // Define a bit for each piece of information we want to carry
30 // Is enum better?? Define some helper to get a string from number
34 enum PointCloudBasicType : std::int32_t {
35  PC_XY_DATA = (1 << 0) ,
36  PC_XYZ_DATA = (1 << 1) ,
37  PC_RGBA_DATA = (1 << 2) ,
38  PC_INTENSITY_DATA = (1 << 3) ,
39  PC_INTEREST_DATA = (1 << 4) , // in PCL this field is also called strength
40  PC_NORMAL_DATA = (1 << 5) ,
41  PC_CURVATURE_DATA = (1 << 6) ,
42  PC_RANGE_DATA = (1 << 7) ,
43  PC_VIEWPOINT_DATA = (1 << 8) ,
44  PC_MOMENT_INV_DATA = (1 << 9) ,
45  PC_RADII_RSD_DATA = (1 << 10),
46  PC_BOUNDARY_DATA = (1 << 11),
51  PC_NARF_36_DATA = (1 << 16),
52  PC_BORDER_DATA = (1 << 17),
54  PC_HISTOGRAM_DATA = (1 << 19),
55  PC_SCALE_DATA = (1 << 20),
56  PC_CONFIDENCE_DATA = (1 << 21),
57  PC_RADIUS_DATA = (1 << 22),
58  PC_USER_DEFINED = (1 << 23),
59  PC_PADDING2 = (1 << 24),
60  PC_PADDING3 = (1 << 25)
61 };
65 enum PointCloudCompositeType : std::int32_t {
66 // Shortcuts names for matching PCL predefined types
74  PCL_POINT_XYZ_NORMAL_RGBA = (PC_XYZ_DATA | PC_RGBA_DATA | PC_NORMAL_DATA | PC_CURVATURE_DATA | PC_PADDING2), // Actually PCL has PointXYZRGBNormal, not RGBA, but downgrade from rgba to rgb can be done while casting
91 };
92 
93 // Defined as in PCL pointTypes.h file for better compatibility
94 enum PointCloudBorderTrait : std::int32_t
95 {
111 };
112 
113 // Definition of single fields data structures
115 struct DataXY
116 {
117  union
118  {
119  float _xy[2];
120  struct
121  {
122  float x;
123  float y;
124  };
125  };
126  std::string toString(int precision, int width) const
127  {
128  std::string ret = "";
129  char tmp[128];
130  if (width < 0) {
131  snprintf(tmp, 128, "% .*lf % .*lf\t", precision, x,
132  precision, y);
133  ret += tmp;
134 
135  } else {
136  snprintf(tmp, 128, "% *.*lf % *.*lf", width, precision, x,
137  width, precision, y);
138  ret += tmp;
139  }
140  return ret;
141  }
143  {
145  ret.addFloat64(x);
146  ret.addFloat64(y);
147  return ret;
148  }
149  void fromBottle(const yarp::os::Bottle& bt, size_t i)
150  {
151  yarp::os::Bottle* intBt = bt.get(static_cast<int>(i)).asList();
152  x = static_cast<float>(intBt->get(0).asFloat64());
153  y = static_cast<float>(intBt->get(1).asFloat64());
154  return;
155  }
156 };
158 
159 // xyz
161 struct DataXYZ
162 {
163  union
164  {
165  float _xyz[4];
166  struct
167  {
168  float x;
169  float y;
170  float z;
171  };
172  };
173  std::string toString(int precision, int width) const
174  {
175  std::string ret = "";
176  char tmp[128];
177  if (width < 0) {
178  snprintf(tmp, 128, "% .*lf % .*lf % .*lf\t", precision, x,
179  precision, y,
180  precision, z);
181  ret += tmp;
182 
183  } else {
184  snprintf(tmp, 128, "% *.*lf % *.*lf % *.*lf", width, precision, x,
185  width, precision, y,
186  width, precision, z);
187  ret += tmp;
188  }
189  return ret;
190  }
192  {
194  ret.addFloat64(x);
195  ret.addFloat64(y);
196  ret.addFloat64(z);
197  return ret;
198  }
200  {
201  yarp::sig::Vector v(3);
202  v[0] = x;
203  v[1] = y;
204  v[2] = z;
205  return v;
206  }
208  {
209  yarp::sig::Vector v(4);
210  v[0] = x;
211  v[1] = y;
212  v[2] = z;
213  v[3] = 1;
214  return v;
215  }
216  void fromBottle(const yarp::os::Bottle& bt, size_t i)
217  {
218  yarp::os::Bottle* intBt = bt.get(static_cast<int>(i)).asList();
219 
220  if (!intBt) {
221  return;
222  }
223 
224  x = static_cast<float>(intBt->get(0).asFloat64());
225  y = static_cast<float>(intBt->get(1).asFloat64());
226  z = static_cast<float>(intBt->get(2).asFloat64());
227  return;
228  }
229 };
231 
232 // RGBA fields - quite useless alone
234 struct DataRGBA
235 {
236  union
237  {
238  struct
239  {
240  unsigned char b;
241  unsigned char g;
242  unsigned char r;
243  unsigned char a;
244  };
246 // float data_c[4];
247  };
248  std::string toString(int precision, int width) const
249  {
250  YARP_UNUSED(precision);
251  YARP_UNUSED(width);
252  std::string ret = "";
253  char tmp[128];
254  snprintf(tmp, 128, "%c %c %c %c\t", r, g, b, a);
255  ret += tmp;
256  return ret;
257  }
259  {
261  ret.addInt32(r);
262  ret.addInt32(g);
263  ret.addInt32(b);
264  ret.addInt32(a);
265  return ret;
266  }
267  void fromBottle(const yarp::os::Bottle& bt, size_t i)
268  {
269  yarp::os::Bottle* intBt = bt.get(static_cast<int>(i)).asList();
270  r = intBt->get(0).asInt32();
271  g = intBt->get(1).asInt32();
272  b = intBt->get(2).asInt32();
273  a = intBt->get(3).asInt32();
274  return;
275  }
276 };
278 
279 // Normal
282 {
283  union
284  {
285  float filler_n[4];
286  float normal[3];
287  struct
288  {
289  float normal_x;
290  float normal_y;
291  float normal_z;
292  };
293  };
294  union
295  {
296  struct
297  {
298  float curvature;
299  };
300  float data_c[4];
301  };
302  std::string toString(int precision, int width) const
303  {
304  std::string ret = "";
305  char tmp[128];
306  if (width < 0) {
307  snprintf(tmp, 128, "% .*lf % .*lf % .*lf % .*lf\t", precision, normal_x,
308  precision, normal_y,
309  precision, normal_z,
310  precision, curvature);
311  ret += tmp;
312 
313  } else {
314  snprintf(tmp, 128, "% *.*lf % *.*lf % *.*lf % *.*lf", width, precision, normal_x,
315  width, precision, normal_y,
316  width, precision, normal_z,
317  width, precision, curvature);
318  ret += tmp;
319  }
320  return ret;
321  }
323  {
325  ret.addFloat64(normal_x);
326  ret.addFloat64(normal_y);
327  ret.addFloat64(normal_z);
328  ret.addFloat64(curvature);
329  return ret;
330  }
331  void fromBottle(const yarp::os::Bottle& bt, size_t i)
332  {
333  yarp::os::Bottle* intBt = bt.get(static_cast<int>(i)).asList();
334 
335  if (!intBt) {
336  return;
337  }
338 
339  normal_x = static_cast<float>(intBt->get(0).asFloat64());
340  normal_y = static_cast<float>(intBt->get(1).asFloat64());
341  normal_z = static_cast<float>(intBt->get(2).asFloat64());
342  curvature = static_cast<float>(intBt->get(3).asFloat64());
343  return;
344  }
345 };
347 
350 {
351  union
352  {
353  float filler_n[4];
354  float normal[3];
355  struct
356  {
357  float normal_x;
358  float normal_y;
359  float normal_z;
360  };
361  };
362  std::string toString(int precision, int width) const
363  {
364  std::string ret = "";
365  char tmp[128];
366  if (width < 0) {
367  snprintf(tmp, 128, "% .*lf % .*lf % .*lf\t", precision, normal_x,
368  precision, normal_y,
369  precision, normal_z);
370  ret += tmp;
371 
372  } else {
373  snprintf(tmp, 128, "% *.*lf % *.*lf % *.*lf", width, precision, normal_x,
374  width, precision, normal_y,
375  width, precision, normal_z);
376  ret += tmp;
377  }
378  return ret;
379  }
381  {
383  ret.addFloat64(normal_x);
384  ret.addFloat64(normal_y);
385  ret.addFloat64(normal_z);
386  return ret;
387  }
388  void fromBottle(const yarp::os::Bottle& bt, size_t i)
389  {
390  yarp::os::Bottle* intBt = bt.get(static_cast<int>(i)).asList();
391 
392  if (!intBt) {
393  return;
394  }
395 
396  normal_x = static_cast<float>(intBt->get(0).asFloat64());
397  normal_y = static_cast<float>(intBt->get(1).asFloat64());
398  normal_z = static_cast<float>(intBt->get(2).asFloat64());
399  return;
400  }
401 };
403 
404 // curvature
407 {
408  union
409  {
410  struct
411  {
412  float curvature;
413  };
414  };
415 };
417 // Range
418 typedef float Range;
419 
420 // viewPoint
423 {
424  union
425  {
426  float _xyz[4];
427  struct
428  {
429  float vp_x;
430  float vp_y;
431  float vp_z;
432  };
433  };
434  std::string toString(int precision, int width) const
435  {
436  std::string ret = "";
437  char tmp[128];
438  if (width < 0) {
439  snprintf(tmp, 128, "% .*lf % .*lf % .*lf\t", precision, vp_x,
440  precision, vp_y,
441  precision, vp_z);
442  ret += tmp;
443 
444  } else {
445  snprintf(tmp, 128, "% *.*lf % *.*lf % *.*lf", width, precision, vp_x,
446  width, precision, vp_y,
447  width, precision, vp_z);
448  ret += tmp;
449  }
450  return ret;
451  }
453  {
455  ret.addFloat64(vp_x);
456  ret.addFloat64(vp_y);
457  ret.addFloat64(vp_z);
458  return ret;
459  }
460  void fromBottle(const yarp::os::Bottle& bt, size_t i)
461  {
462  yarp::os::Bottle* intBt = bt.get(static_cast<int>(i)).asList();
463 
464  if (!intBt) {
465  return;
466  }
467 
468  vp_x = static_cast<float>(intBt->get(0).asFloat64());
469  vp_y = static_cast<float>(intBt->get(1).asFloat64());
470  vp_z = static_cast<float>(intBt->get(2).asFloat64());
471  return;
472  }
473 };
475 
476 // TBD: many others ...
477 
478 
479 //
480 // Definition of packed types - PCL style
481 //
482 
483 // xyz + rgba - most common type
486 {
487  union
488  {
489  float _xyz[4];
490  struct
491  {
492  float x;
493  float y;
494  float z;
495  float xyz_padding;
496  };
497  };
498 
499  union
500  {
501  struct
502  {
503  unsigned char b;
504  unsigned char g;
505  unsigned char r;
506  unsigned char a;
507  };
509  float rgba_padding[4];
510  };
511  std::string toString(int precision, int width) const
512  {
513  std::string ret = "";
514  char tmp[128];
515  if (width < 0) {
516  snprintf(tmp, 128, "% .*lf % .*lf % .*lf ", precision, x,
517  precision, y,
518  precision, z);
519  ret += tmp;
520 
521  } else {
522  snprintf(tmp, 128, "% *.*lf % *.*lf % *.*lf ", width, precision, x,
523  width, precision, y,
524  width, precision, z);
525  ret += tmp;
526  }
527  snprintf(tmp, 128, "%c %c %c %c\t", r, g, b, a);
528  ret += tmp;
529  return ret;
530  }
532  {
534  ret.addFloat64(x);
535  ret.addFloat64(y);
536  ret.addFloat64(z);
537  ret.addInt32(r);
538  ret.addInt32(g);
539  ret.addInt32(b);
540  ret.addInt32(a);
541  return ret;
542  }
543  void fromBottle(const yarp::os::Bottle& bt, size_t i)
544  {
545  yarp::os::Bottle* intBt = bt.get(static_cast<int>(i)).asList();
546 
547  if (!intBt) {
548  return;
549  }
550 
551  x = static_cast<float>(intBt->get(0).asFloat64());
552  y = static_cast<float>(intBt->get(1).asFloat64());
553  z = static_cast<float>(intBt->get(2).asFloat64());
554  r = intBt->get(3).asInt32();
555  g = intBt->get(4).asInt32();
556  b = intBt->get(5).asInt32();
557  a = intBt->get(6).asInt32();
558  return;
559  }
560 };
562 
563 // xyz + intensity
565 struct DataXYZI
566 {
567  union
568  {
569  float _xyz[4];
570  struct
571  {
572  float x;
573  float y;
574  float z;
575  };
576  };
577 
578  union
579  {
580  struct
581  {
582  float intensity;
583  };
585  };
586  std::string toString(int precision, int width) const
587  {
588  std::string ret = "";
589  char tmp[128];
590  if (width < 0) {
591  snprintf(tmp, 128, "% .*lf % .*lf % .*lf % .*lf\t", precision, x,
592  precision, y,
593  precision, z,
594  precision, intensity);
595  ret += tmp;
596 
597  } else {
598  snprintf(tmp, 128, "% *.*lf % *.*lf % *.*lf % *.*lf", width, precision, x,
599  width, precision, y,
600  width, precision, z,
601  width, precision, intensity);
602  ret += tmp;
603  }
604  return ret;
605  }
607  {
609  ret.addFloat64(x);
610  ret.addFloat64(y);
611  ret.addFloat64(z);
612  ret.addFloat64(intensity);
613  return ret;
614  }
615  void fromBottle(const yarp::os::Bottle& bt, size_t i)
616  {
617  yarp::os::Bottle* intBt = bt.get(static_cast<int>(i)).asList();
618 
619  if (!intBt) {
620  return;
621  }
622 
623  x = static_cast<float>(intBt->get(0).asFloat64());
624  y = static_cast<float>(intBt->get(1).asFloat64());
625  z = static_cast<float>(intBt->get(2).asFloat64());
626  intensity = static_cast<float>(intBt->get(3).asFloat64());
627  return;
628  }
629 };
631 
632 // interest point -> xyz + strength
635 {
636  union
637  {
638  float _xyz[4];
639  struct
640  {
641  float x;
642  float y;
643  float z;
644  };
645  };
646 
647  union
648  {
649  struct
650  {
651  float strength;
652  };
654  };
655  std::string toString(int precision, int width) const
656  {
657  std::string ret = "";
658  char tmp[128];
659  if (width < 0) {
660  snprintf(tmp, 128, "% .*lf % .*lf % .*lf % .*lf\t", precision, x,
661  precision, y,
662  precision, z,
663  precision, strength);
664  ret += tmp;
665 
666  } else {
667  snprintf(tmp, 128, "% *.*lf % *.*lf % *.*lf % *.*lf", width, precision, x,
668  width, precision, y,
669  width, precision, z,
670  width, precision, strength);
671  ret += tmp;
672  }
673  return ret;
674  }
676  {
678  ret.addFloat64(x);
679  ret.addFloat64(y);
680  ret.addFloat64(z);
681  ret.addFloat64(strength);
682  return ret;
683  }
684  void fromBottle(const yarp::os::Bottle& bt, size_t i)
685  {
686  yarp::os::Bottle* intBt = bt.get(static_cast<int>(i)).asList();
687 
688  if (!intBt) {
689  return;
690  }
691 
692  x = static_cast<float>(intBt->get(0).asFloat64());
693  y = static_cast<float>(intBt->get(1).asFloat64());
694  z = static_cast<float>(intBt->get(2).asFloat64());
695  strength = static_cast<float>(intBt->get(3).asFloat64());
696  return;
697  }
698 };
700 
701 
702 // point xyz + normals
705 {
706  union
707  {
708  float data[4];
709  struct
710  {
711  float x;
712  float y;
713  float z;
714  };
715  };
716  union
717  {
718  float filler_n[4];
719  float normal[3];
720  struct
721  {
722  float normal_x;
723  float normal_y;
724  float normal_z;
725  };
726  };
727  union
728  {
729  struct
730  {
731  float curvature;
732  };
733  float filler_c[4];
734  };
735  std::string toString(int precision, int width) const
736  {
737  std::string ret = "";
738  char tmp[128];
739  if (width < 0) {
740  snprintf(tmp, 128, "% .*lf % .*lf % .*lf ", precision, x,
741  precision, y,
742  precision, z);
743  ret += tmp;
744  snprintf(tmp, 128, "% .*lf % .*lf % .*lf % .*lf\t", precision, normal_x,
745  precision, normal_y,
746  precision, normal_z,
747  precision, curvature);
748  ret += tmp;
749 
750  } else {
751  snprintf(tmp, 128, "% *.*lf % *.*lf % *.*lf ", width, precision, x,
752  width, precision, y,
753  width, precision, z);
754  ret += tmp;
755  snprintf(tmp, 128, "% *.*lf % *.*lf % *.*lf % *.*lf", width, precision, normal_x,
756  width, precision, normal_y,
757  width, precision, normal_z,
758  width, precision, curvature);
759  ret += tmp;
760  }
761  return ret;
762  }
764  {
766  ret.addFloat64(x);
767  ret.addFloat64(y);
768  ret.addFloat64(z);
769  ret.addFloat64(normal_x);
770  ret.addFloat64(normal_y);
771  ret.addFloat64(normal_z);
772  ret.addFloat64(curvature);
773  return ret;
774  }
775  void fromBottle(const yarp::os::Bottle& bt, size_t i)
776  {
777  yarp::os::Bottle* intBt = bt.get(static_cast<int>(i)).asList();
778 
779  if (!intBt) {
780  return;
781  }
782 
783  x = static_cast<float>(intBt->get(0).asFloat64());
784  y = static_cast<float>(intBt->get(1).asFloat64());
785  z = static_cast<float>(intBt->get(2).asFloat64());
786  normal_x = static_cast<float>(intBt->get(3).asFloat64());
787  normal_y = static_cast<float>(intBt->get(4).asFloat64());
788  normal_z = static_cast<float>(intBt->get(5).asFloat64());
789  curvature = static_cast<float>(intBt->get(6).asFloat64());
790  return;
791  }
792 };
794 
795 // point xyz + normals + RGBA
798 {
799  union
800  {
801  float data[4];
802  struct
803  {
804  float x;
805  float y;
806  float z;
807  };
808  };
809  union
810  {
811  float filler_n[4];
812  float normal[3];
813  struct
814  {
815  float normal_x;
816  float normal_y;
817  float normal_z;
818  };
819  };
820  union
821  {
822  struct
823  {
824  // PCL here uses float rgb, probably for ROS compatibility as stated for PointXYZRGB
825  // Check compatibility, it should be ok if rgb component are in the right place and we drop 'a'
826  union
827  {
828  struct
829  {
830  unsigned char b;
831  unsigned char g;
832  unsigned char r;
833  unsigned char a;
834  };
836  };
837  float curvature;
838  };
839  float filler_others[4];
840  };
841  std::string toString(int precision, int width) const
842  {
843  std::string ret = "";
844  char tmp[128];
845  if (width < 0) {
846  snprintf(tmp, 128, "% .*lf % .*lf % .*lf ", precision, x,
847  precision, y,
848  precision, z);
849  ret += tmp;
850  snprintf(tmp, 128, "% .*lf % .*lf % .*lf % .*lf ", precision, normal_x,
851  precision, normal_y,
852  precision, normal_z,
853  precision, curvature);
854  ret += tmp;
855 
856  } else {
857  snprintf(tmp, 128, "% *.*lf % *.*lf % *.*lf ", width, precision, x,
858  width, precision, y,
859  width, precision, z);
860  ret += tmp;
861  snprintf(tmp, 128, "% *.*lf % *.*lf % *.*lf % *.*lf ", width, precision, normal_x,
862  width, precision, normal_y,
863  width, precision, normal_z,
864  width, precision, curvature);
865  ret += tmp;
866  }
867  snprintf(tmp, 128, "%c %c %c %c\t", r, g, b, a);
868  ret += tmp;
869  return ret;
870  }
872  {
874  ret.addFloat64(x);
875  ret.addFloat64(y);
876  ret.addFloat64(z);
877  ret.addFloat64(normal_x);
878  ret.addFloat64(normal_y);
879  ret.addFloat64(normal_z);
880  ret.addFloat64(curvature);
881  ret.addInt32(r);
882  ret.addInt32(g);
883  ret.addInt32(b);
884  ret.addInt32(a);
885  return ret;
886  }
887  void fromBottle(const yarp::os::Bottle& bt, size_t i)
888  {
889  yarp::os::Bottle* intBt = bt.get(static_cast<int>(i)).asList();
890 
891  if (!intBt) {
892  return;
893  }
894 
895  x = static_cast<float>(intBt->get(0).asFloat64());
896  y = static_cast<float>(intBt->get(1).asFloat64());
897  z = static_cast<float>(intBt->get(2).asFloat64());
898  normal_x = static_cast<float>(intBt->get(3).asFloat64());
899  normal_y = static_cast<float>(intBt->get(4).asFloat64());
900  normal_z = static_cast<float>(intBt->get(5).asFloat64());
901  curvature = static_cast<float>(intBt->get(6).asFloat64());
902  r = intBt->get(7).asInt32();
903  g = intBt->get(8).asInt32();
904  b = intBt->get(9).asInt32();
905  a = intBt->get(10).asInt32();
906  return;
907  }
908 };
910 
911 // TBD: many others ...
912 
913 } // namespace sig
914 } // namespace yarp
915 
916 
917 #endif // YARP_SIG_POINTCLOUDTYPES_H
LogStream.h
yarp::sig::DataNormal::filler_n
float filler_n[4]
Definition: PointCloudTypes.h:285
yarp::sig::BORDER_TRAIT__SHADOW_BORDER_RIGHT
@ BORDER_TRAIT__SHADOW_BORDER_RIGHT
Definition: PointCloudTypes.h:100
yarp::sig::DataXYZ::toVector3
yarp::sig::Vector toVector3() const
Definition: PointCloudTypes.h:199
yarp::os::Bottle
A simple collection of objects that can be described and transmitted in a portable way.
Definition: Bottle.h:72
yarp::sig::PC_SCALE_DATA
@ PC_SCALE_DATA
Definition: PointCloudTypes.h:55
yarp::sig::BORDER_TRAIT__OBSTACLE_BORDER_LEFT
@ BORDER_TRAIT__OBSTACLE_BORDER_LEFT
Definition: PointCloudTypes.h:106
yarp::sig::PointCloudBorderTrait
PointCloudBorderTrait
Definition: PointCloudTypes.h:94
yarp::sig::DataXYZNormalRGBA::normal_x
float normal_x
Definition: PointCloudTypes.h:815
yarp::sig::DataXYZI::z
float z
Definition: PointCloudTypes.h:574
yarp::sig::DataInterestPointXYZ::toBottle
yarp::os::Bottle toBottle() const
Definition: PointCloudTypes.h:675
yarp::sig::DataXY::_xy
float _xy[2]
Definition: PointCloudTypes.h:119
yarp::sig::DataXYZNormalRGBA::normal_z
float normal_z
Definition: PointCloudTypes.h:817
yarp::sig::DataXYZI::y
float y
Definition: PointCloudTypes.h:573
yarp::sig::DataRGBA::r
unsigned char r
Definition: PointCloudTypes.h:242
yarp::sig::DataXYZNormal::normal_y
float normal_y
Definition: PointCloudTypes.h:723
yarp::sig::DataXYZNormalRGBA::fromBottle
void fromBottle(const yarp::os::Bottle &bt, size_t i)
Definition: PointCloudTypes.h:887
yarp::sig::PC_RADII_RSD_DATA
@ PC_RADII_RSD_DATA
Definition: PointCloudTypes.h:45
yarp::sig::PC_FPFH_SIGNAT_33_DATA
@ PC_FPFH_SIGNAT_33_DATA
Definition: PointCloudTypes.h:49
yarp::sig::BORDER_TRAIT__OBSTACLE_BORDER_TOP
@ BORDER_TRAIT__OBSTACLE_BORDER_TOP
Definition: PointCloudTypes.h:103
Vector.h
YARP_END_PACK
#define YARP_END_PACK
Definition: system.h:194
yarp::sig::Range
float Range
Definition: PointCloudTypes.h:418
yarp::sig::PC_VIEWPOINT_DATA
@ PC_VIEWPOINT_DATA
Definition: PointCloudTypes.h:43
yarp::sig::PointCloudBasicType
PointCloudBasicType
The PointCloudBasicTypes enum.
Definition: PointCloudTypes.h:34
yarp::sig::DataXYZRGBA::b
unsigned char b
Definition: PointCloudTypes.h:503
yarp::sig::DataXYZRGBA::x
float x
Definition: PointCloudTypes.h:492
yarp::sig::DataXYZNormal::y
float y
Definition: PointCloudTypes.h:712
yarp::sig::DataNormal::curvature
float curvature
Definition: PointCloudTypes.h:298
yarp::sig::PC_USER_DEFINED
@ PC_USER_DEFINED
Definition: PointCloudTypes.h:58
NetInt32.h
YARP_UNUSED
#define YARP_UNUSED(var)
Definition: api.h:159
yarp::sig::DataXYZ::_xyz
float _xyz[4]
Definition: PointCloudTypes.h:165
yarp::sig::DataNormal::normal
float normal[3]
Definition: PointCloudTypes.h:286
yarp::sig::DataXYZNormalRGBA::curvature
float curvature
Definition: PointCloudTypes.h:837
yarp::sig::DataXYZI::intensity_padding
float intensity_padding[4]
Definition: PointCloudTypes.h:584
yarp::sig::DataNormalNoCurvature::toBottle
yarp::os::Bottle toBottle() const
Definition: PointCloudTypes.h:380
yarp::sig::PCL_POINT2D_BORDER
@ PCL_POINT2D_BORDER
Definition: PointCloudTypes.h:86
yarp::sig::PC_BOUNDARY_DATA
@ PC_BOUNDARY_DATA
Definition: PointCloudTypes.h:46
yarp::sig::DataXYZNormal::x
float x
Definition: PointCloudTypes.h:711
yarp::sig::DataXYZRGBA::xyz_padding
float xyz_padding
Definition: PointCloudTypes.h:495
yarp::sig::DataXYZNormalRGBA::normal
float normal[3]
Definition: PointCloudTypes.h:812
YARP_BEGIN_PACK
#define YARP_BEGIN_PACK
Definition: system.h:193
yarp::sig::DataXYZNormal::filler_c
float filler_c[4]
Definition: PointCloudTypes.h:733
yarp::sig::DataXYZ::y
float y
Definition: PointCloudTypes.h:169
yarp::sig::DataXYZ::fromBottle
void fromBottle(const yarp::os::Bottle &bt, size_t i)
Definition: PointCloudTypes.h:216
yarp::sig::DataXYZNormal::toBottle
yarp::os::Bottle toBottle() const
Definition: PointCloudTypes.h:763
yarp::sig::DataCurvature
Definition: PointCloudTypes.h:406
yarp::sig::DataInterestPointXYZ::x
float x
Definition: PointCloudTypes.h:641
yarp::sig::DataXYZNormal::normal_z
float normal_z
Definition: PointCloudTypes.h:724
yarp::sig::DataNormal::toBottle
yarp::os::Bottle toBottle() const
Definition: PointCloudTypes.h:322
yarp::sig::PC_INTENSITY_GRAD_DATA
@ PC_INTENSITY_GRAD_DATA
Definition: PointCloudTypes.h:53
yarp::sig::PCL_POINT_XYZ_RANGE
@ PCL_POINT_XYZ_RANGE
Definition: PointCloudTypes.h:76
yarp::sig::DataInterestPointXYZ::y
float y
Definition: PointCloudTypes.h:642
yarp::sig::PCL_PRINCIPAL_RADII_RSD
@ PCL_PRINCIPAL_RADII_RSD
Definition: PointCloudTypes.h:79
yarp::sig::PC_RANGE_DATA
@ PC_RANGE_DATA
Definition: PointCloudTypes.h:42
yarp::sig::DataNormalNoCurvature::normal_x
float normal_x
Definition: PointCloudTypes.h:357
yarp::sig::DataXYZNormal::toString
std::string toString(int precision, int width) const
Definition: PointCloudTypes.h:735
yarp::sig::DataRGBA
Definition: PointCloudTypes.h:234
yarp::sig::DataXYZNormalRGBA::toString
std::string toString(int precision, int width) const
Definition: PointCloudTypes.h:841
yarp::sig::DataRGBA::toString
std::string toString(int precision, int width) const
Definition: PointCloudTypes.h:248
yarp::sig::DataNormalNoCurvature::filler_n
float filler_n[4]
Definition: PointCloudTypes.h:353
yarp::sig::BORDER_TRAIT__VEIL_POINT_LEFT
@ BORDER_TRAIT__VEIL_POINT_LEFT
Definition: PointCloudTypes.h:110
ret
bool ret
Definition: ImplementAxisInfo.cpp:72
yarp::sig::PCL_INTEREST_POINT_XYZ
@ PCL_INTEREST_POINT_XYZ
Definition: PointCloudTypes.h:71
yarp::sig::PCL_POINT_XYZ_NORMAL_RGBA
@ PCL_POINT_XYZ_NORMAL_RGBA
Definition: PointCloudTypes.h:74
yarp::sig::BORDER_TRAIT__SHADOW_BORDER_BOTTOM
@ BORDER_TRAIT__SHADOW_BORDER_BOTTOM
Definition: PointCloudTypes.h:101
yarp::sig::DataXYZNormalRGBA::g
unsigned char g
Definition: PointCloudTypes.h:831
yarp::sig::DataXYZNormalRGBA::x
float x
Definition: PointCloudTypes.h:804
yarp::sig::DataXYZRGBA::g
unsigned char g
Definition: PointCloudTypes.h:504
yarp::sig::DataXYZ
Definition: PointCloudTypes.h:161
yarp::sig::PC_BORDER_DATA
@ PC_BORDER_DATA
Definition: PointCloudTypes.h:52
yarp::sig::DataRGBA::a
unsigned char a
Definition: PointCloudTypes.h:243
yarp::sig::DataInterestPointXYZ::z
float z
Definition: PointCloudTypes.h:643
yarp::sig::DataXYZNormal::z
float z
Definition: PointCloudTypes.h:713
yarp::sig::DataXYZ::toVector4
yarp::sig::Vector toVector4() const
Definition: PointCloudTypes.h:207
yarp::sig::PCL_FPFH_SIGNAT_33
@ PCL_FPFH_SIGNAT_33
Definition: PointCloudTypes.h:83
yarp::sig::DataXYZRGBA::toBottle
yarp::os::Bottle toBottle() const
Definition: PointCloudTypes.h:531
yarp::sig::PC_MOMENT_INV_DATA
@ PC_MOMENT_INV_DATA
Definition: PointCloudTypes.h:44
yarp::sig::PCL_VFH_SIGNAT_308
@ PCL_VFH_SIGNAT_308
Definition: PointCloudTypes.h:84
yarp::sig::PC_RADIUS_DATA
@ PC_RADIUS_DATA
Definition: PointCloudTypes.h:57
yarp::sig::DataXYZNormal::normal
float normal[3]
Definition: PointCloudTypes.h:719
yarp::sig::DataXYZNormal::curvature
float curvature
Definition: PointCloudTypes.h:731
yarp::sig::DataViewpoint::fromBottle
void fromBottle(const yarp::os::Bottle &bt, size_t i)
Definition: PointCloudTypes.h:460
yarp::sig::PC_XYZ_DATA
@ PC_XYZ_DATA
Definition: PointCloudTypes.h:36
yarp::sig::PCL_POINT_XYZ_VIEWPOINT
@ PCL_POINT_XYZ_VIEWPOINT
Definition: PointCloudTypes.h:77
yarp::sig::DataNormal::normal_z
float normal_z
Definition: PointCloudTypes.h:291
yarp::sig::DataNormal::normal_x
float normal_x
Definition: PointCloudTypes.h:289
yarp::sig::PC_NORMAL_DATA
@ PC_NORMAL_DATA
Definition: PointCloudTypes.h:40
yarp::sig::DataXYZRGBA::fromBottle
void fromBottle(const yarp::os::Bottle &bt, size_t i)
Definition: PointCloudTypes.h:543
yarp::sig::VectorOf< double >
yarp::sig::PCL_POINT_XYZ_NORMAL
@ PCL_POINT_XYZ_NORMAL
Definition: PointCloudTypes.h:73
yarp::sig::DataXYZNormal
Definition: PointCloudTypes.h:704
yarp::sig::DataNormalNoCurvature::normal
float normal[3]
Definition: PointCloudTypes.h:354
yarp::sig::DataViewpoint::_xyz
float _xyz[4]
Definition: PointCloudTypes.h:426
yarp::sig::DataViewpoint::toBottle
yarp::os::Bottle toBottle() const
Definition: PointCloudTypes.h:452
yarp::sig::DataInterestPointXYZ::strength_padding
float strength_padding[4]
Definition: PointCloudTypes.h:653
yarp::sig::DataNormalNoCurvature::toString
std::string toString(int precision, int width) const
Definition: PointCloudTypes.h:362
yarp::sig::BORDER_TRAIT__OBSTACLE_BORDER_RIGHT
@ BORDER_TRAIT__OBSTACLE_BORDER_RIGHT
Definition: PointCloudTypes.h:104
yarp::sig::BORDER_TRAIT__OBSTACLE_BORDER
@ BORDER_TRAIT__OBSTACLE_BORDER
Definition: PointCloudTypes.h:96
yarp::sig::DataXYZNormalRGBA::y
float y
Definition: PointCloudTypes.h:805
yarp::sig::DataXYZRGBA::a
unsigned char a
Definition: PointCloudTypes.h:506
yarp::sig::PC_PADDING2
@ PC_PADDING2
Definition: PointCloudTypes.h:59
yarp::sig::DataViewpoint::toString
std::string toString(int precision, int width) const
Definition: PointCloudTypes.h:434
yarp::sig::PC_PADDING3
@ PC_PADDING3
Definition: PointCloudTypes.h:60
yarp::sig::BORDER_TRAIT__VEIL_POINT_TOP
@ BORDER_TRAIT__VEIL_POINT_TOP
Definition: PointCloudTypes.h:107
yarp::sig::PC_CURVATURE_DATA
@ PC_CURVATURE_DATA
Definition: PointCloudTypes.h:41
yarp::os::Bottle::get
Value & get(size_type index) const
Reads a Value v from a certain part of the list.
Definition: Bottle.cpp:249
yarp::sig::DataXY::x
float x
Definition: PointCloudTypes.h:122
yarp::sig::PC_RGBA_DATA
@ PC_RGBA_DATA
Definition: PointCloudTypes.h:37
yarp::sig::PC_INTEREST_DATA
@ PC_INTEREST_DATA
Definition: PointCloudTypes.h:39
yarp::sig::DataXYZI::fromBottle
void fromBottle(const yarp::os::Bottle &bt, size_t i)
Definition: PointCloudTypes.h:615
yarp::sig::DataViewpoint::vp_y
float vp_y
Definition: PointCloudTypes.h:430
yarp::sig::DataXYZ::toString
std::string toString(int precision, int width) const
Definition: PointCloudTypes.h:173
yarp::sig::BORDER_TRAIT__OBSTACLE_BORDER_BOTTOM
@ BORDER_TRAIT__OBSTACLE_BORDER_BOTTOM
Definition: PointCloudTypes.h:105
yarp::sig::DataXYZNormalRGBA::rgba
yarp::os::NetInt32 rgba
Definition: PointCloudTypes.h:835
yarp::sig::PCL_NARF_36
@ PCL_NARF_36
Definition: PointCloudTypes.h:85
yarp::sig::BORDER_TRAIT__VEIL_POINT
@ BORDER_TRAIT__VEIL_POINT
Definition: PointCloudTypes.h:98
yarp::sig::DataXY
Definition: PointCloudTypes.h:115
yarp::sig::DataXYZRGBA::z
float z
Definition: PointCloudTypes.h:494
yarp::sig::DataRGBA::fromBottle
void fromBottle(const yarp::os::Bottle &bt, size_t i)
Definition: PointCloudTypes.h:267
yarp::sig::PC_HISTOGRAM_DATA
@ PC_HISTOGRAM_DATA
Definition: PointCloudTypes.h:54
yarp::sig::PCL_POINT_XYZ
@ PCL_POINT_XYZ
Definition: PointCloudTypes.h:68
yarp::sig::DataNormalNoCurvature
Definition: PointCloudTypes.h:349
yarp::sig::DataXYZNormalRGBA::toBottle
yarp::os::Bottle toBottle() const
Definition: PointCloudTypes.h:871
yarp::sig::DataXYZNormal::normal_x
float normal_x
Definition: PointCloudTypes.h:722
yarp::sig::DataXYZNormal::data
float data[4]
Definition: PointCloudTypes.h:708
yarp::sig::DataXYZNormalRGBA::z
float z
Definition: PointCloudTypes.h:806
yarp::sig::DataXYZNormalRGBA::normal_y
float normal_y
Definition: PointCloudTypes.h:816
yarp::sig::DataXYZRGBA
Definition: PointCloudTypes.h:485
yarp::sig::DataXY::toString
std::string toString(int precision, int width) const
Definition: PointCloudTypes.h:126
yarp::sig::DataXYZ::toBottle
yarp::os::Bottle toBottle() const
Definition: PointCloudTypes.h:191
yarp::sig::DataXYZNormal::fromBottle
void fromBottle(const yarp::os::Bottle &bt, size_t i)
Definition: PointCloudTypes.h:775
yarp::sig::DataViewpoint
Definition: PointCloudTypes.h:422
yarp::sig::DataXYZI::_xyz
float _xyz[4]
Definition: PointCloudTypes.h:569
yarp::sig::PCL_POINT_XYZ_SCALE
@ PCL_POINT_XYZ_SCALE
Definition: PointCloudTypes.h:89
yarp::sig::DataRGBA::toBottle
yarp::os::Bottle toBottle() const
Definition: PointCloudTypes.h:258
yarp::sig::BORDER_TRAIT__VEIL_POINT_RIGHT
@ BORDER_TRAIT__VEIL_POINT_RIGHT
Definition: PointCloudTypes.h:108
yarp::sig::PCL_POINT2D_XY
@ PCL_POINT2D_XY
Definition: PointCloudTypes.h:67
yarp::sig::DataXYZRGBA::toString
std::string toString(int precision, int width) const
Definition: PointCloudTypes.h:511
yarp::sig::PCL_POINT_XYZ_I_NORMAL
@ PCL_POINT_XYZ_I_NORMAL
Definition: PointCloudTypes.h:75
yarp::sig::DataXYZ::x
float x
Definition: PointCloudTypes.h:168
yarp::sig::DataXYZI::toString
std::string toString(int precision, int width) const
Definition: PointCloudTypes.h:586
yarp::sig::DataXYZNormalRGBA::data
float data[4]
Definition: PointCloudTypes.h:801
yarp::sig::DataRGBA::g
unsigned char g
Definition: PointCloudTypes.h:241
yarp::sig::PCL_PFH_SIGNAT_125
@ PCL_PFH_SIGNAT_125
Definition: PointCloudTypes.h:82
system.h
yarp::sig::DataCurvature::curvature
float curvature
Definition: PointCloudTypes.h:412
yarp::sig::PC_INTENSITY_DATA
@ PC_INTENSITY_DATA
Definition: PointCloudTypes.h:38
yarp::sig::BORDER_TRAIT__SHADOW_BORDER_LEFT
@ BORDER_TRAIT__SHADOW_BORDER_LEFT
Definition: PointCloudTypes.h:102
yarp::sig::DataXYZI::toBottle
yarp::os::Bottle toBottle() const
Definition: PointCloudTypes.h:606
yarp::sig::DataViewpoint::vp_z
float vp_z
Definition: PointCloudTypes.h:431
yarp::sig::PC_PFH_SIGNAT_125_DATA
@ PC_PFH_SIGNAT_125_DATA
Definition: PointCloudTypes.h:48
yarp::sig::DataNormal
Definition: PointCloudTypes.h:281
yarp::sig::PC_VFH_SIGNAT_308_DATA
@ PC_VFH_SIGNAT_308_DATA
Definition: PointCloudTypes.h:50
yarp::os::Value::asInt32
virtual std::int32_t asInt32() const
Get 32-bit integer value.
Definition: Value.cpp:207
yarp::sig::DataXYZRGBA::y
float y
Definition: PointCloudTypes.h:493
yarp::sig::PCL_POINT_XYZ_RGBA
@ PCL_POINT_XYZ_RGBA
Definition: PointCloudTypes.h:69
yarp::sig::PCL_POINT_XYZ_SURFEL
@ PCL_POINT_XYZ_SURFEL
Definition: PointCloudTypes.h:90
yarp::sig::DataNormal::toString
std::string toString(int precision, int width) const
Definition: PointCloudTypes.h:302
yarp::sig::DataRGBA::b
unsigned char b
Definition: PointCloudTypes.h:240
yarp::sig::DataXYZNormalRGBA::r
unsigned char r
Definition: PointCloudTypes.h:832
yarp::sig::DataXYZNormal::filler_n
float filler_n[4]
Definition: PointCloudTypes.h:718
yarp::sig::DataInterestPointXYZ::_xyz
float _xyz[4]
Definition: PointCloudTypes.h:638
yarp
Definition: environment.h:18
yarp::sig::DataXYZNormalRGBA::filler_others
float filler_others[4]
Definition: PointCloudTypes.h:839
yarp::sig::BORDER_TRAIT__VEIL_POINT_BOTTOM
@ BORDER_TRAIT__VEIL_POINT_BOTTOM
Definition: PointCloudTypes.h:109
yarp::sig::PCL_PC_HISTOGRAM_N
@ PCL_PC_HISTOGRAM_N
Definition: PointCloudTypes.h:88
yarp::sig::DataXYZNormalRGBA::b
unsigned char b
Definition: PointCloudTypes.h:830
yarp::sig::DataInterestPointXYZ::toString
std::string toString(int precision, int width) const
Definition: PointCloudTypes.h:655
yarp::sig::DataInterestPointXYZ::fromBottle
void fromBottle(const yarp::os::Bottle &bt, size_t i)
Definition: PointCloudTypes.h:684
yarp::sig::PC_CONFIDENCE_DATA
@ PC_CONFIDENCE_DATA
Definition: PointCloudTypes.h:56
yarp::sig::DataXYZI
Definition: PointCloudTypes.h:565
yarp::sig::PCL_BOUNDARY
@ PCL_BOUNDARY
Definition: PointCloudTypes.h:80
yarp::sig::PC_PRINCIPAL_CURVATURE_DATA
@ PC_PRINCIPAL_CURVATURE_DATA
Definition: PointCloudTypes.h:47
yarp::sig::DataNormalNoCurvature::normal_z
float normal_z
Definition: PointCloudTypes.h:359
yarp::os::Value::asList
virtual Bottle * asList() const
Get list value.
Definition: Value.cpp:243
yarp::sig::DataXYZRGBA::r
unsigned char r
Definition: PointCloudTypes.h:505
yarp::sig::DataXYZ::z
float z
Definition: PointCloudTypes.h:170
yarp::sig::PC_XY_DATA
@ PC_XY_DATA
Definition: PointCloudTypes.h:35
yarp::sig::PC_NARF_36_DATA
@ PC_NARF_36_DATA
Definition: PointCloudTypes.h:51
yarp::sig::DataXY::toBottle
yarp::os::Bottle toBottle() const
Definition: PointCloudTypes.h:142
yarp::sig::DataXYZNormalRGBA::a
unsigned char a
Definition: PointCloudTypes.h:833
yarp::sig::DataXYZNormalRGBA
Definition: PointCloudTypes.h:797
yarp::sig::DataNormalNoCurvature::normal_y
float normal_y
Definition: PointCloudTypes.h:358
yarp::sig::DataXYZRGBA::rgba
yarp::os::NetInt32 rgba
Definition: PointCloudTypes.h:508
yarp::sig::PCL_POINT_XYZ_I
@ PCL_POINT_XYZ_I
Definition: PointCloudTypes.h:70
yarp::sig::BORDER_TRAIT__SHADOW_BORDER
@ BORDER_TRAIT__SHADOW_BORDER
Definition: PointCloudTypes.h:97
yarp::sig::PCL_INTENSITY_GRADIENT
@ PCL_INTENSITY_GRADIENT
Definition: PointCloudTypes.h:87
yarp::sig::PointCloudCompositeType
PointCloudCompositeType
The PointCloudCompositeType enum.
Definition: PointCloudTypes.h:65
yarp::sig::DataXYZI::intensity
float intensity
Definition: PointCloudTypes.h:582
yarp::sig::PCL_MOMENT_INVARIANTS
@ PCL_MOMENT_INVARIANTS
Definition: PointCloudTypes.h:78
yarp::sig::DataNormalNoCurvature::fromBottle
void fromBottle(const yarp::os::Bottle &bt, size_t i)
Definition: PointCloudTypes.h:388
yarp::sig::DataXYZI::x
float x
Definition: PointCloudTypes.h:572
yarp::sig::BORDER_TRAIT__SHADOW_BORDER_TOP
@ BORDER_TRAIT__SHADOW_BORDER_TOP
Definition: PointCloudTypes.h:99
yarp::sig::DataNormal::fromBottle
void fromBottle(const yarp::os::Bottle &bt, size_t i)
Definition: PointCloudTypes.h:331
yarp::sig::DataNormal::data_c
float data_c[4]
Definition: PointCloudTypes.h:300
yarp::sig::PCL_PRINCIPAL_CURVATURES
@ PCL_PRINCIPAL_CURVATURES
Definition: PointCloudTypes.h:81
yarp::sig::DataViewpoint::vp_x
float vp_x
Definition: PointCloudTypes.h:429
yarp::os::Value::asFloat64
virtual yarp::conf::float64_t asFloat64() const
Get 64-bit floating point value.
Definition: Value.cpp:225
yarp::sig::DataXYZNormalRGBA::filler_n
float filler_n[4]
Definition: PointCloudTypes.h:811
yarp::sig::DataNormal::normal_y
float normal_y
Definition: PointCloudTypes.h:290
yarp::sig::DataRGBA::rgba
yarp::os::NetInt32 rgba
Definition: PointCloudTypes.h:245
Bottle.h
yarp::sig::DataXYZRGBA::rgba_padding
float rgba_padding[4]
Definition: PointCloudTypes.h:509
yarp::sig::DataXYZRGBA::_xyz
float _xyz[4]
Definition: PointCloudTypes.h:489
yarp::sig::DataInterestPointXYZ
Definition: PointCloudTypes.h:634
yarp::sig::PCL_NORMAL
@ PCL_NORMAL
Definition: PointCloudTypes.h:72
yarp::sig::DataXY::y
float y
Definition: PointCloudTypes.h:123
yarp::sig::DataXY::fromBottle
void fromBottle(const yarp::os::Bottle &bt, size_t i)
Definition: PointCloudTypes.h:149
yarp::sig::DataInterestPointXYZ::strength
float strength
Definition: PointCloudTypes.h:651
yarp::os::NetInt32
std::int32_t NetInt32
Definition of the NetInt32 type.
Definition: NetInt32.h:33