loaded meshes can be linearly rescaled (so for example a unit sphere can be rescaled to a sphere of any radius)
68 lines
2.0 KiB
C++
68 lines
2.0 KiB
C++
/* ***********************************************************************
|
|
//
|
|
// Copyright (C) 2025 -- The 4D-STAR Collaboration
|
|
// File Author: Emily Boudreaux
|
|
// Last Modified: March 18, 2025
|
|
//
|
|
// 4DSSE is free software; you can use it and/or modify
|
|
// it under the terms and restrictions the GNU General Library Public
|
|
// License version 3 (GPLv3) as published by the Free Software Foundation.
|
|
//
|
|
// 4DSSE 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 Library General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU Library General Public License
|
|
// along with this software; if not, write to the Free Software
|
|
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
//
|
|
// *********************************************************************** */
|
|
#ifndef MESHIO_H
|
|
#define MESHIO_H
|
|
|
|
#include "mfem.hpp"
|
|
#include <string>
|
|
|
|
/**
|
|
* @brief Class for handling mesh input/output operations.
|
|
*/
|
|
class MeshIO
|
|
{
|
|
private:
|
|
bool loaded_; ///< Flag to indicate if the mesh is loaded
|
|
std::string mesh_file_; ///< Filename of the mesh file
|
|
mfem::Mesh mesh_; ///< The mesh object
|
|
|
|
public:
|
|
/**
|
|
* @brief Constructor that initializes the MeshIO object with a mesh file.
|
|
* @param mesh_file The name of the mesh file.
|
|
*/
|
|
MeshIO(const std::string &mesh_file, double scale_factor = 1.0);
|
|
|
|
/**
|
|
* @brief Destructor for the MeshIO class.
|
|
*/
|
|
~MeshIO();
|
|
|
|
/**
|
|
* @brief Rescale the mesh by a linear factor.
|
|
* @param scale_factor The factor by which to scale the mesh.
|
|
*/
|
|
void LinearRescale(double scale_factor);
|
|
|
|
/**
|
|
* @brief Get the mesh object.
|
|
* @return Reference to the mesh object.
|
|
*/
|
|
mfem::Mesh& GetMesh();
|
|
|
|
/**
|
|
* @brief Check if the mesh is loaded.
|
|
* @return True if the mesh is loaded, false otherwise.
|
|
*/
|
|
bool IsLoaded() const;
|
|
};
|
|
|
|
#endif // MESHIO_H
|