30 #include <RobotAPI/interface/units/KinematicUnitInterface.h>
34 #include <VisionX/gui-plugins/LookAtClick/ui_LookAtClickWidget.h>
79 void loadSettings(QSettings* settings)
override;
84 void saveSettings(QSettings* settings)
override;
93 return "RobotControl.LookAtClick";
99 void onInitImageProcessor()
override;
104 void onConnectImageProcessor()
override;
107 QPointer<QDialog> getConfigDialog(QWidget* parent)
override;
108 void configured()
override;
111 void timerEvent(QTimerEvent*);
115 void clickedAt(
const QPoint& point);
121 void autoDetectRobotSpecificVariables();
122 void refreshWidgetData(
float* factorPitch,
float* factorYaw);
123 void determineNewAngles(
const QPoint& offset,
125 NameControlModeMap& jointModes,
132 Ui::LookAtClickWidget widget;
138 std::string _pitchJointName;
139 std::string _yawJointName;
141 QPointer<SimpleConfigDialog> _dialog;
143 KinematicUnitInterfacePrx kinematicUnitInterfacePrx;
144 std::string _robotStateUnitComponentName;
145 std::string _kinematicUnitInterfaceName;
146 visionx::ImageProviderInterfacePrx _imageProvider;
147 std::string _imageProviderName;
149 std::atomic_int _imageIndex{0};
150 std::atomic_int _numberOfImages{1};
152 std::vector<visionx::CByteImageUPtr> _providerImagesOwner;
153 std::vector<void*> _providerImages;
155 QImage _currentImage;
156 std::mutex _currentImageMutex;
157 std::atomic_bool _currentImageDirty{
false};