MorphoGraphX
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MeshProcessStructure.hpp
1 #ifndef MESH_PROCESS_STRUCTURE_HPP
2 #define MESH_PROCESS_STRUCTURE_HPP
3 
4 #include <Process.hpp>
5 
6 #include <Misc.hpp>
7 
8 namespace mgx {
9 namespace process {
22 mgxBase_EXPORT bool subdivideBisect(vvgraph& S, const vertex& v1, const vertex& v2, const vertex& v3, bool selected,
23  std::vector<vertex>* vs = 0);
34 mgxBase_EXPORT void markMargin(vvgraph& M, vvgraph& S, bool remborders);
35 
38 
44 class mgxBase_EXPORT TransformMesh : public MeshProcess {
45 public:
46  TransformMesh(const MeshProcess& process)
47  : Process(process)
48  , MeshProcess(process)
49  {
50  }
51 
52  bool operator()(const QStringList& parms)
53  {
54  if(!checkState().mesh(MESH_NON_EMPTY))
55  return false;
56  Point3f trans, rot;
57  {
58  QString txt = parms[0];
59  QTextStream ts(&txt);
60  ts >> trans;
61  }
62  {
63  QString txt = parms[1];
64  QTextStream ts(&txt);
65  ts >> rot;
66  }
67  bool ok;
68  float angle = parms[2].toFloat(&ok) * M_PI / 180.f;
69  if(!ok)
70  return setErrorMessage("Error, the 'angle' parameter must be a number");
71  float scale = parms[3].toFloat(&ok);
72  if(!ok)
73  return setErrorMessage("Error, the 'scale' parameter must be a number");
74  return (*this)(currentMesh(), trans, rot, angle, scale);
75  }
76 
77  bool operator()(Mesh* mesh, Point3f translation, Point3f rotation_axis, float rotation, float scale);
78 
79  QString folder() const {
80  return "Structure";
81  }
82  QString name() const {
83  return "Transform Mesh";
84  }
85  QString description() const {
86  return "Apply an affine transformation to all vertices of a mesh";
87  }
89  {
90  return QStringList() << QString("translation (%1)").arg(UM) << "rotation axis"
91  << "angle (degree)"
92  << "scale";
93  }
94  QStringList parmDesc() const
95  {
96  return QStringList() << "Translation in micrometers. Enter x y z separated by spaces"
97  << "Vector representing the axis of rotation. Enter x y z separated by spaces"
98  << "Angle of rotation in degrees"
99  << "Global scaling factor";
100  }
102  {
103  return QStringList() << "0.0 0.0 0.0"
104  << "0.0 0.0 1.0"
105  << "0.0"
106  << "1.0";
107  }
108  QIcon icon() const {
109  return QIcon(":/images/Resize.png");
110  }
111 };
112 
118 class mgxBase_EXPORT ReverseMesh : public MeshProcess {
119 public:
120  ReverseMesh(const MeshProcess& process)
121  : Process(process)
122  , MeshProcess(process)
123  {
124  }
125 
126  bool operator()(const QStringList& )
127  {
128  if(!checkState().mesh(MESH_NON_EMPTY))
129  return false;
130  return (*this)(currentMesh());
131  }
132  bool operator()(Mesh* mesh);
133 
134  QString folder() const {
135  return "Structure";
136  }
137  QString name() const {
138  return "Reverse Mesh";
139  }
141  return "Reverse orientation of the mesh";
142  }
144  return QStringList();
145  }
147  return QStringList();
148  }
150  return QStringList();
151  }
152  QIcon icon() const {
153  return QIcon(":/images/Invert.png");
154  }
155 };
156 
162 class mgxBase_EXPORT SmoothMesh : public MeshProcess {
163 public:
164  SmoothMesh(const MeshProcess& process)
165  : Process(process)
166  , MeshProcess(process)
167  {
168  }
169 
170  bool operator()(const QStringList& parms)
171  {
172  if(!checkState().mesh(MESH_NON_EMPTY))
173  return false;
174  return (*this)(currentMesh(), parms[0].toUInt());
175  }
176 
177  bool operator()(Mesh* mesh, uint passes);
178 
179  QString folder() const {
180  return "Structure";
181  }
182  QString name() const {
183  return "Smooth Mesh";
184  }
186  return "Average each vertex position based on its neighbors.";
187  }
189  return QStringList() << "Passes";
190  }
192  return QStringList() << "Passes";
193  }
195  return QStringList() << "1";
196  }
197  QIcon icon() const {
198  return QIcon(":/images/SmoothMesh.png");
199  }
200 };
201 
207 class mgxBase_EXPORT ShrinkMesh : public MeshProcess {
208 public:
209  ShrinkMesh(const MeshProcess& process)
210  : Process(process)
211  , MeshProcess(process)
212  {
213  }
214 
215  bool operator()(const QStringList& parms)
216  {
217  if(!checkState().mesh(MESH_NON_EMPTY))
218  return false;
219  return (*this)(currentMesh(), parms[0].toFloat());
220  }
221 
222  bool operator()(Mesh* mesh, float distance);
223 
224  QString folder() const {
225  return "Structure";
226  }
227  QString name() const {
228  return "Shrink Mesh";
229  }
231  {
232  return "Displace each vertex towards the mesh center, perpendicular to the surface.";
233  }
235  return QStringList() << QString("Distance(%1)").arg(UM);
236  }
238  return QStringList() << "Vertex displacement. If negtive, the mesh will expand.";
239  }
241  return QStringList() << "1.0";
242  }
243  QIcon icon() const {
244  return QIcon(":/images/ShrinkMesh.png");
245  }
246 };
247 
253 class mgxBase_EXPORT LoopSubdivisionMesh : public MeshProcess {
254 public:
255  LoopSubdivisionMesh(const MeshProcess& process)
256  : Process(process)
257  , MeshProcess(process)
258  {
259  }
260 
261  bool operator()(const QStringList& )
262  {
263  if(!checkState().mesh(MESH_NON_EMPTY))
264  return false;
265  return (*this)(currentMesh());
266  }
267 
268  bool operator()(Mesh* mesh);
269 
270  QString folder() const {
271  return "Structure";
272  }
273  QString name() const {
274  return "Loop Subdivision";
275  }
277  return "Subdivide the mesh uniformly using Loop subdivision.";
278  }
280  return QStringList();
281  }
283  return QStringList();
284  }
285  QIcon icon() const {
286  return QIcon(":/images/SubdivideTri.png");
287  }
288 };
289 
295 class mgxBase_EXPORT SubdivideMesh : public MeshProcess {
296 public:
297  SubdivideMesh(const MeshProcess& process)
298  : Process(process)
299  , MeshProcess(process)
300  {
301  }
302 
303  bool operator()(const QStringList& )
304  {
305  if(!checkState().mesh(MESH_NON_EMPTY))
306  return false;
307  return (*this)(currentMesh());
308  }
309 
310  bool operator()(Mesh* mesh);
311 
312  QString folder() const {
313  return "Structure";
314  }
315  QString name() const {
316  return "Subdivide";
317  }
319  return "Subdivide the mesh unifromly";
320  }
322  return QStringList();
323  }
325  return QStringList();
326  }
327  QIcon icon() const {
328  return QIcon(":/images/SubdivideTri.png");
329  }
330 };
331 
337 class mgxBase_EXPORT AdaptiveSubdivideBorderMesh : public MeshProcess {
338 public:
340  : Process(process)
341  , MeshProcess(process)
342  {
343  }
344 
345  bool operator()(const QStringList& parms)
346  {
347  if(!checkState().mesh(MESH_NON_EMPTY))
348  return false;
349  return (*this)(currentMesh(), parms[0].toFloat(), parms[1].toFloat());
350  }
351 
352  bool operator()(Mesh* mesh, float cellMaxArea, float borderDist);
353 
354  QString folder() const {
355  return "Structure";
356  }
357  QString name() const {
358  return "Subdivide Adaptive Near Borders";
359  }
361  return "Subdivide triangles around cell borders";
362  }
364  {
365  return QStringList() << QString("Max Area(%1)").arg(UM2) << QString("Border Dist(%1)").arg(UM);
366  }
368  {
369  return QStringList()
370  << "Area threshold (in square microns) for subdivision, triangles smaller than this won't be subdivided"
371  << "Distance (in microns) from cell borders that triangles will be subdivided";
372  }
374  {
375  return QStringList() << "0.1"
376  << "1.0";
377  }
378  QIcon icon() const {
379  return QIcon(":/images/SubdivideTriAdapt.png");
380  }
381 };
382 
390 class mgxBase_EXPORT AdaptiveSubdivideSignalMesh : public MeshProcess {
391 public:
393  : Process(process)
394  , MeshProcess(process)
395  {
396  }
397 
398  bool operator()(const QStringList& parms)
399  {
400  if(!checkState().mesh(MESH_NON_EMPTY))
401  return false;
402  return (*this)(currentMesh(), parms[0].toFloat(), parms[1].toFloat());
403  }
404 
405  bool operator()(Mesh* mesh, float cellMaxAreaLow, float cellMaxAreaHigh);
406 
407  QString folder() const {
408  return "Structure";
409  }
410  QString name() const {
411  return "Subdivide Adaptive by Signal";
412  }
414  {
415  return "Subdivide triangles depending on mesh signal. Triangle size\n"
416  "is determined by a high and low area, which is interpolated\n"
417  "based on the minimum and maximum signals";
418  }
420  {
421  return QStringList() << QString("Low Max Area(%1)").arg(UM2) << QString("High Max Area(%1)").arg(UM2);
422  }
424  {
425  return QStringList() << "Maximum area (square microns) for low instentity voxels"
426  << "Maximum area (square microns) for high instentity voxels";
427  }
429  {
430  return QStringList() << "1.0"
431  << "0.1";
432  }
433  QIcon icon() const {
434  return QIcon(":/images/SubdivideTriAdapt.png");
435  }
436 };
437 
443 class mgxBase_EXPORT SubdivideBisectMesh : public MeshProcess {
444 public:
445  SubdivideBisectMesh(const MeshProcess& process)
446  : Process(process)
447  , MeshProcess(process)
448  {
449  }
450 
451  bool operator()(const QStringList& parms)
452  {
453  if(!checkState().mesh(MESH_NON_EMPTY))
454  return false;
455  return (*this)(currentMesh(), parms[0].toFloat());
456  }
457 
458  bool operator()(Mesh* mesh, float cellMaxArea);
459 
460  QString folder() const {
461  return "Structure";
462  }
463  QString name() const {
464  return "Subdivide with Bisection";
465  }
467  return "Subdivide triangles area with bisection";
468  }
470  return QStringList() << QString("Max Area(%1)").arg(UM2);
471  }
473  return QStringList() << QString("Max Area(%1)").arg(UM2);
474  }
476  return QStringList() << "1.0";
477  }
478  QIcon icon() const {
479  return QIcon(":/images/SubdivideTriAdapt.png");
480  }
481 };
482 
488 class mgxBase_EXPORT ScaleMesh : public MeshProcess {
489 public:
490  ScaleMesh(const MeshProcess& process)
491  : Process(process)
492  , MeshProcess(process)
493  {
494  }
495 
496  bool operator()(const QStringList& parms)
497  {
498  if(!checkState().mesh(MESH_NON_EMPTY))
499  return false;
500  return (*this)(currentMesh(), parms[0].toFloat(), parms[1].toFloat(), parms[2].toFloat());
501  }
502 
503  bool operator()(Mesh* mesh, float scaleX, float scaleY, float scaleZ);
504 
505  QString folder() const {
506  return "Structure";
507  }
508  QString name() const {
509  return "Scale Mesh";
510  }
512  {
513  return "Scale Mesh, or a selected part of it.\n"
514  "It is possible to specify a negative number, in which case the dimension will be mirrored.\n"
515  "If either 1 or 3 axis are mirrored, then the whole mesh needs to be scaled, "
516  "as these triangles will change orientation";
517  }
519  {
520  return QStringList() << "X Scale"
521  << "Y Scale"
522  << "Z Scale";
523  }
525  {
526  return QStringList() << "X Scale"
527  << "Y Scale"
528  << "Z Scale";
529  }
531  {
532  return QStringList() << "1.0"
533  << "1.0"
534  << "1.0";
535  }
536  QIcon icon() const {
537  return QIcon(":/images/Scale.png");
538  }
539 };
540 
546 class mgxBase_EXPORT MeshDeleteValence : public MeshProcess {
547 public:
548  MeshDeleteValence(const MeshProcess& process)
549  : Process(process)
550  , MeshProcess(process)
551  {
552  }
553 
554  bool operator()(const QStringList& parms)
555  {
556  if(!checkState().mesh(MESH_NON_EMPTY))
557  return false;
558  return (*this)(currentMesh(), parms[0].toInt(), parms[1].toInt());
559  }
560 
561  bool operator()(Mesh* mesh, int startValence, int endValence);
562 
563  QString folder() const {
564  return "Structure";
565  }
566  QString name() const {
567  return "Delete Mesh Vertices by Valence";
568  }
570  return "Delete mesh vertices that have valence within the specified range";
571  }
573  {
574  return QStringList() << "Start Valence"
575  << "End Valence";
576  }
578  {
579  return QStringList() << "Start Valence"
580  << "End Valence";
581  }
583  {
584  return QStringList() << "0"
585  << "2";
586  }
587  QIcon icon() const {
588  return QIcon(":/images/DeleteValence");
589  }
590 };
591 
597 class MergeVertices : public MeshProcess {
598 public:
599  MergeVertices(const MeshProcess& process)
600  : Process(process)
601  , MeshProcess(process)
602  {
603  }
604 
605  bool operator()(const QStringList& )
606  {
608  return false;
609  return operator()(currentMesh());
610  }
611 
612  bool operator()(Mesh* mesh);
613 
614  QString folder() const {
615  return "Structure";
616  }
617  QString name() const {
618  return "Merge Vertices";
619  }
621  return "Merge selected vertices into one.";
622  }
624  return QStringList();
625  }
627  return QStringList();
628  }
630  return QStringList();
631  }
632  QIcon icon() const {
633  return QIcon(":/images/MergeVertices");
634  }
635 };
636 
642 class DeleteEdge : public MeshProcess {
643 public:
644  DeleteEdge(const MeshProcess& process)
645  : Process(process)
646  , MeshProcess(process)
647  {
648  }
649 
650  bool operator()(const QStringList& )
651  {
653  return false;
654  return operator()(currentMesh());
655  }
656 
657  bool operator()(Mesh* mesh);
658 
659  QString folder() const {
660  return "Structure";
661  }
662  QString name() const {
663  return "Delete Edge";
664  }
666  return "Delete edge between 2 selected vertices.";
667  }
669  return QStringList();
670  }
672  return QStringList();
673  }
675  return QStringList();
676  }
677  QIcon icon() const {
678  return QIcon(":/images/DeleteLabel.png");
679  }
680 };
681 
687 class mgxBase_EXPORT MeshDeleteSelection : public MeshProcess {
688 public:
689  MeshDeleteSelection(const MeshProcess& process)
690  : Process(process)
691  , MeshProcess(process)
692  {
693  }
694 
695  bool operator()(const QStringList& )
696  {
697  if(!checkState().mesh(MESH_NON_EMPTY | MESH_SHOW_MESH))
698  return false;
699  return (*this)(currentMesh());
700  }
701 
702  bool operator()(Mesh* m);
703 
704  QString folder() const {
705  return "Structure";
706  }
707  QString name() const {
708  return "Delete Selection";
709  }
711  return "Delete vertices selected in the current mesh, preserving cells.";
712  }
714  return QStringList();
715  }
717  return QStringList();
718  }
719  QIcon icon() const {
720  return QIcon(":/images/DeleteLabel.png");
721  }
722 };
723 
729 class mgxBase_EXPORT MeshKeepVertices : public MeshProcess {
730 public:
731  MeshKeepVertices(const MeshProcess& process)
732  : Process(process)
733  , MeshProcess(process)
734  {
735  }
736 
737  bool operator()(const QStringList& parms)
738  {
739  if(!checkState().mesh(MESH_NON_EMPTY | MESH_SHOW_MESH))
740  return false;
741  bool keep = stringToBool(parms[0]);
742  return (*this)(currentMesh(), keep);
743  }
744 
745  bool operator()(Mesh* m, bool keep);
746 
747  QString folder() const {
748  return "Structure";
749  }
750  QString name() const {
751  return "Keep Vertices";
752  }
754  {
755  return "Mark vertices so that they can survive as lines and points. Also prevents labels changing.";
756  }
758  return QStringList() << "Keep";
759  }
761  return QStringList() << "Keep";
762  }
764  return QStringList() << "No";
765  }
767  {
768  ParmChoiceMap map;
769  map[0] = booleanChoice();
770  return map;
771  }
772  QIcon icon() const {
773  return QIcon(":/images/KeepVertices.png");
774  }
775 };
777 } // namespace process
778 } // namespace mgx
779 #endif
QStringList parmDefaults() const
List of default parms.
Definition: MeshProcessStructure.hpp:763
QStringList parmDefaults() const
List of default parms.
Definition: MeshProcessStructure.hpp:373
QString folder() const
Folder in which to place the process.
Definition: MeshProcessStructure.hpp:563
bool operator()(const QStringList &)
Implementation of the process with generic arguments.
Definition: MeshProcessStructure.hpp:695
QString folder() const
Folder in which to place the process.
Definition: MeshProcessStructure.hpp:747
QStringList parmNames() const
List of named parameters.
Definition: MeshProcessStructure.hpp:88
QString folder() const
Folder in which to place the process.
Definition: MeshProcessStructure.hpp:79
QStringList parmNames() const
List of named parameters.
Definition: MeshProcessStructure.hpp:419
QString name() const
Returns the name of the process.
Definition: MeshProcessStructure.hpp:357
bool operator()(const QStringList &parms)
Implementation of the process with generic arguments.
Definition: MeshProcessStructure.hpp:496
QStringList parmNames() const
List of named parameters.
Definition: MeshProcessStructure.hpp:234
ParmChoiceMap parmChoice() const
Purely for GUI purposes, provides for some of the parms parameter a choice.
Definition: MeshProcessStructure.hpp:766
Delete the edge between 2 selected vertices.
Definition: MeshProcessStructure.hpp:642
QStringList parmDefaults() const
List of default parms.
Definition: MeshProcessStructure.hpp:475
QStringList parmNames() const
List of named parameters.
Definition: MeshProcessStructure.hpp:321
bool operator()(const QStringList &parms)
Implementation of the process with generic arguments.
Definition: MeshProcessStructure.hpp:345
QString name() const
Returns the name of the process.
Definition: MeshProcessStructure.hpp:410
QString description() const
Returns a description of the process for the GUI.
Definition: MeshProcessStructure.hpp:230
QString description() const
Returns a description of the process for the GUI.
Definition: MeshProcessStructure.hpp:665
QStringList parmDefaults() const
List of default parms.
Definition: MeshProcessStructure.hpp:194
QStringList parmDescs() const
List of parameters descriptions.
Definition: MeshProcessStructure.hpp:237
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: MeshProcessStructure.hpp:327
QStringList parmDescs() const
List of parameters descriptions.
Definition: MeshProcessStructure.hpp:191
QString name() const
Returns the name of the process.
Definition: MeshProcessStructure.hpp:137
arg(const QString &a, int fieldWidth=0, const QChar &fillChar=QLatin1Char( ' ')
Subdivide triangles area with bisection.
Definition: MeshProcessStructure.hpp:443
QStringList parmNames() const
List of named parameters.
Definition: MeshProcessStructure.hpp:469
QString description() const
Returns a description of the process for the GUI.
Definition: MeshProcessStructure.hpp:85
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: MeshProcessStructure.hpp:243
Misc.
QString description() const
Returns a description of the process for the GUI.
Definition: MeshProcessStructure.hpp:318
QString description() const
Returns a description of the process for the GUI.
Definition: MeshProcessStructure.hpp:185
QString description() const
Returns a description of the process for the GUI.
Definition: MeshProcessStructure.hpp:710
Process()
Default constructor.
QStringList parmNames() const
List of named parameters.
Definition: MeshProcessStructure.hpp:363
QStringList parmDescs() const
List of parameters descriptions.
Definition: MeshProcessStructure.hpp:423
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: MeshProcessStructure.hpp:632
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: MeshProcessStructure.hpp:478
QStringList parmNames() const
List of named parameters.
Definition: MeshProcessStructure.hpp:668
bool operator()(const QStringList &)
Implementation of the process with generic arguments.
Definition: MeshProcessStructure.hpp:261
QString description() const
Returns a description of the process for the GUI.
Definition: MeshProcessStructure.hpp:413
QString description() const
Returns a description of the process for the GUI.
Definition: MeshProcessStructure.hpp:276
QStringList parmDescs() const
List of parameters descriptions.
Definition: MeshProcessStructure.hpp:146
QStringList parmDescs() const
List of parameters descriptions.
Definition: MeshProcessStructure.hpp:524
QString folder() const
Folder in which to place the process.
Definition: MeshProcessStructure.hpp:354
QString name() const
Returns the name of the process.
Definition: MeshProcessStructure.hpp:707
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: MeshProcessStructure.hpp:433
Scale the mesh.
Definition: MeshProcessStructure.hpp:488
bool operator()(const QStringList &parms)
Implementation of the process with generic arguments.
Definition: MeshProcessStructure.hpp:52
QString folder() const
Folder in which to place the process.
Definition: MeshProcessStructure.hpp:614
Subdivide triangles around cell borders.
Definition: MeshProcessStructure.hpp:337
QStringList parmNames() const
List of named parameters.
Definition: MeshProcessStructure.hpp:713
QStringList parmDefaults() const
List of default parms.
Definition: MeshProcessStructure.hpp:240
Mark vertices so that they can survive as lines and points.
Definition: MeshProcessStructure.hpp:729
Merge selected vertices into one.
Definition: MeshProcessStructure.hpp:597
QString description() const
Returns a description of the process for the GUI.
Definition: MeshProcessStructure.hpp:466
QString folder() const
Folder in which to place the process.
Definition: MeshProcessStructure.hpp:134
QStringList parmNames() const
List of named parameters.
Definition: MeshProcessStructure.hpp:757
QStringList parmDescs() const
List of parameters descriptions.
Definition: MeshProcessStructure.hpp:367
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: MeshProcessStructure.hpp:677
bool operator()(const QStringList &parms)
Implementation of the process with generic arguments.
Definition: MeshProcessStructure.hpp:737
bool operator()(const QStringList &parms)
Implementation of the process with generic arguments.
Definition: MeshProcessStructure.hpp:554
QStringList parmDescs() const
List of parameters descriptions.
Definition: MeshProcessStructure.hpp:626
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: MeshProcessStructure.hpp:197
CheckState checkState()
Call this function and convert the result to a boolean.
Subdivide triangles depending on mesh signal.
Definition: MeshProcessStructure.hpp:390
QString name() const
Returns the name of the process.
Definition: MeshProcessStructure.hpp:566
Displace each vertex towards the mesh center, perpendicular to the surface.
Definition: MeshProcessStructure.hpp:207
Subdivide the mesh uniformely, without displacing existing vertices.
Definition: MeshProcessStructure.hpp:295
This class holds the actual mesh as a VV Graph and all sort of properties for it, including visualiza...
Definition: Mesh.hpp:167
graph::VVGraph< VertexData, EdgeData > vvgraph
Type of the VV graph holding the actual mesh.
Definition: Mesh.hpp:36
bool operator()(const QStringList &)
Implementation of the process with generic arguments.
Definition: MeshProcessStructure.hpp:605
QStringList parmDefaults() const
List of default parms.
Definition: MeshProcessStructure.hpp:149
QString folder() const
Folder in which to place the process.
Definition: MeshProcessStructure.hpp:407
QString name() const
Returns the name of the process.
Definition: MeshProcessStructure.hpp:227
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: MeshProcessStructure.hpp:152
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: MeshProcessStructure.hpp:536
vvgraph::vertex_t vertex
Type of a vertex.
Definition: Mesh.hpp:39
QString description() const
Returns a description of the process for the GUI.
Definition: MeshProcessStructure.hpp:511
Subdivide the mesh uniformly using Loop subdivision.
Definition: MeshProcessStructure.hpp:253
QStringList parmNames() const
List of named parameters.
Definition: MeshProcessStructure.hpp:572
QString description() const
Returns a description of the process for the GUI.
Definition: MeshProcessStructure.hpp:753
QStringList parmDefaults() const
List of default parms.
Definition: MeshProcessStructure.hpp:428
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: MeshProcessStructure.hpp:587
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: MeshProcessStructure.hpp:378
QString folder() const
Folder in which to place the process.
Definition: MeshProcessStructure.hpp:704
QString name() const
Returns the name of the process.
Definition: MeshProcessStructure.hpp:315
QString name() const
Returns the name of the process.
Definition: MeshProcessStructure.hpp:182
Apply an affine transformation to the vertices of a mesh (all of them or just the selected ones)...
Definition: MeshProcessStructure.hpp:44
QString description() const
Returns a description of the process for the GUI.
Definition: MeshProcessStructure.hpp:360
QStringList parmDefaults() const
List of default parms.
Definition: MeshProcessStructure.hpp:101
QStringList parmDescs() const
List of parameters descriptions.
Definition: MeshProcessStructure.hpp:282
bool operator()(const QStringList &)
Implementation of the process with generic arguments.
Definition: MeshProcessStructure.hpp:650
mgxBase_EXPORT bool subdivideBisect(vvgraph &S, const vertex &v1, const vertex &v2, const vertex &v3, bool selected, std::vector< vertex > *vs=0)
Subdivide triangle by bi-sections.
QStringList parmDefaults() const
List of default parms.
Definition: MeshProcessStructure.hpp:674
bool operator()(const QStringList &parms)
Implementation of the process with generic arguments.
Definition: MeshProcessStructure.hpp:170
bool operator()(const QStringList &parms)
Implementation of the process with generic arguments.
Definition: MeshProcessStructure.hpp:451
File containing the definition of a Process.
mgxBase_EXPORT void markMargin(vvgraph &M, vvgraph &S, bool remborders)
Mark the cells and tissue margin vertices.
QString name() const
Returns the name of the process.
Definition: MeshProcessStructure.hpp:273
QString name() const
Returns the name of the process.
Definition: MeshProcessStructure.hpp:82
bool operator()(const QStringList &)
Implementation of the process with generic arguments.
Definition: MeshProcessStructure.hpp:126
QString folder() const
Folder in which to place the process.
Definition: MeshProcessStructure.hpp:460
Average each vertex position based on its neighbors.
Definition: MeshProcessStructure.hpp:162
QStringList parmDefaults() const
List of default parms.
Definition: MeshProcessStructure.hpp:629
Mesh * mesh(int i)
Returns the ith mesh.
QString description() const
Returns a description of the process for the GUI.
Definition: MeshProcessStructure.hpp:569
This is the main process class, the one all process inherit from.
Definition: Process.hpp:248
QString folder() const
Folder in which to place the process.
Definition: MeshProcessStructure.hpp:179
QString name() const
Returns the name of the process.
Definition: MeshProcessStructure.hpp:617
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: MeshProcessStructure.hpp:108
QString name() const
Returns the name of the process.
Definition: MeshProcessStructure.hpp:750
mgx_EXPORT bool stringToBool(const QString &string)
Helper function converting a string into a boolean.
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: MeshProcessStructure.hpp:285
QString name() const
Returns the name of the process.
Definition: MeshProcessStructure.hpp:508
QStringList parmNames() const
List of named parameters.
Definition: MeshProcessStructure.hpp:143
QString description() const
Returns a description of the process for the GUI.
Definition: MeshProcessStructure.hpp:140
bool operator()(const QStringList &parms)
Implementation of the process with generic arguments.
Definition: MeshProcessStructure.hpp:398
QString folder() const
Folder in which to place the process.
Definition: MeshProcessStructure.hpp:224
QStringList parmDescs() const
List of parameters descriptions.
Definition: MeshProcessStructure.hpp:760
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: MeshProcessStructure.hpp:772
bool operator()(const QStringList &parms)
Implementation of the process with generic arguments.
Definition: MeshProcessStructure.hpp:215
QStringList parmNames() const
List of named parameters.
Definition: MeshProcessStructure.hpp:279
bool operator()(const QStringList &)
Implementation of the process with generic arguments.
Definition: MeshProcessStructure.hpp:303
QStringList parmDescs() const
List of parameters descriptions.
Definition: MeshProcessStructure.hpp:472
QStringList parmDescs() const
List of parameters descriptions.
Definition: MeshProcessStructure.hpp:716
QStringList parmDescs() const
List of parameters descriptions.
Definition: MeshProcessStructure.hpp:671
QString name() const
Returns the name of the process.
Definition: MeshProcessStructure.hpp:662
QString folder() const
Folder in which to place the process.
Definition: MeshProcessStructure.hpp:312
QStringList parmDefaults() const
List of default parms.
Definition: MeshProcessStructure.hpp:530
QString folder() const
Folder in which to place the process.
Definition: MeshProcessStructure.hpp:270
Non-empty mesh.
Definition: Process.hpp:664
Delete vertices selected in the current mesh, preserving cells.
Definition: MeshProcessStructure.hpp:687
QStringList parmNames() const
List of named parameters.
Definition: MeshProcessStructure.hpp:623
QString folder() const
Folder in which to place the process.
Definition: MeshProcessStructure.hpp:505
Mesh * currentMesh()
Returns the current mesh (i.e.
QString description() const
Returns a description of the process for the GUI.
Definition: MeshProcessStructure.hpp:620
Delete vertices whose valence is wihin a given range.
Definition: MeshProcessStructure.hpp:546
QStringList parmDescs() const
List of parameters descriptions.
Definition: MeshProcessStructure.hpp:324
Reverse the orientation of the mesh.
Definition: MeshProcessStructure.hpp:118
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: MeshProcessStructure.hpp:719
QStringList parmNames() const
List of named parameters.
Definition: MeshProcessStructure.hpp:188
QStringList parmNames() const
List of named parameters.
Definition: MeshProcessStructure.hpp:518
QString name() const
Returns the name of the process.
Definition: MeshProcessStructure.hpp:463
Mesh processes have mutable access to meshes and non-mutable access to stacks.
Definition: Process.hpp:855
QString folder() const
Folder in which to place the process.
Definition: MeshProcessStructure.hpp:659
QStringList parmDescs() const
List of parameters descriptions.
Definition: MeshProcessStructure.hpp:577
QStringList parmDefaults() const
List of default parms.
Definition: MeshProcessStructure.hpp:582