14 #ifndef RootCellAnalyzing_H
15 #define RootCellAnalyzing_H
43 std::map<int,double> azimCoord, radialDis,
scaledRadialDis, outsideWallArea, nrNeighbors;
50 std::map<int,double> lengthLong,
lengthRad, lengthCirc;
51 std::map<int, Point3d>
dirRad, dirLong, dirCirc;
57 static const int radRes = 200;
62 bool analyzeCells(std::vector<int>& uniqueLabels,
const vvGraph& segmentedMesh,
const vvGraph& surfaceMesh, std::map<int, Point3d>& bMap,
65 void analyzeBezierGrid(std::vector<int>& uniqueLabels, std::map<int,Point3d>& cellCentroids,
66 std::vector<std::vector<Point3d> >& bezier, std::map<int,Point3d>& nearestPoints, std::map<int,Point2i>& nearestIndex);
68 void analyzeSurface(std::vector<int>& uniqueLabels, std::map<int,Point3d>& cellCentroids,
const vvGraph& surfaceMesh,
69 std::map<int,Point3d>& nearestSurfacePoints);
74 bool createLayerCoordSystem(
const vvGraph& surfaceMesh, std::vector<std::vector<Point3d> >& bezier,
RootCellProcessing& rcp);
76 bool createRootCoordSystem(
const vvGraph& surfaceMesh, std::map<int, Point3d>& bMap,
83 bool analyzeEmbryo(std::vector<int>& uniqueLabels,
const vvGraph& segmentedMesh,
84 const vvGraph& surfaceMesh, std::vector<std::vector<Point3d> >& bezGrid, std::map<int, Point3d>& bMap, std::map<int, Point3d>& diffbMap,
labelVertexMap& lvMap,
90 void analyzeBezierLine(std::vector<int>& uniqueLabels, std::map<int, Point3d>& cellCentroids, std::map<int, Point3d>& bMap, std::map<int, Point3d>& diffbMap,
bool flipBezier =
false);
93 bool analyzeCellCalcDisSurface(
RootCellProcessing& rcp,
const vvGraph& surfaceMesh,
bool checkArc, std::map<int, double>& surfaceArclengths,
94 std::map<int, double>& surfaceRadialDis, std::map<int, Point3d>& bMap,
bool considerOrientation =
false);
97 bool analyzeCellCentroidsVolumes(std::map<int, triVector>& cellTriangles,
RootCellProcessing& rcp,
double minVolume);
100 bool analyzeCellCentroids2D(std::map<int, triVector>& cellTriangles,
RootCellProcessing& rcp);
102 void calcCircumferentialEqual(std::vector<int>& uniqueLabels, std::map<int, Point3d>& cellCentroids);
107 void calcSimpleRadial(std::vector<int>& uniqueLabels,
RootCellProcessing& rcp, std::map<int, Point3d>& cellCentroids);
109 void calcCoordSystemCartesian(std::vector<int>& uniqueLabels);
111 void calcCoordSystem(std::vector<int>& uniqueLabels, std::map<int,Point3d>& diffBezInterp, std::map<int,Point3d>& dirRad, std::map<int,Point3d>& dirLong, std::map<int,Point3d>& dirCirc);
114 void createCoordSystem(std::vector<Point3d>& points,
RootCellProcessing& rcp, std::map<int, Point3d>& bMap,
115 std::map<int, Point3d>& diffbMap, std::map<int, Point3d>& bMapRadRef);
117 void minMaxToBezierPerCell(
vvGraph& S, std::vector<int>& uniqueLabels, std::map<int, Point3d>& bMap,
bool flipBezier =
false);
133 void estimateAllCellLengths(
RootCellProcessing& rcp, std::map<int, triVector>& cellTriangles);
136 std::map<int, bool> badCells;