diff options
| author | s-ol <s-ol@users.noreply.github.com> | 2019-12-02 20:33:28 +0000 |
|---|---|---|
| committer | s-ol <s-ol@users.noreply.github.com> | 2019-12-02 20:33:28 +0000 |
| commit | 1b69cd09de1e70d36cbca5f0c4a3f289ec684343 (patch) | |
| tree | 42a91646b60d7879c1d541e921adddff4052a732 /src/livecode/api/point.cpp | |
| parent | add draft janet interface for livecoding (diff) | |
| download | inkscape-1b69cd09de1e70d36cbca5f0c4a3f289ec684343.tar.gz inkscape-1b69cd09de1e70d36cbca5f0c4a3f289ec684343.zip | |
more janet bindings
Diffstat (limited to 'src/livecode/api/point.cpp')
| -rw-r--r-- | src/livecode/api/point.cpp | 27 |
1 files changed, 8 insertions, 19 deletions
diff --git a/src/livecode/api/point.cpp b/src/livecode/api/point.cpp index 6eab6af1d..25d03d4bb 100644 --- a/src/livecode/api/point.cpp +++ b/src/livecode/api/point.cpp @@ -10,13 +10,13 @@ extern "C" void geom_point_set(void *p, Janet key, Janet value); extern "C" void geom_point_tostring(void *p, JanetBuffer *buffer) { std::stringstream stream; - stream << "<2geom/point " << *static_cast<Geom::Point *>(p) << ">"; + stream << "<geom/point " << *static_cast<Geom::Point *>(p) << ">"; janet_buffer_push_cstring(buffer, stream.str().c_str()); } const JanetAbstractType geom_point_type = { - "2geom/point", + "geom/point", NULL, NULL, geom_point_get, @@ -39,7 +39,7 @@ Janet janet_wrap_point(Geom::IntPoint const &x) { return janet_wrap_abstract(box); } -Geom::Point janet_unwrap_point(Janet x) { +Geom::Point &janet_unwrap_point(Janet x) { if (janet_checktype(x, JANET_ABSTRACT)) { void *abst = janet_unwrap_abstract(x); if (janet_abstract_type(abst) == &geom_point_type) @@ -62,17 +62,6 @@ Geom::Point janet_unwrap_point_or_scalar(Janet x) { janet_panic("expected a geom/point"); } - -Geom::Point& janet_unwrap_point_ref(Janet x) { - if (janet_checktype(x, JANET_ABSTRACT)) { - void *abst = janet_unwrap_abstract(x); - if (janet_abstract_type(abst) == &geom_point_type) - return *(Geom::Point *)abst; - } - - janet_panic("expected a geom/point"); -} - extern "C" Janet cfun_geom_point_new(int32_t argc, Janet *argv) { janet_arity(argc, 0, 2); double x = 0; @@ -89,7 +78,7 @@ extern "C" Janet cfun_geom_point_new(int32_t argc, Janet *argv) { const JanetReg it_cfuns[] = { { - "point", cfun_geom_point_new, + "geom/point", cfun_geom_point_new, "(geom/point x y)\n\nCreate a Point from x/y coordinate values." }, {NULL, NULL, NULL} @@ -177,15 +166,15 @@ static Janet cfun_geom_point_div_mut(int32_t argc, Janet *argv) { static Janet cfun_geom_point_eq(int32_t argc, Janet *argv) { janet_fixarity(argc, 2); - Geom::Point& v1 = janet_unwrap_point_ref(argv[0]); - Geom::Point& v2 = janet_unwrap_point_ref(argv[1]); + Geom::Point &v1 = janet_unwrap_point(argv[0]); + Geom::Point &v2 = janet_unwrap_point(argv[1]); return janet_wrap_boolean(v1 == v2); } static Janet cfun_geom_point_lt(int32_t argc, Janet *argv) { janet_fixarity(argc, 2); - Geom::Point& v1 = janet_unwrap_point_ref(argv[0]); - Geom::Point& v2 = janet_unwrap_point_ref(argv[1]); + Geom::Point &v1 = janet_unwrap_point(argv[0]); + Geom::Point &v2 = janet_unwrap_point(argv[1]); return janet_wrap_boolean(v1 < v2); } |
