You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

83 lines
2.0 KiB

  1. /*
  2. * This program source code file is part of KiCad, a free EDA CAD application.
  3. *
  4. * Copyright (C) 2022 Mark Roszko <mark.roszko@gmail.com>
  5. * Copyright (C) 2024 Alex Shvartzkop <dudesuchamazing@gmail.com>
  6. * Copyright (C) 1992-2024 KiCad Developers, see AUTHORS.txt for contributors.
  7. *
  8. * This program is free software: you can redistribute it and/or modify it
  9. * under the terms of the GNU General Public License as published by the
  10. * Free Software Foundation, either version 3 of the License, or (at your
  11. * option) any later version.
  12. *
  13. * This program is distributed in the hope that it will be useful, but
  14. * WITHOUT ANY WARRANTY; without even the implied warranty of
  15. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  16. * General Public License for more details.
  17. *
  18. * You should have received a copy of the GNU General Public License along
  19. * with this program. If not, see <http://www.gnu.org/licenses/>.
  20. */
  21. #ifndef JOB_PCB_RENDER_H
  22. #define JOB_PCB_RENDER_H
  23. #include <kicommon.h>
  24. #include <wx/string.h>
  25. #include "job.h"
  26. #include <optional>
  27. #include <math/vector3.h>
  28. class KICOMMON_API JOB_PCB_RENDER : public JOB
  29. {
  30. public:
  31. JOB_PCB_RENDER( bool aIsCli );
  32. wxString m_filename;
  33. wxString m_outputFile;
  34. enum class FORMAT
  35. {
  36. PNG,
  37. JPEG
  38. };
  39. enum class QUALITY
  40. {
  41. BASIC,
  42. HIGH,
  43. USER
  44. };
  45. enum class BG_STYLE
  46. {
  47. DEFAULT,
  48. TRANSPARENT,
  49. OPAQUE
  50. };
  51. enum class SIDE
  52. {
  53. TOP,
  54. BOTTOM,
  55. LEFT,
  56. RIGHT,
  57. FRONT,
  58. BACK
  59. };
  60. FORMAT m_format = FORMAT::PNG;
  61. QUALITY m_quality = QUALITY::BASIC;
  62. BG_STYLE m_bgStyle = BG_STYLE::DEFAULT;
  63. int m_width = 0;
  64. int m_height = 0;
  65. std::string m_colorPreset;
  66. SIDE m_side = SIDE::TOP;
  67. double m_zoom = 1.0;
  68. bool m_perspective = false;
  69. VECTOR3D m_rotation;
  70. VECTOR3D m_pan;
  71. VECTOR3D m_pivot;
  72. bool m_floor = false;
  73. };
  74. #endif