diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:24:48 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:24:48 +0000 |
commit | cca66b9ec4e494c1d919bff0f71a820d8afab1fa (patch) | |
tree | 146f39ded1c938019e1ed42d30923c2ac9e86789 /src/object/sp-star.h | |
parent | Initial commit. (diff) | |
download | inkscape-upstream/1.2.2.tar.xz inkscape-upstream/1.2.2.zip |
Adding upstream version 1.2.2.upstream/1.2.2upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | src/object/sp-star.h | 68 |
1 files changed, 68 insertions, 0 deletions
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 + +/* + * <sodipodi:star> implementation + * + * Authors: + * Mitsuru Oka <oka326@parkcity.ne.jp> + * Lauris Kaplinski <lauris@kaplinski.com> + * + * 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<SPShapeClass *>(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<Inkscape::SnapCandidatePoint> &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 |