|
ESyS-Particle
2.3.4
|
Class representing the edge of a polygon. More...
#include <Edge.h>


Public Member Functions | |
| Edge (int, int, const Vec3 &, const Vec3 &) | |
| Edge (int, int, const Vec3 &, const Vec3 &, Triangle *) | |
| Edge (int, int, const Vec3 &, const Vec3 &, Triangle *, Triangle *) | |
| bool | isValidContact (const Vec3 &) const |
| Vec3 | getBoundingBoxMin () const |
| Vec3 | getBoundingBoxMax () const |
| Vec3 | getDirectionFromPoint (const Vec3 &) const |
| void | moveNode (int, const Vec3 &) |
| void | move (const Vec3 &) |
| void | applyForce (const Vec3 &f) |
| pair< int, int > | getIDs () const |
Public Member Functions inherited from AEdge | |
| AEdge (const Vec3 &, const Vec3 &) | |
| virtual | ~AEdge () |
| double | sep (const Vec3 &) const |
| pair< bool, double > | dist (const Vec3 &) const |
| Vec3 | getBoundingBoxMin () const |
| Vec3 | getBoundingBoxMax () const |
Private Attributes | |
| Triangle * | m_t1 |
| Triangle * | m_t2 |
| int | m_id1 |
| int | m_id2 |
Friends | |
| ostream & | operator<< (ostream &, const Edge &) |
Additional Inherited Members | |
Protected Attributes inherited from AEdge | |
| Vec3 | m_p0 |
| Vec3 | m_p1 |
Class representing the edge of a polygon.
| void Edge::applyForce | ( | const Vec3 & | f | ) |
References Triangle::applyForce(), m_t1, m_t2, and NULL.
Referenced by EEdgeInteraction::calcForces().


| Vec3 Edge::getBoundingBoxMax | ( | ) | const |
Get min. corner of axis-aligned bounding box.
References cmax(), AEdge::m_p0, and AEdge::m_p1.

| Vec3 Edge::getBoundingBoxMin | ( | ) | const |
Get min. corner of axis-aligned bounding box.
References cmin(), AEdge::m_p0, and AEdge::m_p1.

get unit direction vector between a point and the closest point along the supporting line of the edge (pointing away from the edge).
| p | the point |
References AEdge::m_p0, AEdge::m_p1, and Vec3::unit().
Referenced by EEdgeInteraction::calcForces().


| bool Edge::isValidContact | ( | const Vec3 & | P | ) | const |
Check if any of the adjacent triangles (if there are any) has contact, i.e the perpendicular line from the supporting plane to the point hits the triangle, an thus makes the edge contact invalid
| P | the point |
References Triangle::dist(), m_t1, m_t2, and NULL.
Referenced by EEdgeInteraction::calcForces().


| void Edge::move | ( | const Vec3 & | d | ) |
| void Edge::moveNode | ( | int | id, |
| const Vec3 & | d | ||
| ) |
Move one of the corners. The identifier for the corner is the global node id. If the edge doesn't contain the node with the id , do nothing.
| id | the global id of the node to be moved |
| d | the amount of movement |
References m_id1, m_id2, AEdge::m_p0, and AEdge::m_p1.
|
private |
Referenced by Edge(), getIDs(), and moveNode().
|
private |
Referenced by Edge(), getIDs(), and moveNode().
|
private |
Referenced by applyForce(), Edge(), isValidContact(), and operator<<().
|
private |
Referenced by applyForce(), Edge(), isValidContact(), and operator<<().