diff --git a/MeshLib/MeshGenerators/RasterToMesh.cpp b/MeshLib/MeshGenerators/RasterToMesh.cpp index f072bb82619c32806cbc041f8fdefa75e97b0d87..fe3d5e253054f7a29ce70fbe38000b02b1316690 100644 --- a/MeshLib/MeshGenerators/RasterToMesh.cpp +++ b/MeshLib/MeshGenerators/RasterToMesh.cpp @@ -72,7 +72,9 @@ MeshLib::Mesh* RasterToMesh::convert( return nullptr; } - MathLib::Point3d const orig(std::array<double, 3>{ {origin[0], origin[1], origin[2]}}); + MathLib::Point3d const orig( + std::array<double, 3>{{origin[0] - 0.5 * scalingFactor, + origin[1] - 0.5 * scalingFactor, origin[2]}}); GeoLib::RasterHeader const header = {static_cast<std::size_t>(dims[0]), static_cast<std::size_t>(dims[1]), static_cast<std::size_t>(dims[2]), @@ -139,9 +141,6 @@ MeshLib::Mesh* RasterToMesh::convert( return nullptr; } - MathLib::Point3d mesh_origin(std::array<double, 3>{ - {header.origin[0] - (header.cell_size / 2.0), - header.origin[1] - (header.cell_size / 2.0), header.origin[2]}}); std::unique_ptr<MeshLib::Mesh> mesh (nullptr); if (elem_type == MeshElemType::TRIANGLE) { @@ -149,7 +148,7 @@ MeshLib::Mesh* RasterToMesh::convert( MeshLib::MeshGenerator::generateRegularTriMesh(header.n_cols, header.n_rows, header.cell_size, - mesh_origin, + header.origin, "RasterDataMesh")); } else if (elem_type == MeshElemType::QUAD) @@ -158,7 +157,7 @@ MeshLib::Mesh* RasterToMesh::convert( MeshLib::MeshGenerator::generateRegularQuadMesh(header.n_cols, header.n_rows, header.cell_size, - mesh_origin, + header.origin, "RasterDataMesh")); } else if (elem_type == MeshElemType::PRISM) @@ -168,7 +167,7 @@ MeshLib::Mesh* RasterToMesh::convert( header.n_rows, header.n_depth, header.cell_size, - mesh_origin, + header.origin, "RasterDataMesh")); } else if (elem_type == MeshElemType::HEXAHEDRON) @@ -178,7 +177,7 @@ MeshLib::Mesh* RasterToMesh::convert( header.n_rows, header.n_depth, header.cell_size, - mesh_origin, + header.origin, "RasterDataMesh")); }