AuboCaps  0.6.0
feature_model.h
Go to the documentation of this file.
1 #ifndef AUBO_SCOPE_FEATURE_MODEL_H
2 #define AUBO_SCOPE_FEATURE_MODEL_H
3 
4 #include <vector>
5 #include <functional>
7 
8 namespace arcs {
9 namespace aubo_scope {
10 
11 ARCS_CLASS_FORWARD(FeatureModel);
12 
13 /**
14  * Provides methods that returns features from the current robot installation.
15  */
17 {
18 public:
21  ~FeatureModel();
22 
23  std::vector<FeaturePtr> getAll();
24 
25  /**
26  * @return the geometric features of the current installation
27  */
28  /**
29  * @param clazz the sort of geometric feature of interest, e.g.
30  * <code>FeaturePoint.class</code>,
31  * <code>FeatureLine.class</code>,
32  * <code>FeaturePlane.class</code>
33  * @param <T> The Feature type
34  * @return the collection of the corresponding features
35  */
36  template <typename T>
37  std::vector<FeaturePtr> getGeomFeture();
38 
39  FeaturePtr getByName(const std::string &name);
40 
41  /**
42  * @return the base feature of the current installation.
43  */
44  FeaturePtr getBaseFeature();
45 
46  /**
47  * @return the tool feature of the current installation.
48  */
49  FeaturePtr getToolFeature();
50 
51  std::vector<FeaturePtr> getFeatures(std::function<bool(FeaturePtr)> filter);
52 
53 private:
54  friend class DataSwitch;
55  FeatureModel();
56  void *d_{ nullptr };
57 };
58 
59 } // namespace aubo_scope
60 } // namespace arcs
61 
62 #endif // AUBO_SCOPE_FEATURE_MODEL_H
ARCS_CLASS_FORWARD(GripForceCapability)
Provides methods that returns features from the current robot installation.
Definition: feature_model.h:16
#define ARCS_ABI_EXPORT
Definition: class_forward.h:16