MorphoGraphX
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
StackProcess.hpp
Go to the documentation of this file.
1 #ifndef STACKPROCESS_HPP
2 #define STACKPROCESS_HPP
3 
9 #include <Process.hpp>
10 
11 namespace mgx {
12 namespace process {
13 
16 
21 class mgxBase_EXPORT Annihilate : public StackProcess {
22 public:
23  Annihilate(const StackProcess& process)
24  : Process(process)
25  , StackProcess(process)
26  {
27  }
28 
29  bool operator()(const QStringList& parms)
30  {
31  if(!checkState().store(STORE_NON_EMPTY).mesh(MESH_NON_EMPTY))
32  return false;
33  Store* input = currentStack()->currentStore();
34  Store* output = currentStack()->work();
35 
36  bool fill = stringToBool(parms[0]);
37  bool res
38  = (*this)(input, output, currentMesh(), parms[2].toFloat(), parms[3].toFloat(), fill, parms[1].toUInt());
39  if(res) {
40  input->hide();
41  output->show();
42  }
43  return res;
44  }
45 
54  bool operator()(const Store* input, Store* output, const Mesh* mesh, float minDist, float maxDist,
55  bool fill, uint fillval);
56 
57  QString name() const {
58  return "Annihilate";
59  }
60  QString description() const {
61  return "Keep or fill a layer near the mesh";
62  }
63  QString folder() const {
64  return "Mesh Interaction";
65  }
67  {
68  return QStringList() << "Fill"
69  << "Fill Val" << QString("Min Dist(%1)").arg(UM)
70  << QString("Max Dist(%1)").arg(UM);
71  }
73  {
74  return QStringList() << "Fill the layer with specified value, or keep the original data."
75  << "Value to fill the volume with."
76  << "Minimal distance from layer to mesh."
77  << "Maximal distance from layre to mesh";
78  }
80  {
81  return QStringList() << "No"
82  << "30000"
83  << "1.0"
84  << "5.0";
85  }
87  {
88  ParmChoiceMap map;
89  map[0] = booleanChoice();
90  return map;
91  }
92  QIcon icon() const {
93  return QIcon(":/images/Annihilate.png");
94  }
95 };
96 
102 class mgxBase_EXPORT AutoScaleStack : public StackProcess {
103 public:
104  AutoScaleStack(const StackProcess& process)
105  : Process(process)
106  , StackProcess(process)
107  {
108  }
109 
110  bool operator()(const QStringList& )
111  {
112  if(!checkState().store(STORE_NON_EMPTY))
113  return false;
114  Store* input = currentStack()->currentStore();
115  Store* output = currentStack()->work();
116  bool res = (*this)(input, output);
117  if(res) {
118  input->hide();
119  output->show();
120  }
121  return res;
122  }
123 
127  bool operator()(const Store* store, Store* output);
128 
129  QString name() const {
130  return "Autoscale Stack";
131  }
133  return "Scale the stack intensity to fill exactly the whole range.";
134  }
135  QString folder() const {
136  return "Filters";
137  }
139  return QStringList();
140  }
142  return QStringList();
143  }
144  QIcon icon() const {
145  return QIcon(":/images/Palette.png");
146  }
147 };
148 
154 class mgxBase_EXPORT ApplyTransferFunction : public StackProcess {
155 public:
156  ApplyTransferFunction(const StackProcess& process)
157  : Process(process)
158  , StackProcess(process)
159  {
160  }
161 
162  bool operator()(const QStringList& parms)
163  {
164  if(!checkState().store(STORE_NON_EMPTY))
165  return false;
166  Store* input = currentStack()->currentStore();
167  Store* output = currentStack()->work();
168  bool res
169  = (*this)(input, output, parms[0].toFloat(), parms[1].toFloat(), parms[2].toFloat(), parms[3].toFloat());
170  if(res) {
171  input->hide();
172  output->show();
173  }
174  return res;
175  }
176 
188  bool operator()(Store* store, Store* output, float red, float green, float blue, float alpha);
189 
190  QString name() const {
191  return "Apply Transfer Function";
192  }
194  return "Apply the transfer function to the stack (modifies voxel values).";
195  }
196  QString folder() const {
197  return "Filters";
198  }
200  {
201  return QStringList() << "Red"
202  << "Green"
203  << "Blue"
204  << "Alpha";
205  }
207  {
208  return QStringList() << "Red"
209  << "Green"
210  << "Blue"
211  << "Alpha";
212  }
214  {
215  return QStringList() << "0"
216  << "0"
217  << "0"
218  << "1";
219  }
220  QIcon icon() const {
221  return QIcon(":/images/Palette.png");
222  }
223 };
224 
230 class mgxBase_EXPORT BlobDetect : public StackProcess {
231 public:
232  BlobDetect(const StackProcess& process)
233  : Process(process)
234  , StackProcess(process)
235  {
236  }
237 
238  bool operator()(const QStringList& parms)
239  {
240  if(!checkState().store(STORE_NON_EMPTY | STORE_NON_LABEL))
241  return false;
242  bool wat = stringToBool(parms[0]);
243  Store* input = currentStack()->currentStore();
244  Store* output = currentStack()->work();
245  bool res = (*this)(input, output, wat, parms[1].toUInt());
246  if(res) {
247  input->hide();
248  output->show();
249  }
250  return res;
251  }
252 
253  bool operator()(const Store* input, Store* output, bool watershed, uint startlabel);
254 
255  QString folder() const {
256  return "Segmentation";
257  }
258  QString name() const {
259  return "Blob Detect";
260  }
262  return "Find and label blobs in an image";
263  }
265  {
266  return QStringList() << "Use watershed"
267  << "Start Label";
268  }
270  {
271  return QStringList() << "Use watershed"
272  << "Start Label";
273  }
275  {
276  ParmChoiceMap map;
277  map[0] = booleanChoice();
278  return map;
279  }
281  {
282  return QStringList() << "No"
283  << "1";
284  }
285  QIcon icon() const {
286  return QIcon(":/images/BlobDetect.png");
287  }
288 };
289 
295 class mgxBase_EXPORT ClearWorkStack : public StackProcess {
296 public:
297  ClearWorkStack(const StackProcess& process)
298  : Process(process)
299  , StackProcess(process)
300  {
301  }
302 
303  bool operator()(const QStringList& parms)
304  {
305  if(!checkState().store(STORE_WORK))
306  return false;
307  return (*this)(currentStack(), parms[0].toUInt());
308  }
309 
310  bool operator()(Stack* stack, uint fillValue);
311 
312  QString folder() const {
313  return "System";
314  }
315  QString name() const {
316  return "Clear Work Stack";
317  }
319  return "Clear the work stack";
320  }
322  return QStringList() << "Fill value";
323  }
325  return QStringList() << "Fill value";
326  }
328  return QStringList() << "0";
329  }
330  QIcon icon() const {
331  return QIcon(":/images/ClearStack.png");
332  }
333 };
334 
340 class mgxBase_EXPORT ClearMainStack : public StackProcess {
341 public:
342  ClearMainStack(const StackProcess& process)
343  : Process(process)
344  , StackProcess(process)
345  {
346  }
347 
348  bool operator()(const QStringList& parms)
349  {
350  if(!checkState().store(STORE_MAIN))
351  return false;
352  return (*this)(currentStack(), parms[0].toUInt());
353  }
354 
355  bool operator()(Stack* stack, uint fillValue);
356 
357  QString folder() const {
358  return "System";
359  }
360  QString name() const {
361  return "Clear Main Stack";
362  }
364  return "Clear the main stack";
365  }
367  return QStringList() << "Fill value";
368  }
370  return QStringList() << "Fill value";
371  }
373  return QStringList() << "0";
374  }
375  QIcon icon() const {
376  return QIcon(":/images/ClearStack.png");
377  }
378 };
379 
385 class mgxBase_EXPORT ClipStack : public StackProcess {
386 public:
387  ClipStack(const StackProcess& process)
388  : Process(process)
389  , StackProcess(process)
390  {
391  }
392 
393  bool operator()(const QStringList&)
394  {
395  if(!checkState().store(STORE_NON_EMPTY))
396  return false;
397  Store* input = currentStack()->currentStore();
398  Store* output = currentStack()->work();
399  bool res = (*this)(input, output);
400  if(res) {
401  input->hide();
402  output->show();
403  }
404  return res;
405  }
406 
407  bool operator()(const Store* input, Store* output);
408 
409  QString folder() const {
410  return "Mesh Interaction";
411  }
412  QString name() const {
413  return "Clip Stack";
414  }
416  return "Trim stack to clipping planes";
417  }
419  return QStringList();
420  }
422  return QStringList();
423  }
424  QIcon icon() const {
425  return QIcon(":/images/ClipStack.png");
426  }
427 };
428 
434 class mgxBase_EXPORT CopyMainToWork : public StackProcess {
435 public:
436  CopyMainToWork(const StackProcess& process)
437  : Process(process)
438  , StackProcess(process)
439  {
440  }
441 
442  bool operator()(const QStringList&)
443  {
444  if(!checkState().store(STORE_MAIN | STORE_NON_EMPTY))
445  return false;
446  Stack* stack = currentStack();
447  bool res = (*this)(stack);
448  if(res) {
449  stack->main()->hide();
450  stack->work()->show();
451  }
452  return res;
453  }
454 
455  bool operator()(Stack* stack);
456 
457  QString folder() const {
458  return "Multi-stack";
459  }
460  QString name() const {
461  return "Copy Main to Work Stack";
462  }
464  return "Copy Main to Work Stack";
465  }
467  return QStringList();
468  }
470  return QStringList();
471  }
472  QIcon icon() const {
473  return QIcon(":/images/CopyMainToWork.png");
474  }
475 };
476 
482 class mgxBase_EXPORT CopyWorkToMain : public StackProcess {
483 public:
484  CopyWorkToMain(const StackProcess& process)
485  : Process(process)
486  , StackProcess(process)
487  {
488  }
489 
490  bool operator()(const QStringList&)
491  {
492  if(!checkState().store(STORE_WORK | STORE_NON_EMPTY))
493  return false;
494  Stack* stack = currentStack();
495  bool res = (*this)(stack);
496  if(res) {
497  stack->work()->hide();
498  stack->main()->show();
499  }
500  return res;
501  }
502 
503  bool operator()(Stack* stack);
504 
505  QString folder() const {
506  return "Multi-stack";
507  }
508  QString name() const {
509  return "Copy Work to Main Stack";
510  }
512  return "Copy Work to Main Stack";
513  }
515  return QStringList();
516  }
518  return QStringList();
519  }
520  QIcon icon() const {
521  return QIcon(":/images/CopyWorkToMain.png");
522  }
523 };
524 
530 class mgxBase_EXPORT CopySwapStacks : public StackProcess {
531 public:
532  CopySwapStacks(const StackProcess& process)
533  : Process(process)
534  , StackProcess(process)
535  {
536  }
537 
538  bool operator()(const QStringList& parms)
539  {
540  // Stack *stack = currentStack();
541  bool res = (*this)(parms[0], parms[1]);
542  // if(res)
543  //{
544  // stack->main()->hide();
545  // stack->work()->show();
546  //}
547  return res;
548  }
549 
550  bool operator()(const QString& storeStr, const QString& actionStr);
551 
552  QString folder() const {
553  return "Multi-stack";
554  }
555  QString name() const {
556  return "Swap or Copy Stack 1 and 2";
557  }
559  return "Copy or Swap Stack 1 and 2";
560  }
562  {
563  return QStringList() << "Store"
564  << "Action";
565  }
567  {
568  return QStringList() << "Store"
569  << "Action";
570  }
572  {
573  return QStringList() << "Main"
574  << "1 -> 2";
575  }
577  {
578  ParmChoiceMap map;
579  map[0] = storeChoice();
580  map[1] = QStringList() << "1 -> 2"
581  << "1 <- 2"
582  << "1 <-> 2";
583  return map;
584  }
585 
586  QIcon icon() const {
587  return QIcon(":/images/CopySwapStacks.png");
588  }
589 };
590 
596 class mgxBase_EXPORT StackMeshProcess : public StackProcess {
597 public:
598  StackMeshProcess(const StackProcess& process)
599  : Process(process)
600  , StackProcess(process)
601  {
602  }
603 
604  bool operator()(const QStringList& parms, bool fill)
605  {
606  if(!checkState().store(STORE_NON_EMPTY).mesh(MESH_NON_EMPTY))
607  return false;
608  Store* input = currentStack()->currentStore();
609  Store* output = currentStack()->work();
610  const Mesh* mesh = currentMesh();
611  uint fillValue = 0;
612  if(fill)
613  fillValue = parms[0].toUInt();
614  bool res = (*this)(input, output, mesh, fill, fillValue);
615  if(res) {
616  input->hide();
617  output->show();
618  }
619  return res;
620  }
621 
622  bool operator()(const Store* input, Store* output, const Mesh* mesh, bool fill, uint fillValue);
623 };
624 
630 class mgxBase_EXPORT FillStackToMesh : public StackMeshProcess {
631 public:
632  FillStackToMesh(const StackProcess& process)
633  : Process(process)
634  , StackMeshProcess(process)
635  {
636  }
637 
638  using StackMeshProcess::operator();
639 
640  bool operator()(const QStringList& parms) {
641  return (*this)(parms, true);
642  }
643 
644  QString name() const {
645  return "Fill Stack from Mesh";
646  }
647  QString folder() const {
648  return "Mesh Interaction";
649  }
651  return "Fill volume contained by closed mesh";
652  }
654  return QStringList() << "Fill Value";
655  }
657  return QStringList() << "Fill Value";
658  }
660  return QStringList() << "32000";
661  }
662  QIcon icon() const {
663  return QIcon(":/images/TrimStack.png");
664  }
665 };
666 
672 class mgxBase_EXPORT TrimStackProcess : public StackMeshProcess {
673 public:
674  TrimStackProcess(const StackProcess& process)
675  : Process(process)
676  , StackMeshProcess(process)
677  {
678  }
679 
680  using StackMeshProcess::operator();
681 
682  bool operator()(const QStringList& parms) {
683  return (*this)(parms, false);
684  }
685 
686  QString folder() const {
687  return "Mesh Interaction";
688  }
689  QString name() const {
690  return "Trim Stack";
691  }
693  return "Trim parts of stack which are not contained within closed mesh.";
694  }
696  return QStringList();
697  }
699  return QStringList();
700  }
701  QIcon icon() const {
702  return QIcon(":/images/TrimStack.png");
703  }
704 };
705 
711 class mgxBase_EXPORT FillStack3D : public StackProcess {
712 public:
713  FillStack3D(const StackProcess& process)
714  : Process(process)
715  , StackProcess(process)
716  {
717  }
718 
719  bool operator()(const QStringList& )
720  {
721  if(!checkState().store(STORE_NON_EMPTY).mesh(MESH_NON_EMPTY))
722  return false;
723  Store* input = currentStack()->currentStore();
724  Store* output = currentStack()->work();
725  const Mesh* mesh = currentMesh();
726  bool res = (*this)(input, output, mesh);
727  if(res) {
728  input->hide();
729  output->show();
730  output->setLabels(true);
731  }
732  return res;
733  }
734 
735  bool operator()(const Store* input, Store* output, const Mesh* mesh);
736 
737  QString name() const {
738  return "Fill Stack from 3D Mesh";
739  }
740  QString folder() const {
741  return "Mesh Interaction";
742  }
744  return "Fill stack contained by labeled 3D mesh";
745  }
747  return QStringList();
748  }
750  return QStringList();
751  }
752  QList<float> default_values() const {
753  return QList<float>();
754  }
755  QIcon icon() const {
756  return QIcon(":/images/FillStack3D.png");
757  }
758 };
759 
765 class mgxBase_EXPORT SwapStacks : public StackProcess {
766 public:
767  SwapStacks(const StackProcess& process)
768  : Process(process)
769  , StackProcess(process)
770  {
771  }
772 
773  bool operator()(const QStringList&)
774  {
775  if(!checkState().stack(STACK_NON_EMPTY))
776  return false;
777  Stack* s = currentStack();
778  if(!s) {
779  setErrorMessage("You need to select a stack to launch this process.");
780  return false;
781  }
782  return (*this)(s);
783  }
784 
785  bool operator()(Stack* stack);
786 
787  QString folder() const {
788  return "Multi-stack";
789  }
790  QString name() const {
791  return "Swap Main and Work Stacks";
792  }
794  return "Swap the main and work data of the current stack.";
795  }
797  return QStringList();
798  }
800  return QStringList();
801  }
802  QIcon icon() const {
803  return QIcon(":/images/SwapStacks.png");
804  }
805 };
806 
812 class mgxBase_EXPORT ReverseStack : public StackProcess {
813 public:
814  ReverseStack(const StackProcess& process)
815  : Process(process)
816  , StackProcess(process)
817  {
818  }
819 
820  bool operator()(const QStringList& parms)
821  {
822  if(!checkState().store(STORE_NON_EMPTY))
823  return false;
824  Stack* s = currentStack();
825  Store* input = s->currentStore();
826  Store* output = s->work();
827  bool reverse_x = stringToBool(parms[0]);
828  bool reverse_y = stringToBool(parms[1]);
829  bool reverse_z = stringToBool(parms[2]);
830  if((*this)(output, input, reverse_x, reverse_y, reverse_z)) {
831  input->hide();
832  output->show();
833  return true;
834  }
835  return false;
836  }
837 
838  bool operator()(Store* output, const Store* input, bool x, bool y, bool z);
839 
840  QString folder() const {
841  return "Canvas";
842  }
843  QString name() const {
844  return "Reverse Axes";
845  }
847  {
848  return "Reverse the direction of the selected axes.\n"
849  "Press A-key to display the axis.";
850  }
852  {
853  return QStringList() << "X"
854  << "Y"
855  << "Z";
856  }
858  {
859  return QStringList() << "X"
860  << "Y"
861  << "Z";
862  }
864  {
865  return QStringList() << "No"
866  << "No"
867  << "Yes";
868  }
870  {
871  ParmChoiceMap map;
872  map[0] = map[1] = map[2] = booleanChoice();
873  return map;
874  }
875  QIcon icon() const {
876  return QIcon(":/images/Resize.png");
877  }
878 };
879 
885 class mgxBase_EXPORT ChangeVoxelSize : public StackProcess {
886 public:
887  ChangeVoxelSize(const StackProcess& process)
888  : Process(process)
889  , StackProcess(process)
890  {
891  }
892 
893  bool operator()(const QStringList& parms)
894  {
895  if(!checkState().stack(STORE_NON_EMPTY))
896  return false;
897  Stack* s = currentStack();
898  Point3f nv(parms[0].toFloat(), parms[1].toFloat(), parms[2].toFloat());
899  return (*this)(s, nv);
900  }
901 
902  bool operator()(Stack* stack, Point3f nv);
903 
904  QString folder() const {
905  return "Canvas";
906  }
907  QString name() const {
908  return "Change Voxel Size";
909  }
911  return "Change the size of a voxel (i.e. doesn't change the data)";
912  }
914  {
915  return QStringList() << QString::fromWCharArray(L"X (\xb5m)") << QString::fromWCharArray(L"Y (\xb5m)")
916  << QString::fromWCharArray(L"Z (\xb5m)");
917  }
919  {
920  return QStringList() << QString::fromWCharArray(L"X (\xb5m)") << QString::fromWCharArray(L"Y (\xb5m)")
921  << QString::fromWCharArray(L"Z (\xb5m)");
922  }
924  {
925  return QStringList() << "1.0"
926  << "1.0"
927  << "1.0";
928  }
929  QIcon icon() const {
930  return QIcon(":/images/Resize.png");
931  }
932 };
933 
939 class mgxBase_EXPORT ResizeCanvas : public StackProcess {
940 public:
941  ResizeCanvas(const StackProcess& process)
942  : Process(process)
943  , StackProcess(process)
944  {
945  }
946 
947  bool operator()(const QStringList& parms)
948  {
949  if(!checkState().stack(STORE_NON_EMPTY))
950  return false;
951  Stack* s = currentStack();
952  Point3i ds(parms[2].toInt(), parms[3].toInt(), parms[4].toInt());
953  return (*this)(s, stringToBool(parms[0]), stringToBool(parms[1]), ds);
954  }
955 
956  bool operator()(Stack* stack, bool isRelative, bool center, Point3i ds);
957 
958  QString folder() const {
959  return "Canvas";
960  }
961  QString name() const {
962  return "Resize Canvas";
963  }
965  {
966  return "Resize the stack to add or remove voxels.\n"
967  "Make sure BBox is checked on before running.";
968  }
970  {
971  return QStringList() << "Relative"
972  << "Center"
973  << "X"
974  << "Y"
975  << "Z";
976  }
978  {
979  return QStringList() << "If true, X, Y and Z are given in percentage, if false in voxels."
980  << "New canvas centered as the old one, or else use the bottom left corner as reference."
981  << "Canvas size for X direction, in percentage or voxels."
982  << "Canvas size for Y direction, in percentage or voxels."
983  << "Canvas size for Z direction, in percentage or voxels.";
984  }
986  {
987  return QStringList() << "Yes"
988  << "Yes"
989  << "0"
990  << "0"
991  << "0";
992  }
994  {
995  ParmChoiceMap map;
996  map[0] = booleanChoice();
997  map[1] = booleanChoice();
998  return map;
999  }
1000  QIcon icon() const {
1001  return QIcon(":/images/Resize.png");
1002  }
1003 };
1004 
1010 class mgxBase_EXPORT ScaleStack : public StackProcess {
1011 public:
1012  ScaleStack(const StackProcess& process)
1013  : Process(process)
1014  , StackProcess(process)
1015  {
1016  }
1017 
1018  bool operator()(const QStringList& parms)
1019  {
1020  if(!checkState().stack(STORE_NON_EMPTY))
1021  return false;
1022  Stack* s = currentStack();
1023  Point3f newsize(parms[1].toFloat(), parms[2].toFloat(), parms[3].toFloat());
1024  return (*this)(s, newsize, stringToBool(parms[0]));
1025  }
1026 
1027  bool operator()(Stack* stack, Point3f newsize, bool percent);
1028 
1029  QString folder() const {
1030  return "Canvas";
1031  }
1032  QString name() const {
1033  return "Scale Stack";
1034  }
1036  return "Scale the stack.";
1037  }
1039  {
1040  return QStringList() << "Percent"
1041  << "X"
1042  << "Y"
1043  << "Z";
1044  }
1046  {
1047  return QStringList() << "Percent"
1048  << "X"
1049  << "Y"
1050  << "Z";
1051  }
1053  {
1054  return QStringList() << "Yes"
1055  << "0.0"
1056  << "0.0"
1057  << "0.0";
1058  }
1060  {
1061  ParmChoiceMap map;
1062  map[0] = map[1] = booleanChoice();
1063  return map;
1064  }
1065  QIcon icon() const {
1066  return QIcon(":/images/Scale.png");
1067  }
1068 };
1069 
1076 class mgxBase_EXPORT ShiftStack : public StackProcess {
1077 public:
1078  ShiftStack(const StackProcess& process)
1079  : Process(process)
1080  , StackProcess(process)
1081  {
1082  }
1083 
1084  bool operator()(const QStringList& parms)
1085  {
1086  if(!checkState().store(STORE_NON_EMPTY))
1087  return false;
1088  Stack* s = currentStack();
1089  Point3i ds(parms[1].toInt(), parms[2].toInt(), parms[3].toInt());
1090  return (*this)(s, stringToBool(parms[0]), ds);
1091  }
1092 
1093  bool operator()(Stack* stack, bool origin, Point3i ds);
1094 
1095  QString folder() const {
1096  return "Canvas";
1097  }
1098  QString name() const {
1099  return "Shift Stack";
1100  }
1102  return "Shift both stores of the stack to within the canvas.";
1103  }
1105  {
1106  return QStringList() << "Origin"
1107  << "X"
1108  << "Y"
1109  << "Z";
1110  }
1112  {
1113  return QStringList() << "Origin"
1114  << "X"
1115  << "Y"
1116  << "Z";
1117  }
1119  {
1120  return QStringList() << "No"
1121  << "0"
1122  << "0"
1123  << "0";
1124  }
1126  {
1127  ParmChoiceMap map;
1128  map[0] = booleanChoice();
1129  return map;
1130  }
1131  QIcon icon() const {
1132  return QIcon(":/images/Shift.png");
1133  }
1134 };
1135 
1142 class mgxBase_EXPORT StackRelabel : public StackProcess {
1143 public:
1144  StackRelabel(const StackProcess& process)
1145  : Process(process)
1146  , StackProcess(process)
1147  {
1148  }
1149 
1150  bool operator()(const QStringList& parms)
1151  {
1152  if(!checkState().store(STORE_NON_EMPTY | STORE_LABEL))
1153  return false;
1154  Stack* s = currentStack();
1155  Store* store = s->currentStore();
1156  Store* output = s->work();
1157  int start = parms[0].toInt();
1158  int step = parms[1].toInt();
1159  if((*this)(s, store, output, start, step)) {
1160  store->hide();
1161  output->show();
1162  return true;
1163  }
1164  return false;
1165  }
1166 
1167  bool operator()(Stack* stack, const Store* store, Store* output, int start, int step);
1168 
1169  QString folder() const {
1170  return "Segmentation";
1171  }
1172  QString name() const {
1173  return "Relabel";
1174  }
1176  {
1177  return "Relabel a 3D stack to use consecutive labels.\n"
1178  "The cells are shuffled so each relabling will be different.";
1179  }
1181  {
1182  return QStringList() << "StartLabel"
1183  << "Step";
1184  }
1186  {
1187  return QStringList() << "StartLabel"
1188  << "Step";
1189  }
1191  {
1192  return QStringList() << "1"
1193  << "1";
1194  }
1195  QIcon icon() const {
1196  return QIcon(":/images/Relabel.png");
1197  }
1198 };
1199 
1208 class mgxBase_EXPORT StackRelabelFromMesh : public StackProcess {
1209 public:
1210  StackRelabelFromMesh(const StackProcess& process)
1211  : Process(process)
1212  , StackProcess(process)
1213  {
1214  }
1215 
1216  bool operator()(const QStringList& parms)
1217  {
1218  if(!checkState().store(STORE_NON_EMPTY | STORE_LABEL).mesh(MESH_NON_EMPTY | MESH_LABEL))
1219  return false;
1220  Stack* s = currentStack();
1221  Store* store = s->currentStore();
1222  Store* output = s->work();
1223  const Mesh* m = currentMesh();
1224  if((*this)(s, store, output, m, stringToBool(parms[0]))) {
1225  store->hide();
1226  output->show();
1227  return true;
1228  }
1229  return false;
1230  }
1231 
1232  bool operator()(Stack* stack, const Store* store, Store* output, const Mesh* mesh,
1233  bool delete_unknown);
1234 
1235  QString folder() const {
1236  return "Mesh Interaction";
1237  }
1238  QString name() const {
1239  return "Relabel From Mesh";
1240  }
1242  {
1243  return "Relabel a 3D stack reusing the same labels as in the stack.\n"
1244  "Unknown cells (i.e. cells in the stack, not in the mesh), \n"
1245  "can be either kept or deleted. If kept, they will be relabeled\n"
1246  "to not conflict with existing cells.";
1247  }
1249  return QStringList() << "Delete unknown";
1250  }
1252  return QStringList() << "Delete unknown";
1253  }
1255  return QStringList() << "Yes";
1256  }
1258  {
1259  ParmChoiceMap map;
1260  map[0] = booleanChoice();
1261  return map;
1262  }
1263  QIcon icon() const {
1264  return QIcon(":/images/Relabel.png");
1265  }
1266 };
1267 
1273 class mgxBase_EXPORT SaveTransform : public QObject, public StackProcess {
1274  Q_OBJECT
1275 
1276 public:
1277  SaveTransform(const StackProcess& process)
1278  : Process(process)
1279  , QObject()
1280  , StackProcess(process)
1281  {
1282  }
1283 
1284  bool initialize(QStringList& parms, QWidget* parent);
1285 
1286  bool operator()(const QStringList& parms) {
1287  return (*this)(currentStack(), parms[0]);
1288  }
1289 
1290  bool operator()(Stack* stack, const QString& filename);
1291 
1292  QString folder() const {
1293  return "Transform";
1294  }
1295  QString name() const {
1296  return "Save Transform";
1297  }
1299  return "Save the frame matrix (or transform if trans checked) to a file";
1300  }
1302  return QStringList() << "Filename";
1303  }
1305  return QStringList() << "Filename";
1306  }
1308  return QStringList() << "";
1309  }
1310  QIcon icon() const {
1311  return QIcon(":/images/save.png");
1312  }
1313 };
1314 
1320 class mgxBase_EXPORT LoadTransform : public QObject, public StackProcess {
1321  Q_OBJECT
1322 
1323 public:
1324  LoadTransform(const StackProcess& process)
1325  : Process(process)
1326  , QObject()
1327  , StackProcess(process)
1328  {
1329  }
1330 
1331  bool initialize(QStringList& parms, QWidget* parent);
1332 
1333  bool operator()(const QStringList& parms) {
1334  return (*this)(currentStack(), parms[0]);
1335  }
1336 
1337  bool operator()(Stack* stack, const QString& filename);
1338 
1339  QString folder() const {
1340  return "Transform";
1341  }
1342  QString name() const {
1343  return "Load Transform";
1344  }
1346  return "Save the frame matrix (or transform if trans checked) from a file";
1347  }
1349  return QStringList() << "Filename";
1350  }
1352  return QStringList() << "Filename";
1353  }
1355  return QStringList() << "";
1356  }
1357  QIcon icon() const {
1358  return QIcon(":/images/open.png");
1359  }
1360 };
1361 
1363 } // namespace process
1364 } // namespace mgx
1365 
1366 #endif
QStringList parmNames() const
List of named parameters.
Definition: StackProcess.hpp:466
fromWCharArray(const wchar_t *string, int size=-1)
QString description() const
Returns a description of the process for the GUI.
Definition: StackProcess.hpp:511
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: StackProcess.hpp:802
ParmChoiceMap parmChoice() const
Purely for GUI purposes, provides for some of the parms parameter a choice.
Definition: StackProcess.hpp:576
ParmChoiceMap parmChoice() const
Purely for GUI purposes, provides for some of the parms parameter a choice.
Definition: StackProcess.hpp:1059
QString description() const
Returns a description of the process for the GUI.
Definition: StackProcess.hpp:1175
QString folder() const
Folder in which to place the process.
Definition: StackProcess.hpp:196
QString description() const
Returns a description of the process for the GUI.
Definition: StackProcess.hpp:743
QString description() const
Returns a description of the process for the GUI.
Definition: StackProcess.hpp:558
QStringList parmDefaults() const
List of default parms.
Definition: StackProcess.hpp:79
QString name() const
Returns the name of the process.
Definition: StackProcess.hpp:1098
void show()
Ask the user interface to show this store.
Definition: Store.hpp:167
QString description() const
Returns a description of the process for the GUI.
Definition: StackProcess.hpp:1035
QString name() const
Returns the name of the process.
Definition: StackProcess.hpp:555
bool operator()(const QStringList &parms)
Implementation of the process with generic arguments.
Definition: StackProcess.hpp:348
QStringList parmDescs() const
List of parameters descriptions.
Definition: StackProcess.hpp:206
QString folder() const
Folder in which to place the process.
Definition: StackProcess.hpp:904
bool operator()(const QStringList &)
Implementation of the process with generic arguments.
Definition: StackProcess.hpp:719
Change the size of the stack's voxel, without changing the data itself.
Definition: StackProcess.hpp:885
QString name() const
Returns the name of the process.
Definition: StackProcess.hpp:737
bool operator()(const QStringList &parms)
Implementation of the process with generic arguments.
Definition: StackProcess.hpp:820
Apply the active clipping planes to the current stack.
Definition: StackProcess.hpp:385
QStringList parmNames() const
List of named parameters.
Definition: StackProcess.hpp:418
QString folder() const
Folder in which to place the process.
Definition: StackProcess.hpp:787
QString name() const
Returns the name of the process.
Definition: StackProcess.hpp:315
QString description() const
Returns a description of the process for the GUI.
Definition: StackProcess.hpp:463
QString description() const
Returns a description of the process for the GUI.
Definition: StackProcess.hpp:1241
QStringList parmNames() const
List of named parameters.
Definition: StackProcess.hpp:321
QString name() const
Returns the name of the process.
Definition: StackProcess.hpp:1238
QStringList parmDescs() const
List of parameters descriptions.
Definition: StackProcess.hpp:799
QStringList parmNames() const
List of named parameters.
Definition: StackProcess.hpp:199
QString folder() const
Folder in which to place the process.
Definition: StackProcess.hpp:1095
bool operator()(const QStringList &parms)
Implementation of the process with generic arguments.
Definition: StackProcess.hpp:893
QStringList parmNames() const
List of named parameters.
Definition: StackProcess.hpp:66
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: StackProcess.hpp:586
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: StackProcess.hpp:92
bool operator()(const QStringList &parms)
Implementation of the process with generic arguments.
Definition: StackProcess.hpp:538
QString name() const
Returns the name of the process.
Definition: StackProcess.hpp:57
QStringList parmDescs() const
List of parameters descriptions.
Definition: StackProcess.hpp:1045
QString folder() const
Folder in which to place the process.
Definition: StackProcess.hpp:686
Shift main and work stores within the canvas (e.g.
Definition: StackProcess.hpp:1076
arg(const QString &a, int fieldWidth=0, const QChar &fillChar=QLatin1Char( ' ')
Transform the stack to reflect the transfer function in use.
Definition: StackProcess.hpp:154
QString folder() const
Folder in which to place the process.
Definition: StackProcess.hpp:1235
QStringList parmDefaults() const
List of default parms.
Definition: StackProcess.hpp:1190
QStringList parmDescs() const
List of parameters descriptions.
Definition: StackProcess.hpp:977
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: StackProcess.hpp:1310
QString name() const
Returns the name of the process.
Definition: StackProcess.hpp:1295
QStringList parmDefaults() const
List of default parms.
Definition: StackProcess.hpp:1052
const Store * currentStore() const
Returns the current store.
Definition: Stack.hpp:112
QStringList parmNames() const
List of named parameters.
Definition: StackProcess.hpp:1248
QStringList parmNames() const
List of named parameters.
Definition: StackProcess.hpp:796
Change the labels of a stack to match the ones of a labeled 3D cell mesh.
Definition: StackProcess.hpp:1208
QString folder() const
Folder in which to place the process.
Definition: StackProcess.hpp:1029
QStringList parmNames() const
List of named parameters.
Definition: StackProcess.hpp:653
Find and label blobs in an image.
Definition: StackProcess.hpp:230
Copy or swap stacks between stack 1 and 2.
Definition: StackProcess.hpp:530
bool operator()(const QStringList &parms)
Implementation of the process with generic arguments.
Definition: StackProcess.hpp:162
QStringList parmNames() const
List of named parameters.
Definition: StackProcess.hpp:1348
bool operator()(const QStringList &)
Implementation of the process with generic arguments.
Definition: StackProcess.hpp:490
Erase the content of the main stack.
Definition: StackProcess.hpp:340
QStringList parmDefaults() const
List of default parms.
Definition: StackProcess.hpp:1307
QStringList parmNames() const
List of named parameters.
Definition: StackProcess.hpp:1301
bool operator()(const QStringList &parms)
Implementation of the process with generic arguments.
Definition: StackProcess.hpp:640
ParmChoiceMap parmChoice() const
Purely for GUI purposes, provides for some of the parms parameter a choice.
Definition: StackProcess.hpp:86
Load the frame (or transform) matrix from a file containing a list of values in column-major.
Definition: StackProcess.hpp:1320
QString name() const
Returns the name of the process.
Definition: StackProcess.hpp:190
Copy the content of the main stack into the work stack.
Definition: StackProcess.hpp:434
QStringList parmDefaults() const
List of default parms.
Definition: StackProcess.hpp:1118
QString name() const
Returns the name of the process.
Definition: StackProcess.hpp:1172
QString description() const
Returns a description of the process for the GUI.
Definition: StackProcess.hpp:132
QStringList parmNames() const
List of named parameters.
Definition: StackProcess.hpp:695
QString folder() const
Folder in which to place the process.
Definition: StackProcess.hpp:740
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: StackProcess.hpp:330
bool operator()(const QStringList &parms)
Implementation of the process with generic arguments.
Definition: StackProcess.hpp:303
Delete all but a layour of the stack just "below" the mesh.
Definition: StackProcess.hpp:21
QString name() const
Returns the name of the process.
Definition: StackProcess.hpp:460
QStringList parmDescs() const
List of parameters descriptions.
Definition: StackProcess.hpp:656
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: StackProcess.hpp:1065
QStringList parmDescs() const
List of parameters descriptions.
Definition: StackProcess.hpp:1351
Scale the stack.
Definition: StackProcess.hpp:1010
ParmChoiceMap parmChoice() const
Purely for GUI purposes, provides for some of the parms parameter a choice.
Definition: StackProcess.hpp:869
ParmChoiceMap parmChoice() const
Purely for GUI purposes, provides for some of the parms parameter a choice.
Definition: StackProcess.hpp:1125
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: StackProcess.hpp:662
bool operator()(const QStringList &parms)
Implementation of the process with generic arguments.
Definition: StackProcess.hpp:1018
QStringList parmDefaults() const
List of default parms.
Definition: StackProcess.hpp:863
Fill the stack with labels from a labeled 3D mesh.
Definition: StackProcess.hpp:711
QString description() const
Returns a description of the process for the GUI.
Definition: StackProcess.hpp:1298
Set to 0 any voxel not contained within the closed mesh.
Definition: StackProcess.hpp:672
QString name() const
Returns the name of the process.
Definition: StackProcess.hpp:412
QString description() const
Returns a description of the process for the GUI.
Definition: StackProcess.hpp:261
QStringList parmDescs() const
List of parameters descriptions.
Definition: StackProcess.hpp:141
QString folder() const
Folder in which to place the process.
Definition: StackProcess.hpp:135
bool operator()(const QStringList &parms)
Implementation of the process with generic arguments.
Definition: StackProcess.hpp:1150
The Store class holds the actual 3D data and properties specific to it.
Definition: Store.hpp:25
bool operator()(const QStringList &parms)
Implementation of the process with generic arguments.
Definition: StackProcess.hpp:682
QStringList parmDefaults() const
List of default parms.
Definition: StackProcess.hpp:571
This class holds the actual mesh as a VV Graph and all sort of properties for it, including visualiza...
Definition: Mesh.hpp:167
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: StackProcess.hpp:144
QString folder() const
Folder in which to place the process.
Definition: StackProcess.hpp:958
Reverse the direction of the selected axes.
Definition: StackProcess.hpp:812
QString description() const
Returns a description of the process for the GUI.
Definition: StackProcess.hpp:793
QStringList parmNames() const
List of named parameters.
Definition: StackProcess.hpp:913
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: StackProcess.hpp:285
QStringList parmDescs() const
List of parameters descriptions.
Definition: StackProcess.hpp:469
QStringList parmNames() const
List of named parameters.
Definition: StackProcess.hpp:561
Copy the content of the work stack into the main stack.
Definition: StackProcess.hpp:482
Relabel a 3D stack to use consecutive labels.
Definition: StackProcess.hpp:1142
QStringList parmDefaults() const
List of default parms.
Definition: StackProcess.hpp:1354
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: StackProcess.hpp:1000
QStringList parmDefaults() const
List of default parms.
Definition: StackProcess.hpp:985
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: StackProcess.hpp:1195
QStringList parmDescs() const
List of parameters descriptions.
Definition: StackProcess.hpp:698
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: StackProcess.hpp:375
QStringList parmDescs() const
List of parameters descriptions.
Definition: StackProcess.hpp:1111
QString folder() const
Folder in which to place the process.
Definition: StackProcess.hpp:647
QString name() const
Returns the name of the process.
Definition: StackProcess.hpp:1032
ParmChoiceMap parmChoice() const
Purely for GUI purposes, provides for some of the parms parameter a choice.
Definition: StackProcess.hpp:274
QStringList parmNames() const
List of named parameters.
Definition: StackProcess.hpp:851
QStringList parmDescs() const
List of parameters descriptions.
Definition: StackProcess.hpp:1251
QString folder() const
Folder in which to place the process.
Definition: StackProcess.hpp:63
QString description() const
Returns a description of the process for the GUI.
Definition: StackProcess.hpp:60
QStringList parmDescs() const
List of parameters descriptions.
Definition: StackProcess.hpp:1185
QStringList parmNames() const
List of named parameters.
Definition: StackProcess.hpp:514
QString description() const
Returns a description of the process for the GUI.
Definition: StackProcess.hpp:1101
QString name() const
Returns the name of the process.
Definition: StackProcess.hpp:907
QString description() const
Returns a description of the process for the GUI.
Definition: StackProcess.hpp:363
QStringList parmDefaults() const
List of default parms.
Definition: StackProcess.hpp:659
QString description() const
Returns a description of the process for the GUI.
Definition: StackProcess.hpp:846
bool operator()(const QStringList &)
Implementation of the process with generic arguments.
Definition: StackProcess.hpp:442
QStringList parmDescs() const
List of parameters descriptions.
Definition: StackProcess.hpp:857
QStringList parmDescs() const
List of parameters descriptions.
Definition: StackProcess.hpp:749
bool operator()(const QStringList &parms)
Implementation of the process with generic arguments.
Definition: StackProcess.hpp:29
bool operator()(const QStringList &)
Implementation of the process with generic arguments.
Definition: StackProcess.hpp:110
QString description() const
Returns a description of the process for the GUI.
Definition: StackProcess.hpp:415
QStringList parmNames() const
List of named parameters.
Definition: StackProcess.hpp:264
QStringList parmNames() const
List of named parameters.
Definition: StackProcess.hpp:969
QString folder() const
Folder in which to place the process.
Definition: StackProcess.hpp:552
Fill the volume contained by a closed mesh with a pre-defined intensity.
Definition: StackProcess.hpp:630
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: StackProcess.hpp:1357
bool operator()(const QStringList &parms)
Implementation of the process with generic arguments.
Definition: StackProcess.hpp:1286
QString description() const
Returns a description of the process for the GUI.
Definition: StackProcess.hpp:650
QString name() const
Returns the name of the process.
Definition: StackProcess.hpp:644
QString folder() const
Folder in which to place the process.
Definition: StackProcess.hpp:840
QStringList parmDefaults() const
List of default parms.
Definition: StackProcess.hpp:327
File containing the definition of a Process.
QString name() const
Returns the name of the process.
Definition: StackProcess.hpp:790
QStringList parmDescs() const
List of parameters descriptions.
Definition: StackProcess.hpp:1304
QStringList parmNames() const
List of named parameters.
Definition: StackProcess.hpp:746
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: StackProcess.hpp:1263
The Stack class represent the dimensions of the 3D data, and the frames transformations.
Definition: Stack.hpp:25
QStringList parmDescs() const
List of parameters descriptions.
Definition: StackProcess.hpp:421
QStringList parmNames() const
List of named parameters.
Definition: StackProcess.hpp:1104
QString name() const
Returns the name of the process.
Definition: StackProcess.hpp:843
QString name() const
Returns the name of the process.
Definition: StackProcess.hpp:961
This is the main process class, the one all process inherit from.
Definition: Process.hpp:248
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: StackProcess.hpp:220
QString name() const
Returns the name of the process.
Definition: StackProcess.hpp:689
bool operator()(const QStringList &parms)
Implementation of the process with generic arguments.
Definition: StackProcess.hpp:238
Base class for a process that either fill or erase the inside part of a mesh in a stack...
Definition: StackProcess.hpp:596
QStringList parmDescs() const
List of parameters descriptions.
Definition: StackProcess.hpp:918
QStringList parmDefaults() const
List of default parms.
Definition: StackProcess.hpp:213
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: StackProcess.hpp:755
void hide()
Ask the user interface to hide this store.
Definition: Store.hpp:173
QString description() const
Returns a description of the process for the GUI.
Definition: StackProcess.hpp:910
QString name() const
Returns the name of the process.
Definition: StackProcess.hpp:129
bool operator()(const QStringList &)
Implementation of the process with generic arguments.
Definition: StackProcess.hpp:393
QStringList parmDefaults() const
List of default parms.
Definition: StackProcess.hpp:280
mgx_EXPORT bool stringToBool(const QString &string)
Helper function converting a string into a boolean.
ParmChoiceMap parmChoice() const
Purely for GUI purposes, provides for some of the parms parameter a choice.
Definition: StackProcess.hpp:993
QString description() const
Returns a description of the process for the GUI.
Definition: StackProcess.hpp:692
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: StackProcess.hpp:1131
QString description() const
Returns a description of the process for the GUI.
Definition: StackProcess.hpp:318
QString folder() const
Folder in which to place the process.
Definition: StackProcess.hpp:312
const Store * work() const
Access the work store.
Definition: Stack.hpp:93
Resize the stack to add or remove voxels.
Definition: StackProcess.hpp:939
QStringList parmDefaults() const
List of default parms.
Definition: StackProcess.hpp:923
bool operator()(const QStringList &parms)
Implementation of the process with generic arguments.
Definition: StackProcess.hpp:947
Save the frame (or transform) matrix to a file, as a list of values in column-major.
Definition: StackProcess.hpp:1273
QStringList parmNames() const
List of named parameters.
Definition: StackProcess.hpp:1180
QString name() const
Returns the name of the process.
Definition: StackProcess.hpp:508
QStringList parmDescs() const
List of parameters descriptions.
Definition: StackProcess.hpp:566
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: StackProcess.hpp:520
bool operator()(const QStringList &parms)
Implementation of the process with generic arguments.
Definition: StackProcess.hpp:1216
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: StackProcess.hpp:472
ParmChoiceMap parmChoice() const
Purely for GUI purposes, provides for some of the parms parameter a choice.
Definition: StackProcess.hpp:1257
QString folder() const
Folder in which to place the process.
Definition: StackProcess.hpp:457
QStringList parmNames() const
List of named parameters.
Definition: StackProcess.hpp:366
const Store * main() const
Access the main store.
Definition: Stack.hpp:74
QString folder() const
Folder in which to place the process.
Definition: StackProcess.hpp:505
QStringList parmDescs() const
List of parameters descriptions.
Definition: StackProcess.hpp:269
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: StackProcess.hpp:424
QStringList parmDescs() const
List of parameters descriptions.
Definition: StackProcess.hpp:369
Erase the content of the work stack.
Definition: StackProcess.hpp:295
QString name() const
Returns the name of the process.
Definition: StackProcess.hpp:1342
QStringList parmDefaults() const
List of default parms.
Definition: StackProcess.hpp:1254
Stack processes have non-mutable access to meshes and mutable access to stacks.
Definition: Process.hpp:819
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: StackProcess.hpp:929
QStringList parmDescs() const
List of parameters descriptions.
Definition: StackProcess.hpp:517
bool operator()(const QStringList &)
Implementation of the process with generic arguments.
Definition: StackProcess.hpp:773
QString name() const
Returns the name of the process.
Definition: StackProcess.hpp:360
bool operator()(const QStringList &parms)
Implementation of the process with generic arguments.
Definition: StackProcess.hpp:1333
QString name() const
Returns the name of the process.
Definition: StackProcess.hpp:258
QStringList parmDescs() const
List of parameters descriptions.
Definition: StackProcess.hpp:72
QString folder() const
Folder in which to place the process.
Definition: StackProcess.hpp:1339
QString description() const
Returns a description of the process for the GUI.
Definition: StackProcess.hpp:193
QStringList parmDescs() const
List of parameters descriptions.
Definition: StackProcess.hpp:324
QStringList parmNames() const
List of named parameters.
Definition: StackProcess.hpp:1038
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: StackProcess.hpp:701
Swap the main and work stores of a stack.
Definition: StackProcess.hpp:765
QString folder() const
Folder in which to place the process.
Definition: StackProcess.hpp:255
bool operator()(const QStringList &parms)
Implementation of the process with generic arguments.
Definition: StackProcess.hpp:1084
QString folder() const
Folder in which to place the process.
Definition: StackProcess.hpp:357
QString folder() const
Folder in which to place the process.
Definition: StackProcess.hpp:409
QIcon icon() const
Icon to use to represent the process in the GUI.
Definition: StackProcess.hpp:875
Scale the stack intensity to fill exactly the whole range.
Definition: StackProcess.hpp:102
QString folder() const
Folder in which to place the process.
Definition: StackProcess.hpp:1292
QString folder() const
Folder in which to place the process.
Definition: StackProcess.hpp:1169
QStringList parmDefaults() const
List of default parms.
Definition: StackProcess.hpp:372
QString description() const
Returns a description of the process for the GUI.
Definition: StackProcess.hpp:1345
QStringList parmNames() const
List of named parameters.
Definition: StackProcess.hpp:138
QString description() const
Returns a description of the process for the GUI.
Definition: StackProcess.hpp:964