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