25#define SP_TYPE_BOX3D (box3d_get_type ())
34 int tag()
const override {
return tag_of<
decltype(*this)>; }
59 void update(
SPCtx *ctx,
unsigned int flags)
override;
constexpr int tag_of
Convenience function to retrieve the tag (class id) of a given type.
3x3 matrix representing an affine transformation.
Two-dimensional point that doubles as a vector.
Interface for refcounted XML nodes.
void update(SPCtx *ctx, unsigned int flags) override
virtual const char * display_name()
void set_corner(unsigned int id, Geom::Point const &new_pos, Box3D::Axis movement, bool constrained)
char * description() const override
static SPBox3D * createBox3D(SPItem *parent)
Create a SPBox3D and append it to the parent.
Geom::Point get_center_screen()
void check_for_swapped_coords()
int VP_lies_in_PL_sector(Proj::Axis vpdir, int id1, int id2, Box3D::Axis axis) const
bool recompute_z_orders()
static std::list< SPBox3D * > extract_boxes(SPObject *obj)
Geom::Affine set_transform(Geom::Affine const &transform) override
Persp3DReference * persp_ref
int pt_lies_in_PL_sector(Geom::Point const &pt, int id1, int id2, Box3D::Axis axis) const
Persp3D * get_perspective() const
void corners_for_PLs(Proj::Axis axis, Geom::Point &corner1, Geom::Point &corner2, Geom::Point &corner3, Geom::Point &corner4) const
Geom::Point get_corner_screen(unsigned int id, bool item_coords=true) const
Inkscape::XML::Node * write(Inkscape::XML::Document *xml_doc, Inkscape::XML::Node *repr, unsigned int flags) override
void set_center(Geom::Point const &new_pos, Geom::Point const &old_pos, Box3D::Axis movement, bool constrained)
void convert_to_guides() const override
SPGroup * convert_to_group()
void build(SPDocument *document, Inkscape::XML::Node *repr) override
void switch_perspectives(Persp3D *old_persp, Persp3D *new_persp, bool recompute_corners=false)
Proj::Pt3 get_proj_center()
const char * displayName() const override
The item's type name as a translated human string.
Typed SVG document implementation.
Base class for visual SVG elements.
SPObject is an abstract base class of all of the document nodes at the SVG document level.
Inkscape::XML::Node * repr
static char const *const parent
static cairo_user_data_key_t key
Interface for XML documents.