MFEM  v4.3.0
Finite element discretization library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
vertex.hpp
Go to the documentation of this file.
1 // Copyright (c) 2010-2021, Lawrence Livermore National Security, LLC. Produced
2 // at the Lawrence Livermore National Laboratory. All Rights reserved. See files
3 // LICENSE and NOTICE for details. LLNL-CODE-806117.
4 //
5 // This file is part of the MFEM library. For more information and source code
6 // availability visit https://mfem.org.
7 //
8 // MFEM is free software; you can redistribute it and/or modify it under the
9 // terms of the BSD-3 license. We welcome feedback and contributions, see file
10 // CONTRIBUTING.md for details.
11 
12 #ifndef MFEM_VERTEX
13 #define MFEM_VERTEX
14 
15 #include "../config/config.hpp"
16 #include "../general/globals.hpp"
17 
18 namespace mfem
19 {
20 
21 /// Data type for vertex
22 class Vertex
23 {
24 protected:
25  double coord[3];
26 
27 public:
28  Vertex() = default;
29 
30  // Trivial copy constructor and trivial copy assignment operator
31 
32  Vertex (double *xx, int dim);
33  Vertex( double x, double y) { coord[0] = x; coord[1] = y; coord[2] = 0.; }
34  Vertex( double x, double y, double z)
35  { coord[0] = x; coord[1] = y; coord[2] = z; }
36 
37  /// Returns pointer to the coordinates of the vertex.
38  inline double * operator() () const { return (double*)coord; }
39 
40  /// Returns the i'th coordinate of the vertex.
41  inline double & operator() (int i) { return coord[i]; }
42 
43  /// Returns the i'th coordinate of the vertex.
44  inline const double & operator() (int i) const { return coord[i]; }
45 
46  /// (DEPRECATED) Set the coordinates of the Vertex.
47  /** @deprecated This old version of SetCoords is not always memory safe. */
48  MFEM_DEPRECATED void SetCoords(const double *p)
49  { coord[0] = p[0]; coord[1] = p[1]; coord[2] = p[2]; }
50 
51  /// Sets vertex location based on given point p
52  void SetCoords(int dim, const double *p)
53  { for (int i = 0; i < dim; i++) { coord[i] = p[i]; } }
54 
55  // Trivial destructor
56 };
57 
58 }
59 
60 #endif
Vertex()=default
MFEM_DEPRECATED void SetCoords(const double *p)
(DEPRECATED) Set the coordinates of the Vertex.
Definition: vertex.hpp:48
void SetCoords(int dim, const double *p)
Sets vertex location based on given point p.
Definition: vertex.hpp:52
Data type for vertex.
Definition: vertex.hpp:22
Vertex(double x, double y, double z)
Definition: vertex.hpp:34
double coord[3]
Definition: vertex.hpp:25
int dim
Definition: ex24.cpp:53
double * operator()() const
Returns pointer to the coordinates of the vertex.
Definition: vertex.hpp:38
Vertex(double x, double y)
Definition: vertex.hpp:33