MRPT  2.0.4
test.cpp
Go to the documentation of this file.
1 /* +------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | https://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2020, Individual contributors, see AUTHORS file |
6  | See: https://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See: https://www.mrpt.org/License |
8  +------------------------------------------------------------------------+ */
9 
13 #include <mrpt/system/CObserver.h>
14 #include <iostream>
15 
16 using namespace mrpt::obs;
17 using namespace mrpt::maps;
18 using namespace mrpt::poses;
19 using namespace mrpt::system;
20 using namespace std;
21 
22 // Load a example laser scan:
24 {
27  return scan1;
28 }
29 
31 {
32  protected:
33  void OnEvent(const mrptEvent& e) override
34  {
36  cout << "[MyObserver] Event received: mrptEventMetricMapClear\n";
37  else if (e.isOfType<mrptEventMetricMapInsert>())
38  cout << "[MyObserver] Event received: mrptEventMetricMapInsert\n";
39  else if (e.isOfType<mrptEventOnDestroy>())
40  cout << "[MyObserver] Event received: mrptEventOnDestroy\n";
41  else
42  cout << "[MyObserver] Event received: Generic mrptEvent \n";
43  }
44 };
45 
46 // ------------------------------------------------------
47 // TestObserverPattern
48 // ------------------------------------------------------
50 {
51  CSimplePointsMap::Ptr map1 = CSimplePointsMap::Create();
52 
54 
55  // Start observer:
57  observer.observeBegin(*map1);
58 
59  // Insert:
60  for (int i = 0; i < 3; i++) map1->insertObservation(obs);
61 
62  // Clear:
63  map1->clear();
64 
65  // Insert again:
66  map1->insertObservation(obs);
67 
68  // Destroy
69  map1.reset();
70 }
71 
72 int main()
73 {
74  try
75  {
77 
78  return 0;
79  }
80  catch (exception& e)
81  {
82  cout << "MRPT exception caught: " << e.what() << endl;
83  return -1;
84  }
85  catch (...)
86  {
87  printf("Another exception!!");
88  return -1;
89  }
90 }
mrpt::system::mrptEvent
The basic event type for the observer-observable pattern in MRPT.
Definition: mrptEvent.h:31
mrpt::maps::mrptEventMetricMapClear
Event emitted by a metric up upon call of clear()
Definition: CMetricMapEvents.h:28
mrpt::obs::CObservation2DRangeScan
A "CObservation"-derived class that represents a 2D range scan measurement (typically from a laser sc...
Definition: CObservation2DRangeScan.h:54
MyObserver
Definition: vision_stereo_rectify/test.cpp:26
mrpt::system::CObserver::observeBegin
void observeBegin(CObservable &obj)
Starts the subscription of this observer to the given object.
Definition: CObserver.cpp:26
mrpt::poses
Classes for 2D/3D geometry representation, both of single values and probability density distribution...
Definition: CHierarchicalMapMHPartition.h:22
mrpt::obs
This namespace contains representation of robot actions and observations.
Definition: CParticleFilter.h:17
mrpt::system::mrptEvent::isOfType
bool isOfType() const
Definition: mrptEvent.h:41
stock_observations.h
main
int main()
Definition: vision_stereo_rectify/test.cpp:78
mrpt::maps::CSimplePointsMap::Ptr
std::shared_ptr< mrpt::maps ::CSimplePointsMap > Ptr
Definition: CSimplePointsMap.h:32
observer
MyObserver observer
Definition: vision_stereo_rectify/test.cpp:71
mrpt::system::mrptEventOnDestroy
An event sent by any CObservable object (automatically) just before being destroyed and telling its o...
Definition: mrptEvent.h:66
CObserver.h
getScan
CObservation2DRangeScan getScan()
Definition: vision_stereo_rectify/test.cpp:23
mrpt::obs::stock_observations::example2DRangeScan
void example2DRangeScan(mrpt::obs::CObservation2DRangeScan &s, int i=0)
Example 2D lidar scans (form a venerable SICK LMS200).
Definition: stock_observations.cpp:23
mrpt::system::CObserver
Inherit from this class to get notified about events from any CObservable object after subscribing to...
Definition: CObserver.h:34
TestObserverPattern
void TestObserverPattern()
Definition: vision_stereo_rectify/test.cpp:49
mrpt::maps
Definition: CBeacon.h:21
CSimplePointsMap.h
mrpt::maps::mrptEventMetricMapInsert
Event emitted by a metric up upon a succesful call to insertObservation()
Definition: CMetricMapEvents.h:47
CObservation2DRangeScan.h
mrpt::system
Definition: backtrace.h:14



Page generated by Doxygen 1.8.17 for MRPT 2.0.4 at Sun Jul 19 17:54:30 UTC 2020