From cca66b9ec4e494c1d919bff0f71a820d8afab1fa Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 20:24:48 +0200 Subject: Adding upstream version 1.2.2. Signed-off-by: Daniel Baumann --- src/object/sp-star.h | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 src/object/sp-star.h (limited to 'src/object/sp-star.h') diff --git a/src/object/sp-star.h b/src/object/sp-star.h new file mode 100644 index 0000000..0dedea7 --- /dev/null +++ b/src/object/sp-star.h @@ -0,0 +1,68 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +#ifndef SEEN_SP_STAR_H +#define SEEN_SP_STAR_H + +/* + * implementation + * + * Authors: + * Mitsuru Oka + * Lauris Kaplinski + * + * Copyright (C) 1999-2002 Lauris Kaplinski + * Copyright (C) 2000-2001 Ximian, Inc. + * + * Released under GNU GPL v2+, read the file 'COPYING' for more information. + */ + +#include "sp-polygon.h" + + +enum SPStarPoint { + SP_STAR_POINT_KNOT1, + SP_STAR_POINT_KNOT2 +}; + +class SPStar : public SPShape { +public: + SPStar(); + ~SPStar() override; + + int sides; + + Geom::Point center; + double r[2]; + double arg[2]; + bool flatsided; + + double rounded; + double randomized; + +// CPPIFY: This derivation is a bit weird. +// parent_class = reinterpret_cast(g_type_class_ref(SP_TYPE_SHAPE)); +// So shouldn't star be derived from shape instead of polygon? +// What does polygon have that shape doesn't? + + void build(SPDocument *document, Inkscape::XML::Node *repr) override; + Inkscape::XML::Node* write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags) override; + void set(SPAttr key, char const* value) override; + void update(SPCtx* ctx, unsigned int flags) override; + + const char* typeName() const override; + const char* displayName() const override; + char* description() const override; + void snappoints(std::vector &p, Inkscape::SnapPreferences const *snapprefs) const override; + void update_patheffect(bool write) override; + void set_shape() override; + Geom::Affine set_transform(Geom::Affine const& xform) override; +}; + +void sp_star_position_set (SPStar *star, int sides, Geom::Point center, double r1, double r2, double arg1, double arg2, bool isflat, double rounded, double randomized); + +Geom::Point sp_star_get_xy (SPStar const *star, SPStarPoint point, int index, bool randomized = false); + + +MAKE_SP_OBJECT_DOWNCAST_FUNCTIONS(SP_STAR, SPStar) +MAKE_SP_OBJECT_TYPECHECK_FUNCTIONS(SP_IS_STAR, SPStar) + +#endif -- cgit v1.2.3