Welcome to mirror list, hosted at ThFree Co, Russian Federation.

Geometry.xsp « xsp « xs - github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: b7e92ba695d5dae75ecaa2c2edb19d3048aa8d0b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
%module{Slic3r::XS};

%{
#include <xsinit.h>
#include "libslic3r/Geometry.hpp"
%}


%package{Slic3r::Geometry};

Pointfs arrange(size_t total_parts, Vec2d* part, coordf_t dist, BoundingBoxf* bb = NULL)
    %code{% 
        Pointfs points;
        if (! Slic3r::Geometry::arrange(total_parts, *part, dist, bb, points))
            CONFESS(PRINTF_ZU " parts won't fit in your print area!\n", total_parts);
        RETVAL = points;
    %};

%{

bool
directions_parallel(angle1, angle2)
    double      angle1
    double      angle2
    CODE:
        RETVAL = Slic3r::Geometry::directions_parallel(angle1, angle2);
    OUTPUT:
        RETVAL

bool
directions_parallel_within(angle1, angle2, max_diff)
    double      angle1
    double      angle2
    double      max_diff
    CODE:
        RETVAL = Slic3r::Geometry::directions_parallel(angle1, angle2, max_diff);
    OUTPUT:
        RETVAL

Clone<Polygon>
convex_hull(points)
    Points      points
    CODE:
        RETVAL = Slic3r::Geometry::convex_hull(points);
    OUTPUT:
        RETVAL

std::vector<Points::size_type>
chained_path(points)
    Points      points
    CODE:
        Slic3r::Geometry::chained_path(points, RETVAL);
    OUTPUT:
        RETVAL

std::vector<Points::size_type>
chained_path_from(points, start_from)
    Points      points
    Point*      start_from
    CODE:
        Slic3r::Geometry::chained_path(points, RETVAL, *start_from);
    OUTPUT:
        RETVAL

double
rad2deg(angle)
    double      angle
    CODE:
        RETVAL = Slic3r::Geometry::rad2deg(angle);
    OUTPUT:
        RETVAL

double
rad2deg_dir(angle)
    double      angle
    CODE:
        RETVAL = Slic3r::Geometry::rad2deg_dir(angle);
    OUTPUT:
        RETVAL

double
deg2rad(angle)
    double      angle
    CODE:
        RETVAL = Slic3r::Geometry::deg2rad(angle);
    OUTPUT:
        RETVAL

Polygons
simplify_polygons(polygons, tolerance)
    Polygons    polygons
    double      tolerance
    CODE:
        Slic3r::Geometry::simplify_polygons(polygons, tolerance, &RETVAL);
    OUTPUT:
        RETVAL


IV
_constant()
  ALIAS:
    X           = X
    Y           = Y
    Z           = Z
  PROTOTYPE:
  CODE:
    RETVAL = ix;
  OUTPUT: RETVAL

%}