Go to the documentation of this file.
11 #ifndef MESH_PROCESS_CELL_ANALYSIS_3D_HPP
12 #define MESH_PROCESS_CELL_ANALYSIS_3D_HPP
25 setName(
"Mesh/Visualization 3D/Explode Mesh");
26 setDesc(
"Creates an exploded view on the mesh");
27 setIcon(QIcon(
":/images/MakeHeatMap.png"));
29 addParm(
"Factor X",
"Factor X",
"1");
30 addParm(
"Factor Y",
"Factor Y",
"1");
31 addParm(
"Factor Z",
"Factor Z",
"1");
32 addParm(
"Only Selected",
"Only Selected",
"No",booleanChoice());
33 addParm(
"Reverse Explosion",
"Reverse Explosion",
"Yes",booleanChoice());
34 addParm(
"Parents Together",
"Parents Together",
"No",booleanChoice());
39 Mesh* m = currentMesh();
40 return run(m, parm(
"Factor X").toDouble(), parm(
"Factor Y").toDouble(), parm(
"Factor Z").toDouble(),
stringToBool(parm(
"Only Selected")),
stringToBool(parm(
"Reverse Explosion")),
stringToBool(parm(
"Parents Together")));
43 bool run(
Mesh* m,
double factorX,
double factorY,
double factorZ,
bool onlySelected,
bool reverse,
bool bundleParents);
52 setName(
"Mesh/Visualization 3D/Translate By Parent");
53 setDesc(
"Creates an exploded view on the mesh");
54 setIcon(QIcon(
":/images/MakeHeatMap.png"));
56 addParm(
"Transl X",
"Transl X",
"20");
57 addParm(
"Transl Y",
"Transl Y",
"0");
58 addParm(
"Transl Z",
"Transl Z",
"0");
59 addParm(
"Only Selected",
"Only Selected",
"No",booleanChoice());
60 addParm(
"Reverse Explosion",
"Reverse Explosion",
"Yes",booleanChoice());
61 addParm(
"Consider Rotation",
"Consider Rotation",
"Yes",booleanChoice());
66 Mesh* m = currentMesh();
73 return run(m, parm(
"Transl X").toDouble(), parm(
"Transl Y").toDouble(), parm(
"Transl Z").toDouble(),
stringToBool(parm(
"Only Selected")),
stringToBool(parm(
"Reverse Explosion")),
stringToBool(parm(
"Consider Rotation")), rotMatrix);
76 bool run(
Mesh* m,
double factorX,
double factorY,
double factorZ,
bool onlySelected,
bool reverse,
bool rot,
Matrix4d rotMatrix);
86 setName(
"Mesh/Visualization 3D/Restore Original Mesh");
87 setDesc(
"Reverses any exloded view");
88 setIcon(QIcon(
":/images/MakeHeatMap.png"));
93 Mesh* m = currentMesh();
97 bool run(
Mesh* m,
bool vis);
106 setName(
"Mesh/Visualization 3D/Set Parent Exploded");
107 setDesc(
"Sets a parent label and update its position depending on the explosion");
108 setIcon(QIcon(
":/images/MakeHeatMap.png"));
110 addParm(
"Parent Label",
"Parent Label",
"0");
115 Mesh* m = currentMesh();
116 return run(m, parm(
"Parent Label").toInt());
119 bool run(
Mesh* m,
int label);
134 setName(
"Mesh/Cell Mesh/Tools/Label Cell Walls");
135 setDesc(
"Give each individual cell wall a separate label.\n"
136 "The Extend parameter extends walls that are not on the outside by x neighboring vertices.");
137 setIcon(QIcon(
":/images/Hex.png"));
139 addParm(
"Extend",
"Extend Side Wall Labels into unlabelled regions",
"0");
140 addParm(
"Only Attribute Map",
"If Yes, only the attribute maps are created, if No, the actual cell labels are changed",
"No",booleanChoice());
145 Mesh *m = currentMesh();
146 return run(m, parm(
"Extend").toInt(),
stringToBool(parm(
"Only Attribute Map")));
149 bool run(
Mesh *mesh1,
int extend,
bool onlyAttr);
163 setName(
"Mesh/Cell Mesh/Tools/Restore Cell Labels");
164 setDesc(
"Restore the original cell labels of 3D cells.");
165 setIcon(QIcon(
":/images/Hex.png"));
170 Mesh *m = currentMesh();
174 bool run(
Mesh *mesh1);
187 setName(
"Mesh/Cell Mesh/Tools/Cell Wall Centers");
188 setDesc(
"Find the centers of the cell walls");
189 setIcon(QIcon(
":/images/Center.png"));
191 addParm(
"Mode",
"TOREVISIT: Description missing",
"Average Tri Weighted", QStringList() <<
"Average Tri Weighted" <<
"Max Border Dis Vertex");
192 addParm(
"Create Vtxs in Mesh2",
"TOREVISIT: Description missing",
"No",booleanChoice());
197 Mesh *m = currentMesh();
199 if(m == mesh(1)) m2 = mesh(0);
200 return run(m, m2, parm(
"Mode"),
stringToBool(parm(
"Create Vtxs in Mesh2")));
203 bool run(
Mesh *mesh1,
Mesh *mesh2, QString mode,
bool writeMesh);
216 setName(
"Mesh/Visualization 3D/Rotate Camera");
217 setDesc(
"Rotates the camera to create simple anmations");
218 setIcon(QIcon(
":/images/Hex.png"));
220 addParm(
"X Axis",
"Rotation angle around x axis",
"0.0");
221 addParm(
"Y Axis",
"Rotation angle around y axis",
"0.0");
222 addParm(
"Z Axis",
"Rotation angle around z axis",
"360.0");
223 addParm(
"Steps",
"Rotation steps",
"360");
224 addParm(
"Break (ms)",
"pause between steps",
"100.0");
225 addParm(
"Stack 2",
"also rotate the other stack",
"No",booleanChoice());
230 Mesh *m = currentMesh();
231 Stack* s = currentStack();
233 Mesh *m2 = otherMesh();
234 Stack* s2 = otherStack();
235 return run(s, m, s2, m2, parm(
"X Axis").toDouble(), parm(
"Y Axis").toDouble(), parm(
"Z Axis").toDouble(), parm(
"Steps").toInt(),
236 parm(
"Break (ms)").toInt(),
stringToBool(parm(
"Stack 2")));
239 bool run(
Stack *s1,
Mesh *m1,
Stack *s2,
Mesh *m2,
double xRot,
double yRot,
double zRot,
int steps,
int breakStep,
bool cameraStack2);
249 setName(
"Mesh/Nucleus/Label Nuclei");
250 setDesc(
"Label the nuclei in mesh 2 like the cells they are located in.");
251 setIcon(QIcon(
":/images/MakeHeatMap.png"));
256 Mesh* m = currentMesh();
257 Mesh* m2 = otherMesh();
270 setName(
"Mesh/Nucleus/Distance Nuclei");
271 setDesc(
"Compute distance from nucleus centroid to cell centroid. Cells in active mesh, nuclei in other mesh with cell parent labels.");
272 setIcon(QIcon(
":/images/MakeHeatMap.png"));
277 Mesh* m = currentMesh();
278 Mesh* m2 = otherMesh();
289 setName(
"Mesh/Nucleus/Select Duplicated Nuclei");
290 setDesc(
"Select Duplicated Nuclei");
291 setIcon(QIcon(
":/images/MakeHeatMap.png"));
293 addParm(
"Distance Threshold",
"Distance Threshold",
"1.0");
298 Mesh* m = currentMesh();
299 return run(m, parm(
"Distance Threshold").toDouble());
302 bool run(
Mesh* m,
double disThreshold);
bool run()
Runs the process.
LabelCellWalls(const Process &process)
bool run()
Runs the process.
TranslateByParent(const Process &process)
RestoreCellLabels(const Process &process)
bool run()
Runs the process.
const Stack * stack() const
Returns the stack associated to this mesh.
bool run()
Runs the process.
bool run()
Runs the process.
bool run()
Runs the process.
RestoreOriginalMesh(const Process &process)
Distributed matrix library.
RotateCamera(const Process &process)
DistanceNuclei(const Process &process)
SelectDuplicatedNuclei(const Process &process)
CU_HOST_DEVICE T * data()
Returns a raw pointer on the data.
FindCellWallCenters(const Process &process)
mgx_EXPORT bool stringToBool(const QString &string)
Helper function converting a string into a boolean.
bool run()
Runs the process.
SetParentExploded(const Process &process)
bool run()
Runs the process.
ExplodeMesh(const Process &process)
bool run()
Runs the process.
bool run()
Runs the process.
LabelNuclei(const Process &process)
bool run()
Runs the process.
qglviewer::ManipulatedFrame & getFrame()
Returns the active frame (i.e.