147 :
Polygon(points), bottom(h_bottom), top(h_top)
162 :
Polygon(center, radius, nEdges), bottom(h_bottom), top(h_top)
196 bool contains(
const double* x)
198 return Polygon::contains(x);
201 bool contains(
const double* x,
const double& radius,
const int& layer,
Profile** profiles)
203 return (bottom->getLayerIndex() < 0 || layer >= bottom->getLayerIndex())
204 && (top->getLayerIndex() < 0 || layer <= top->getLayerIndex())
205 && radius > bottom->getRadius(x, profiles) - 1e-4
206 && radius < top->getRadius(x, profiles) + 1e-4
207 && Polygon::contains(x);
210 bool contains(
const double* x,
const int& layer)
212 return ( bottom->getLayerIndex() < 0 || layer >= bottom->getLayerIndex())
213 && ( top->getLayerIndex() < 0 || layer <= top->getLayerIndex())
214 && Polygon::contains(x);
228 bool containsAll(vector<double*>& points, vector<double>& radii, vector<int>& layers, vector<Profile**>& profiles)
230 for (
int i=0; i<(int)points.size(); ++i)
231 if (!contains(points[i], radii[i], layers[i], profiles[i]))
247 bool containsAny(vector<double*>& points, vector<double>& radii, vector<int>& layers, vector<Profile**>& profiles)
249 for (
int i=0; i<(int)points.size(); ++i)
250 if (contains(points[i], radii[i], layers[i], profiles[i]))
255 virtual void write(
const string& outputFileName);