Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
AbstractListenerOptionCad.hpp
Go to the documentation of this file.
1#ifndef LIBS_CAD_ABSTRACTLISTENEROPTIONCAD_HPP_
2#define LIBS_CAD_ABSTRACTLISTENEROPTIONCAD_HPP_
3
5#include "math/structs.hpp"
6
7#include <memory>
8#include <optional>
9
11class CEventMotion;
12class CGraphicsDXF;
13class IGraphics;
14
16{
17public:
24
25 std::shared_ptr<std::vector<std::shared_ptr<IGraphics>>> beginObjsCatchable() const;
26 void deleteObjCaptured();
27 void drawObjCatchables(uint64_t indView, const std::shared_ptr<std::vector<std::shared_ptr<IGraphics>>> &graphics,
28 iv::eLanguage drawingLanguage);
29 void drawObjCaptured(uint64_t indView, CGraphicsDXF *graphics, iv::eLanguage eLanguage);
30 void endObjCatchables(const std::shared_ptr<std::vector<std::shared_ptr<IGraphics>>> &graphics);
31 void endObjCaptured(CGraphicsDXF *graphics);
32 bool runBegin(CEventMotion *evt);
33 void runClick(CEventMotion *evt);
35 void runKeyPressed(CEventMotion *evt);
36 void runMouseMoved(CEventMotion *evt);
37 bool runEnd(CEventMotion *evt);
39 void runDraw(CEventMotion *evt);
40
41 void setFlagModify(bool *isFlagModify);
42
43protected:
48 virtual std::shared_ptr<std::vector<std::shared_ptr<AbstractObjCapture>>> getInteractableObjects() = 0;
49
55 virtual bool onBeginOption(CEventMotion *evt) = 0;
56
63 virtual void onClickWithCapture(CEventMotion *evt, uint64_t indObjCaptured,
64 const std::shared_ptr<AbstractObjCapture> &objCatchable) = 0;
65
70 virtual void onClickWithoutCapture(CEventMotion *evt) = 0;
71
76 virtual void onClickRelease(CEventMotion *evt) {};
77
82 virtual void onKeyPressed(CEventMotion *evt) {};
83
88 virtual void onMouseMoved(CEventMotion *evt) {};
89
96 virtual bool onDrawOption(CEventMotion *evt, IGraphics *graphics);
97
103 virtual bool onEndOption(CEventMotion *evt) = 0;
104
105 virtual bool setHasObjCapturedInfo();
106 void updateObjsCaptured();
107 std::shared_ptr<std::vector<std::shared_ptr<AbstractObjCapture>>> getArrayObjsCaptured();
108
109private:
111 {
112 STOPPED,
113 MOVING
114 };
115
117
119
120 std::optional<iv::math::geometry::Point2d> m_previousMotionCoordinate;
122 std::optional<uint64_t> m_indObjCapturedOpt;
123
124 std::shared_ptr<std::vector<std::shared_ptr<AbstractObjCapture>>> m_objsCatchableOpt;
125};
126
127#endif /* LIBS_CAD_ABSTRACTLISTENEROPTIONCAD_HPP_ */
Definition AbstractListenerOptionCad.hpp:16
void drawObjCaptured(uint64_t indView, CGraphicsDXF *graphics, iv::eLanguage eLanguage)
Definition AbstractListenerOptionCad.cpp:71
virtual void onKeyPressed(CEventMotion *evt)
Handles a key press event.
Definition AbstractListenerOptionCad.hpp:82
EPrvStateOption m_state
Definition AbstractListenerOptionCad.hpp:116
void updateObjsCaptured()
Definition AbstractListenerOptionCad.cpp:561
AbstractListenerOptionCad(AbstractListenerOptionCad &&other)=delete
bool m_hasObjInfo
Definition AbstractListenerOptionCad.hpp:121
virtual ~AbstractListenerOptionCad()
virtual void onClickWithCapture(CEventMotion *evt, uint64_t indObjCaptured, const std::shared_ptr< AbstractObjCapture > &objCatchable)=0
Handles a click event on a captured object.
virtual bool onEndOption(CEventMotion *evt)=0
Handles the stop of an interaction option.
void runKeyPressed(CEventMotion *evt)
Definition AbstractListenerOptionCad.cpp:258
void endObjCaptured(CGraphicsDXF *graphics)
Definition AbstractListenerOptionCad.cpp:106
void deleteObjCaptured()
Definition AbstractListenerOptionCad.cpp:42
virtual void onClickWithoutCapture(CEventMotion *evt)=0
Handles a click event when no object is captured.
void endObjCatchables(const std::shared_ptr< std::vector< std::shared_ptr< IGraphics > > > &graphics)
Definition AbstractListenerOptionCad.cpp:81
AbstractListenerOptionCad & operator=(const AbstractListenerOptionCad &other)=delete
EPrvStateOption
Definition AbstractListenerOptionCad.hpp:111
std::shared_ptr< std::vector< std::shared_ptr< IGraphics > > > beginObjsCatchable() const
Definition AbstractListenerOptionCad.cpp:26
void drawObjCatchables(uint64_t indView, const std::shared_ptr< std::vector< std::shared_ptr< IGraphics > > > &graphics, iv::eLanguage drawingLanguage)
Definition AbstractListenerOptionCad.cpp:49
void runEventMotion(CEventMotion *evt)
Definition AbstractListenerOptionCad.cpp:457
virtual void onClickRelease(CEventMotion *evt)
Handles the release of a click event.
Definition AbstractListenerOptionCad.hpp:76
void runClick(CEventMotion *evt)
Definition AbstractListenerOptionCad.cpp:157
virtual std::shared_ptr< std::vector< std::shared_ptr< AbstractObjCapture > > > getInteractableObjects()=0
Retrieves all interactable objects present in the canvas.
AbstractListenerOptionCad(const AbstractListenerOptionCad &other)=delete
virtual bool onBeginOption(CEventMotion *evt)=0
Handles the start launch of an interaction option.
AbstractListenerOptionCad()
Definition AbstractListenerOptionCad.cpp:15
std::shared_ptr< std::vector< std::shared_ptr< AbstractObjCapture > > > m_objsCatchableOpt
Definition AbstractListenerOptionCad.hpp:124
std::shared_ptr< std::vector< std::shared_ptr< AbstractObjCapture > > > getArrayObjsCaptured()
Definition AbstractListenerOptionCad.cpp:566
bool runEnd(CEventMotion *evt)
Definition AbstractListenerOptionCad.cpp:350
AbstractListenerOptionCad & operator=(AbstractListenerOptionCad &&other)=delete
virtual bool setHasObjCapturedInfo()
Definition AbstractListenerOptionCad.cpp:556
virtual void onMouseMoved(CEventMotion *evt)
Handles the mouse movement event.
Definition AbstractListenerOptionCad.hpp:88
virtual bool onDrawOption(CEventMotion *evt, IGraphics *graphics)
Handles the drawing operation and determines if the canvas needs a redraw.
Definition AbstractListenerOptionCad.cpp:551
bool * m_isFlagModifyOpt
Definition AbstractListenerOptionCad.hpp:118
void setFlagModify(bool *isFlagModify)
Definition AbstractListenerOptionCad.cpp:545
std::optional< iv::math::geometry::Point2d > m_previousMotionCoordinate
Definition AbstractListenerOptionCad.hpp:120
void runMouseMoved(CEventMotion *evt)
Definition AbstractListenerOptionCad.cpp:304
std::optional< uint64_t > m_indObjCapturedOpt
Definition AbstractListenerOptionCad.hpp:122
void runClickRelease(CEventMotion *evt)
Definition AbstractListenerOptionCad.cpp:212
void runDraw(CEventMotion *evt)
Definition AbstractListenerOptionCad.cpp:528
bool runBegin(CEventMotion *evt)
Definition AbstractListenerOptionCad.cpp:115
Definition AbstractObjCapture.hpp:12
Definition CEventMotion.hpp:15
Definition CGraphicsDXF.hpp:11
Definition IGraphics.hpp:20
eLanguage
Definition enums.hpp:37