SheafSystem  0.0.0.0
array_cylindrical_point_locator.h
Go to the documentation of this file.
1 
2 //
3 // Copyright (c) 2014 Limit Point Systems, Inc.
4 //
5 // Licensed under the Apache License, Version 2.0 (the "License");
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 // http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17 
20 
21 #ifndef ARRAY_CYLINDRICAL_POINT_LOCATOR_H
22 #define ARRAY_CYLINDRICAL_POINT_LOCATOR_H
23 
24 #ifndef SHEAF_DLL_SPEC_H
25 #include "SheafSystem/sheaf_dll_spec.h"
26 #endif
27 
28 #ifndef CYLINDRICAL_POINT_LOCATOR_H
29 #include "SheafSystem/cylindrical_point_locator.h"
30 #endif
31 
32 namespace geometry
33 {
34 
35 template <int DC, int DB>
37 
45 {
46 
47  // ===========================================================
49  // ===========================================================
51 
52 public:
53 
58 
64 
69 
73  size_type size() const;
74 
78  size_type capacity() const;
79 
84  bool is_dlinear_quads(const sec_ed& xcoords) const;
85 
90  bool is_dlinear_triangles(const sec_ed& xcoords) const;
91 
92 protected:
93 
98  {}
99  ;
100 
105  {}
106  ;
107 
111  virtual array_cylindrical_point_locator& operator=(const point_locator& xother);
112 
117 
122  void update_bins();
123 
128 
132  size_type bin_id(const d_bin_coordinates<2, 2>& xcoord) const;
133 
137  size_type bin_id(const block<size_type>& xid) const;
138 
142  size_type bin_id(size_type xi, size_type xj) const;
143 
145 
146 
147  // ===========================================================
149  // ===========================================================
151 
152 public:
153 
158 
162  virtual void insert_box(d_bounding_box<2, 2>* xbox);
163 
167  virtual void remove_box(d_bounding_box<2, 2>* xbox);
168 
172  virtual const box_list_type& box_list(sec_vd_value_type* xpt, size_type xpt_ub) const;
173 
177  virtual bool contains_box(d_bounding_box<2, 2>* xbox) const;
178 
182  virtual void clear();
183 
185 
186 
187  // ===========================================================
189  // ===========================================================
191 
192 public:
193 
197  virtual bool invariant() const;
198 
200 
201 };
202 
203 // ===========================================================
204 // NON-MEMBER FUNCTIONS
205 // ===========================================================
206 
210 SHEAF_DLL_SPEC
211 std::ostream&
212 operator << (std::ostream& xos, const array_cylindrical_point_locator& xpl);
213 
214 } // namespace geometry
215 
216 #endif // ARRAY_CYLINDRICAL_POINT_LOCATOR_H
array_cylindrical_point_locator()
Default constructor; disabled.
Fixed point relative coordinates for a tree domain.
A section of a fiber bundle with a d-dimensional Euclidean vector space fiber.
Definition: sec_ed.h:47
A point location query in domains with global coordinate dimension DC and local coordinate dimension ...
unsigned long size_type
An unsigned integral type used to represent sizes and capacities.
Definition: sheaf.h:52
A bounding box that can be strung together into a list.
singly_linked_list< const d_bounding_box< 2, 2 > * > box_list_type
The type of box list.
An abstract point location query in domains with global coordinate dimension dc and local coordinate ...
block< box_list_type > _bins
The search structure; a d-dimensional array of bins.
SHEAF_DLL_SPEC std::ostream & operator<<(std::ostream &xos, const array_cylindrical_point_locator &xpl)
Insert array_cylindrical_point_locator xpl into ostream xos.
array_cylindrical_point_locator(const array_cylindrical_point_locator &xother)
Copy constructor; disabled.
Namespace for geometry component of sheaf system.
Definition: field_vd.h:54
vd_value_type sec_vd_value_type
The type of component in the value of a section at a point.
Definition: fiber_bundle.h:73
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 ...
Definition: point_locator.h:52