// Balises C++, évitant les doublons d'includes #ifndef TUFR_STEPTUTORIAL02_H #define TUFR_STEPTUTORIAL02_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_StepTutorial02 * \ingroup Steps_TUFR * * \brief Cette classe génère une scène de points de positions aléatoires * * Ici, l'étape ne prend pas de données en entrée, mais on peut quand même * hériter de CT_AbstractStep, car les modèles prévoient ce type de fonctionnement * * \param _n Nombre de points aléatoires à générer * \param _xmin X maximum de la scène à générer * \param _xmax X minimum de la scène à générer * \param _ymin Y maximum de la scène à générer * \param _ymax Y minimum de la scène à générer * \param _zmin Z minimum de la scène à générer * \param _zmax Z maximum de la scène à générer * * Modèle IN : Aucun * * Modèle OUT : \n * - CT_ResultGroup \n * - CT_StandardItemGroup \n * - CT_Scene \n * */ // Une étape doit hériter de CT_AbstractStep (ou d'une classe en héritant) class TUFR_StepTutorial02 : 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_StepTutorial02(); ~TUFR_StepTutorial02(); // 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 _n; /*!< Nombre de points aléatoires à générer */ double _xmin; /*!< X maximum de la scène à générer */ double _xmax; /*!< X minimum de la scène à générer */ double _ymin; /*!< Y maximum de la scène à générer */ double _ymax; /*!< Y minimum de la scène à générer */ double _zmin; /*!< Z minimum de la scène à générer */ double _zmax; /*!< Z maximum de la scène à générer */ // Dans cet exemple, on peut récupérer n'importe quel résultat, // puis on génère des points aléatoire CT_HandleOutResultGroup _outResult; CT_HandleOutStdGroup _outGroup; CT_HandleOutSingularItem _outScene; }; #endif // TUFR_STEPTUTORIAL02_H