SheafSystem  0.0.0.0
d_uniform_point_locator.cc
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 
22 #include "SheafSystem/d_uniform_point_locator.impl.h"
23 
24 #include "SheafSystem/sec_rep_descriptor.h"
25 
26 using namespace std;
27 using namespace geometry; // Workaround for MS C++ bug.
28 
29 // ============================================================================
31 // ============================================================================
33 
34 template <>
37  : point_locator(xcoords)
38 {
39  // Preconditions:
40 
41  require(precondition_of(point_locator(xcoords)));
42  require(xcoords.schema().rep().name() == "vertex_block_uniform");
43 
44  // Body:
45 
46 
47  this->_block = new structured_block_1d(xcoords.schema().base_space());
48  this->_block_pt = new chart_point_1d();
49  this->_evaluator = new uniform_1d;
50 
51  update();
52 
53  // Postconditions:
54 
55 
56  // Exit:
57 
58  return;
59 }
60 
61 template <>
64  : point_locator(xcoords)
65 {
66  // Preconditions:
67 
68  require(precondition_of(point_locator(xcoords)));
69  require(xcoords.schema().rep().name() == "vertex_block_uniform");
70 
71  // Body:
72 
73 
74  this->_block = new structured_block_2d(xcoords.schema().base_space());
75  this->_block_pt = new chart_point_2d();
76  this->_evaluator = new uniform_2d;
77 
78  update();
79 
80  // Postconditions:
81 
82 
83  // Exit:
84 
85  return;
86 }
87 
88 template <>
91  : point_locator(xcoords)
92 {
93  // Preconditions:
94 
95  require(precondition_of(point_locator(xcoords)));
96  require(xcoords.schema().rep().name() == "vertex_block_uniform");
97 
98  // Body:
99 
100 
101  this->_block = new structured_block_3d(xcoords.schema().base_space());
102  this->_block_pt = new chart_point_3d();
103  this->_evaluator = new uniform_3d;
104 
105  update();
106 
107  // Postconditions:
108 
109 
110  // Exit:
111 
112  return;
113 }
114 
116 
A homogeneous collection of connected quads arranged in an i_size() x j_size() array.
d_uniform_point_locator()
Default constructor; disabled.
A point in a 3D chart space.
STL namespace.
point_locator()
Default constructor.
structured_block * _block
Base space of coordinates.
A section evaluator using trilinear interpolation over a cubic 3D domain. Intended for use with unifo...
Definition: uniform_3d.h:39
std::string name() const
A name for this.
chart_point * _block_pt
Point in local coordinates of block.
A homogeneous collection of connected segments arranged in an i_size() array.
A section of a fiber bundle with a d-dimensional Euclidean vector space fiber.
Definition: sec_ed.h:47
A homogeneous collection of connected hexahedra arranged in an i_size() x j_size() x k_size() array...
A point in a 2D chart space.
A section evaluator using bilinear interpolation over a square 2D domain. Intended for use with unifo...
Definition: uniform_2d.h:39
section_evaluator * _evaluator
Evaluator for coordinates.
total_poset_member & base_space()
The base space component of this (mutable version).
A section evaluator using linear interpolation over a 1D domain which is refined into a uniform mesh...
Definition: uniform_1d.h:39
virtual section_space_schema_member & schema()
The restricted schema for this (mutable version).
A point in a 1D chart space.
sec_rep_descriptor & rep()
The representation for section spaces on this schema (mutable version).
Namespace for geometry component of sheaf system.
Definition: field_vd.h:54
virtual void update()
Updates the search structure to the current values of coordinates().
An abstract point location query in domains with global coordinate dimension dc and local coordinate ...
Definition: point_locator.h:52