47 std::size_t TDimension,
50 class TPointerType =
typename TContainerType::value_type,
51 class TIteratorType =
typename TContainerType::iterator,
52 class TDistanceIteratorType =
typename std::vector<double>::iterator,
56 :
public TreeNode<TDimension,TPointType, TPointerType, TIteratorType, TDistanceIteratorType, typename std::vector<TPointerType>::iterator >
63 template <
typename T,
typename =
void>
70 using type =
typename T::ObjectType;
139 : mitPointsBegin(PointBegin), mitPointsEnd(PointEnd)
141 if (mitPointsBegin == mitPointsEnd)
143 mNumCells = std::distance(mitPointsBegin, mitPointsEnd);
159 : mitPointsBegin(PointBegin), mitPointsEnd(PointEnd), mBoundingBox(MinPoint, MaxPoint)
161 if (mitPointsBegin == mitPointsEnd)
164 mNumCells = std::distance(mitPointsBegin, mitPointsEnd);
177 : mBoundingBox(MinPoint, MaxPoint), mNumCells(0)
191 : mitPointsBegin(PointBegin), mitPointsEnd(PointEnd)
193 if (mitPointsBegin == mitPointsEnd)
195 mNumCells = std::distance(mitPointsBegin, mitPointsEnd);
219 return mitPointsBegin;
228 return mitPointsBegin;
239 return mCellSize[iDim];
320 noalias(r_min_point.Coordinates()) = (**mitPointsBegin).Coordinates();
321 noalias(r_max_point.Coordinates()) = (**mitPointsBegin).Coordinates();
323 for (
IteratorType it_point = mitPointsBegin; it_point != mitPointsEnd; it_point++) {
324 const auto& r_coordinates = (**it_point).Coordinates();
326 if (r_coordinates[
i] < r_min_point[
i]) {
327 r_min_point[
i] = r_coordinates[
i];
329 if (r_coordinates[
i] > r_max_point[
i]) {
330 r_max_point[
i] = r_coordinates[
i];
343 std::size_t average_number_of_cells =
static_cast<std::size_t
>(std::pow(
static_cast<double>(ApproximatedSize), 1.00 /
Dimension));
345 std::array<double, 3> lengths;
346 double average_length = 0.0;
350 average_length += lengths[
i];
352 average_length *= 1.0 / 3.0;
354 if (average_length < std::numeric_limits<double>::epsilon()) {
362 mN[
i] =
static_cast<std::size_t
>(lengths[
i] / average_length * (
double)average_number_of_cells) + 1;
365 mCellSize[
i] = lengths[
i] / mN[
i];
367 mCellSize[
i] = average_length;
370 mInvCellSize[
i] = 1.00 / mCellSize[
i];
382 mCellSize[
i] = BoxSize;
383 mInvCellSize[
i] = 1.0 / mCellSize[
i];
407 for (
IteratorType i_point = mitPointsBegin; i_point != mitPointsEnd; i_point++)
421 return (index > mN[ThisDimension] - 1) ? mN[ThisDimension] - 1 : index;
434 Index *= mN[iDim - 1];
449 Index += ThisIndex[iDim];
450 Index *= mN[iDim - 1];
452 Index += ThisIndex[0];
514 if( mitPointsBegin == mitPointsEnd )
528 if( mitPointsBegin == mitPointsEnd )
575 { Results[iPoint] =
SearchNearestPoint(ThisPoints[iPoint],ResultsDistances[iPoint]); }
583 if( mitPointsBegin == mitPointsEnd )
610 SearchInRadiusLocal( ThisPoint, Radius, Radius2, Results, ResultsDistances, NumberOfResults, MaxNumberOfResults, Box );
611 return NumberOfResults;
622 SearchInRadiusLocal( ThisPoint, Radius, Radius2, Results, ResultsDistances, NumberOfResults, MaxNumberOfResults, Box );
623 return NumberOfResults;
632 SearchInRadiusLocal( ThisPoint, Radius, Radius2, Results, ResultsDistances, NumberOfResults, MaxNumberOfResults, Box);
641 SearchInRadiusLocal( ThisPoint, Radius, Radius2, Results, ResultsDistances, NumberOfResults, MaxNumberOfResults, Box);
651 { NumberOfResults[iPoint] =
SearchInRadius(ThisPoints[iPoint],Radius[iPoint],Results[iPoint],ResultsDistances[iPoint],MaxNumberOfResults); }
663 SearchRadiusInRange()(mCells[I].begin(),mCells[I].end(),ThisPoint,Radius2,Results,ResultsDistances,NumberOfResults,MaxNumberOfResults);
673 SearchRadiusInRange()(mCells[I].begin(),mCells[I].end(),ThisPoint,Radius2,Results,ResultsDistances,NumberOfResults,MaxNumberOfResults);
682 for(
IndexType II = III + Box.
Axis[1].Begin() ; II <= III + Box.
Axis[1].End() ; II += Box.
Axis[1].Block )
684 SearchRadiusInRange()(mCells[I].begin(),mCells[I].end(),ThisPoint,Radius2,Results,ResultsDistances,NumberOfResults,MaxNumberOfResults);
694 SearchInRadiusLocal( ThisPoint, Radius, Radius2, Results, NumberOfResults, MaxNumberOfResults, Box );
695 return NumberOfResults;
706 SearchInRadiusLocal( ThisPoint, Radius, Radius2, Results, NumberOfResults, MaxNumberOfResults, Box );
707 return NumberOfResults;
716 SearchInRadiusLocal( ThisPoint, Radius, Radius2, Results, NumberOfResults, MaxNumberOfResults, Box );
725 SearchInRadiusLocal( ThisPoint, Radius, Radius2, Results, NumberOfResults, MaxNumberOfResults, Box );
738 SearchRadiusInRange()(mCells[I].begin(),mCells[I].end(),ThisPoint,Radius2,Results,NumberOfResults,MaxNumberOfResults);
748 SearchRadiusInRange()(mCells[I].begin(),mCells[I].end(),ThisPoint,Radius2,Results,NumberOfResults,MaxNumberOfResults);
757 for(
IndexType II = III + Box.
Axis[1].Begin() ; II <= III + Box.
Axis[1].End() ; II += Box.
Axis[1].Block )
759 SearchRadiusInRange()(mCells[I].begin(),mCells[I].end(),ThisPoint,Radius2,Results,NumberOfResults,MaxNumberOfResults);
771 SearchNearestInRange()( mCells[I].begin(), mCells[I].end(), ThisPoint, ResultPoint, ResultDistance, Found );
781 SearchNearestInRange()( mCells[I].begin(), mCells[I].end(), ThisPoint, ResultPoint, ResultDistance, Found );
790 for(
IndexType II = III + Box.
Axis[1].Begin() ; II <= III + Box.
Axis[1].End() ; II += Box.
Axis[1].Block )
792 SearchNearestInRange()( mCells[I].begin(), mCells[I].end(), ThisPoint, ResultPoint, ResultDistance, Found );
803 SearchInBoxLocal( SearchMinPoint, SearchMaxPoint, Results, NumberOfResults, MaxNumberOfResults, Box );
804 return NumberOfResults;
810 SizeType const& MaxNumberOfResults )
override
814 SearchInBoxLocal( SearchMinPoint, SearchMaxPoint, Results, NumberOfResults, MaxNumberOfResults, Box );
825 SearchBoxInRange()(SearchMinPoint,SearchMaxPoint,mCells[I].begin(),mCells[I].end(),ResultsPoint,NumberOfResults,MaxNumberOfResults);
835 SearchBoxInRange()(SearchMinPoint,SearchMaxPoint,mCells[I].begin(),mCells[I].end(),ResultsPoint,NumberOfResults,MaxNumberOfResults);
844 for(
IndexType II = III + Box.
Axis[1].Begin() ; II <= III + Box.
Axis[1].End() ; II += Box.
Axis[1].Block )
846 SearchBoxInRange()(SearchMinPoint,SearchMaxPoint,mCells[I].begin(),mCells[I].end(),ResultsPoint,NumberOfResults,MaxNumberOfResults);
852 virtual std::string
Info()
const
854 return "BinsDynamic";
860 rOStream <<
"BinsDynamic";
864 void PrintData(std::ostream& rOStream, std::string
const& Perfix = std::string())
const override
867 for(
typename CellContainerType::const_iterator i_cell = mCells.begin() ; i_cell != mCells.end() ; i_cell++)
869 rOStream << Perfix <<
"[ " ;
870 for(
typename LocalContainerType::const_iterator i_point = i_cell->begin() ; i_point != i_cell->end() ; i_point++)
871 rOStream << **i_point <<
" ";
872 rOStream <<
" ]" << std::endl;
874 rOStream << std::endl;
880 rout <<
" BinsSize: ";
882 rout <<
"[" << mN[
i] <<
"]";
889 rout <<
" BinsBox: Min [";
894 mCellSize.Print(rout);
895 rout <<
"]" << std::endl;
931 if (number_of_points == 0) {
934 return new BinsDynamic( PointsBegin, PointsEnd, MinPoint, MaxPoint, BucketSize );
951 std::size_t TDimension,
953 class TContainerType,
956 class TDistanceIteratorType,
957 class TDistanceFunction >
962 rOStream << std::endl;
A dynamic binning data structure template for organizing and querying points in multi-dimensional spa...
Definition: bins_dynamic.h:57
void SearchNearestPoint(PointType const &ThisPoint, PointerType &rResult, CoordinateType &rResultDistance) override
Definition: bins_dynamic.h:552
BinsDynamic(IteratorType const &PointBegin, IteratorType const &PointEnd, PointType const &MinPoint, PointType const &MaxPoint, SizeType BucketSize=1)
Constructor for BinsDynamic with iterators, min point, max point, and optional bucket size.
Definition: bins_dynamic.h:158
SizeType SearchInRadius(PointType const &ThisPoint, CoordinateType Radius, IteratorType Results, SizeType MaxNumberOfResults, SearchStructureType &Box)
Definition: bins_dynamic.h:700
SizeType SearchInRadius(PointType const &ThisPoint, CoordinateType const &Radius, IteratorType Results, DistanceIteratorType ResultsDistances, SizeType const &MaxNumberOfResults)
Definition: bins_dynamic.h:604
void SearchNearestPointLocal(PointType const &ThisPoint, PointerType &rResult, CoordinateType &rResultDistance, SearchStructureType &Box)
Definition: bins_dynamic.h:581
TDistanceFunction DistanceFunction
Definition: bins_dynamic.h:85
SizeArray & GetDivisions()
Get the Divisions object.
Definition: bins_dynamic.h:266
void SearchInBoxLocal(PointType const &SearchMinPoint, PointType const &SearchMaxPoint, IteratorType &ResultsPoint, SizeType &NumberOfResults, SizeType const &MaxNumberOfResults, SearchStructure< IndexType, SizeType, CoordinateType, IteratorType, IteratorIteratorType, 1 > &Box)
Definition: bins_dynamic.h:820
std::vector< CoordinateType > CoordinateVectorType
Definition: bins_dynamic.h:110
void SearchInRadiusLocal(PointType const &ThisPoint, CoordinateType const &Radius, CoordinateType const &Radius2, IteratorType &Results, SizeType &NumberOfResults, SizeType const &MaxNumberOfResults, SearchStructure< IndexType, SizeType, CoordinateType, IteratorType, IteratorIteratorType, 1 > &Box)
Definition: bins_dynamic.h:733
void PrintData(std::ostream &rOStream, std::string const &Perfix=std::string()) const override
Print object's data.
Definition: bins_dynamic.h:864
IndexType CalculateIndex(CellType const &ThisIndex)
Calculate the index of a cell within the cell container.
Definition: bins_dynamic.h:445
std::vector< LocalContainerType > CellContainerType
Definition: bins_dynamic.h:104
IndexType CalculatePosition(CoordinateType const &ThisCoord, SizeType ThisDimension)
Calculate the position of a coordinate in a specific dimension.
Definition: bins_dynamic.h:417
void SearchInBoxLocal(PointType const &SearchMinPoint, PointType const &SearchMaxPoint, IteratorType &ResultsPoint, SizeType &NumberOfResults, SizeType const &MaxNumberOfResults, SearchStructure< IndexType, SizeType, CoordinateType, IteratorType, IteratorIteratorType, 3 > &Box)
Definition: bins_dynamic.h:839
typename TreeNodeType::IndexType IndexType
Definition: bins_dynamic.h:91
Kratos::SearchUtils::SearchRadiusInRange< PointType, LocalIterator, DistanceIteratorType, DistanceFunction, SizeType, CoordinateType, IteratorType > SearchRadiusInRange
Definition: bins_dynamic.h:107
CellContainerType & GetCellContainer()
Get the Cell Container object.
Definition: bins_dynamic.h:257
PointType & GetMaxPoint()
Get a reference to the high point of the bounding box.
Definition: bins_dynamic.h:293
TIteratorType IteratorType
Definition: bins_dynamic.h:82
virtual void PrintInfo(std::ostream &rOStream) const
Print information about this object.
Definition: bins_dynamic.h:858
CoordinateArray & GetCellSize()
Get the Cell Size object.
Definition: bins_dynamic.h:275
SizeType SearchInBox(PointType const &SearchMinPoint, PointType const &SearchMaxPoint, IteratorType Results, SizeType MaxNumberOfResults)
Definition: bins_dynamic.h:798
PointerType SearchNearestPoint(PointType const &ThisPoint, CoordinateType &ResultDistance)
Definition: bins_dynamic.h:526
void SearchNearestInBox(PointType const &ThisPoint, PointerType &ResultPoint, CoordinateType &ResultDistance, SearchStructure< IndexType, SizeType, CoordinateType, IteratorType, IteratorIteratorType, 1 > &Box, bool &Found)
Definition: bins_dynamic.h:766
void SearchInBoxLocal(PointType const &SearchMinPoint, PointType const &SearchMaxPoint, IteratorType &ResultsPoint, SizeType &NumberOfResults, SizeType const &MaxNumberOfResults, SearchStructure< IndexType, SizeType, CoordinateType, IteratorType, IteratorIteratorType, 2 > &Box)
Definition: bins_dynamic.h:829
void SearchNearestPoint(PointType *const &ThisPoints, SizeType const &NumberOfPoints, IteratorType &Results, std::vector< CoordinateType > ResultsDistances)
Definition: bins_dynamic.h:571
@ Dimension
Definition: bins_dynamic.h:76
BoundingBox< PointType > & GetBoundingBox()
Get the bounding box.
Definition: bins_dynamic.h:303
typename TreeNodeType::IteratorIteratorType IteratorIteratorType
Definition: bins_dynamic.h:97
std::vector< DistanceIteratorType > DistanceIteratorVectorType
Definition: bins_dynamic.h:112
void SearchInRadius(PointType const &ThisPoint, CoordinateType const &Radius, CoordinateType const &Radius2, IteratorType &Results, SizeType &NumberOfResults, SizeType const &MaxNumberOfResults, SearchStructureType &Box) override
Definition: bins_dynamic.h:721
KRATOS_DEPRECATED CoordinateType CellSize(SizeType const &iDim)
Get the size of a cell in a specific dimension.
Definition: bins_dynamic.h:237
void SearchInRadius(PointerType const &ThisPoints, SizeType const &NumberOfPoints, CoordinateVectorType const &Radius, IteratorVectorType Results, DistanceIteratorVectorType ResultsDistances, std::vector< SizeType > &NumberOfResults, SizeType const &MaxNumberOfResults)
Definition: bins_dynamic.h:646
KRATOS_CLASS_POINTER_DEFINITION(BinsDynamic)
Pointer definition of BinsDynamic.
void CalculateCellSize(const std::size_t ApproximatedSize)
Calculates the cell size of the bins.
Definition: bins_dynamic.h:341
SizeType SearchInRadius(PointType const &ThisPoint, CoordinateType Radius, IteratorType Results, SizeType MaxNumberOfResults)
Definition: bins_dynamic.h:689
static TreeNodeType * Construct(IteratorType PointsBegin, IteratorType PointsEnd, PointType MaxPoint, PointType MinPoint, SizeType BucketSize)
Bins Access Vector ( vector<Iterator> )
Definition: bins_dynamic.h:928
TreeNode< Dimension, TPointType, TPointerType, TIteratorType, TDistanceIteratorType > TreeNodeType
Definition: bins_dynamic.h:87
typename LocalContainerType::iterator LocalIterator
Definition: bins_dynamic.h:101
void SearchNearestPoint(PointType const &ThisPoint, PointerType &rResult, CoordinateType &rResultDistance, SearchStructureType &Box) override
Definition: bins_dynamic.h:561
void PrintBox(std::ostream &rout)
Print Limits Points of the Container.
Definition: bins_dynamic.h:887
PointerType ExistPoint(PointerType const &ThisPoint, CoordinateType const Tolerance=static_cast< CoordinateType >(10.0 *DBL_EPSILON))
Definition: bins_dynamic.h:498
void GenerateBins()
Generate bins by assigning points to cells.
Definition: bins_dynamic.h:405
void PrintSize(std::ostream &rout)
Print Size of Container.
Definition: bins_dynamic.h:878
void SearchInRadius(PointType const &ThisPoint, CoordinateType const &Radius, CoordinateType const &Radius2, IteratorType &Results, SizeType &NumberOfResults, SizeType const &MaxNumberOfResults) override
Definition: bins_dynamic.h:712
TDistanceIteratorType DistanceIteratorType
Definition: bins_dynamic.h:83
Kratos::SearchUtils::SearchNearestInRange< PointType, PointerType, LocalIterator, DistanceFunction, CoordinateType > SearchNearestInRange
Definition: bins_dynamic.h:106
PointType & GetMinPoint()
Get a reference to the low point of the bounding box.
Definition: bins_dynamic.h:284
void AllocateCellsContainer()
Allocate memory for the cell container.
Definition: bins_dynamic.h:392
void SearchInBox(PointType const &SearchMinPoint, PointType const &SearchMaxPoint, IteratorType &Results, SizeType &NumberOfResults, SizeType const &MaxNumberOfResults) override
Definition: bins_dynamic.h:809
SizeType SearchInRadius(PointType const &ThisPoint, CoordinateType const &Radius, IteratorType Results, DistanceIteratorType ResultsDistances, SizeType const &MaxNumberOfResults, SearchStructureType &Box)
Definition: bins_dynamic.h:616
void SearchInRadius(PointType const &ThisPoint, CoordinateType const &Radius, CoordinateType const &Radius2, IteratorType &Results, DistanceIteratorType &ResultsDistances, SizeType &NumberOfResults, SizeType const &MaxNumberOfResults) override
Definition: bins_dynamic.h:628
typename GetObjectType< PointType >::type ObjectType
Definition: bins_dynamic.h:80
BinsDynamic()
Default constructor for BinsDynamic.
Definition: bins_dynamic.h:128
void SearchInRadiusLocal(PointType const &ThisPoint, CoordinateType const &Radius, CoordinateType const &Radius2, IteratorType &Results, DistanceIteratorType &ResultsDistances, SizeType &NumberOfResults, SizeType const &MaxNumberOfResults, SearchStructure< IndexType, SizeType, CoordinateType, IteratorType, IteratorIteratorType, 3 > &Box)
Definition: bins_dynamic.h:677
LocalIterator PointIterator
Definition: bins_dynamic.h:116
void SearchInRadiusLocal(PointType const &ThisPoint, CoordinateType const &Radius, CoordinateType const &Radius2, IteratorType &Results, DistanceIteratorType &ResultsDistances, SizeType &NumberOfResults, SizeType const &MaxNumberOfResults, SearchStructure< IndexType, SizeType, CoordinateType, IteratorType, IteratorIteratorType, 2 > &Box)
Definition: bins_dynamic.h:667
IteratorType Begin()
Get an iterator pointing to the beginning of the point data.
Definition: bins_dynamic.h:217
BinsDynamic & operator=(BinsDynamic const &rOther)
Assignment operator.
BinsDynamic(PointType const &MinPoint, PointType const &MaxPoint, SizeType BucketSize)
Constructor for BinsDynamic with min point, max point, and optional bucket size.
Definition: bins_dynamic.h:176
TPointType PointType
Definition: bins_dynamic.h:78
void CalculateBoundingBox()
Calculate the bounding box of the tree node.
Definition: bins_dynamic.h:316
std::vector< IteratorType > IteratorVectorType
Definition: bins_dynamic.h:111
typename TreeNodeType::SizeType SizeType
Definition: bins_dynamic.h:90
PointerType SearchNearestPoint(PointType const &ThisPoint)
Definition: bins_dynamic.h:512
typename TreeNodeType::CoordinateType CoordinateType
Definition: bins_dynamic.h:89
typename TreeNodeType::SearchStructureType SearchStructureType
Definition: bins_dynamic.h:98
void AssignCellSize(CoordinateType BoxSize)
Assign a uniform cell size for all dimensions.
Definition: bins_dynamic.h:379
KRATOS_DEPRECATED SizeType NumCell(SizeType const &iDim)
Get the number of cells in a specific dimension.
Definition: bins_dynamic.h:248
void SearchNearestInBox(PointType const &ThisPoint, PointerType &ResultPoint, CoordinateType &ResultDistance, SearchStructure< IndexType, SizeType, CoordinateType, IteratorType, IteratorIteratorType, 2 > &Box, bool &Found)
Definition: bins_dynamic.h:775
CellType CalculateCell(PointType const &ThisPoint, CoordinateType Radius)
Calculate the cell index of a point with an added radius.
Definition: bins_dynamic.h:477
void SearchInRadius(PointType const &ThisPoint, CoordinateType const &Radius, CoordinateType const &Radius2, IteratorType &Results, DistanceIteratorType &ResultsDistances, SizeType &NumberOfResults, SizeType const &MaxNumberOfResults, SearchStructureType &Box) override
Definition: bins_dynamic.h:637
PointerType SearchNearestPoint(PointType const &ThisPoint, CoordinateType &rResultDistance, SearchStructureType &Box)
Definition: bins_dynamic.h:541
BinsDynamic(IteratorType const &PointBegin, IteratorType const &PointEnd, CoordinateType BoxSize, SizeType BucketSize=1)
Constructor for BinsDynamic with iterators, box size, and optional bucket size.
Definition: bins_dynamic.h:190
void AddPoint(PointerType const &ThisPoint)
Add a point to the appropriate cell.
Definition: bins_dynamic.h:490
IteratorType End()
Get an iterator pointing to the end of the point data.
Definition: bins_dynamic.h:226
void SearchInRadiusLocal(PointType const &ThisPoint, CoordinateType const &Radius, CoordinateType const &Radius2, IteratorType &Results, SizeType &NumberOfResults, SizeType const &MaxNumberOfResults, SearchStructure< IndexType, SizeType, CoordinateType, IteratorType, IteratorIteratorType, 2 > &Box)
Definition: bins_dynamic.h:742
void SearchInRadiusLocal(PointType const &ThisPoint, CoordinateType const &Radius, CoordinateType const &Radius2, IteratorType &Results, SizeType &NumberOfResults, SizeType const &MaxNumberOfResults, SearchStructure< IndexType, SizeType, CoordinateType, IteratorType, IteratorIteratorType, 3 > &Box)
Definition: bins_dynamic.h:752
void SearchInRadiusLocal(PointType const &ThisPoint, CoordinateType const &Radius, CoordinateType const &Radius2, IteratorType &Results, DistanceIteratorType &ResultsDistances, SizeType &NumberOfResults, SizeType const &MaxNumberOfResults, SearchStructure< IndexType, SizeType, CoordinateType, IteratorType, IteratorIteratorType, 1 > &Box)
Definition: bins_dynamic.h:658
virtual std::string Info() const
Turn back information as a string.
Definition: bins_dynamic.h:852
IndexType CalculateIndex(PointType const &ThisPoint)
Calculate the index of a point within the cell container.
Definition: bins_dynamic.h:429
Kratos::SearchUtils::SearchBoxInRange< PointType, LocalIterator, SizeType, Dimension, IteratorType > SearchBoxInRange
Definition: bins_dynamic.h:108
BinsDynamic(IteratorType const &PointBegin, IteratorType const &PointEnd, SizeType BucketSize=1)
Constructor for BinsDynamic with iterators and optional bucket size.
Definition: bins_dynamic.h:138
LocalContainerType PointVector
Definition: bins_dynamic.h:115
TContainerType ContainerType
Definition: bins_dynamic.h:81
TPointerType PointerType
Definition: bins_dynamic.h:84
std::vector< PointerType > LocalContainerType
Definition: bins_dynamic.h:100
~BinsDynamic() override
Definition: bins_dynamic.h:203
CellType CalculateCell(PointType const &ThisPoint)
Calculate the cell index of a point.
Definition: bins_dynamic.h:462
void SearchNearestInBox(PointType const &ThisPoint, PointerType &ResultPoint, CoordinateType &ResultDistance, SearchStructure< IndexType, SizeType, CoordinateType, IteratorType, IteratorIteratorType, 3 > &Box, bool &Found)
Definition: bins_dynamic.h:785
BinsDynamic(BinsDynamic const &rOther)
Copy constructor.
TPointType & GetMinPoint()
Gets a reference to the minimum point.
Definition: bounding_box.h:179
TPointType & GetMaxPoint()
Gets a reference to the maximum point.
Definition: bounding_box.h:199
This class is useful for index iteration over containers.
Definition: parallel_utilities.h:451
void for_each(TUnaryFunction &&f)
Definition: parallel_utilities.h:514
Definition: search_structure.h:309
SubBinAxis< IndexType, SizeType > Axis[3]
Definition: search_structure.h:326
Definition: search_structure.h:142
Definition: search_structure.h:160
Definition: search_structure.h:194
Definition: search_structure.h:109
Short class definition.
Definition: tree.h:61
SearchStructure< IndexType, SizeType, CoordinateType, TIteratorType, IteratorIteratorType, TDimension > SearchStructureType
Define SearchStructureType as a SearchStructure type with the given template arguments.
Definition: tree.h:97
static IteratorType & NullIterator()
Definition: tree.h:147
typename std::vector< IteratorType >::iterator IteratorIteratorType
Define IteratorIteratorType as an iterator type for a vector of IteratorType.
Definition: tree.h:94
double CoordinateType
Define CoordinateType as double.
Definition: tree.h:76
std::size_t IndexType
Define IndexType as std::size_t.
Definition: tree.h:73
std::size_t SizeType
Define SizeType as std::size_t.
Definition: tree.h:70
static PointerType & NullPointer()
Definition: tree.h:152
#define KRATOS_DEPRECATED
Definition: define.h:738
TSpaceType::IndexType Size(TSpaceType &dummy, typename TSpaceType::VectorType const &rV)
Definition: add_strategies_to_python.cpp:111
std::size_t PointerDistance(TPointerType const &PointerBegin, TPointerType const &PointerEnd)
Definition: search_structure.h:91
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
T & noalias(T &TheMatrix)
Definition: amatrix_interface.h:484
TABLE_NUMBER_ANGULAR_VELOCITY TABLE_NUMBER_MOMENT I33 BEAM_INERTIA_ROT_UNIT_LENGHT_Y KRATOS_DEFINE_APPLICATION_VARIABLE(DEM_APPLICATION, double, BEAM_INERTIA_ROT_UNIT_LENGHT_Z) typedef std double
Definition: DEM_application_variables.h:182
std::ostream & operator<<(std::ostream &rOStream, const LinearMasterSlaveConstraint &rThis)
output stream function
Definition: linear_master_slave_constraint.h:432
namespace
Definition: array_1d.h:793
integer i
Definition: TensorModule.f:17
#define DBL_MAX
Definition: search_structure.h:23
typename T::ObjectType type
Definition: bins_dynamic.h:70
Definition: bins_dynamic.h:64
void type
Definition: bins_dynamic.h:65