const int maxLevel,
const int maxNbNodes,
const double minBoxSize) :
- HYDROData_Quadtree(new Limit(maxLevel, minBoxSize, maxNbNodes)), myNodes(theNodes)
+ HYDROData_Quadtree(new Limit(maxLevel, minBoxSize, maxNbNodes)), myNodes(theNodes), myPrecision(0.25)
{
- DEBTRACE("---------------------------- HYDROData_QuadtreeNode root constructor");
+ //DEBTRACE("---------------------------- HYDROData_QuadtreeNode root constructor");
if (myNodes)
{
- DEBTRACE(" --- start compute");
+ //DEBTRACE(" --- start compute");
compute();
- DEBTRACE(" --- end compute");
+ //DEBTRACE(" --- end compute");
}
}
* \brief Constructor used to allocate a child
*/
HYDROData_QuadtreeNode::HYDROData_QuadtreeNode() :
- HYDROData_Quadtree()
+ HYDROData_Quadtree(), myNodes(0), myPrecision(0.25)
{
- if (myNodes == 0)
- myNodes = new Nodes_3D();
+ myNodes = new Nodes_3D();
}
/*!
myNodes = theNodes;
if (myNodes)
{
- DEBTRACE(" --- start compute");
+ //DEBTRACE(" --- start compute");
compute();
- DEBTRACE(" --- end compute : children & height " << this->nbChildren() << " " << this->getHeight());
- DEBTRACE("Bounding box min: " << this->myBox->CornerMin().X() << " " << this->myBox->CornerMin().Y());
- DEBTRACE("Bounding box max: " << this->myBox->CornerMax().X() << " " << this->myBox->CornerMax().Y());
+ //DEBTRACE(" --- end compute : children & height " << this->nbChildren() << " " << this->getHeight());
+ //DEBTRACE("Bounding box min: " << this->myBox->CornerMin().X() << " " << this->myBox->CornerMin().Y());
+ //DEBTRACE("Bounding box max: " << this->myBox->CornerMax().X() << " " << this->myBox->CornerMax().Y());
}
}
Nodes_3D::iterator it = myNodes->begin();
for (; it != myNodes->end(); it++)
{
- const gp_XYZ* n1 = *it;
+ const gpi_XYZ* n1 = *it;
gp_XY p1(n1->X(), n1->Y());
box->Add(p1);
}
Nodes_3D::iterator it = myNodes->begin();
while (it != myNodes->end())
{
- gp_XYZ* n1 = *it;
+ gpi_XYZ* n1 = *it;
int ChildBoxNum = getChildIndex(n1->X(), n1->Y(), mid);
HYDROData_QuadtreeNode* myChild = dynamic_cast<HYDROData_QuadtreeNode*>(myChildren[ChildBoxNum]);
myChild->myNodes->push_back(n1);
* \param Result - list of Nodes potentials to be near Node
*/
void HYDROData_QuadtreeNode::NodesAround(const gp_XY& Node,
- list<const gp_XYZ*>* Result,
+ list<const gpi_XYZ*>* Result,
const double precision)
{
gp_XY p(Node);
* \retval bool - true if an exact overlapping found !!!
*/
bool HYDROData_QuadtreeNode::NodesAround(const gp_XY& node,
- map<double, const gp_XYZ*>& dist2Nodes,
+ map<double, const gpi_XYZ*>& dist2Nodes,
double precision)
{
if (!dist2Nodes.empty())
Nodes_3D::iterator nIt = myNodes->begin();
for (; nIt != myNodes->end(); ++nIt)
{
- const gp_XYZ* p = *nIt;
+ const gpi_XYZ* p = *nIt;
gp_XY p2(p->X(), p->Y());
double dist2 = (node - p2).SquareModulus();
if (dist2 < minDist)