--- /dev/null
+
+
+//-----------------------------------
+
+/*
+ - use DB from step to step or ExtractStation_7 mother class
+ - add "temporary flag" to DB to avoid write image
+
+
+ */
+
+//-----------------------------------
+#include "clitkAnatomicalFeatureDatabase.h"
+
+class SegmentationStepBase;
+
+class LymphStationSegmentationFilterBase:
+ public virtual clitk::FilterBase,
+ public clitk::FilterWithAnatomicalFeatureDatabaseManagement {
+public:
+ LymphStationSegmentationFilterBase() { DD("LymphStationSegmentationFilterBase const"); }
+
+ void AddStep(SegmentationStepBase * step) {
+ m_Steps.push_back(step);
+ }
+
+ std::vector<SegmentationStepBase*> m_Steps;
+ // AnatomicalFeatureDatabase * GetAFDB();
+
+ // HERE GetAFDB
+
+};
+
+
+//-----------------------------------
+
+
+class SegmentationStepBase
+{
+public:
+ typedef itk::Image<unsigned char, 3> ImageType;
+ typedef ImageType::PointType ImagePointType;
+
+ SegmentationStepBase(std::string name);
+ virtual void StartStep();
+ void InitStep(LymphStationSegmentationFilterBase * p){
+ DD("SegmentationStepBase::InitStep");
+ parent = p;
+ }
+ std::string name;
+ LymphStationSegmentationFilterBase * parent;
+};
+
+SegmentationStepBase::SegmentationStepBase(std::string n) {
+ DD("SegmentationStepBase constructor");
+ name = n;
+ DD(name);
+}
+
+void SegmentationStepBase::StartStep() {
+ DD("Start step (verbose debug skip)");
+ DD(name);
+ // VERBOSE, DEBUG
+ // IF SKIP
+}
+
+//-----------------------------------
+
+class ExtractStation7_APLimits:public SegmentationStepBase {
+public:
+ typedef SegmentationStepBase Super;
+ ExtractStation7_APLimits():SegmentationStepBase("Step AP Limits") {}
+ virtual void StartStep();
+ // Accès au types ==> Super::
+ // Accès au AFDB ==> parent->
+
+ // TODO
+ // , support, image // herit ; how to set ?
+ // ggo
+};
+
+
+void ExtractStation7_APLimits::StartStep() {
+ Super::StartStep(); // -> needed to verbose, debug, skip etc
+ DD("ExtractStation7_APLimits StartStep");
+ Super::ImagePointType carina;
+ parent->GetAFDB()->GetPoint3D("carina", carina);
+ DD(carina);
+
+ // Writeimage
+}
+
+//-----------------------------------
+
+
+// template <class TImageType>
+class ExtractLymphStation_7:public LymphStationSegmentationFilterBase {
+public:
+ ExtractLymphStation_7() {
+ DD("ExtractStation_7 constructor");
+ // insert step (could be autolist if needed);
+ AddStep(new ExtractStation7_APLimits);
+ }
+
+ // SET GGO dont (AFDB);
+
+ void StartSegmentation() {
+ DD("ExtractStation_7 Start");
+ // Loop on list of SegmentationStepBase
+ m_Steps[0]->InitStep(this); // parent (donc AFFB)
+ m_Steps[0]->StartStep();
+ // things todo after a step ? -> if writeimage, to be done inside
+
+ }
+};
+