;; -*- scheme -*-

;; ArtDRect
(define-boxed DRect
  (c-name "ArtDRect")
  (gtype-id "ART_TYPE_DRECT")
  (fields
   '("double" "x0")
   '("double" "y0")
   '("double" "x1")
   '("double" "y1")))
(define-function drect_new
  (is-constructor-of "ArtDRect")
  (caller-owns-return #t)
  (c-name "art_drect_new")
  (parameters
   '("double" "x0")
   '("double" "y0")
   '("double" "x1")
   '("double" "y1")))

;; ArtPoint
(define-boxed Point
  (c-name "ArtPoint")
  (gtype-id "ART_TYPE_POINT")
  (fields
   '("double" "x")
   '("double" "y")))
(define-function point_new
  (is-constructor-of "ArtPoint")
  (caller-owns-return #t)
  (c-name "art_point_new")
  (parameters
   '("double" "x")
   '("double" "y")))

;; ArtBPath
(define-boxed Bpath
  (c-name "ArtBpath")
  (gtype-id "ART_TYPE_BPATH")
  (fields
   '("gint"   "code")
   '("double" "x1")
   '("double" "y1")
   '("double" "x2")
   '("double" "y2")
   '("double" "x3")
   '("double" "y3")))
(define-function bpath_new
  (is-constructor-of "ArtBpath")
  (c-name "art_bpath_new")
  (caller-owns-return #t)
  (parameters
   '("gint"   "code")
   '("double" "x1")
   '("double" "y1")
   '("double" "x2")
   '("double" "y2")
   '("double" "x3")
   '("double" "y3")))

;; ArtVPath
(define-boxed Vpath
  (c-name "ArtVpath")
  (gtype-id "ART_TYPE_VPATH")
  (fields
   '("gint"   "code")
   '("double" "x")
   '("double" "y")))
(define-function vpath_new
  (is-constructor-of "ArtVpath")
  (c-name "art_vpath_new")
  (caller-owns-return #t)
  (parameters
   '("gint"   "code")
   '("double" "x")
   '("double" "y")))

