21 #ifndef DB0_POINT_LOCATOR_H 22 #define DB0_POINT_LOCATOR_H 24 #ifndef SHEAF_DLL_SPEC_H 25 #include "SheafSystem/sheaf_dll_spec.h" 28 #ifndef POINT_LOCATOR_H 29 #include "SheafSystem/point_locator.h" 32 #ifndef SINGLY_LINKED_LIST_H 33 #include "SheafSystem/singly_linked_list.h" 37 #include "SheafSystem/std_queue.h" 40 #ifndef SECTION_EVAL_ITERATOR_H 41 #include "SheafSystem/section_eval_iterator.h" 101 bool is_empty()
const;
107 bin_coord_type xresult[])
const;
112 virtual void clear();
159 virtual void update_bins();
197 void find_closest_bin(
const bin_coord_type xpt_pos[],
198 bin_coord_type xbin_pos[]);
209 bin_coord_type _search_region_lb[DC];
214 bin_coord_type _search_region_ub[DC];
236 void initialize_search_q();
242 void update_search_q(bin_coord_type xold_lb[], bin_coord_type xold_ub[]);
266 void find_closest_vertex_in_bin(
int xbin_id,
275 int bin_id(
const bin_coord_type xcoord[])
const;
280 void print_bins(std::ostream& xos,
const std::string& xmsg)
const;
285 void print_queue(std::ostream& xos,
const std::string& xmsg)
const;
290 void print_value(std::ostream& xos,
292 const std::string& xmsg)
const;
298 void print_coords(std::ostream& xos,
299 const bin_coord_type xcoords[],
300 const std::string& xmsg)
const;
308 const bin_coord_type xbin_pos[])
const;
323 virtual bool invariant()
const;
328 virtual void update();
493 print_bins(std::ostream& xos,
const std::string& xmsg)
const;
561 #endif // DB0_POINT_LOCATOR_H sec_vd_value_type _bin_diag
The diagonal length of the smallest bins.
virtual db0_point_locator & operator=(const point_locator &xother)
Assignment operator; disabled.
db0_point_locator & operator=(const db0_point_locator &xother)
Assignment operator; disabled.
The information stored in the search structure for each vertex.
An abstract point location query in domains with global coordinate dimension DC and local coordinate ...
void update_search_q(bin_coord_type xold_lb[], bin_coord_type xold_ub[])
Puts previous unsearched bins from the search region onto the search queue.
void initialize_search_q()
Puts all the bins from the search region onto the search queue.
block< sec_vd_value_type > _bin_size
The dimensions of the smallest bins.
sec_vd_value_type _search_radius
The radius of a sphere centered on the query point that will be searched for vertices.
A section of a fiber bundle with a d-dimensional Euclidean vector space fiber.
std::queue< int > _search_q
The bins scheduled to be searched for the current query point.
block< sec_vd_value_type > _one_over_min_bin_size
Reciprocal of the dimensions of the smallest bins.
An index within the external ("client") scope of a given id space.
unsigned long size_type
An unsigned integral type used to represent sizes and capacities.
db0_point_locator()
Default constructor; disabled.
int bin_coord_type
The type of the bin coordinates.
void print_bins(std::ostream &xos, const std::string &xmsg) const
Prints the contents of the bins on xos; intended for debugging.
singly_linked_list< vertex_type > vertex_list_type
The type of vertex list.
db0_point_locator(const db0_point_locator &xother)
Copy constructor; disabled.
double sec_vd_dof_type
The type of degree of freedom in the section space.
block< vertex_list_type > _bins
The search structure; a d-dimensional array of bins.
sec_vd_value_type max_bin_distance(const sec_vd_value_type xpt[], const bin_coord_type xbin_pos[]) const
The maximum distance from the query point xpt to any point in the bin with coordinates xbin_pos...
Namespace for geometry component of sheaf system.
vd_value_type sec_vd_value_type
The type of component in the value of a section at a point.
int bin_id(const bin_coord_type xcoord[]) const
The id of the bin with bin coords xcoord.
Wrapper class for forward_list or slist depending on compiler. The class replicates the minimum subse...
An abstract point location query in domains with global coordinate dimension dc and local coordinate ...