Go to the documentation of this file. 1 #ifndef DIVISION_ANALYSIS_HPP
2 #define DIVISION_ANALYSIS_HPP
22 typedef std::pair<vertex,vertex>
VtxVtx;
89 setName(
"Mesh/Division Analysis/Old/MGX3D/Cell Graph Display");
90 setDesc(
"Creates the cell connectivity graph from the active MGX3D mesh and saves it into the non-active mesh.\n"
91 "not really needed anymore since there is now the display option in Main/Mesh");
92 setIcon(QIcon(
":/images/DivisionPlane.png"));
94 addParm(
"Min Shared Area",
"",
"0.001");
105 return run(m, m2,
parm(
"Min Shared Area").toDouble());
123 setName(
"Mesh/Division Analysis/Tools/Cell Graph Display 2D");
124 setDesc(
"Creates the cell connectivity graph from the active MGX3D mesh and saves it into the non-active mesh.\n"
125 "not really needed anymore since there is now the display option in Main/Mesh");
126 setIcon(QIcon(
":/images/DivisionPlane.png"));
128 addParm(
"Min Shared Area",
"",
"0.001");
139 return run(m, m2,
parm(
"Min Shared Area").toDouble());
156 setName(
"Mesh/Division Analysis/Tools/Cell Graph Display 3D");
157 setDesc(
"Creates the cell connectivity graph from the active MGX3D mesh and saves it into the non-active mesh.\n"
158 "not really needed anymore since there is now the display option in Main/Mesh");
159 setIcon(QIcon(
":/images/DivisionPlane.png"));
161 addParm(
"Min Shared Area",
"",
"0.001");
172 return run(m, m2,
parm(
"Min Shared Area").toDouble());
191 setName(
"Mesh/Division Analysis/Old/MGX3D/Divide Cell MGX3D");
192 setDesc(
"Divide a cell along a specified direction through the cell center.\n"
193 " WARNING: not 100 percent bug-free. sometimes chrashes or results in a broken mesh");
194 setIcon(QIcon(
":/images/DivisionPlane.png"));
197 addParm(
"Division Alg",
"",
"predefined direction", QStringList() <<
"shortest wall" <<
"random direction" <<
"predefined direction");
198 addParm(
"Custom X",
"Custom X",
"1.0");
199 addParm(
"Custom Y",
"Custom Y",
"0.0");
200 addParm(
"Custom Z",
"Custom Z",
"0.0");
201 addParm(
"Center Displacement" ,
"Center Displacement",
"0.0");
207 return run(m,
parm(
"Label").toInt(),
parm(
"Division Alg"),
parm(
"Custom X").toDouble(),
parm(
"Custom Y").toDouble(),
parm(
"Custom Z").toDouble(),
208 parm(
"Center Displacement").toDouble());
210 bool run(
Mesh *m,
int label, QString division,
double x,
double y,
double z,
211 double displacement);
226 setName(
"Mesh/Division Analysis/Old/MGX3D/B Cell Division Analysis");
227 setDesc(
"Central division analysis process that simulate cell divisions using multiple division \n"
228 "planes on a cell before the division has ocurred or on two neighobring cells after the division. \n"
229 "Calculates properties of possible divisions such as division plane area and volume of the daughter cells");
230 setIcon(QIcon(
":/images/DivisionPlane.png"));
232 addParm(
"Label Cell 1",
"Label of cell to be tested",
"1");
233 addParm(
"Label Cell 2 (optional)",
"Label of neighbor cell to be tested (after the actual division has occurred)",
"0");
234 addParm(
"Test Division Planes",
"Approximate number of division planes that will be tested",
"1000");
236 addParm(
"Perpendicular To Low Degree Neighbor Wall",
"Enforce that the wall is perpendicular to a neighbor cell with the lowest number of neighbors. constrained/cutting wall means that the division plane has to cut this wall.",
"No", QStringList() <<
"Yes (constrained)" <<
"Yes" <<
"No" <<
"No (but cutting wall)");
237 addParm(
"Steps Center Variance",
"Steps Center Variance",
"0");
238 addParm(
"Stepsize Center Variance",
"Stepsize Center Variance",
"1.0");
240 addParm(
"Save Result To File",
"Save Result To File",
"");
241 addParm(
"Weights Cell Graph",
"Weights Cell Graph",
"no weights", QStringList() <<
"no weights" <<
"no weights (dijkstra)" <<
"1/wallArea");
244 addParm(
"Division Point",
"Division Point",
"Centroid",QStringList() <<
"Centroid" <<
"Center of Actual" <<
"Manual");
258 bool constWeight =
parm(
"Weights Cell Graph") ==
"1/wallArea" ? false :
true;
259 bool dijk =
parm(
"Weights Cell Graph") ==
"no weights" ? false :
true;
261 bool perpendicularNeighbor = (
parm(
"Perpendicular To Low Degree Neighbor Wall") ==
"No" or
parm(
"Perpendicular To Low Degree Neighbor Wall") ==
"No (but cutting wall)") ?
false :
true;
262 bool perpendicularConstrained =
parm(
"Perpendicular To Low Degree Neighbor Wall") ==
"Yes (constrained)" ? true :
false;
263 bool cuttingNeighborWall =
parm(
"Perpendicular To Low Degree Neighbor Wall") ==
"No (but cutting wall)" ? true :
false;
267 p.perpendicularNeighbor = perpendicularNeighbor;
268 p.perpendicularConstrained = perpendicularConstrained;
269 p.cuttingNeighborWall = cuttingNeighborWall;
273 p.stepsCenter =
parm(
"Steps Center Variance").toInt();
274 p.stepSizeCenter =
parm(
"Stepsize Center Variance").toDouble();
276 p.planeNr =
parm(
"Test Division Planes").toInt();
278 return run(m, m2,
p,
parm(
"Label Cell 1").toInt(),
parm(
"Label Cell 2 (optional)").toInt(),
283 bool run(
Mesh *m,
Mesh *m2,
int label1,
int label2,
int divPlanes,
bool perpendicular,
bool perpendicularNeighbor,
int cellCenterVarSteps,
284 double cellCenterVarStepSize,
bool displayResult, QString filename,
bool constWeight,
bool dijk,
int percGPU,
bool calcBetw,
285 QString cellCenterSelVertex,
bool perpendicularConstrained,
bool cuttingNeighborWall);
288 bool displayResult, QString filename,
bool constWeight,
bool dijk,
int percGPU,
bool calcBetw, QString cellCenterSelVertex);
297 int percGPU,
bool calcBetw,
bool overwrite, QString cellCenterSelVertex,
DivisionParms& par,
Point3d divisionPoint =
Point3d(0,0,0));
311 setName(
"Mesh/Division Analysis/Old/MGX3D/Processes Cell Atlas/Test Cell Atlas Division Planes");
313 setIcon(QIcon(
":/images/DivisionPlane.png"));
315 addParm(
"Label 1",
"Label of cell to be tested",
"1");
316 addParm(
"Label 2",
"Label of cell to be tested",
"2");
335 bool run(
Mesh *m,
Mesh *m2,
int label1,
int label2,
bool displayResult,
RootDivData& result,
bool copyToM2);
349 setName(
"Mesh/Division Analysis/Old/MGX3D/Processes Cell Atlas/Root Division Analysis");
351 setIcon(QIcon(
":/images/DivisionPlane.png"));
354 addParm(
"Output File",
"Output File",
"");
370 bool run(
Mesh *m,
Mesh *m2,
bool displayResult, QString filename);
385 setName(
"Mesh/Division Analysis/Old/MGX3D/Division Analysis Multi");
387 setIcon(QIcon(
":/images/DivisionPlane.png"));
407 bool run(
Stack* s1,
Store* s,
Mesh *m,
Mesh *m2,
bool singleCells,
bool doubleCells,
bool useStack,
bool displayShortest,
bool displayActual);
460 setName(
"Mesh/Division Analysis/Old/MGX3D/Division Plane Approximation");
461 setDesc(
"Display a planar approximation plane of a wall between two cells");
462 setIcon(QIcon(
":/images/DivisionPlane.png"));
464 addParm(
"Label 1",
"Label 1",
"1");
465 addParm(
"Label 2",
"Label 2",
"2");
497 setName(
"Mesh/Division Analysis/Old/MGX3D/Division Plane Actual Stack");
498 setDesc(
"Display a planar approximation plane of a wall between two cells");
499 setIcon(QIcon(
":/images/DivisionPlane.png"));
501 addParm(
"Label 1",
"Label 1",
"1");
502 addParm(
"Label 2",
"Label 2",
"2");
518 return run(s1, store1, m, m2,
parm(
"Label 1").toInt(),
parm(
"Label 2").toInt(),
537 setName(
"Mesh/Division Analysis/Old/MGX3D/A Pre Analysis");
538 setDesc(
"Requires a MGX3D mesh in the active mesh and a surface mesh in the non-active mesh \n"
539 "Also can calculate the betweenness measure (visualize with Tools/Cell Data Heatmap)");
540 setIcon(QIcon(
":/images/DivisionPlane.png"));
542 addParm(
"Calc Betweenness Centrality",
"Calc Betweenness Centrality",
"No", QStringList() <<
"No" <<
"Yes - no weights" <<
"Yes - 1/wallArea");
543 addParm(
"Calc Current Flow Betweenness",
"Calc Current Flow Betweenness",
"No", QStringList() <<
"No" <<
"Yes - no weights" <<
"Yes - 1/wallArea" <<
"Yes - no weights (GPU)" <<
"Yes - 1/wallArea (GPU)");
621 setName(
"Mesh/Division Analysis/Set Division Point");
622 setDesc(
"Set a custom division point (select exactly one vertex)");
623 setIcon(QIcon(
":/images/CHull.png"));
647 setName(
"Mesh/Division Analysis/Old/MGX3D/Display Optimal Planes Advanced");
648 setDesc(
"Displays planes of the Division analysis processes");
649 setIcon(QIcon(
":/images/DivisionPlane.png"));
652 addParm(
"Primary Criteria",
"Primary Optimization Criteria",
"Wall Area", QStringList() <<
"Wall Area" <<
"Volume Ratio" <<
"Betweenness Centrality" <<
"Random Walk Betweenness" <<
"Neighbor Count");
653 addParm(
"Direction Primary Criteria",
"Direction Primary Criteria",
"Min", QStringList() <<
"Min" <<
"Max");
654 addParm(
"Secondary Criteria",
"Secondary Optimization Criteria",
"Volume Ratio", QStringList() <<
"None" <<
"Wall Area" <<
"Volume Ratio" <<
"Betweenness Centrality" <<
"Random Walk Betweenness" <<
"Neighbor Count");
655 addParm(
"Direction Secondary Criteria",
"Direction Secondary Criteria",
"Min", QStringList() <<
"Min" <<
"Max" <<
"Random");
656 addParm(
"Tolerance",
"Tolerance",
"0.01");
657 addParm(
"Max Planes",
"Max Planes",
"100");
659 addParm(
"Max Plane Similarity",
"Max Plane Similarity",
"100.0");
660 addParm(
"Plane Size",
"Plane Size",
"10.0");
671 return run(m, m2,
stringToBool(
parm(
"Custom")),
parm(
"Primary Criteria"),
parm(
"Secondary Criteria"),
parm(
"Direction Primary Criteria"),
parm(
"Direction Secondary Criteria"),
dat,
parm(
"Tolerance").toDouble(),
parm(
"Max Planes").toInt(),
stringToBool(
parm(
"Reset Mesh")),
parm(
"Max Plane Similarity").toDouble(),
parm(
"Plane Size").toDouble());
674 bool run(
Mesh *m,
Mesh *m2,
bool custom, QString primary, QString secondary, QString primaryDir, QString secondaryDir,
675 DivisionAnalysisData &
dat,
double tolerance,
int maxPlanes,
bool resetM2,
double locMinSens,
double planeSize);
691 setName(
"Mesh/Division Analysis/Old/MGX3D/Display Optimal Planes");
692 setDesc(
"Displays planes of the Division analysis processes");
693 setIcon(QIcon(
":/images/DivisionPlane.png"));
695 addParm(
"Division Rule",
"Division Rule",
"Shortest Wall", QStringList() <<
"Shortest Wall" <<
"Best Volume Ratio" <<
"Longest Wall");
696 addParm(
"Max Distance to Optimum",
"Max Distance to Optimum",
"0.1");
697 addParm(
"Max Number of Planes",
"Max Number of Planes",
"10");
698 addParm(
"Max Plane Similarity",
"Highest allowed similarity between two showed planes. Is the norm of the scalar product of their normals (if plane position is identical)",
"0.99");
699 addParm(
"Plane Size",
"Plane Size",
"10.0");
711 return run(m, m2,
parm(
"Division Rule"),
parm(
"Max Distance to Optimum").toDouble(),
parm(
"Max Number of Planes").toInt(),
parm(
"Max Plane Similarity").toDouble(),
parm(
"Plane Size").toDouble(),
stringToBool(
parm(
"Reset Planes")));
714 bool run(
Mesh *m,
Mesh *m2, QString divRule,
double maxDis,
int maxPlanes,
double planeSim,
double planeSize,
bool resetMesh);
730 setName(
"Mesh/Division Analysis/To Revise/Display All Planes");
732 setIcon(QIcon(
":/images/DivisionPlane.png"));
761 setName(
"Mesh/Division Analysis/Old/MGX3D/Draw Division Planes");
763 setIcon(QIcon(
":/images/DivisionPlane.png"));
833 setName(
"Mesh/Cell Mesh/Tools 3D/Merge Cells MGX3D");
834 setDesc(
"Join specified cells of a MGX3D mesh \n"
835 "Common triangles will be deleted.");
836 setIcon(QIcon(
":/images/CHull.png"));
838 addParm(
"Cell 1",
"Label of cell 1",
"1");
839 addParm(
"Cell 2",
"Label of cell 2",
"2");
846 return run(m,
parm(
"Cell 1").toInt(),
parm(
"Cell 2").toInt());
849 bool run(
Mesh *m,
int label1,
int label2);
865 setName(
"Mesh/Cell Mesh/Tools 3D/Merge 3D Cells");
866 setDesc(
"Join specified cells of a standard 3D mesh \n"
867 "Common triangles will be deleted. \n"
868 "Cells can be specified by parameter or selection (if parameters are -1) \n"
869 "Note that depending on the mesh structure errors like holes or missing triangles might occur.");
870 setIcon(QIcon(
":/images/CHull.png"));
872 addParm(
"Cell 1",
"Label of cell 1",
"-1");
873 addParm(
"Cell 2",
"Label of cell 2",
"-1");
883 bool run(
Mesh *m,
int label1,
int label2,
bool forceMerge);
935 setName(
"Mesh/Division Analysis/ToTest/Outside Cell Wall");
936 setDesc(
"Creates a heat map of the ratio of the outside cell wall area to the total cell wall area");
937 setIcon(QIcon(
":/images/CHull.png"));
961 setName(
"Mesh/Division Analysis/Old/MGX3D/Junction Graph Stack Display");
962 setDesc(
"Creates a junction graph from a stack (junctions are nodes and cell walls are edges)");
963 setIcon(QIcon(
":/images/CHull.png"));
965 addParm(
"Save to file",
"Save to file",
"");
983 bool run(
Mesh *m,
Mesh *m2, QString filename,
bool createGraph,
bool createMesh);
998 setName(
"Mesh/Division Analysis/Old/MGX3D/Junction Graph Stack Display");
999 setDesc(
"Creates a junction graph from a stack (junctions are nodes and cell walls are edges)");
1000 setIcon(QIcon(
":/images/CHull.png"));
1002 addParm(
"Save to file",
"Save to file",
"");
1022 bool run(
const Stack* s,
Mesh *m,
Mesh *m2, QString filename,
bool createGraph,
bool createMesh);
1037 setName(
"Mesh/Division Analysis/Old/MGX3D/Organ Division Simulation");
1038 setDesc(
"Simulates a dividing tissue by performing a division plane testing and dividing \n"
1039 "according to the specified criteria of cells with a parent label > 0.");
1040 setIcon(QIcon(
":/images/CHull.png"));
1042 addParm(
"Division Order Criteria",
"Criteria determining the order the cells divide",
"Neighbor Count Max", QStringList() <<
"Neighbor Count Max" <<
"Parent Label Min");
1043 addParm(
"Primary Criteria",
"Primary Criteria",
"Wall Area", QStringList() <<
"Wall Area" <<
"Volume Ratio" <<
"Betweenness Centrality" <<
"Betweenness Centrality (weighted)" <<
"Random Walk Betweenness" <<
"Random Walk Betweenness (weighted)" <<
"Neighbor Count");
1044 addParm(
"Direction Primary Criteria",
"Direction Primary Criteria",
"Min", QStringList() <<
"Min" <<
"Max" <<
"Random");
1045 addParm(
"Secondary Criteria",
"Secondary Criteria",
"None", QStringList() <<
"None" <<
"Wall Area" <<
"Volume Ratio" <<
"Betweenness Centrality" <<
"Betweenness Centrality (weighted)" <<
"Random Walk Betweenness" <<
"Random Walk Betweenness (weighted)" <<
"Neighbor Count");
1046 addParm(
"Direction Secondary Criteria",
"Direction Secondary Criteria",
"Random", QStringList() <<
"Min" <<
"Max" <<
"Random");
1047 addParm(
"Tolerance",
"Tolerance",
"0.01");
1048 addParm(
"Div Planes",
"Div Planes",
"1000");
1050 addParm(
"Perpendicular To Low Degree Neighbor Wall",
"Perpendicular To Low Degree Neighbor Wall",
"No", QStringList() <<
"Yes (constrained)" <<
"Yes" <<
"No" <<
"No (but cutting wall)");
1051 addParm(
"Steps Center",
"Steps Center",
"0");
1052 addParm(
"Stepsize Center",
"Stepsize Center",
"0.0");
1072 p.perpendicularNeighbor = (
parm(
"Perpendicular To Low Degree Neighbor Wall") ==
"No" or
parm(
"Perpendicular To Low Degree Neighbor Wall") ==
"No (but cutting wall)") ?
false :
true;
1073 p.perpendicularConstrained =
parm(
"Perpendicular To Low Degree Neighbor Wall") ==
"Yes (constrained)" ? true :
false;
1074 p.cuttingNeighborWall =
parm(
"Perpendicular To Low Degree Neighbor Wall") ==
"No (but cutting wall)" ? true :
false;
1076 p.primary =
parm(
"Primary Criteria");
1077 p.primaryDir =
parm(
"Direction Primary Criteria");
1079 p.secondary =
parm(
"Secondary Criteria");
1080 p.secondaryDir =
parm(
"Direction Secondary Criteria");
1082 p.stepsCenter =
parm(
"Steps Center").toInt();
1083 p.stepSizeCenter =
parm(
"Stepsize Center").toDouble();
1085 p.planeNr =
parm(
"Div Planes").toInt();
1090 return run(m, m2,
parm(
"Division Order Criteria"),
p,
parm(
"Tolerance").toDouble());
1114 setName(
"Mesh/Z Old Processes/Division Analysis/Set Div Plane Heat");
1115 setDesc(
"Displays planes of the Division analysis processes");
1116 setIcon(QIcon(
":/images/CHull.png"));
1118 addParm(
"Heat Map",
"Heat Map",
"Area", QStringList() <<
"None" <<
"Area" <<
"Angle to Actual" <<
"Volume Ratio");
1124 return run(m,
parm(
"Heat Map"));
1127 bool run(
Mesh *m, QString option);
1142 setName(
"Mesh/Heat Map/Measures/Network/Betweenness Centrality");
1143 setDesc(
"Generate heat map of the betweenness centrality of the cells weighted by a property.");
1144 setIcon(QIcon(
":/images/CHull.png"));
1146 addParm(
"Weights",
"Weights on the edges between cells. None means all weights are 1. Wall Length ist the length of the shared wall. Euclidean is the distance between the cell centers.",
"1 / Wall Area", QStringList() <<
"None" <<
"Wall Area" <<
"1 / Wall Area");
1169 setName(
"Mesh/Heat Map/Measures 3D/Network/Betweenness Centrality");
1170 setDesc(
"Generate heat map of the betweenness centrality of the 3D cells weighted by a property.");
1171 setIcon(QIcon(
":/images/CHull.png"));
1173 addParm(
"Weights",
"Weights on the edges between cells. None means all weights are 1. Wall Length ist the length of the shared wall. Euclidean is the distance between the cell centers.",
"1 / Wall Area", QStringList() <<
"None" <<
"Wall Area" <<
"1 / Wall Area");
1198 setName(
"Mesh/Heat Map/Measures/Network/Betweenness Current Flow");
1199 setDesc(
"Generate heat map of the current flow betweenness of the cells weighted by a property");
1200 setIcon(QIcon(
":/images/CHull.png"));
1202 addParm(
"Weights",
"Weights on the edges between cells. None means all weights are 1. Wall Length ist the length of the shared wall. Euclidean is the distance between the cell centers.",
"1 / Wall Area", QStringList() <<
"None" <<
"Wall Area" <<
"1 / Wall Area");
1227 setName(
"Mesh/Heat Map/Measures 3D/Network/Betweenness Current Flow");
1228 setDesc(
"Generate heat map of the current flow betweenness of the cells weighted by a property");
1229 setIcon(QIcon(
":/images/CHull.png"));
1231 addParm(
"Weights",
"Weights on the edges between cells. None means all weights are 1. Wall Length ist the length of the shared wall. Euclidean is the distance between the cell centers.",
"1 / Wall Area", QStringList() <<
"None" <<
"Wall Area" <<
"1 / Wall Area");
1255 setName(
"Mesh/Division Analysis/To Revise/Create Plane From Selected Vtxs");
1256 setDesc(
"Create Plane From Selected Vtxs");
1257 setIcon(QIcon(
":/images/CHull.png"));
1259 addParm(
"Plane Size",
"Plane Size",
"15.0");
1270 bool run(
Mesh *m,
Mesh *m2,
double size,
bool overwrite);
1285 setName(
"Mesh/Division Analysis/To Revise/Angle Two Selected Planes");
1286 setDesc(
"Angle Two Selected Planes");
1287 setIcon(QIcon(
":/images/CHull.png"));
1313 setName(
"Mesh/Division Analysis/Export Plane Data");
1314 setDesc(
"Export Division Plane Data to a csv file");
1315 setIcon(QIcon(
":/images/CHull.png"));
1317 addParm(
"Filename",
"Filename",
"");
1318 addParm(
"Export",
"Export",
"Actual Planes", QStringList() <<
"Actual Planes" <<
"Simulated Planes" <<
"Filtered Planes");
1329 bool run(
Mesh *m, QString filename, QString mode);
1344 setName(
"Mesh/Division Analysis/Analysis 3D/Division Plane Approximation");
1345 setDesc(
"Display a planar approximation plane of a wall between two cells");
1346 setIcon(QIcon(
":/images/DivisionPlane.png"));
1348 addParm(
"Display Plane",
"Overwrite the non-active mesh and display the plane",
"Yes",
booleanChoice());
1349 addParm(
"Plane Size",
"Plane Size",
"10.0");
1364 bool run(
Mesh *m,
Mesh *m2,
bool display,
double planeSize,
bool resetMesh,
int label = 0);
1380 setName(
"Mesh/Division Analysis/Analysis 3D/Division Analysis");
1381 setDesc(
"Division Testing for 3D cells");
1382 setIcon(QIcon(
":/images/CHull.png"));
1384 addParm(
"Nr of Planes",
"Approx number of planes to be tested",
"1000");
1385 addParm(
"Steps Center Displacement",
"Displacement steps from the cell center",
"0");
1386 addParm(
"Stepsize Center Displacement",
"Displacement step size from the cell center",
"0.0");
1387 addParm(
"Division Point",
"Division Point",
"Centroid",QStringList() <<
"Centroid" <<
"Center Actual" <<
"Custom Vertex");
1394 std::cout <<
"Div analysis s1" << std::endl;
1401 return run(m, m2,
parm(
"Nr of Planes").toInt(),
parm(
"Steps Center Displacement").toInt(),
parm(
"Stepsize Center Displacement").toDouble(),
1402 parm(
"Division Point"), -1);
1404 bool run(
Mesh *m,
Mesh *m2,
int divPlanes,
int centerDisplSteps,
double centerDisplStepSize, QString divCenter,
int parentLabel);
1419 setName(
"Mesh/Division Analysis/Analysis 3D/Division Analysis Multi");
1420 setDesc(
"Multi cell analysis of divisions in 3D meshes");
1421 setIcon(QIcon(
":/images/CHull.png"));
1429 std::cout <<
"Div analysis Multi1" << std::endl;
1439 bool run(
Mesh *m,
Mesh *m2,
bool singleCells,
bool doubleCells);
bool run()
Runs the process.
MeasureBetweenessCentrality(const Process &process)
SetDivisionPoint(const Process &process)
AngleTwoPlanes(const Process &process)
bool testDivisionPlanesFunc(Mesh *mesh, Mesh *mesh2, int label, bool displayResult, QString filename, bool constWeight, bool dijk, int percGPU, bool calcBetw, bool overwrite, QString cellCenterSelVertex, DivisionParms &par, Point3d divisionPoint=Point3d(0, 0, 0))
DisplayOptimalPlanes(const Process &process)
bool addParm(const QString &parmName, const QString &desc, const QString &def, const QStringList &choices=QStringList())
Add a parameter to the list.
MeasureBetweenessCurrentFlow3D(const Process &process)
bool run()
Runs the process.
bool run()
Runs the process.
TestDivisionPlanes3D(const Process &process)
Mesh * otherMesh()
Returns the other mesh (i.e.
DivisionAnalysisMulti3DOld(const Process &process)
OutsideCellWall(const Process &process)
DisplayCellGraph2D(const Process &process)
bool run()
Runs the process.
bool run()
Runs the process.
CreateJunctionGraphStack(const Process &process)
bool run()
Runs the process.
bool initialize(QWidget *parent)
Initialize the process.
bool run()
Runs the process.
DisplayOptimalPlanesSimple(const Process &process)
bool perpendicularNeighbor
const Store * currentStore() const
Returns the current store.
ExportPlaneData(const Process &process)
static QStringList booleanChoice()
Helper function that provides a list of choices for a boolean argument.
ActualPlaneStack(const Process &process)
CreateJunctionGraph(const Process &process)
FlatDivisionPlane(const Process &process)
bool run()
Runs the process.
bool initialize(QWidget *parent)
Initialize the process.
DisplayAllPlanes(const Process &process)
Distributed matrix library.
bool run()
Runs the process.
RootDivisionAnalysis(const Process &process)
bool run()
Runs the process.
bool run()
Runs the process.
std::pair< vertex, vertex > VtxVtx
bool setIcon(const QIcon &icon)
Set the icon.
DivisionAnalysisData datTest
bool run()
Runs the process.
bool run()
Runs the process.
DisplayCellGraph3D(const Process &process)
MeasureBetweenessCurrentFlow(const Process &process)
bool run()
Runs the process.
OrganDivisionSimulation(const Process &process)
FlatDivisionPlane3D(const Process &process)
bool run()
Runs the process.
mgx_EXPORT bool stringToBool(const QString &string)
Helper function converting a string into a boolean.
bool run()
Runs the process.
bool run()
Runs the process.
Vector< 3, double > Point3d
std::set< Point3d > perpNeighborPlanes
DivideCell3DMGX3D(const Process &process)
bool run()
Runs the process.
DivisionPlaneHeat(const Process &process)
bool run()
Runs the process.
bool run()
Runs the process.
bool setDesc(const QString &description)
Set the description.
bool perpendicularConstrained
IntFloatAttr & labelHeat()
Reference to map of heat data by label.
TestDivisionPlanesCellAtlas(const Process &process)
bool run()
Runs the process.
bool run()
Runs the process.
bool initialize(QWidget *parent)
Initialize the process.
bool run()
Runs the process.
bool run()
Runs the process.
bool run()
Runs the process.
TestDivisionPlanes(const Process &process)
AnalyzeSurface(const Process &process)
bool run()
Runs the process.
Stack * stack(int i)
Returns the ith stack, or 0 if there is no such stack.
JoinCellsMGX3D(const Process &process)
Mesh * mesh(int i)
Returns the ith mesh.
CreatePlaneFromSelectedVtxs(const Process &process)
bool run()
Runs the process.
Stack * currentStack()
Returns the current stack (i.e.
bool setName(const QString &name)
Set the name.
DivisionAnalysisMulti3D(const Process &process)
bool run()
Runs the process.
MeasureBetweenessCentrality3D(const Process &process)
bool run()
Runs the process.
DisplayCellGraph(const Process &process)
bool run()
Runs the process.
bool run()
Runs the process.
QString parm(const QString &name) const
Get a single parameter value by name.
Mesh * currentMesh()
Returns the current mesh (i.e.
std::unordered_map< Point3d, std::vector< Point3d > > perpNeighborWalls
MergeCellsMGXM3D(const Process &process)
bool run()
Runs the process.
AnalysisDivPlanes(const Process &process)
bool run()
Runs the process.