Version: 8.3.0
Main Page
Related Pages
Packages
Data Structures
Files
File List
Globals
SMESH_Quadtree.hxx
Go to the documentation of this file.
1
// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE
2
//
3
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5
//
6
// This library is free software; you can redistribute it and/or
7
// modify it under the terms of the GNU Lesser General Public
8
// License as published by the Free Software Foundation; either
9
// version 2.1 of the License, or (at your option) any later version.
10
//
11
// This library is distributed in the hope that it will be useful,
12
// but WITHOUT ANY WARRANTY; without even the implied warranty of
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
// Lesser General Public License for more details.
15
//
16
// You should have received a copy of the GNU Lesser General Public
17
// License along with this library; if not, write to the Free Software
18
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
//
20
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21
//
22
23
// SMESH_Quadtree : Quartree implementation
24
// File : SMESH_Quadtree.hxx
25
// Module : SMESH
26
//
27
#ifndef _SMESH_Quadtree_HXX_
28
#define _SMESH_Quadtree_HXX_
29
30
#include "
SMESH_Utils.hxx
"
31
#include "
SMESH_Tree.hxx
"
32
#include <Bnd_B2d.hxx>
33
41
class
SMESHUtils_EXPORT
SMESH_Quadtree
:
public
SMESH_Tree
< Bnd_B2d, 4 >
42
{
43
public
:
44
typedef
SMESH_Tree< Bnd_B2d, 4>
TBaseTree
;
45
46
// Constructor. limit must be provided at tree root construction.
47
// limit will be deleted by SMESH_Quadtree
48
SMESH_Quadtree
(
SMESH_TreeLimit
* limit=0);
49
50
// Compute the bigger dimension of my box
51
double
maxSize
()
const
;
52
53
// Return index of a child the given point is in
54
//inline int getChildIndex(double x, double y, const gp_XY& boxMiddle)const;
55
56
protected
:
57
58
// Allocate a bndbox according to childIndex. childIndex is zero based
59
virtual
Bnd_B2d*
newChildBox
(
int
childIndex)
const
;
60
61
// Change size of a box by a factor; each dimension changes independently of others
62
virtual
void
enlargeByFactor
( Bnd_B2d* box,
double
factor )
const
;
63
};
64
65
//================================================================================
69
//================================================================================
70
71
// inline int SMESH_Quadtree::getChildIndex(double x, double y, const gp_XY& mid) const
72
// {
73
// return (x > mid.X()) + ( y > mid.Y())*2 + (z > mid.Z())*4;
74
// }
75
76
#endif
src
SMESHUtils
SMESH_Quadtree.hxx
Copyright © 2007-2017 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS