IBlobSet.h
Go to the documentation of this file.
1 /** A blob set holds a collection of blobs.
2  *
3  * See also ICluster which allows more rich associations.
4  */
5 
6 #ifndef WIRECELL_IBLOBSET
7 #define WIRECELL_IBLOBSET
8 
9 #include "WireCellIface/IData.h"
10 #include "WireCellIface/IBlob.h"
11 #include "WireCellIface/ISlice.h"
12 
13 namespace WireCell {
14 
15  class IBlobSet : public IData<IBlobSet> {
16  public:
17  virtual ~IBlobSet() ;
18 
19  /// Return some identifier number that is unique to this set.
20  virtual int ident() const = 0;
21 
22  /// A slice relevant to this set. This may be given even if
23  /// there are no blobs (which have their own pointer to a
24  /// slice).
25  virtual ISlice::pointer slice() const = 0;
26 
27  /// Return the blobs in this set. There is no ordering
28  /// requirement.
29  virtual IBlob::vector blobs() const = 0;
30 
31  /// Return a vector of the underlying IBlob::shape() in order (sugar).
32  virtual RayGrid::blobs_t shapes() const;
33  };
34 }
35 
36 #endif
std::shared_ptr< const ISlice > pointer
Definition: IData.h:19
virtual IBlob::vector blobs() const =0
std::vector< pointer > vector
Definition: IData.h:21
virtual ISlice::pointer slice() const =0
Definition: Main.h:22
std::vector< Blob > blobs_t
Definition: RayTiling.h:134
virtual int ident() const =0
Return some identifier number that is unique to this set.
virtual RayGrid::blobs_t shapes() const
Return a vector of the underlying IBlob::shape() in order (sugar).
Definition: IBlobSet.cxx:5