X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fbox3d-context.h;h=8bafa75f2f4e41f46b89694789db26cd7ff44315;hb=99f8079bc0a32aef279e4af06de4cbf4bd853563;hp=763c152ae0aab3041cc1dffcd1ee27f69578a6b7;hpb=d81a973b81c26fcef48f46fc665eef88d386af07;p=inkscape.git diff --git a/src/box3d-context.h b/src/box3d-context.h index 763c152ae..8bafa75f2 100644 --- a/src/box3d-context.h +++ b/src/box3d-context.h @@ -1,5 +1,5 @@ -#ifndef __SP_3DBOX_CONTEXT_H__ -#define __SP_3DBOX_CONTEXT_H__ +#ifndef __SP_BOX3D_CONTEXT_H__ +#define __SP_BOX3D_CONTEXT_H__ /* * 3D box drawing context @@ -17,25 +17,21 @@ #include #include "event-context.h" -#include "perspective3d.h" +#include "proj_pt.h" +#include "vanishing-point.h" -struct SPKnotHolder; +#define SP_TYPE_BOX3D_CONTEXT (sp_box3d_context_get_type ()) +#define SP_BOX3D_CONTEXT(obj) (GTK_CHECK_CAST ((obj), SP_TYPE_BOX3D_CONTEXT, Box3DContext)) +#define SP_BOX3D_CONTEXT_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), SP_TYPE_BOX3D_CONTEXT, Box3DContextClass)) +#define SP_IS_BOX3D_CONTEXT(obj) (GTK_CHECK_TYPE ((obj), SP_TYPE_BOX3D_CONTEXT)) +#define SP_IS_BOX3D_CONTEXT_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), SP_TYPE_BOX3D_CONTEXT)) -#define SP_TYPE_3DBOX_CONTEXT (sp_3dbox_context_get_type ()) -#define SP_3DBOX_CONTEXT(obj) (GTK_CHECK_CAST ((obj), SP_TYPE_3DBOX_CONTEXT, SP3DBoxContext)) -#define SP_3DBOX_CONTEXT_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), SP_TYPE_3DBOX_CONTEXT, SP3DBoxContextClass)) -#define SP_IS_3DBOX_CONTEXT(obj) (GTK_CHECK_TYPE ((obj), SP_TYPE_3DBOX_CONTEXT)) -#define SP_IS_3DBOX_CONTEXT_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), SP_TYPE_3DBOX_CONTEXT)) +class Box3DContext; +class Box3DContextClass; -class SP3DBoxContext; -class SP3DBoxContextClass; - -struct SP3DBoxContext : public SPEventContext { - SPItem *item; - NR::Point center; - - gdouble rx; /* roundness radius (x direction) */ - gdouble ry; /* roundness radius (y direction) */ +struct Box3DContext : public SPEventContext { + SPItem *item; + Geom::Point center; /** * save three corners while dragging: @@ -45,26 +41,43 @@ struct SP3DBoxContext : public SPEventContext { * if we are ctrl-dragging but is constrained to the perspective line from drag_ptC * to the vanishing point Y otherwise) */ - NR::Point drag_origin; - NR::Point drag_ptB; - NR::Point drag_ptC; + Geom::Point drag_origin; + Geom::Point drag_ptB; + Geom::Point drag_ptC; + + Proj::Pt3 drag_origin_proj; + Proj::Pt3 drag_ptB_proj; + Proj::Pt3 drag_ptC_proj; + bool ctrl_dragged; /* whether we are ctrl-dragging */ bool extruded; /* whether shift-dragging already occured (i.e. the box is already extruded) */ - /* temporary member until the precise behaviour is sorted out */ - static guint number_of_handles; + Box3D::VPDrag * _vpdrag; - sigc::connection sel_changed_connection; + sigc::connection sel_changed_connection; - Inkscape::MessageContext *_message_context; + Inkscape::MessageContext *_message_context; }; -struct SP3DBoxContextClass { - SPEventContextClass parent_class; +struct Box3DContextClass { + SPEventContextClass parent_class; }; /* Standard Gtk function */ -GtkType sp_3dbox_context_get_type (void); +GtkType sp_box3d_context_get_type (void); -#endif +void sp_box3d_context_update_lines(SPEventContext *ec); + +#endif /* __SP_BOX3D_CONTEXT_H__ */ + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :