/** * \file * \author Karsten Rink * \date 2012-05-02 * \brief Definition of the Node class. * * \copyright * Copyright (c) 2012-2022, OpenGeoSys Community (http://www.opengeosys.org) * Distributed under a Modified BSD License. * See accompanying file LICENSE.txt or * http://www.opengeosys.org/project/license * */ #pragma once #include #include #include #include "MathLib/Point3dWithID.h" namespace ApplicationUtils { class NodeWiseMeshPartitioner; } namespace MeshLib { /** * A mesh node with coordinates in 3D space. */ class Node : public MathLib::Point3dWithID { /* friend classes: */ friend class Mesh; friend class MeshRevision; public: /// Constructor using a coordinate array explicit Node(const double coords[3], std::size_t id = std::numeric_limits::max()); /// Constructor using a coordinate array explicit Node(std::array const& coords, std::size_t id = std::numeric_limits::max()); /// Constructor using single coordinates Node(double x, double y, double z, std::size_t id = std::numeric_limits::max()); /// Copy constructor Node(const Node &node); }; /* class */ } // namespace MeshLib