ccUnrollDlg.h 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #pragma once
  2. //##########################################################################
  3. //# #
  4. //# CLOUDCOMPARE #
  5. //# #
  6. //# This program is free software; you can redistribute it and/or modify #
  7. //# it under the terms of the GNU General Public License as published by #
  8. //# the Free Software Foundation; version 2 or later of the License. #
  9. //# #
  10. //# This program is distributed in the hope that it will be useful, #
  11. //# but WITHOUT ANY WARRANTY; without even the implied warranty of #
  12. //# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
  13. //# GNU General Public License for more details. #
  14. //# #
  15. //# COPYRIGHT: EDF R&D / TELECOM ParisTech (ENST-TSI) #
  16. //# #
  17. //##########################################################################
  18. #include <QDialog>
  19. //qCC_db
  20. #include <ccPointCloud.h>
  21. namespace Ui
  22. {
  23. class UnrollDialog;
  24. }
  25. //! Dialog: unroll a cloud on a cylinder or a cone
  26. class ccUnrollDlg : public QDialog
  27. {
  28. Q_OBJECT
  29. public:
  30. //! Default constructor
  31. explicit ccUnrollDlg(ccHObject* dbRootEntity, QWidget* parent = nullptr);
  32. ~ccUnrollDlg() override;
  33. ccPointCloud::UnrollMode getType() const;
  34. CCVector3d getAxis() const;
  35. bool isAxisPositionAuto() const;
  36. bool useArbitraryOutputCS() const;
  37. CCVector3 getAxisPosition() const;
  38. void getAngleRange(double& start_deg, double& stop_deg) const;
  39. double getRadius() const;
  40. double getConeHalfAngle() const;
  41. bool exportDeviationSF() const;
  42. double getConicalProjSpanRatio() const;
  43. void toPersistentSettings() const;
  44. void fromPersistentSettings();
  45. protected:
  46. void shapeTypeChanged(int index);
  47. void projectionTypeChanged(int index);
  48. void axisDimensionChanged(int index);
  49. void axisAutoStateChanged(int checkState);
  50. void loadParametersFromEntity();
  51. void axisFromClipboard();
  52. void centerFromClipboard();
  53. protected:
  54. Ui::UnrollDialog* m_ui;
  55. ccHObject* m_dbRootEntity;
  56. };