Version: 8.3.0
Main Page
Related Pages
Packages
Data Structures
Files
File List
Globals
SALOME Mesh Module Developer
Use the SpherePadder SMESH Plugin
Todo List
Packages
Data Structures
Files
File List
idl
src
Controls
Driver
DriverCGNS
DriverDAT
DriverGMF
DriverMED
DriverSTL
DriverUNV
MEDWrapper
MEFISTO2
OBJECT
PluginUtils
SMDS
SMESH
SMESH_I
SMESH_SWIG_WITHIHM
SMESHClient
SMESHDS
SMESHFiltersSelection
SMESHGUI
SMESHUtils
SMESH_Block.cxx
SMESH_Block.hxx
SMESH_Comment.hxx
SMESH_ComputeError.hxx
SMESH_ControlPnt.cxx
SMESH_ControlPnt.hxx
SMESH_DeMerge.cxx
SMESH_File.cxx
SMESH_File.hxx
SMESH_FreeBorders.cxx
SMESH_MAT2d.cxx
SMESH_MAT2d.hxx
SMESH_MeshAlgos.cxx
SMESH_MeshAlgos.hxx
SMESH_Octree.cxx
SMESH_Octree.hxx
SMESH_OctreeNode.cxx
SMESH_OctreeNode.hxx
SMESH_Quadtree.cxx
SMESH_Quadtree.hxx
SMESH_Tree.hxx
SMESH_TryCatch.cxx
SMESH_TryCatch.hxx
SMESH_TypeDefs.hxx
SMESH_Utils.hxx
StdMeshers
StdMeshers_I
StdMeshersGUI
Tools
Globals
SMESH_Octree.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 SMESH_Octree : Octree implementation
24
// File : SMESH_Octree.hxx
25
// Created : Tue Jan 16 16:00:00 2007
26
// Author : Nicolas Geimer & Aur�lien Motteux (OCC)
27
// Module : SMESH
28
//
29
#ifndef _SMESH_OCTREE_HXX_
30
#define _SMESH_OCTREE_HXX_
31
32
#include "
SMESH_Utils.hxx
"
33
#include "
SMESH_Tree.hxx
"
34
#include <Bnd_B3d.hxx>
35
36
//================================================================================
44
class
SMESHUtils_EXPORT
SMESH_Octree
:
public
SMESH_Tree
< Bnd_B3d, 8 >
45
{
46
public
:
47
typedef
SMESH_Tree< Bnd_B3d, 8>
TBaseTree
;
48
49
// Constructor. limit must be provided at tree root construction.
50
// limit will be deleted by SMESH_Octree
51
SMESH_Octree
(
SMESH_TreeLimit
* limit=0);
52
virtual
~SMESH_Octree
() {};
53
54
// Compute the bigger dimension of my box
55
double
maxSize
()
const
;
56
57
// Return index of a child the given point is in
58
inline
static
int
getChildIndex(
double
x,
double
y,
double
z,
const
gp_XYZ& boxMiddle);
59
60
protected
:
61
62
// Allocate a bndbox according to childIndex. childIndex is zero based
63
virtual
Bnd_B3d*
newChildBox
(
int
childIndex)
const
;
64
65
// Change size of a box by a factor; each dimension changes independently of others
66
virtual
void
enlargeByFactor
( Bnd_B3d* box,
double
factor )
const
;
67
};
68
69
//================================================================================
73
inline
int
SMESH_Octree::getChildIndex
(
double
x,
double
y,
double
z,
const
gp_XYZ& mid)
74
{
75
return
(x > mid.X()) + ( y > mid.Y())*2 + (z > mid.Z())*4;
76
}
77
78
#endif
src
SMESHUtils
SMESH_Octree.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