Skip to content
Snippets Groups Projects
Commit 622077be authored by Tom Fischer's avatar Tom Fischer
Browse files

[MeL/ME] const& instead of const* for dest. mesh.

parent 375231d9
No related branches found
No related tags found
No related merge requests found
...@@ -168,7 +168,7 @@ int main(int argc, char* argv[]) ...@@ -168,7 +168,7 @@ int main(int argc, char* argv[])
// do the interpolation // do the interpolation
MeshLib::Mesh2MeshPropertyInterpolation mesh_interpolation( MeshLib::Mesh2MeshPropertyInterpolation mesh_interpolation(
*src_mesh, property_arg.getValue()); *src_mesh, property_arg.getValue());
mesh_interpolation.setPropertiesForMesh(dest_mesh.get()); mesh_interpolation.setPropertiesForMesh(*dest_mesh);
double scale(1.0); double scale(1.0);
if (unit_arg.getValue() == "m/s") if (unit_arg.getValue() == "m/s")
......
...@@ -35,24 +35,29 @@ Mesh2MeshPropertyInterpolation::Mesh2MeshPropertyInterpolation( ...@@ -35,24 +35,29 @@ Mesh2MeshPropertyInterpolation::Mesh2MeshPropertyInterpolation(
: _src_mesh(src_mesh), _property_name(property_name) : _src_mesh(src_mesh), _property_name(property_name)
{} {}
bool Mesh2MeshPropertyInterpolation::setPropertiesForMesh(Mesh *dest_mesh) const bool Mesh2MeshPropertyInterpolation::setPropertiesForMesh(Mesh& dest_mesh) const
{ {
if (_src_mesh->getDimension() != dest_mesh->getDimension()) { if (_src_mesh.getDimension() != dest_mesh.getDimension()) {
ERR ("MeshLib::Mesh2MeshPropertyInterpolation::setPropertiesForMesh() dimension of source (dim = %d) and destination (dim = %d) mesh does not match.", _src_mesh->getDimension(), dest_mesh->getDimension()); ERR("MeshLib::Mesh2MeshPropertyInterpolation::setPropertiesForMesh() "
"dimension of source (dim = %d) and destination (dim = %d) mesh "
"does not match.",
_src_mesh.getDimension(), dest_mesh.getDimension());
return false; return false;
} }
if (_src_mesh->getDimension() != 2) { if (_src_mesh.getDimension() != 2) {
WARN ("MeshLib::Mesh2MeshPropertyInterpolation::setPropertiesForMesh() implemented only for 2D case at the moment."); WARN(
"MeshLib::Mesh2MeshPropertyInterpolation::setPropertiesForMesh() "
"implemented only for 2D case at the moment.");
return false; return false;
} }
boost::optional<MeshLib::PropertyVector<double> &> opt_pv( boost::optional<MeshLib::PropertyVector<double> &> opt_pv(
dest_mesh->getProperties().getPropertyVector<double>(_property_name)); dest_mesh.getProperties().getPropertyVector<double>(_property_name));
if (!opt_pv) { if (!opt_pv) {
INFO("Create new PropertyVector \"%s\" of type double.", INFO("Create new PropertyVector \"%s\" of type double.",
_property_name.c_str()); _property_name.c_str());
opt_pv = dest_mesh->getProperties().createNewPropertyVector<double>( opt_pv = dest_mesh.getProperties().createNewPropertyVector<double>(
_property_name, MeshItemType::Cell, 1); _property_name, MeshItemType::Cell, 1);
if (!opt_pv) { if (!opt_pv) {
WARN("Could not get or create a PropertyVector of type double" WARN("Could not get or create a PropertyVector of type double"
...@@ -61,16 +66,16 @@ bool Mesh2MeshPropertyInterpolation::setPropertiesForMesh(Mesh *dest_mesh) const ...@@ -61,16 +66,16 @@ bool Mesh2MeshPropertyInterpolation::setPropertiesForMesh(Mesh *dest_mesh) const
} }
} }
MeshLib::PropertyVector<double> & dest_properties(opt_pv.get()); MeshLib::PropertyVector<double> & dest_properties(opt_pv.get());
if (dest_properties.size() != dest_mesh->getNumberOfElements()) if (dest_properties.size() != dest_mesh.getNumberOfElements())
dest_properties.resize(dest_mesh->getNumberOfElements()); dest_properties.resize(dest_mesh.getNumberOfElements());
interpolatePropertiesForMesh(*dest_mesh, dest_properties); interpolatePropertiesForMesh(dest_mesh, dest_properties);
return true; return true;
} }
void Mesh2MeshPropertyInterpolation::interpolatePropertiesForMesh( void Mesh2MeshPropertyInterpolation::interpolatePropertiesForMesh(
Mesh &dest_mesh, MeshLib::PropertyVector<double> & dest_properties) const Mesh& dest_mesh, MeshLib::PropertyVector<double>& dest_properties) const
{ {
std::vector<double> interpolated_src_node_properties(_src_mesh.getNumberOfNodes()); std::vector<double> interpolated_src_node_properties(_src_mesh.getNumberOfNodes());
interpolateElementPropertiesToNodeProperties( interpolateElementPropertiesToNodeProperties(
......
...@@ -41,13 +41,13 @@ public: ...@@ -41,13 +41,13 @@ public:
std::string const& property_name); std::string const& property_name);
/** /**
* Calculates entries for the property vector and sets appropriate indices in the * Calculates entries for the property vector and sets appropriate indices
* mesh elements. * in the mesh elements.
* @param mesh the mesh the property information will be calculated and set via * @param mesh the mesh the property information will be calculated and set
* weighted interpolation * via weighted interpolation
* @return true if the operation was successful, false on error * @return true if the operation was successful, false on error
*/ */
bool setPropertiesForMesh(Mesh *mesh) const; bool setPropertiesForMesh(Mesh& mesh) const;
private: private:
/** /**
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment