14#ifndef OPENVDB_POINTS_STATISTICS_HAS_BEEN_INCLUDED
15#define OPENVDB_POINTS_STATISTICS_HAS_BEEN_INCLUDED
25#include <tbb/parallel_reduce.h>
26#include <tbb/parallel_for.h>
46template <
typename ValueT,
47 typename CodecT = UnknownCodec,
48 typename FilterT = NullFilter,
49 typename PointDataTreeT>
50std::pair<ValueT, ValueT>
52 const std::string& attribute,
53 const FilterT& filter = NullFilter());
71template <
typename ValueT,
72 typename CodecT = UnknownCodec,
73 typename FilterT = NullFilter,
74 typename PointDataTreeT>
75typename ConvertElementType<ValueT, double>::Type
77 const std::string& attribute,
78 const FilterT& filter = NullFilter());
95template <
typename ValueT,
96 typename CodecT = UnknownCodec,
97 typename FilterT = NullFilter,
98 typename PointDataTreeT>
99typename PromoteType<ValueT>::Highest
101 const std::string& attribute,
102 const FilterT& filter = NullFilter());
125template <
typename ValueT,
126 typename CodecT = UnknownCodec,
127 typename FilterT = NullFilter,
128 typename PointDataTreeT>
130 const std::string& attribute,
133 const FilterT& filter = NullFilter(),
134 typename PointDataTreeT::template ValueConverter<ValueT>::Type* minTree =
nullptr,
135 typename PointDataTreeT::template ValueConverter<ValueT>::Type* maxTree =
nullptr);
167template <
typename ValueT,
168 typename CodecT = UnknownCodec,
169 typename FilterT = NullFilter,
170 typename PointDataTreeT,
171 typename ResultTreeT =
typename ConvertElementType<ValueT, double>::Type>
173 const std::string& attribute,
174 typename ConvertElementType<ValueT, double>::Type& average,
175 const FilterT& filter = NullFilter(),
176 typename PointDataTreeT::template ValueConverter<ResultTreeT>::Type* averageTree =
nullptr);
207template <
typename ValueT,
208 typename CodecT = UnknownCodec,
209 typename FilterT = NullFilter,
210 typename PointDataTreeT,
211 typename ResultTreeT =
typename PromoteType<ValueT>::Highest>
213 const std::string& attribute,
214 typename PromoteType<ValueT>::Highest& total,
215 const FilterT& filter = NullFilter(),
216 typename PointDataTreeT::template ValueConverter<ResultTreeT>::Type* totalTree =
nullptr);
A LeafManager manages a linear array of pointers to a given tree's leaf nodes, as well as optional au...
General-purpose arithmetic and comparison routines, most of which accept arbitrary value types (or at...
Attribute-owned data structure for points. Point attributes are stored in leaf nodes and ordered by v...
PromoteType< ValueT >::Highest accumulate(const PointDataTreeT &points, const std::string &attribute, const FilterT &filter=NullFilter())
Evaluates the total value of a point attribute.
Definition PointStatisticsImpl.h:530
std::pair< ValueT, ValueT > evalMinMax(const PointDataTreeT &points, const std::string &attribute, const FilterT &filter=NullFilter())
Evaluates the minimum and maximum values of a point attribute.
Definition PointStatisticsImpl.h:498
ConvertElementType< ValueT, double >::Type evalAverage(const PointDataTreeT &points, const std::string &attribute, const FilterT &filter=NullFilter())
Evaluates the average value of a point attribute.
Definition PointStatisticsImpl.h:515
Definition Exceptions.h:13
#define OPENVDB_VERSION_NAME
The version namespace name for this library version.
Definition version.h.in:121
#define OPENVDB_USE_VERSION_NAMESPACE
Definition version.h.in:218