Ice Sheet System Model  4.18
Code documentation
Edge.cpp
Go to the documentation of this file.
1 #include <cstdio>
2 #include <cstring>
3 #include <cmath>
4 #include <ctime>
5 
6 #include "Edge.h"
7 #include "Mesh.h"
8 #include "Geometry.h"
9 #include "../shared/shared.h"
10 
11 namespace bamg {
12 
13  /*Constructors/Destructors*/
14 
15  /*Methods*/
16  void Edge::Set(const Mesh & Th ,long i,Mesh & ThNew){ /*{{{*/
17  *this = Th.edges[i];
18  v[0] = ThNew.vertices + Th.GetId(v[0]);
19  v[1] = ThNew.vertices + Th.GetId(v[1]);
20  if (GeomEdgeHook)
22  if (adj[0]) adj[0] = ThNew.edges + Th.GetId(adj[0]);
23  if (adj[1]) adj[1] = ThNew.edges + Th.GetId(adj[1]);
24  }
25  /*}}}*/
26  void Edge::Echo(void){ /*{{{*/
27  _printf_("Edge:\n");
28  _printf_(" pointers towards two vertices: " << v[0] << " " << v[1] << "\n");
29  _printf_(" ReferenceNumber = " << ReferenceNumber << "\n");
30  _printf_(" GeomEdgeHook = " << GeomEdgeHook << "\n");
31  _printf_(" two adjacent edges on the same curve: " << adj[0] << " " << adj[1] << "\n");
32  }
33  /*}}}*/
34  void Edge::Renumbering(BamgVertex *vb,BamgVertex *ve, long *renu){/*{{{*/
35 
36  if (v[0] >=vb && v[0] <ve) v[0] = vb + renu[v[0]-vb];
37  if (v[1] >=vb && v[1] <ve) v[1] = vb + renu[v[1]-vb];
38 
39  }
40  /*}}}*/
41  int Edge::Intersection(const Edge & e){ /*{{{*/
42 
43  /*some shecks*/
44  if (!(adj[0]==&e || adj[1]==&e)){ _error_("Intersection bug"); }
45  _assert_(adj[0]==&e || adj[1]==&e);
46 
47  return adj[0]==&e?0:1;
48  }
49  /*}}}*/
50 
51 }
bamg::Mesh::GetId
long GetId(const Triangle &t) const
Definition: Mesh.cpp:2608
bamg::BamgVertex
Definition: BamgVertex.h:15
_assert_
#define _assert_(ignore)
Definition: exceptions.h:37
bamg::Edge::Echo
void Echo(void)
Definition: Edge.cpp:26
_printf_
#define _printf_(StreamArgs)
Definition: Print.h:22
bamg::Edge::Set
void Set(const Mesh &, long, Mesh &)
Definition: Edge.cpp:16
bamg::Edge::adj
Edge * adj[2]
Definition: Edge.h:18
bamg
Definition: AdjacentTriangle.cpp:9
bamg::Geometry::edges
GeomEdge * edges
Definition: Geometry.h:28
Geometry.h
bamg::Geometry::GetId
long GetId(const GeomVertex &t) const
Definition: Geometry.cpp:425
bamg::Edge::Renumbering
void Renumbering(BamgVertex *vb, BamgVertex *ve, long *renu)
Definition: Edge.cpp:34
bamg::Edge
Definition: Edge.h:12
Edge.h
bamg::Mesh::edges
Edge * edges
Definition: Mesh.h:29
bamg::Edge::v
BamgVertex * v[2]
Definition: Edge.h:15
Mesh.h
bamg::Mesh
Definition: Mesh.h:21
_error_
#define _error_(StreamArgs)
Definition: exceptions.h:49
bamg::Mesh::Gh
Geometry & Gh
Definition: Mesh.h:25
bamg::Edge::ReferenceNumber
long ReferenceNumber
Definition: Edge.h:16
bamg::Edge::Intersection
int Intersection(const Edge &e)
Definition: Edge.cpp:41
bamg::Mesh::vertices
BamgVertex * vertices
Definition: Mesh.h:27
bamg::Edge::GeomEdgeHook
GeomEdge * GeomEdgeHook
Definition: Edge.h:17