ESyS-Particle  2.3.4
Corner2D.h
Go to the documentation of this file.
1 // //
3 // Copyright (c) 2003-2017 by The University of Queensland //
4 // Centre for Geoscience Computing //
5 // http://earth.uq.edu.au/centre-geoscience-computing //
6 // //
7 // Primary Business: Brisbane, Queensland, Australia //
8 // Licensed under the Open Software License version 3.0 //
9 // http://www.apache.org/licenses/LICENSE-2.0 //
10 // //
12 
13 #ifndef __CORNER2D_H
14 #define __CORNER2D_H
15 
16 //-- Project includes --
17 #include "Foundation/vec3.h"
18 #include "Geometry/Edge2D.h"
19 
20 //-- STL includes --
21 #include <vector>
22 
23 using std::vector;
24 
25 
34 class Corner2D
35 {
36  private:
38  vector<Edge2D*> m_edges;
39  int m_id;
40 
41  public:
42  Corner2D(const Vec3&,int);
43 
44  void addEdge(Edge2D*);
45  double sep(const Vec3&) const;
46  // pair<bool,double> dist(const Vec3&) const ; // signed separation according to direction of the normal
47  bool isValidContact(const Vec3&) const;
48  Vec3 getDirectionFromPoint(const Vec3&) const;
49  void move(const Vec3&);
50  Vec3 getPos()const {return m_p;};
51  int getID() const {return m_id;};
52  int getNEdges() const {return m_edges.size();};
53  Vec3 getEdgeNormal(int) const;
54  void applyForceToEdge(int,const Vec3&);
55 };
56 
57 #endif // __CORNER2D_H
Corner2D::m_edges
vector< Edge2D * > m_edges
Definition: Corner2D.h:38
Corner2D::getDirectionFromPoint
Vec3 getDirectionFromPoint(const Vec3 &) const
Definition: Corner2D.cpp:77
Console::Error
Console & Error()
set verbose level of next message to "err"
console.h
Vec3::unit
VEC3_INLINE Vec3 unit() const
Definition: vec3.hpp:225
Corner2D::getPos
Vec3 getPos() const
Definition: Corner2D.h:50
Corner2D::m_id
int m_id
Definition: Corner2D.h:39
Corner2D::Corner2D
Corner2D(const Vec3 &, int)
Definition: Corner2D.cpp:22
Corner2D::addEdge
void addEdge(Edge2D *)
Definition: Corner2D.cpp:35
Corner2D::getEdgeNormal
Vec3 getEdgeNormal(int) const
Definition: Corner2D.cpp:98
Edge2D.h
Vec3::Z
VEC3_INLINE double & Z()
Definition: vec3.h:121
Corner2D::getNEdges
int getNEdges() const
Definition: Corner2D.h:52
Corner2D.h
Corner2D::move
void move(const Vec3 &)
Definition: Corner2D.cpp:87
Vec3
Definition: vec3.h:47
Corner2D::getID
int getID() const
Definition: Corner2D.h:51
vec3.h
Corner2D::applyForceToEdge
void applyForceToEdge(int, const Vec3 &)
Definition: Corner2D.cpp:119
Edge2D
class for edge in 2D "mesh"
Definition: Edge2D.h:39
Corner2D
Class representing the corner in a 2D "mesh".
Definition: Corner2D.h:35
console
Console console
Definition: console.cpp:25
Corner2D::m_p
Vec3 m_p
Definition: Corner2D.h:37
Corner2D::isValidContact
bool isValidContact(const Vec3 &) const
Definition: Corner2D.cpp:58
Corner2D::sep
double sep(const Vec3 &) const
Definition: Corner2D.cpp:45