BoundingBox.xsp 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. %module{Slic3r::XS};
  2. %{
  3. #include <xsinit.h>
  4. #include "libslic3r/BoundingBox.hpp"
  5. #include "libslic3r/Point.hpp"
  6. %}
  7. %name{Slic3r::Geometry::BoundingBox} class BoundingBox {
  8. BoundingBox();
  9. ~BoundingBox();
  10. Clone<BoundingBox> clone()
  11. %code{% RETVAL = THIS; %};
  12. void merge(BoundingBox* bb) %code{% THIS->merge(*bb); %};
  13. void merge_point(Point* point) %code{% THIS->merge(*point); %};
  14. void scale(double factor);
  15. void translate(double x, double y);
  16. void offset(double delta);
  17. bool contains_point(Point* point) %code{% RETVAL = THIS->contains(*point); %};
  18. Clone<Polygon> polygon();
  19. Clone<Point> size();
  20. Clone<Point> center();
  21. Clone<Point> min_point() %code{% RETVAL = THIS->min; %};
  22. Clone<Point> max_point() %code{% RETVAL = THIS->max; %};
  23. long x_min() %code{% RETVAL = THIS->min.x; %};
  24. long x_max() %code{% RETVAL = THIS->max.x; %};
  25. long y_min() %code{% RETVAL = THIS->min.y; %};
  26. long y_max() %code{% RETVAL = THIS->max.y; %};
  27. bool defined() %code{% RETVAL = THIS->defined; %};
  28. %{
  29. BoundingBox*
  30. new_from_points(CLASS, points)
  31. char* CLASS
  32. Points points
  33. CODE:
  34. RETVAL = new BoundingBox(points);
  35. OUTPUT:
  36. RETVAL
  37. %}
  38. };
  39. %name{Slic3r::Geometry::BoundingBoxf} class BoundingBoxf {
  40. BoundingBoxf();
  41. ~BoundingBoxf();
  42. Clone<BoundingBoxf> clone()
  43. %code{% RETVAL = THIS; %};
  44. void merge(BoundingBoxf* bb) %code{% THIS->merge(*bb); %};
  45. void merge_point(Pointf* point) %code{% THIS->merge(*point); %};
  46. void scale(double factor);
  47. void translate(double x, double y);
  48. bool contains_point(Pointf* point) %code{% RETVAL = THIS->contains(*point); %};
  49. Clone<Pointf> size();
  50. Clone<Pointf> center();
  51. Clone<Pointf> min_point() %code{% RETVAL = THIS->min; %};
  52. Clone<Pointf> max_point() %code{% RETVAL = THIS->max; %};
  53. double x_min() %code{% RETVAL = THIS->min.x; %};
  54. double x_max() %code{% RETVAL = THIS->max.x; %};
  55. double y_min() %code{% RETVAL = THIS->min.y; %};
  56. double y_max() %code{% RETVAL = THIS->max.y; %};
  57. void set_x_min(double val) %code{% THIS->min.x = val; %};
  58. void set_x_max(double val) %code{% THIS->max.x = val; %};
  59. void set_y_min(double val) %code{% THIS->min.y = val; %};
  60. void set_y_max(double val) %code{% THIS->max.y = val; %};
  61. bool defined() %code{% RETVAL = THIS->defined; %};
  62. %{
  63. BoundingBoxf*
  64. new_from_points(CLASS, points)
  65. char* CLASS
  66. Pointfs points
  67. CODE:
  68. RETVAL = new BoundingBoxf(points);
  69. OUTPUT:
  70. RETVAL
  71. %}
  72. };
  73. %name{Slic3r::Geometry::BoundingBoxf3} class BoundingBoxf3 {
  74. BoundingBoxf3();
  75. ~BoundingBoxf3();
  76. Clone<BoundingBoxf3> clone()
  77. %code{% RETVAL = THIS; %};
  78. void merge(BoundingBoxf3* bb) %code{% THIS->merge(*bb); %};
  79. void merge_point(Pointf3* point) %code{% THIS->merge(*point); %};
  80. void scale(double factor);
  81. void translate(double x, double y, double z);
  82. Clone<Pointf3> size();
  83. Clone<Pointf3> center();
  84. Clone<Pointf3> min_point() %code{% RETVAL = THIS->min; %};
  85. Clone<Pointf3> max_point() %code{% RETVAL = THIS->max; %};
  86. double x_min() %code{% RETVAL = THIS->min.x; %};
  87. double x_max() %code{% RETVAL = THIS->max.x; %};
  88. double y_min() %code{% RETVAL = THIS->min.y; %};
  89. double y_max() %code{% RETVAL = THIS->max.y; %};
  90. double z_min() %code{% RETVAL = THIS->min.z; %};
  91. double z_max() %code{% RETVAL = THIS->max.z; %};
  92. bool defined() %code{% RETVAL = THIS->defined; %};
  93. };