/usr/include/rheolef/geo-build.h is in librheolef-dev 5.93-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | #ifndef _RHEO_GEOREP_BUILD_H
#define _RHEO_GEOREP_BUILD_H
///
/// This file is part of Rheolef.
///
/// Copyright (C) 2000-2009 Pierre Saramito <Pierre.Saramito@imag.fr>
///
/// Rheolef is free software; you can redistribute it and/or modify
/// it under the terms of the GNU General Public License as published by
/// the Free Software Foundation; either version 2 of the License, or
/// (at your option) any later version.
///
/// Rheolef is distributed in the hope that it will be useful,
/// but WITHOUT ANY WARRANTY; without even the implied warranty of
/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
/// GNU General Public License for more details.
///
/// You should have received a copy of the GNU General Public License
/// along with Rheolef; if not, write to the Free Software
/// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
///
/// =========================================================================
#include "rheolef/geo-connectivity.h"
namespace rheolef {
template <class ElementContainer, class VertexContainer>
void
georep::build (const ElementContainer& e, const VertexContainer& v)
{
resize (e.size());
_x.resize (v.size());
iterator j = begin();
for (typename ElementContainer::const_iterator i = e.begin(); i != e.end(); i++, j++) {
(*j).copy (*i);
}
copy (v.begin(), v.end(), _x.begin());
_number = std::numeric_limits<size_type>::max();
_serial_number = std::numeric_limits<size_type>::max();
// _coord_sys : unchanged
#ifdef HAVE_BUG
_domlist.resize (0);
#else // HAVE_BUG
_domlist = domlist_type();
#endif // HAVE_BUG
domlist_type();
_save_double_precision = false;
_version = 1;
_localizer_initialized = false;
_boundary.resize(0);
_boundary_initialized = false;
// update bbox
_dim = 3; // will be set from coordinates
for (size_type j = 0; j < _dim; j++) {
_xmin[j] = std::numeric_limits<Float>::max();
_xmax[j] = -std::numeric_limits<Float>::max();
}
for (size_type j = _dim+1; j < 3; j++) {
_xmin [j] = _xmax [j] = 0;
}
for (nodelist_type::const_iterator iter_p = _x.begin(); iter_p != _x.end(); iter_p++) {
const point& p = *iter_p;
for (size_type j = 0 ; j < _dim; j++) {
_xmin[j] = std::min(p[j], _xmin[j]);
_xmax[j] = std::max(p[j], _xmax[j]);
}
}
if (_xmax[2] == 0 && _xmin[2] == 0) {
if (_xmax[1] == 0 && _xmin[1] == 0) {
_dim = 1;
} else {
_dim = 2;
}
}
// update counters
reset_counters ();
_count_geo [0] = n_node();
_count_element [0] = n_node();
size_type K_idx = 0;
for (iterator iter_elt = begin(); iter_elt != end(); iter_elt++, K_idx++) {
geo_element& K = *iter_elt;
K.set_index (K_idx);
_count_geo [K.dimension()]++;
_count_element[K.type()]++;
}
upgrade();
}
}// namespace rheolef
#endif // _RHEO_GEOREP_BUILD_H
|