LArSoft  v10_04_05
Liquid Argon Software toolkit - https://larsoft.org/
geo::part::GridPartition< Data > Class Template Reference

A container of partitions organised in a width/depth rectangular grid. More...

#include "Partitions.h"

Inheritance diagram for geo::part::GridPartition< Data >:
geo::part::PartitionContainer< Data > geo::part::PartitionWithData< Data > geo::part::Partition< Data > geo::part::PartitionBase geo::part::AreaOwner

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
 
using AreaRangeMember_t = AreaOwner::AreaRangeMember_t
 

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)
 Constructor: autodetects nWidthPartitions from number of subpartitions. More...
 
virtual Data_tatPoint (double w, double d) const override
 Returns stored datum only if point is covered, nullptr otherwise. More...
 
virtual Data_tdata () const override
 Returns the datum directly stored (nullptr if none). 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...
 
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...
 
virtual std::string describeIntro () const
 Introduction to the description of the subpartitions. More...
 
std::string describeArea (std::string indent, std::string firstIndent) const
 Returns a description of the partition area. More...
 

Static Protected Member Functions

template<typename Pred >
static void walk (Partition_t const *start, Pred &&pred)
 Applies pred to start partition first, and then to all subpartitions. More...
 

Protected Attributes

Subpartitions_t myParts
 List of subpartitions. More...
 

Static Protected Attributes

static Subpartitions_t const NoSubparts
 Subpartitions (if any). 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...
 

Detailed Description

template<typename Data>
class geo::part::GridPartition< Data >

A container of partitions organised in a width/depth rectangular grid.

Definition at line 470 of file Partitions.h.

Member Typedef Documentation

template<typename Data >
using geo::part::GridPartition< Data >::Area_t = typename Partition_t::Area_t

Type of covered area.

Definition at line 477 of file Partitions.h.

template<typename Data >
using geo::part::GridPartition< Data >::Base_t = PartitionContainer<Data>

Base class.

Definition at line 473 of file Partitions.h.

template<typename Data >
using geo::part::GridPartition< Data >::Data_t = typename Partition_t::Data_t

Type of contained data.

Definition at line 476 of file Partitions.h.

template<typename Data >
using geo::part::GridPartition< Data >::Partition_t = Partition<Data>

Base type of the partition.

Definition at line 472 of file Partitions.h.

template<typename Data >
using geo::part::GridPartition< Data >::Subpartitions_t = typename Base_t::Subpartitions_t

Definition at line 478 of file Partitions.h.

Constructor & Destructor Documentation

template<typename Data >
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.

Parameters
areatotal area covered by this partition
subpartitionsall subpartitions, row by row
nDepthPartitionsnumber of partitions on depth direction ("rows")
nWidthPartitionsnumber of partitions on width direction ("columns")
defDatapartition 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 835 of file Partitions.h.

References geo::part::PartitionContainer< Data >::size().

841  : Base_t(area, std::move(subpartitions), defData)
842  , widthSeps(computeWidthSeps(nDepthPartitions, nWidthPartitions))
843  , depthSeps(computeDepthSeps(nDepthPartitions, nWidthPartitions))
844 {
845  assert(nWidthPartitions * nDepthPartitions == Base_t::size());
846 }
std::vector< double > computeDepthSeps(unsigned int nD, unsigned int nW) const
Computes and returns width separation levels proper for depthSeps.
Definition: Partitions.h:906
std::vector< double > depthSeps
Separators for depth dimension.
Definition: Partitions.h:508
std::vector< double > widthSeps
Separators for width dimension.
Definition: Partitions.h:507
std::vector< double > computeWidthSeps(unsigned int nD, unsigned int nW) const
Computes and returns width separation levels proper for widthSeps.
Definition: Partitions.h:898
PartitionContainer< Data > Base_t
Base class.
Definition: Partitions.h:473
Area_t const & area() const
Returns the covered area.
Definition: Partitions.h:48
std::size_t size() const
Returns the number of contained subpartitions.
Definition: Partitions.h:318
template<typename Data >
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 849 of file Partitions.h.

855  std::move(subpartitions),
856  nDepthPartitions,
857  (nDepthPartitions ? subpartitions.size() / nDepthPartitions : 0),
858  defData)
859 {}
Area_t const & area() const
Returns the covered area.
Definition: Partitions.h:48
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.
Definition: Partitions.h:835

Member Function Documentation

Area_t const& geo::part::AreaOwner::area ( ) const
inlineinherited
template<typename Data >
auto geo::part::PartitionContainer< Data >::atPoint ( double  w,
double  d 
) const
overridevirtualinherited

Returns stored datum only if point is covered, nullptr otherwise.

Reimplemented from geo::part::PartitionWithData< Data >.

Definition at line 750 of file Partitions.h.

References d, part, and w.

751 {
752  if (!Base_t::contains(w, d)) return nullptr; // not our point at all
753  // it's ours; see if it belongs to a subpart
754  auto part = findPart(w, d);
755  return part ? part->atPoint(w, d) : Base_t::data();
756 }
bool contains(double w, double d) const
Returns whether the specified point is covered by this object.
Definition: Partitions.h:45
TString part[npart]
Definition: Style.C:32
Float_t d
Definition: plot.C:235
virtual Partition_t const * findPart(double w, double d) const =0
Returns the only partition which could contain the specified width.
virtual Data_t * data() const override
Returns the datum directly stored (nullptr if none).
Definition: Partitions.h:271
Float_t w
Definition: plot.C:20
template<typename Data >
std::vector< double > geo::part::GridPartition< Data >::computeDepthSeps ( unsigned int  nD,
unsigned int  nW 
) const
private

Computes and returns width separation levels proper for depthSeps.

Definition at line 906 of file Partitions.h.

References geo::part::PartitionContainer< Data >::parts().

908 {
909  return detectSeparators<&Area_t::depth>(
910  Base_t::parts().cbegin(), Base_t::parts().cend(), nD, nW, 1U);
911 }
virtual Subpartitions_t const & parts() const override
Returns a list of the subpartitions owned.
Definition: Partitions.h:321
template<typename Data >
std::vector< double > geo::part::GridPartition< Data >::computeWidthSeps ( unsigned int  nD,
unsigned int  nW 
) const
private

Computes and returns width separation levels proper for widthSeps.

Definition at line 898 of file Partitions.h.

References geo::part::PartitionContainer< Data >::parts().

900 {
901  return detectSeparators<&Area_t::width>(
902  Base_t::parts().cbegin(), Base_t::parts().cend(), nW, 1U, nW);
903 }
virtual Subpartitions_t const & parts() const override
Returns a list of the subpartitions owned.
Definition: Partitions.h:321
bool geo::part::AreaOwner::contains ( double  w,
double  d 
) const
inlineinherited

Returns whether the specified point is covered by this object.

Definition at line 45 of file Partitions.h.

References geo::part::AreaOwner::area(), and lar::util::simple_geo::Rectangle< Data >::contains().

45 { return area().contains(w, d); }
bool contains(Data_t w, Data_t d) const
Returns whether the specified point is in the area.
Definition: SimpleGeo.h:441
Float_t d
Definition: plot.C:235
Area_t const & area() const
Returns the covered area.
Definition: Partitions.h:48
Float_t w
Definition: plot.C:20
template<typename Data >
virtual Data_t* geo::part::PartitionWithData< Data >::data ( ) const
inlineoverridevirtualinherited

Returns the datum directly stored (nullptr if none).

Reimplemented from geo::part::Partition< Data >.

Definition at line 271 of file Partitions.h.

Referenced by geo::part::GridPartition< Data >::doDescribe().

271 { return myData; }
Data_t * myData
The contained datum.
Definition: Partitions.h:280
template<typename Data>
std::string geo::part::Partition< Data >::describe ( std::string  indent,
std::string  firstIndent 
) const
inlineinherited

Returns a description of the partition.

Definition at line 204 of file Partitions.h.

205  {
206  return doDescribe(indent, firstIndent);
207  }
virtual std::string doDescribe(std::string indent, std::string firstIndent) const
Returns a description of the partition.
Definition: Partitions.h:243
std::string indent(std::size_t const i)
template<typename Data>
std::string geo::part::Partition< Data >::describe ( std::string  indent = "") const
inlineinherited

Returns a description of the partition.

Definition at line 210 of file Partitions.h.

References geo::part::Partition< Data >::describe(), and art::detail::indent().

Referenced by geo::part::Partition< Data >::describe().

210 { return describe(indent, indent); }
std::string indent(std::size_t const i)
std::string describe(std::string indent, std::string firstIndent) const
Returns a description of the partition.
Definition: Partitions.h:204
std::string geo::part::PartitionBase::describeArea ( std::string  indent,
std::string  firstIndent 
) const
inlineprotectedinherited

Returns a description of the partition area.

Definition at line 551 of file Partitions.h.

References geo::part::AreaOwner::dumpArea().

Referenced by geo::part::Partition< Data >::doDescribe().

553 {
554  std::ostringstream sstr;
555  sstr << firstIndent << "partition covers ";
556  dumpArea(sstr);
557  return sstr.str();
558 }
void dumpArea(Stream &&out) const
Output the owned area into an output stream.
Definition: Partitions.h:52
template<typename Data >
std::string geo::part::PartitionContainer< Data >::describeIntro ( ) const
protectedvirtualinherited

Introduction to the description of the subpartitions.

Reimplemented in geo::part::WidthPartition< Data >, and geo::part::DepthPartition< Data >.

Definition at line 781 of file Partitions.h.

References util::size(), and util::to_string().

Referenced by geo::part::GridPartition< Data >::doDescribe().

782 {
783  return std::to_string(parts().size()) + " subpartitions";
784 }
decltype(auto) constexpr to_string(T &&obj)
ADL-aware version of std::to_string.
std::size_t size() const
Returns the number of contained subpartitions.
Definition: Partitions.h:318
virtual Subpartitions_t const & parts() const override
Returns a list of the subpartitions owned.
Definition: Partitions.h:321
template<typename Data >
template<geo::part::AreaOwner::AreaRangeMember_t Range, typename BeginIter , typename EndIter >
std::vector< double > geo::part::GridPartition< Data >::detectSeparators ( BeginIter  b,
EndIter  e,
std::size_t const  nGroups,
std::size_t const  startDelta,
std::size_t const  stride 
)
staticprivate

Definition at line 915 of file Partitions.h.

References geo::part::Partition< Data >::nParts(), and geo::part::GridPartition< Data >::part().

920 {
921  /*
922  * The iterators are better be random access.
923  * The range [b,e[ is considered to be a 2D table stored row after row.
924  * This function can operate on rows or columns, given the proper arguments.
925  *
926  * The full range is split in nGroups "groups" (e.g. rows or columns).
927  * Each group g starts at the element g x startDelta.
928  * All members of that group are stride elements far from each other.
929  *
930  * Be the table of size (d x w).
931  * To process data row by row:
932  * - the group is a row
933  * - the number of groups is the number of rows: nGroups = d
934  * - each group will have (d x w)/nGroups = w elements
935  * - the start offset is the number of group times the size of it:
936  * startDelta = w
937  * - the elements are contiguous: stride = 1
938  *
939  * To process data column by column:
940  * - the group is a column
941  * - the number of groups is the number of columns: nGroups = w
942  * - each group will have (d x w)/nGroups = d elements
943  * - the start offset matches the number of group: startDelta = 1
944  * - the elements are separated by a full row: stride = w
945  *
946  */
947  // the separator is on the lower bound of selected range of the partition area
948 
949  static_assert(details::is_partition_ptr_iterator<BeginIter>(),
950  "Begin iterator does not point to a pointer to partition type");
951 
952  details::PartitionRangeLowerBoundExtractor<Range> lowerBound;
953 
954  std::size_t const nParts = std::distance(b, e);
955  std::size_t const nPartsInGroup = nParts / nGroups;
956 
957  auto const part = [b](std::size_t index) { return std::next(b, index)->get(); };
958 
959  std::vector<double> seps(nGroups);
960  for (size_t g = 0; g < nGroups; ++g) {
961 
962  double& sep = seps[g];
963 
964  // indices of an element in the previous and next group, respectively
965  std::size_t index = g * startDelta;
966  sep = lowerBound(part(index));
967 
968  std::size_t const iend = index + nPartsInGroup * stride;
969  while ((index += stride) < iend) {
970  double const l = lowerBound(part(index));
971  if (sep > l) sep = l;
972  } // while (element)
973 
974  } // while (groups)
975  return seps;
976 }
auto part(std::size_t iDepth, std::size_t iWidth) -> decltype(auto)
Definition: Partitions.h:515
std::size_t nParts() const
Returns the number of subparts in the partition (0 if simple element).
Definition: Partitions.h:234
Float_t e
Definition: plot.C:35
template<typename Data >
std::string geo::part::GridPartition< Data >::doDescribe ( std::string  indent,
std::string  firstIndent 
) const
overrideprivatevirtual

Prints the information about the partition grid.

Reimplemented from geo::part::PartitionContainer< Data >.

Definition at line 863 of file Partitions.h.

References geo::part::PartitionWithData< Data >::data(), geo::part::PartitionContainer< Data >::describeIntro(), geo::part::describePartitionData(), geo::part::GridPartition< Data >::nDepthParts(), geo::part::GridPartition< Data >::nWidthParts(), and geo::part::GridPartition< Data >::part().

865 {
866  std::ostringstream sstr;
867  sstr << firstIndent << Base_t::describeIntro() << " in a (WxD) = " << nWidthParts() << " x "
868  << nDepthParts() << " grid";
869  if (Base_t::data()) {
870  sstr << ", and ";
872  }
873  for (std::size_t iDepth = 0; iDepth < nDepthParts(); ++iDepth) {
874  for (std::size_t iWidth = 0; iWidth < nWidthParts(); ++iWidth) {
875  sstr << "\n"
876  << indent << " [" << iDepth << "][" << iWidth << "] "
877  << part(iDepth, iWidth)->describe(indent + " ", "");
878  } // for width
879  } // for depth
880  return sstr.str();
881 }
void describePartitionData(Stream &&out, Data const *data, std::string indent="", std::string firstIndent="")
Describes a data object for Partition::describe() method.
Definition: Partitions.h:697
auto part(std::size_t iDepth, std::size_t iWidth) -> decltype(auto)
Definition: Partitions.h:515
std::string indent(std::size_t const i)
std::size_t nWidthParts() const
Number of partitions on width direction.
Definition: Partitions.h:511
virtual Data_t * data() const override
Returns the datum directly stored (nullptr if none).
Definition: Partitions.h:271
virtual std::string describeIntro() const
Introduction to the description of the subpartitions.
Definition: Partitions.h:781
std::size_t nDepthParts() const
Definition: Partitions.h:513
template<typename Stream >
void geo::part::AreaOwner::dumpArea ( Stream &&  out) const
inlineinherited

Output the owned area into an output stream.

Definition at line 52 of file Partitions.h.

References geo::part::AreaOwner::area().

Referenced by geo::part::PartitionBase::describeArea().

53  {
54  std::forward<Stream>(out) << area();
55  }
Area_t const & area() const
Returns the covered area.
Definition: Partitions.h:48
template<typename Data >
auto geo::part::GridPartition< Data >::findPart ( double  w,
double  d 
) const
overrideprivatevirtual

Returns the only partition which could contain the specified depth.

Implements geo::part::PartitionContainer< Data >.

Definition at line 885 of file Partitions.h.

References d, geo::part::GridPartition< Data >::depthSeps, geo::part::GridPartition< Data >::part(), w, and geo::part::GridPartition< Data >::widthSeps.

886 {
887  auto const iWidth = std::upper_bound(widthSeps.cbegin(), widthSeps.cend(), w);
888  if (iWidth == widthSeps.cbegin()) return nullptr;
889  auto const iDepth = std::upper_bound(depthSeps.cbegin(), depthSeps.cend(), d);
890  if (iDepth == depthSeps.cbegin()) return nullptr;
891  return part(std::distance(depthSeps.cbegin(), iDepth) - 1U,
892  std::distance(widthSeps.cbegin(), iWidth) - 1U)
893  .get();
894 }
auto part(std::size_t iDepth, std::size_t iWidth) -> decltype(auto)
Definition: Partitions.h:515
std::vector< double > depthSeps
Separators for depth dimension.
Definition: Partitions.h:508
std::vector< double > widthSeps
Separators for width dimension.
Definition: Partitions.h:507
Float_t d
Definition: plot.C:235
Float_t w
Definition: plot.C:20
template<typename Data >
std::size_t geo::part::GridPartition< Data >::nDepthParts ( ) const
inlineprivate

Definition at line 513 of file Partitions.h.

Referenced by geo::part::GridPartition< Data >::doDescribe().

513 { return depthSeps.size(); }
std::vector< double > depthSeps
Separators for depth dimension.
Definition: Partitions.h:508
template<typename Data>
std::size_t geo::part::Partition< Data >::nParts ( ) const
inlineinherited

Returns the number of subparts in the partition (0 if simple element).

Definition at line 234 of file Partitions.h.

Referenced by geo::part::GridPartition< Data >::detectSeparators().

234 { return parts().size(); }
virtual Subpartitions_t const & parts() const
Returns a list of all subpartitions.
Definition: Partitions.h:240
template<typename Data >
std::size_t geo::part::GridPartition< Data >::nWidthParts ( ) const
inlineprivate

Number of partitions on width direction.

Number of partitions on depth direction.

Definition at line 511 of file Partitions.h.

Referenced by geo::part::GridPartition< Data >::doDescribe().

template<typename Data >
auto geo::part::GridPartition< Data >::part ( std::size_t  iDepth,
std::size_t  iWidth 
) -> decltype(auto)
inlineprivate

Definition at line 515 of file Partitions.h.

Referenced by geo::part::GridPartition< Data >::detectSeparators(), geo::part::GridPartition< Data >::doDescribe(), and geo::part::GridPartition< Data >::findPart().

516  {
517  return Base_t::parts()[iDepth * nWidthParts() + iWidth];
518  }
virtual Subpartitions_t const & parts() const override
Returns a list of the subpartitions owned.
Definition: Partitions.h:321
std::size_t nWidthParts() const
Number of partitions on width direction.
Definition: Partitions.h:511
template<typename Data >
auto geo::part::GridPartition< Data >::part ( std::size_t  iDepth,
std::size_t  iWidth 
) const -> decltype(auto)
inlineprivate

Definition at line 519 of file Partitions.h.

References d, e, art::detail::indent(), and w.

520  {
521  return Base_t::parts()[iDepth * nWidthParts() + iWidth];
522  }
virtual Subpartitions_t const & parts() const override
Returns a list of the subpartitions owned.
Definition: Partitions.h:321
std::size_t nWidthParts() const
Number of partitions on width direction.
Definition: Partitions.h:511
template<typename Data >
virtual Subpartitions_t const& geo::part::PartitionContainer< Data >::parts ( ) const
inlineoverrideprotectedvirtualinherited

Returns a list of the subpartitions owned.

Reimplemented from geo::part::Partition< Data >.

Definition at line 321 of file Partitions.h.

Referenced by geo::part::GridPartition< Data >::computeDepthSeps(), and geo::part::GridPartition< Data >::computeWidthSeps().

321 { return myParts; }
Subpartitions_t myParts
List of subpartitions.
Definition: Partitions.h:315
template<typename Data >
std::size_t geo::part::PartitionContainer< Data >::size ( ) const
inlineprotectedinherited

Returns the number of contained subpartitions.

Definition at line 318 of file Partitions.h.

Referenced by geo::part::GridPartition< Data >::GridPartition().

318 { return parts().size(); }
virtual Subpartitions_t const & parts() const override
Returns a list of the subpartitions owned.
Definition: Partitions.h:321
template<typename Data>
template<typename Pred >
void geo::part::Partition< Data >::walk ( Pred &&  pred) const
inlineinherited

Applies pred to all partitions.

Template Parameters
Preda predicate type
Parameters
predthe predicate to be applied

The predicate pred is applied to this partition first, and then to all subpartitions in no specified order.

The predicate is any object behaving like a unary function of signature:

void predicate(Partition<Data> const& part);

If the predicate returns a value, that value is ignored. The predicate is forwarded while "walking" through the partitions.

Definition at line 228 of file Partitions.h.

229  {
230  walk(this, pred);
231  }
void walk(Pred &&pred) const
Applies pred to all partitions.
Definition: Partitions.h:228
template<typename Data >
template<typename Pred >
void geo::part::Partition< Data >::walk ( Partition_t const *  start,
Pred &&  pred 
)
staticprotectedinherited

Applies pred to start partition first, and then to all subpartitions.

Definition at line 715 of file Partitions.h.

References geo::part::Partition< Data >::parts().

716 {
717  if (!start) return;
718  pred(*start);
719 
720  // recursive implementation
721  for (auto const& subPart : start->parts())
722  subPart->walk(std::forward<Pred>(pred));
723 }

Member Data Documentation

template<typename Data >
std::vector<double> geo::part::GridPartition< Data >::depthSeps
private

Separators for depth dimension.

Definition at line 508 of file Partitions.h.

Referenced by geo::part::GridPartition< Data >::findPart().

template<typename Data >
Subpartitions_t geo::part::PartitionContainer< Data >::myParts
protectedinherited

List of subpartitions.

Definition at line 315 of file Partitions.h.

template<typename Data>
geo::part::Partition< Data >::Subpartitions_t const geo::part::Partition< Data >::NoSubparts
staticprotectedinherited

Subpartitions (if any).

Definition at line 237 of file Partitions.h.

template<typename Data >
std::vector<double> geo::part::GridPartition< Data >::widthSeps
private

Separators for width dimension.

Definition at line 507 of file Partitions.h.

Referenced by geo::part::GridPartition< Data >::findPart().


The documentation for this class was generated from the following file: