@@ -518,4 +518,100 @@ int convert_face(PyObject *color, GCAgg &gc, agg::rgba *rgba)
518518
519519 return 1 ;
520520}
521+
522+ int convert_points (PyObject *obj, void *pointsp)
523+ {
524+ numpy::array_view<double , 2 > *points = (numpy::array_view<double , 2 > *)pointsp;
525+
526+ if (obj == NULL || obj == Py_None) {
527+ return 1 ;
528+ }
529+
530+ points->set (obj);
531+
532+ if (points->dim (0 ) == 0 ) {
533+ return 1 ;
534+ }
535+
536+ if (points->dim (1 ) != 2 ) {
537+ PyErr_Format (PyExc_ValueError,
538+ " Points must be Nx2 array, got %dx%d" ,
539+ points->dim (0 ), points->dim (1 ));
540+ return 0 ;
541+ }
542+
543+ return 1 ;
544+ }
545+
546+ int convert_transforms (PyObject *obj, void *transp)
547+ {
548+ numpy::array_view<double , 3 > *trans = (numpy::array_view<double , 3 > *)transp;
549+
550+ if (obj == NULL || obj == Py_None) {
551+ return 1 ;
552+ }
553+
554+ trans->set (obj);
555+
556+ if (trans->dim (0 ) == 0 ) {
557+ return 1 ;
558+ }
559+
560+ if (trans->dim (1 ) != 3 || trans->dim (2 ) != 3 ) {
561+ PyErr_Format (PyExc_ValueError,
562+ " Transforms must be Nx3x3 array, got %dx%dx%d" ,
563+ trans->dim (0 ), trans->dim (1 ), trans->dim (2 ));
564+ return 0 ;
565+ }
566+
567+ return 1 ;
568+ }
569+
570+ int convert_bboxes (PyObject *obj, void *bboxp)
571+ {
572+ numpy::array_view<double , 3 > *bbox = (numpy::array_view<double , 3 > *)bboxp;
573+
574+ if (obj == NULL || obj == Py_None) {
575+ return 1 ;
576+ }
577+
578+ bbox->set (obj);
579+
580+ if (bbox->dim (0 ) == 0 ) {
581+ return 1 ;
582+ }
583+
584+ if (bbox->dim (1 ) != 2 || bbox->dim (2 ) != 2 ) {
585+ PyErr_Format (PyExc_ValueError,
586+ " Bbox array must be Nx2x2 array, got %dx%dx%d" ,
587+ bbox->dim (0 ), bbox->dim (1 ), bbox->dim (2 ));
588+ return 0 ;
589+ }
590+
591+ return 1 ;
592+ }
593+
594+ int convert_colors (PyObject *obj, void *colorsp)
595+ {
596+ numpy::array_view<double , 2 > *colors = (numpy::array_view<double , 2 > *)colorsp;
597+
598+ if (obj == NULL || obj == Py_None) {
599+ return 1 ;
600+ }
601+
602+ colors->set (obj);
603+
604+ if (colors->dim (0 ) == 0 ) {
605+ return 1 ;
606+ }
607+
608+ if (colors->dim (1 ) != 4 ) {
609+ PyErr_Format (PyExc_ValueError,
610+ " Colors array must be Nx4 array, got %dx%d" ,
611+ colors->dim (0 ), colors->dim (1 ));
612+ return 0 ;
613+ }
614+
615+ return 1 ;
616+ }
521617}
0 commit comments