|
ESyS-Particle
2.3.4
|
class for a triangle mesh More...
#include <TriMesh.h>

Public Types | |
| typedef vector< Triangle >::iterator | triangle_iterator |
| typedef vector< Edge >::iterator | edge_iterator |
| typedef vector< Corner >::iterator | corner_iterator |
Public Member Functions | |
| TriMesh () | |
| virtual | ~TriMesh () |
| void | LoadMesh (const vector< MeshNodeData > &, const vector< MeshTriData > &) |
| void | moveNode (int, const Vec3 &) |
| void | translateBy (const Vec3 &translation) |
| triangle_iterator | triangles_begin () |
| triangle_iterator | triangles_end () |
| edge_iterator | edges_begin () |
| edge_iterator | edges_end () |
| corner_iterator | corners_begin () |
| corner_iterator | corners_end () |
| Triangle * | getTriangleById (int) |
| bool | hasMovedBy (double) |
| void | resetCurrentDisplacement () |
| void | zeroForces () |
| virtual void | writeCheckPoint (ostream &, const string &) const |
| virtual void | loadCheckPoint (istream &) |
| template<typename P > | |
| void | forAllTrianglesGet (P &, typename P::value_type(Triangle::*rdf)() const) |
| template<typename P > | |
| vector< pair< int, P > > | forAllTrianglesGetIndexed (P(Triangle::*rdf)() const) |
Private Attributes | |
| vector< Triangle > | m_triangles |
| vector< Edge > | m_edges |
| vector< Corner > | m_corners |
| multimap< int, Triangle * > | m_triangle_by_node_id |
| multimap< int, Edge * > | m_edge_by_node_id |
| map< int, int > | m_corner_by_id |
| map< int, int > | m_tri_index_by_id |
class for a triangle mesh
| typedef vector<Corner>::iterator TriMesh::corner_iterator |
| typedef vector<Edge>::iterator TriMesh::edge_iterator |
| typedef vector<Triangle>::iterator TriMesh::triangle_iterator |
| TriMesh::TriMesh | ( | ) |
Constructor
|
inlinevirtual |
|
inline |
References m_corners.
|
inline |
References m_corners.
|
inline |
References m_edges.
|
inline |
References m_edges.
| void TriMesh::forAllTrianglesGet | ( | P & | cont, |
| typename P::value_type(Triangle::*)() const | rdf | ||
| ) |
Call a constant member function of Triangle taking no argument and returning a value for all Triangles and collect the return values in a container. The container has to be an STL sequence container (vector,list...) or something with the same interface. The template parameter P is a type of container of the return type of the particle member function, not the return type itself.
| cont | the container |
| rdf | the particle member function |
References esys::lsm::bpu::iter(), and m_triangles.

| vector< pair< int, P > > TriMesh::forAllTrianglesGetIndexed | ( | P(Triangle::*)() const | rdf | ) |
| rdf | the particle member function |
References esys::lsm::bpu::iter(), and m_triangles.
Referenced by ScalarTriangleFieldSlave::SendDataFull(), and VectorTriangleFieldSlave::SendDataFull().


| Triangle * TriMesh::getTriangleById | ( | int | id | ) |
Get a pointer to a triangle with a given ID. If the ID doesn't exist, return NULL
| id | the id |
References NULL.
| bool TriMesh::hasMovedBy | ( | double | dist | ) |
check if any point in the mesh has moved by at least the given distance
| dist | the distance |
|
virtual |
References esys::lsm::IterativeReader< TmplIterator >::getIterator().
Referenced by TSubLattice< T >::loadCheckPointData().


| void TriMesh::LoadMesh | ( | const vector< MeshNodeData > & | node_vec, |
| const vector< MeshTriData > & | tri_vec | ||
| ) |
setup the triangle mesh from node,edge and triangle data
| node_vec | the node data |
| tri_vec | the triangle data |
References console, Console::Error(), esys::lsm::bpu::iter(), and Console::XDebug().
Referenced by TSubLattice< T >::addTriMesh().


| void TriMesh::moveNode | ( | int | id, |
| const Vec3 & | d | ||
| ) |
Move a node in the mesh. If the node with the given Id isn't in the mesh, nothing happens
| id | the id of the node |
| d | the displacement |
References esys::lsm::bpu::iter().

| void TriMesh::resetCurrentDisplacement | ( | ) |
reset displacement since last neighbor search
References esys::lsm::bpu::iter().

| void TriMesh::translateBy | ( | const Vec3 & | translation | ) |
|
inline |
References m_triangles.
|
inline |
References m_triangles.
|
virtual |
Write checkpoint data to stream. The mesh data is written in the original mesh file format -> can reuse meshreader to read in checkpointed meshes
| ost | the output stream |
| delim | the delimiter |
References esys::lsm::bpu::iter().

| void TriMesh::zeroForces | ( | ) |
zero all forces on the mesh. Currently forces are only on triangles
References console, esys::lsm::bpu::iter(), and Console::XDebug().

|
private |
|
private |
Referenced by corners_begin(), and corners_end().
|
private |
|
private |
Referenced by edges_begin(), and edges_end().
|
private |
|
private |
|
private |
Referenced by forAllTrianglesGet(), forAllTrianglesGetIndexed(), triangles_begin(), and triangles_end().