diff --git a/kiva/agg/src/agg_typemaps.i b/kiva/agg/src/agg_typemaps.i index f7c728706..437e548cb 100644 --- a/kiva/agg/src/agg_typemaps.i +++ b/kiva/agg/src/agg_typemaps.i @@ -83,7 +83,7 @@ } // -------------------------------------------------------------------------- -// Typemaps for (int* results, int Nresults) +// Typemaps for (unsigned char* results, int Nresults) // // For: points_in_polygon // @@ -91,10 +91,10 @@ // // -------------------------------------------------------------------------- -%typemap(in) (int* results, int Nresults) (PyArrayObject* ary=NULL, +%typemap(in) (unsigned char* results, int Nresults) (PyArrayObject* ary=NULL, int is_new_object) { - ary = obj_to_array_contiguous_allow_conversion($input, PyArray_INT, + ary = obj_to_array_contiguous_allow_conversion($input, PyArray_BOOL, is_new_object); int size[1] = {-1}; if (!ary || @@ -103,11 +103,11 @@ { goto fail; } - $1 = (int*) ary->data; + $1 = (unsigned char*) ary->data; $2 = ary->dimensions[0]; } -%typemap(freearg) (int* results, int Nresults) +%typemap(freearg) (unsigned char* results, int Nresults) { if (is_new_object$argnum) { diff --git a/kiva/agg/src/hit_test.i b/kiva/agg/src/hit_test.i index 295c9a8ed..95fe1f350 100644 --- a/kiva/agg/src/hit_test.i +++ b/kiva/agg/src/hit_test.i @@ -7,18 +7,18 @@ %apply (double* point_array, int point_count) {(double* pts, int Npts)}; %apply (double* point_array, int point_count) {(double* poly_pts, int Npoly_pts)}; -%apply (int* results, int Nresults) {(int* results, int Nresults)}; +%apply (unsigned char* results, int Nresults) {(unsigned char* results, int Nresults)}; namespace kiva { bool point_in_polygon(double x, double y, double* poly_pts, int Npoly_pts); void points_in_polygon(double* pts, int Npts, double* poly_pts, int Npoly_pts, - int* results, int Nresults); + unsigned char* results, int Nresults); bool point_in_polygon_winding(double x, double y, double* poly_pts, int Npoly_pts); void points_in_polygon_winding(double* pts, int Npts, double* poly_pts, int Npoly_pts, - int* results, int Nresults); + unsigned char* results, int Nresults); } %pythoncode @@ -88,7 +88,7 @@ def points_in_polygon(pts, poly_pts, use_winding=False): else: raise ValueError('poly_pts must be an Nx2 or 2xN array') - results = zeros(len(pts),int32) + results = zeros(len(pts), bool) if use_winding: _agg.points_in_polygon_winding(pts, poly_pts, results) else: diff --git a/kiva/agg/src/kiva_hit_test.cpp b/kiva/agg/src/kiva_hit_test.cpp index bc17b1ba2..a22dc3716 100644 --- a/kiva/agg/src/kiva_hit_test.cpp +++ b/kiva/agg/src/kiva_hit_test.cpp @@ -64,7 +64,7 @@ namespace kiva void points_in_polygon(double* pts, int Npts, double* poly_pts, int Npoly_pts, - int* results, int Nresults) + unsigned char* results, int Nresults) { // Nresults and Npts should match. @@ -136,7 +136,7 @@ namespace kiva void points_in_polygon_winding(double* pts, int Npts, double* poly_pts, int Npoly_pts, - int* results, int Nresults) + unsigned char* results, int Nresults) { // Nresults and Npts should match. diff --git a/kiva/agg/src/kiva_hit_test.h b/kiva/agg/src/kiva_hit_test.h index 11bea0013..c5f5dab48 100644 --- a/kiva/agg/src/kiva_hit_test.h +++ b/kiva/agg/src/kiva_hit_test.h @@ -7,12 +7,12 @@ namespace kiva double* poly_pts, int Npoly_pts); void points_in_polygon(double* pts, int Npts, double* poly_pts, int Npoly_pts, - int* results, int Nresults); + unsigned char* results, int Nresults); bool point_in_polygon_winding(double x, double y, double* poly_pts, int Npoly_pts); void points_in_polygon_winding(double* pts, int Npts, double* poly_pts, int Npoly_pts, - int* results, int Nresults); + unsigned char* results, int Nresults); } #endif