MorphoGraphX  2.0-1-227
Classes | Namespaces | Typedefs | Functions
GraphUtils.hpp File Reference
#include <Config.hpp>
#include <Misc.hpp>
#include <Subdivide.hpp>
#include <Attributes.hpp>

Go to the source code of this file.

Classes

struct  mgx::NhbdGraphInfo
 

Namespaces

 mgx
 Distributed matrix library.
 

Typedefs

typedef std::pair< IntInt, double > mgx::IntIntDouPair
 
typedef std::vector< Triangle > mgx::triVector
 
typedef std::map< Point3i, std::set< int > > mgx::Point3iIntSetMap
 calculate properties of the neighborhood of a vvGraph such as: cell wall area, shared wall areas, nr of cells of a vertex and individual wall labels More...
 
typedef std::pair< Point3i, std::set< int > > mgx::Point3iIntSetPair
 

Functions

mgx_EXPORT bool mgx::subdivideBisect (vvGraph &S, const vertex &v1, const vertex &v2, const vertex &v3, VtxVec *vs=0, Subdivide *sDiv=0)
 Subdivide triangle with a propagating bisection that gives good triangles. More...
 
template<typename GraphT >
bool mgx::spliceNhbs (GraphT &S, typename GraphT::vertex_t a, typename GraphT::vertex_t b)
 Splice the neighborhood of b into a (so we can delete b) More...
 
mgx_EXPORT int mgx::getLabel (const vertex &v1, const vertex &v2, const vertex &v3)
 Return the label for a triangle. More...
 
mgx_EXPORT bool mgx::getLabelCount (const vvGraph &S, VtxIntMap &labCount)
 Count labels for each vertex in the graph. More...
 
mgx_EXPORT bool mgx::splitEdge (vvGraph &S, vertex v1, vertex v2, Subdivide *sDiv=0)
 Split an edge in the S graph. More...
 
mgx_EXPORT int mgx::mergeVertices (vvGraph &S, const VtxVec &vs)
 Merge vertices, returns number of vertices deleted. More...
 
mgx_EXPORT bool mgx::checkBorderTris (const vvGraph &S, bool select=true)
 Check for unlabeled vertices, border triangles and islands of label in preparation to make a cell mesh. More...
 
mgx_EXPORT bool mgx::deleteCells (vvGraph &S, const VtxVec &V)
 Check for unlabeled vertices, border triangles and islands of label in preparation to make a cell mesh. More...
 
mgx_EXPORT int mgx::fixBorderTris (vvGraph &S)
 Check for border triangles with all labels -1 and merge their vertices together. More...
 
mgx_EXPORT bool mgx::mgxmToMgxc (const vvGraph &srcS, vvGraph &S, double wallMax=0)
 Convert a normal (MGXM) mesh to a cell (MGXC) mesh. More...
 
mgx_EXPORT void mgx::markMargins (vvGraph &M, vvGraph &S, bool remborders=true)
 Mark the cells and tissue margin vertices. More...
 
mgx_EXPORT void mgx::markMargins (vvGraph &S, bool remborders=true)
 Mark the cells and tissue margin vertices. More...
 
mgx_EXPORT void mgx::markMargin (vvGraph &S, vertex v, bool remborders=true)
 Mark the cells and tissue margin vertices. More...
 
mgx_EXPORT int mgx::setNormals (const vvGraph &S)
 Set the normals in a graph. More...
 
mgx_EXPORT void mgx::correctNormals (vvGraph &S)
 Correct MGXC normals (happens for non-star shaped cells) More...
 
mgx_EXPORT bool mgx::setNormal (const vvGraph &S, const vertex &v)
 Set the normal in a single vertex. More...
 
mgx_EXPORT bool mgx::calcNormal (const vvGraph &S, const vertex &v, Point3d &nrml)
 Set the normal in a single vertex. More...
 
mgx_EXPORT bool mgx::neighborhoodGraph (const vvGraph &S, double tolerance, NhbdGraphInfo &info, bool throwError=true)
 
mgx_EXPORT std::vector< int > mgx::findAllLabels (const vvGraph &S)
 return ALL labels of a vvGraph originally in CellAtlas, now also used in other AddOns More...
 
mgx_EXPORT std::set< int > mgx::findAllLabelsSet (const vvGraph &S)
 
mgx_EXPORT std::set< int > mgx::findAllSelectedLabels (const vvGraph &S)
 return ALL labels of selected vertices of a vvGraph originally in CellAtlas, now also used in other AddOns More...
 
mgx_EXPORT void mgx::neighborhood2D (vvGraph &S, std::map< IntInt, double > &neighMap, QString weightType="", bool ignoreOutside=true)
 creates a wall map with the neighboring cells as key (pair) and the wall length as value More...
 
mgx_EXPORT vertex mgx::nearestVertexOnMesh (const Point3d &targetPoint, const vvGraph &S)
 
mgx_EXPORT Point3d mgx::nearestPointOnMesh (const Point3d &targetPoint, const vvGraph &S)
 
mgx_EXPORT std::map< int, double > mgx::dijkstra (vvGraph &S, std::map< IntInt, double > &wallAreas, std::set< int > &selectedCells, bool equalWeights, double cutOffDistance, double wallThreshold)
 
mgx_EXPORT std::map< int, double > mgx::dijkstra (std::set< int > &allCellLabels, std::map< IntInt, double > &wallAreas, std::set< int > &selectedCells, bool equalWeights, double cutOffDistance, double wallThreshold)
 
mgx_EXPORT std::map< int, double > mgx::dijkstra (std::set< int > &allCellLabels, std::map< IntInt, double > &wallAreas, std::map< int, double > &initialCells, bool equalWeights, double cutOffDistance, double wallThreshold)
 
mgx_EXPORT std::set< int > mgx::aStar (std::vector< int > &uniqueLabels, std::map< int, Point3d > &cellCentroids, std::map< IntInt, double > &wallAreas, int label1, int label2, double wallThreshold, bool equalWeights)
 
mgx_EXPORT bool mgx::findIntersectPoint (Point3d coordCellCentroid, Point3d &dirVec, std::vector< Triangle > &cellTriangles, int &stopCounter, Point3d &intersectP)
 shoots rays from the cell centroid along a direction and checks if it hits any of the cell triangles too avoid shooting through the edge between triangles the centroid point is varied slightly if nothing is hit More...
 
mgx_EXPORT double mgx::estimateCellLength (int currentLabel, Point3d coordCellCentroid, Point3d &dirVec, triVector &cellTriangles)
 estimates the size of the cell in a given direction by shooting two rays in a specified direction and its opposite More...
 
mgx_EXPORT void mgx::generateLabelTriangleMap (const vvGraph &S, std::map< int, triVector > &cellTriangles)
 goes through all triangles of the vvGraph and builds up a map from label to triangle vector More...
 
mgx_EXPORT std::map< int, std::vector< vertex > > mgx::generateLabelVertexMap (const vvGraph &S)
 goes through all vertices of the vvGraph and builds up a map from label to vertex vector More...
 
mgx_EXPORT void mgx::findBorderVerticesOfCell (vvGraph &S, int cellLabel, std::set< vertex > &verticesCell, std::vector< vertex > &borderVerticesOrdered)
 
mgx_EXPORT void mgx::findBorderVerticesOfCellsCombined (vvGraph &S, std::set< int > cellLabels, std::set< vertex > &verticesCells, std::vector< vertex > &borderVerticesOrdered)
 
mgx_EXPORT Point3i mgx::triIndex (Point3i t)
 
mgx_EXPORT int mgx::vIndex (const Point3d &pos, Point3dIntMap &vMap, float tolerance)
 
mgx_EXPORT int mgx::getKeyOfMaxValue (const std::map< int, double > &mapToTest)
 
mgx_EXPORT std::map< int, int > mgx::shiftMap (std::map< int, double > &mapToShift, int shift)