OGS
Point3dWithID.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) OpenGeoSys Community (opengeosys.org)
2// SPDX-License-Identifier: BSD-3-Clause
3
4#pragma once
5
6#include <limits>
7
8#include "Point3d.h"
9
10namespace MathLib
11{
16class Point3dWithID: public Point3d {
17public:
24 Point3dWithID(double x0, double x1, double x2,
25 std::size_t id = std::numeric_limits<std::size_t>::max())
26 : Point3d(std::array<double, 3>({{x0, x1, x2}})), id_(id)
27 {}
28
33 explicit Point3dWithID(
34 std::array<double, 3> const& coords,
35 std::size_t id = std::numeric_limits<std::size_t>::max())
36 : Point3d(coords), id_(id)
37 {}
38
43 explicit Point3dWithID(
44 MathLib::Point3d const& pnt,
45 std::size_t id = std::numeric_limits<std::size_t>::max())
46 : MathLib::Point3d(pnt), id_(id)
47 {}
48
51 Point3dWithID() : id_(std::numeric_limits<std::size_t>::max()) {}
52
53 std::size_t getID() const { return id_; }
54
55protected:
57 void setID(std::size_t id) { id_ = id; }
58
59private:
60 std::size_t id_;
61};
62
63} // namespace MathLib
std::size_t getID() const
Point3dWithID(MathLib::Point3d const &pnt, std::size_t id=std::numeric_limits< std::size_t >::max())
Point3dWithID(double x0, double x1, double x2, std::size_t id=std::numeric_limits< std::size_t >::max())
void setID(std::size_t id)
Sets the ID of a node to the given value.
Point3dWithID(std::array< double, 3 > const &coords, std::size_t id=std::numeric_limits< std::size_t >::max())