Browse Source

Remove Point.cpp

Alessandro Ranellucci 11 years ago
parent
commit
4093280566
5 changed files with 19 additions and 20 deletions
  1. 0 2
      xs/MANIFEST
  2. 1 1
      xs/src/ExPolygon.hpp
  3. 0 13
      xs/src/Point.cpp
  4. 8 2
      xs/src/Point.hpp
  5. 10 2
      xs/xsp/Point.xsp

+ 0 - 2
xs/MANIFEST

@@ -20,9 +20,7 @@ src/admesh/util.c
 src/admesh/util.o
 src/ExPolygon.hpp
 src/myinit.h
-src/Point.cpp
 src/Point.hpp
-src/Point.o
 src/ppport.h
 src/TriangleMesh.cpp
 src/TriangleMesh.hpp

+ 1 - 1
xs/src/ExPolygon.hpp

@@ -44,7 +44,7 @@ polygon2perl(Polygon& poly) {
     AV* av = newAV();
     av_extend(av, num_points-1);
     for (unsigned int i = 0; i < num_points; i++) {
-        av_store(av, i, poly[i]._toPerl());
+        av_store(av, i, point2perl(poly[i]));
     }
     return (SV*)newRV_noinc((SV*)av);
 }

+ 0 - 13
xs/src/Point.cpp

@@ -1,13 +0,0 @@
-#include "myinit.h"
-#include "Point.hpp"
-
-Point::~Point() {}
-
-
-SV*
-Point::_toPerl() {
-    AV* av = newAV();
-    av_fill(av, 1);
-    av_store_point_xy(av, x, y);
-    return (SV*)newRV_noinc((SV*)av);
-}

+ 8 - 2
xs/src/Point.hpp

@@ -14,8 +14,14 @@ class Point
     unsigned long x;
     unsigned long y;
     Point(unsigned long _x = 0, unsigned long _y = 0): x(_x), y(_y) {};
-    ~Point();
-    SV* _toPerl();
 };
 
+SV*
+point2perl(Point& point) {
+    AV* av = newAV();
+    av_fill(av, 1);
+    av_store_point_xy(av, point.x, point.y);
+    return (SV*)newRV_noinc((SV*)av);
+}
+
 #endif

+ 10 - 2
xs/xsp/Point.xsp

@@ -7,8 +7,16 @@
 
 %name{Slic3r::Point::XS} class Point {
     Point(unsigned long _x = 0, unsigned long _y = 0);
-    ~Point();
-    SV* _toPerl();
+%{
+
+SV*
+Point::_toPerl()
+    CODE:
+        RETVAL = point2perl(*THIS);
+    OUTPUT:
+        RETVAL
+
+%}
 };
 
 %package{Slic3r::Point::XS};