EX> // Balises C++, évitant les doublons d'includes EX> #ifndef {{CODE_UPPER}}_STEP{{NAME_UPPER}}_H EX> #define {{CODE_UPPER}}_STEP{{NAME_UPPER}}_H EX> EX> // Inclusion de la classe parente des étapes EX> #include "ct_step/abstract/ct_abstractstep.h" EX> EX> // Inclure ensuite les éventuelles classes de définitions nécessaires à votre étape EX> #include "ct_itemdrawable/ct_scene.h" EX> #include "ct_itemdrawable/ct_pointcluster.h" EX> EX> /*! EX> * \class {{CODE_UPPER}}_Step{{NAME}} EX> * \ingroup Steps_{{CODE_UPPER}} EX> * EX> * \brief Cette classe découpe une scène de points en groupes paralellepipediques EX> * EX> * \param _nx Nombre de clusters selon x EX> * \param _ny Nombre de clusters selon y EX> * \param _nz Nombre de clusters selon z EX> * EX> * Modèle IN : \n EX> * - CT_ResultGroup \n EX> * - CT_StandardItemGroup \n EX> * - CT_Scene \n EX> * EX> * Modèle OUT : \n EX> * - CT_ResultGroup \n EX> * - CT_StandardItemGroup \n EX> * - CT_PointCluster \n EX> * EX> */ EX> EX> // Une étape doit hériter de CT_AbstractStep (ou d'une classe en héritant) EX> class {{CODE_UPPER}}_Step{{NAME}} : public CT_AbstractStep EX> { EX> // Macro Qt, donnant accès à certaines fonctionnalités EX> // En l'occurence, permet de récupérer le nom de l'étape EX> Q_OBJECT EX> EX> // Simple alias pour réutiliser le type de la classe mère avec 'SuperClass' EX> using SuperClass = CT_AbstractStep; EX> EX> public: EX> // Constructeur/destructeur de l'étape EX> {{CODE_UPPER}}_Step{{NAME}}(); EX> ~{{CODE_UPPER}}_Step{{NAME}}(); EX> EX> // Description de l'étape (tooltip dans le menu contectuel) EX> QString description() const; EX> EX> // Description détaillée de l'étape (dans le menu de description) EX> QString detailledDescription() const; EX> EX> // Méthode de copie de l'étape, utilisée lors de l'ajout d'une étapes à partir du menu contextuel EX> CT_VirtualAbstractStep* createNewInstance() const final; EX> EX> protected: EX> // Spécifications des résultats d'entrée souhaités (IN) EX> void declareInputModels(CT_StepInModelStructureManager& manager) final; EX> EX> // Boite de saisie des paramètres de l'étape EX> void fillPostInputConfigurationDialog(CT_StepConfigurableDialog* postInputConfigDialog) final; EX> EX> // Spécification des résultats de sortie créés par l'étape (OUT) EX> void declareOutputModels(CT_StepOutModelStructureManager& manager) final; EX> EX> // Etape de calcul, créant les données des résultats de sortie EX> void compute() final; EX> EX> // Pour d'autres fonctions standard de 'CT_AbstractStep', consultez directement la classe EX> EX> private: EX> // Dans la zone privée : les paramètres de l'étapes (initialisés dans le constructeur) EX> int _nx; /*!< Nombre de clusters selon x */ EX> int _ny; /*!< Nombre de clusters selon y */ EX> int _nz; /*!< Nombre de clusters selon z */ EX> EX> // Dans cet exemple, on récupére les résultats d'entrée (en copie), EX> // puis on y ajoute de nouveaux éléments en sortie EX> CT_HandleInResultGroupCopy<> _inResult; EX> CT_HandleInStdZeroOrMoreGroup _inZeroOrMoreRootGroup; EX> CT_HandleInStdGroup<> _inGroup; EX> CT_HandleInSingularItem _inScene; EX> EX> CT_HandleOutStdGroup _outGroup; EX> CT_HandleOutSingularItem _outScene; EX> }; EX> EX> #endif // {{CODE_UPPER}}_STEP{{NAME_UPPER}}_H