point_locator_tree.h
Go to the documentation of this file.
1 // The libMesh Finite Element Library.
2 // Copyright (C) 2002-2014 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner
3 
4 // This library is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU Lesser General Public
6 // License as published by the Free Software Foundation; either
7 // version 2.1 of the License, or (at your option) any later version.
8 
9 // This library is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 // Lesser General Public License for more details.
13 
14 // You should have received a copy of the GNU Lesser General Public
15 // License along with this library; if not, write to the Free Software
16 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 
18 
19 
20 #ifndef LIBMESH_POINT_LOCATOR_TREE_H
21 #define LIBMESH_POINT_LOCATOR_TREE_H
22 
23 // Local Includes
25 #include "libmesh/tree_base.h"
26 
27 // C++ includes
28 #include <cstddef>
29 
30 namespace libMesh
31 {
32 
33 
34 // Forward Declarations
35 class MeshBase;
36 class Point;
37 class Elem;
38 
39 
50 // ------------------------------------------------------------
51 // PointLocatorTree class definition
53 {
54 public:
55 
56 
66  const PointLocatorBase* master = NULL);
67 
68 
80  PointLocatorTree (const MeshBase& mesh,
81  const Trees::BuildType build_type,
82  const PointLocatorBase* master = NULL);
83 
84 
85 
86 public:
87 
92 
96  virtual void clear();
97 
102  void init(const Trees::BuildType build_type);
103 
108  virtual void init() { this->init(Trees::NODES); }
109 
116  virtual const Elem* operator() (const Point& p) const;
117 
124  virtual void enable_out_of_mesh_mode (void);
125 
131  virtual void disable_out_of_mesh_mode (void);
132 
133 protected:
134 
141 
147  mutable const Elem* _element;
148 
154 
155 };
156 
157 
158 // ------------------------------------------------------------
159 // PointLocatorTree inline methods
160 
161 
162 } // namespace libMesh
163 
164 #endif // LIBMESH_POINT_LOCATOR_TREE_H

Site Created By: libMesh Developers
Last modified: February 07 2014 16:57:06 UTC

Hosted By:
SourceForge.net Logo