A container of partitions organised in a width/depth rectangular grid. More...
#include <Partitions.h>
Public Types | |
| using | Partition_t = Partition< Data > |
| Base type of the partition. More... | |
| using | Base_t = PartitionContainer< Data > |
| Base class. More... | |
| using | Data_t = typename Partition_t::Data_t |
| Type of contained data. More... | |
| using | Area_t = typename Partition_t::Area_t |
| Type of covered area. More... | |
| using | Subpartitions_t = typename Base_t::Subpartitions_t |
Public Types inherited from geo::part::PartitionContainer< Data > | |
| using | Base_t = PartitionWithData< Data > |
| Base class. More... | |
| using | Partition_t = Partition< Data > |
| Base type of the partition. More... | |
| using | Data_t = typename Partition_t::Data_t |
| using | Area_t = typename Partition_t::Area_t |
| using | Subpartitions_t = typename Partition_t::Subpartitions_t |
Public Types inherited from geo::part::PartitionWithData< Data > | |
| using | Base_t = Partition< Data > |
| Base class. More... | |
| using | Partition_t = Partition< Data > |
| Base type of the partition. More... | |
| using | Data_t = typename Partition_t::Data_t |
| Type of contained data. More... | |
| using | Area_t = typename Partition_t::Area_t |
| Type of covered area. More... | |
Public Types inherited from geo::part::Partition< Data > | |
| using | Data_t = Data |
| Type of data stored in the partition. More... | |
| using | Partition_t = Partition< Data > |
| This type. More... | |
| using | Area_t = PartitionBase::Area_t |
| Type of area. More... | |
| using | Subpartitions_t = std::vector< std::unique_ptr< Partition_t const >> |
| Type of list of subpartitions. It needs to preserve polymorphism. More... | |
Public Types inherited from geo::part::PartitionBase | |
| using | Area_t = AreaOwner::Area_t |
| using | AreaRangeMember_t = AreaOwner::AreaRangeMember_t |
Public Types inherited from geo::part::AreaOwner | |
| using | Area_t = lar::util::simple_geo::Rectangle< double > |
| Type of area covered by the partition. More... | |
| using | AreaRangeMember_t = Area_t::Range_t(Area_t::*) |
| Type of pointer to Area_t data member of type Range_t. More... | |
Public Member Functions | |
| GridPartition (Area_t const &area, Subpartitions_t &&subpartitions, unsigned int nDepthPartitions, unsigned int nWidthPartitions, Data_t *defData=nullptr) | |
| Creates a partition with a grid of subpartitions. More... | |
| GridPartition (Area_t const &area, Subpartitions_t &&subpartitions, unsigned int nDepthPartitions, Data_t *defData=nullptr) | |
Public Member Functions inherited from geo::part::PartitionContainer< Data > | |
| virtual Data_t * | atPoint (double w, double d) const override |
Returns stored datum only if point is covered, nullptr otherwise. More... | |
Public Member Functions inherited from geo::part::PartitionWithData< Data > | |
| PartitionWithData (Area_t const &area, Data_t *myData) | |
| Constructor: sets the covered area and the contained datum. More... | |
| virtual Data_t * | data () const override |
| Returns the datum directly stored (nullptr if none). More... | |
Public Member Functions inherited from geo::part::Partition< Data > | |
| Partition (Area_t const &area) | |
| Constructor: sets the covered area and no subpartitions. More... | |
| virtual | ~Partition ()=default |
| Destructor (default, virtual). More... | |
| std::string | describe (std::string indent, std::string firstIndent) const |
| Returns a description of the partition. More... | |
| std::string | describe (std::string indent="") const |
| Returns a description of the partition. More... | |
| template<typename Pred > | |
| void | walk (Pred &&pred) const |
Applies pred to all partitions. More... | |
| std::size_t | nParts () const |
| Returns the number of subparts in the partition (0 if simple element). More... | |
Public Member Functions inherited from geo::part::PartitionBase | |
| PartitionBase (Area_t const &area) | |
| Constructor: sets the covered area and no subpartitions. More... | |
Public Member Functions inherited from geo::part::AreaOwner | |
| AreaOwner (Area_t const &area) | |
| Constructor: sets the covered area and no subpartitions. More... | |
| bool | contains (double w, double d) const |
| Returns whether the specified point is covered by this object. More... | |
| Area_t const & | area () const |
| Returns the covered area. More... | |
| template<typename Stream > | |
| void | dumpArea (Stream &&out) const |
| Output the owned area into an output stream. More... | |
Private Member Functions | |
| std::size_t | nWidthParts () const |
| Number of partitions on width direction. More... | |
| std::size_t | nDepthParts () const |
| auto | part (std::size_t iDepth, std::size_t iWidth) -> decltype(auto) |
| auto | part (std::size_t iDepth, std::size_t iWidth) const -> decltype(auto) |
| virtual Partition_t const * | findPart (double w, double d) const override |
| Returns the only partition which could contain the specified depth. More... | |
| std::vector< double > | computeWidthSeps (unsigned int nD, unsigned int nW) const |
Computes and returns width separation levels proper for widthSeps. More... | |
| std::vector< double > | computeDepthSeps (unsigned int nD, unsigned int nW) const |
Computes and returns width separation levels proper for depthSeps. More... | |
| virtual std::string | doDescribe (std::string indent, std::string firstIndent) const override |
| Prints the information about the partition grid. More... | |
Static Private Member Functions | |
| template<PartitionBase::AreaRangeMember_t Range, typename BeginIter , typename EndIter > | |
| static std::vector< double > | detectSeparators (BeginIter b, EndIter e, std::size_t const nGroups, std::size_t const startDelta, std::size_t const stride) |
Private Attributes | |
| std::vector< double > | widthSeps |
| Separators for width dimension. More... | |
| std::vector< double > | depthSeps |
| Separators for depth dimension. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from geo::part::PartitionContainer< Data > | |
| std::size_t | size () const |
| Returns the number of contained subpartitions. More... | |
| virtual Subpartitions_t const & | parts () const override |
| Returns a list of the subpartitions owned. More... | |
| PartitionContainer (Area_t const &area, Subpartitions_t &&subpartitions, Data_t *defData=nullptr) | |
| Constructor: sets the partition. More... | |
| virtual std::string | describeIntro () const |
| Introduction to the description of the subpartitions. More... | |
Protected Member Functions inherited from geo::part::PartitionBase | |
| std::string | describeArea (std::string indent, std::string firstIndent) const |
| Returns a description of the partition area. More... | |
Static Protected Member Functions inherited from geo::part::Partition< Data > | |
| template<typename Pred > | |
| static void | walk (Partition_t const *start, Pred &&pred) |
Protected Attributes inherited from geo::part::PartitionContainer< Data > | |
| Subpartitions_t | myParts |
| List of subpartitions. More... | |
Static Protected Attributes inherited from geo::part::Partition< Data > | |
| static Subpartitions_t const | NoSubparts |
| Subpartitions (if any). More... | |
A container of partitions organised in a width/depth rectangular grid.
Definition at line 514 of file Partitions.h.
| using geo::part::GridPartition< Data >::Area_t = typename Partition_t::Area_t |
Type of covered area.
Definition at line 521 of file Partitions.h.
| using geo::part::GridPartition< Data >::Base_t = PartitionContainer<Data> |
Base class.
Definition at line 517 of file Partitions.h.
| using geo::part::GridPartition< Data >::Data_t = typename Partition_t::Data_t |
Type of contained data.
Definition at line 520 of file Partitions.h.
| using geo::part::GridPartition< Data >::Partition_t = Partition<Data> |
Base type of the partition.
Definition at line 516 of file Partitions.h.
| using geo::part::GridPartition< Data >::Subpartitions_t = typename Base_t::Subpartitions_t |
Definition at line 522 of file Partitions.h.
| geo::part::GridPartition< Data >::GridPartition | ( | Area_t const & | area, |
| Subpartitions_t && | subpartitions, | ||
| unsigned int | nDepthPartitions, | ||
| unsigned int | nWidthPartitions, | ||
| Data_t * | defData = nullptr |
||
| ) |
Creates a partition with a grid of subpartitions.
| area | total area covered by this partition |
| subpartitions | all subpartitions, row by row |
| nDepthPartitions | number of partitions on depth direction ("rows") |
| nWidthPartitions | number of partitions on width direction ("columns") |
| defData | partition data for areas not covered by subpartitions |
The content of the collection of subpartitions is stolen. The subpartitions in that collection are expected to be organized by row: (0;0), (0,1), (0,2)... where the first index spans nDepthPartitions values and the second one spans nWidthPartitions values.
Definition at line 934 of file Partitions.h.
| geo::part::GridPartition< Data >::GridPartition | ( | Area_t const & | area, |
| Subpartitions_t && | subpartitions, | ||
| unsigned int | nDepthPartitions, | ||
| Data_t * | defData = nullptr |
||
| ) |
Constructor: autodetects nWidthPartitions from number of subpartitions.
Definition at line 949 of file Partitions.h.
|
private |
Computes and returns width separation levels proper for depthSeps.
Definition at line 1013 of file Partitions.h.
|
private |
Computes and returns width separation levels proper for widthSeps.
Definition at line 1004 of file Partitions.h.
|
staticprivate |
Definition at line 1025 of file Partitions.h.
|
overrideprivatevirtual |
Prints the information about the partition grid.
Reimplemented from geo::part::PartitionContainer< Data >.
Definition at line 965 of file Partitions.h.
|
overrideprivatevirtual |
Returns the only partition which could contain the specified depth.
Implements geo::part::PartitionContainer< Data >.
Definition at line 987 of file Partitions.h.
|
inlineprivate |
Definition at line 561 of file Partitions.h.
|
inlineprivate |
Number of partitions on width direction.
Number of partitions on depth direction.
Definition at line 559 of file Partitions.h.
|
inlineprivate |
Definition at line 563 of file Partitions.h.
|
inlineprivate |
Definition at line 565 of file Partitions.h.
|
private |
Separators for depth dimension.
Definition at line 556 of file Partitions.h.
|
private |
Separators for width dimension.
Definition at line 555 of file Partitions.h.
1.8.11