Partition divided in subpartitions (abstract). More...
#include <Partitions.h>
Public Types | |
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 | |
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... | |
Protected Member Functions | |
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 Partition_t const * | findPart (double w, double d) const =0 |
Returns the only partition which could contain the specified width. More... | |
virtual std::string | doDescribe (std::string indent, std::string firstIndent) const override |
Describes this and each of the subpartitions. 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... | |
Protected Attributes | |
Subpartitions_t | myParts |
List of subpartitions. More... | |
Additional Inherited Members | |
Static Protected Member Functions inherited from geo::part::Partition< Data > | |
template<typename Pred > | |
static void | walk (Partition_t const *start, Pred &&pred) |
Static Protected Attributes inherited from geo::part::Partition< Data > | |
static Subpartitions_t const | NoSubparts |
Subpartitions (if any). More... | |
Partition divided in subpartitions (abstract).
Definition at line 322 of file Partitions.h.
using geo::part::PartitionContainer< Data >::Area_t = typename Partition_t::Area_t |
Definition at line 330 of file Partitions.h.
using geo::part::PartitionContainer< Data >::Base_t = PartitionWithData<Data> |
Base class.
Definition at line 325 of file Partitions.h.
using geo::part::PartitionContainer< Data >::Data_t = typename Partition_t::Data_t |
Definition at line 329 of file Partitions.h.
using geo::part::PartitionContainer< Data >::Partition_t = Partition<Data> |
Base type of the partition.
Definition at line 326 of file Partitions.h.
using geo::part::PartitionContainer< Data >::Subpartitions_t = typename Partition_t::Subpartitions_t |
Definition at line 331 of file Partitions.h.
|
inlineprotected |
Constructor: sets the partition.
area | overall area covered |
subpartitions | list of subpartitions (pointers) |
defData | datum to be returned for points not covered by subpartitions |
The subpartitions will be moved from the argument.
It is required and assumed that the subpartitions do not overlap and that the points covered by them are a subset of area
. Neither of theses requirements is checked.
Definition at line 358 of file Partitions.h.
|
overridevirtual |
Returns stored datum only if point is covered, nullptr
otherwise.
Reimplemented from geo::part::PartitionWithData< Data >.
Definition at line 841 of file Partitions.h.
|
protectedvirtual |
Introduction to the description of the subpartitions.
Reimplemented in geo::part::WidthPartition< Data >, and geo::part::DepthPartition< Data >.
Definition at line 875 of file Partitions.h.
|
overrideprotectedvirtual |
Describes this and each of the subpartitions.
Reimplemented from geo::part::PartitionWithData< Data >.
Reimplemented in geo::part::GridPartition< Data >.
Definition at line 854 of file Partitions.h.
|
protectedpure virtual |
Returns the only partition which could contain the specified width.
Implemented in geo::part::GridPartition< Data >, geo::part::WidthPartition< Data >, and geo::part::DepthPartition< Data >.
|
inlineoverrideprotectedvirtual |
Returns a list of the subpartitions owned.
Reimplemented from geo::part::Partition< Data >.
Definition at line 343 of file Partitions.h.
|
inlineprotected |
Returns the number of contained subpartitions.
Definition at line 340 of file Partitions.h.
|
protected |
List of subpartitions.
Definition at line 337 of file Partitions.h.