本文整理汇总了C++中SPItem类的典型用法代码示例。如果您正苦于以下问题:C++ SPItem类的具体用法?C++ SPItem怎么用?C++ SPItem使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了SPItem类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: SP_ITEM
// Create a mask element (using passed elements), add it to <defs>
const gchar *SPClipPath::create (GSList *reprs, SPDocument *document, Geom::Affine const* applyTransform)
{
Inkscape::XML::Node *defsrepr = document->getDefs()->getRepr();
Inkscape::XML::Document *xml_doc = document->getReprDoc();
Inkscape::XML::Node *repr = xml_doc->createElement("svg:clipPath");
repr->setAttribute("clipPathUnits", "userSpaceOnUse");
defsrepr->appendChild(repr);
const gchar *id = repr->attribute("id");
SPObject *clip_path_object = document->getObjectById(id);
for (GSList *it = reprs; it != NULL; it = it->next) {
Inkscape::XML::Node *node = (Inkscape::XML::Node *)(it->data);
SPItem *item = SP_ITEM(clip_path_object->appendChildRepr(node));
if (NULL != applyTransform) {
Geom::Affine transform (item->transform);
transform *= (*applyTransform);
item->doWriteTransform(item->getRepr(), transform);
}
}
Inkscape::GC::release(repr);
return id;
}
开发者ID:myutwo,项目名称:inkscape,代码行数:27,代码来源:sp-clippath.cpp
示例2: sp_spiral_toolbox_selection_changed
static void sp_spiral_toolbox_selection_changed(Inkscape::Selection *selection, GObject *tbl)
{
int n_selected = 0;
Inkscape::XML::Node *repr = NULL;
purge_repr_listener( tbl, tbl );
std::vector<SPItem*> itemlist=selection->itemList();
for(std::vector<SPItem*>::const_iterator i=itemlist.begin();i!=itemlist.end(); ++i){
SPItem *item = *i;
if (SP_IS_SPIRAL(item)) {
n_selected++;
repr = item->getRepr();
}
}
EgeOutputAction* act = EGE_OUTPUT_ACTION( g_object_get_data( tbl, "mode_action" ) );
if (n_selected == 0) {
g_object_set( G_OBJECT(act), "label", _("<b>New:</b>"), NULL );
} else if (n_selected == 1) {
g_object_set( G_OBJECT(act), "label", _("<b>Change:</b>"), NULL );
if (repr) {
g_object_set_data( tbl, "repr", repr );
Inkscape::GC::anchor(repr);
sp_repr_add_listener(repr, &spiral_tb_repr_events, tbl);
sp_repr_synthesize_events(repr, &spiral_tb_repr_events, tbl);
}
} else {
// FIXME: implement averaging of all parameters for multiple selected
//gtk_label_set_markup(GTK_LABEL(l), _("<b>Average:</b>"));
g_object_set( G_OBJECT(act), "label", _("<b>Change:</b>"), NULL );
}
}
开发者ID:AakashDabas,项目名称:inkscape,代码行数:35,代码来源:spiral-toolbar.cpp
示例3: sp_document_item_from_list_at_point_bottom
/**
Returns the bottommost item from the list which is at the point, or NULL if none.
*/
SPItem*
sp_document_item_from_list_at_point_bottom(unsigned int dkey, SPGroup *group, GSList const *list,
Geom::Point const p, bool take_insensitive)
{
g_return_val_if_fail(group, NULL);
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
gdouble delta = prefs->getDouble("/options/cursortolerance/value", 1.0);
for (SPObject *o = sp_object_first_child(SP_OBJECT(group)) ; o != NULL ; o = SP_OBJECT_NEXT(o) ) {
if (!SP_IS_ITEM(o)) continue;
SPItem *item = SP_ITEM(o);
NRArenaItem *arenaitem = sp_item_get_arenaitem(item, dkey);
if (arenaitem && nr_arena_item_invoke_pick(arenaitem, p, delta, 1) != NULL
&& (take_insensitive || item->isVisibleAndUnlocked(dkey))) {
if (g_slist_find((GSList *) list, item) != NULL)
return item;
}
if (SP_IS_GROUP(o)) {
SPItem *found = sp_document_item_from_list_at_point_bottom(dkey, SP_GROUP(o), list, p, take_insensitive);
if (found)
return found;
}
}
return NULL;
}
开发者ID:step21,项目名称:inkscape-osx-packaging-native,代码行数:32,代码来源:document.cpp
示例4: gr_get_usage_counts
/*
* Map each gradient to its usage count for both fill and stroke styles
*/
void gr_get_usage_counts(SPDocument *doc, std::map<SPGradient *, gint> *mapUsageCount )
{
if (!doc)
return;
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
bool onlyvisible = prefs->getBool("/options/kbselection/onlyvisible", true);
bool onlysensitive = prefs->getBool("/options/kbselection/onlysensitive", true);
bool ingroups = TRUE;
GSList *all_list = get_all_doc_items(NULL, doc->getRoot(), onlyvisible, onlysensitive, ingroups, NULL);
for (GSList *i = all_list; i != NULL; i = i->next) {
SPItem *item = SP_ITEM(i->data);
if (!item->getId())
continue;
SPGradient *gr = NULL;
gr = gr_item_get_gradient(item, true); // fill
if (gr) {
mapUsageCount->count(gr) > 0 ? (*mapUsageCount)[gr] += 1 : (*mapUsageCount)[gr] = 1;
}
gr = gr_item_get_gradient(item, false); // stroke
if (gr) {
mapUsageCount->count(gr) > 0 ? (*mapUsageCount)[gr] += 1 : (*mapUsageCount)[gr] = 1;
}
}
}
开发者ID:vinics,项目名称:inkscape,代码行数:30,代码来源:gradient-vector.cpp
示例5: calculateEffects
void Equipment::calculateEffects() {
healthEffectCached = 0;
manaEffectCached = 0;
attackEffectCached = 0;
defenseEffectCached = 0;
damageEffectCached = 0;
skillEffectCached = 0;
magicEffectCached = 0;
healthRegEffectCached = 0;
manaRegEffectCached = 0;
for (int i=0; i<et_count; i++) {
if (items[i].get() != 0) {
SPItem it = items[i];
healthEffectCached += it->getHealthEffect();
manaEffectCached += it->getManaEffect();
attackEffectCached += it->getAttackEffect();
defenseEffectCached += it->getDefenseEffect();
damageEffectCached += it->getDamageEffect();
skillEffectCached += it->getSkillEffect();
magicEffectCached += it->getMagicEffect();
healthRegEffectCached += it->getHealthregenerateEffect();
manaRegEffectCached += it->getManaregenerateEffect();
}
}
}
开发者ID:AMaster2010,项目名称:Rhynn,代码行数:28,代码来源:Equipment.cpp
示例6: pdf_render_document_to_file
static bool
pdf_render_document_to_file(SPDocument *doc, gchar const *filename, unsigned int level,
bool texttopath, bool omittext, bool filtertobitmap, int resolution,
const gchar * const exportId, bool exportDrawing, bool exportCanvas, float bleedmargin_px)
{
doc->ensureUpToDate();
/* Start */
SPItem *base = NULL;
bool pageBoundingBox = TRUE;
if (exportId && strcmp(exportId, "")) {
// we want to export the given item only
base = SP_ITEM(doc->getObjectById(exportId));
pageBoundingBox = exportCanvas;
}
else {
// we want to export the entire document from root
base = doc->getRoot();
pageBoundingBox = !exportDrawing;
}
if (!base) {
return false;
}
/* Create new arena */
Inkscape::Drawing drawing;
drawing.setExact(true);
unsigned dkey = SPItem::display_key_new(1);
base->invoke_show(drawing, dkey, SP_ITEM_SHOW_DISPLAY);
/* Create renderer and context */
CairoRenderer *renderer = new CairoRenderer();
CairoRenderContext *ctx = renderer->createContext();
ctx->setPDFLevel(level);
ctx->setTextToPath(texttopath);
ctx->setOmitText(omittext);
ctx->setFilterToBitmap(filtertobitmap);
ctx->setBitmapResolution(resolution);
bool ret = ctx->setPdfTarget (filename);
if(ret) {
/* Render document */
ret = renderer->setupDocument(ctx, doc, pageBoundingBox, bleedmargin_px, base);
if (ret) {
renderer->renderItem(ctx, base);
ret = ctx->finish();
}
}
base->invoke_hide(dkey);
renderer->destroyContext(ctx);
delete renderer;
return ret;
}
开发者ID:asitti,项目名称:inkscape,代码行数:59,代码来源:cairo-renderer-pdf-out.cpp
示例7: spdc_create_single_dot
void spdc_create_single_dot(ToolBase *ec, Geom::Point const &pt, char const *tool, guint event_state) {
g_return_if_fail(!strcmp(tool, "/tools/freehand/pen") || !strcmp(tool, "/tools/freehand/pencil"));
Glib::ustring tool_path = tool;
SPDesktop *desktop = ec->desktop;
Inkscape::XML::Document *xml_doc = desktop->doc()->getReprDoc();
Inkscape::XML::Node *repr = xml_doc->createElement("svg:path");
repr->setAttribute("sodipodi:type", "arc");
SPItem *item = SP_ITEM(desktop->currentLayer()->appendChildRepr(repr));
Inkscape::GC::release(repr);
// apply the tool's current style
sp_desktop_apply_style_tool(desktop, repr, tool, false);
// find out stroke width (TODO: is there an easier way??)
double stroke_width = 3.0;
gchar const *style_str = repr->attribute("style");
if (style_str) {
SPStyle style(SP_ACTIVE_DOCUMENT);
style.mergeString(style_str);
stroke_width = style.stroke_width.computed;
}
// unset stroke and set fill color to former stroke color
gchar * str;
str = g_strdup_printf("fill:#%06x;stroke:none;", sp_desktop_get_color_tool(desktop, tool, false) >> 8);
repr->setAttribute("style", str);
g_free(str);
// put the circle where the mouse click occurred and set the diameter to the
// current stroke width, multiplied by the amount specified in the preferences
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
Geom::Affine const i2d (item->i2dt_affine ());
Geom::Point pp = pt * i2d.inverse();
double rad = 0.5 * prefs->getDouble(tool_path + "/dot-size", 3.0);
if (event_state & GDK_MOD1_MASK) {
// TODO: We vary the dot size between 0.5*rad and 1.5*rad, where rad is the dot size
// as specified in prefs. Very simple, but it might be sufficient in practice. If not,
// we need to devise something more sophisticated.
double s = g_random_double_range(-0.5, 0.5);
rad *= (1 + s);
}
if (event_state & GDK_SHIFT_MASK) {
// double the point size
rad *= 2;
}
sp_repr_set_svg_double (repr, "sodipodi:cx", pp[Geom::X]);
sp_repr_set_svg_double (repr, "sodipodi:cy", pp[Geom::Y]);
sp_repr_set_svg_double (repr, "sodipodi:rx", rad * stroke_width);
sp_repr_set_svg_double (repr, "sodipodi:ry", rad * stroke_width);
item->updateRepr();
desktop->getSelection()->set(item);
desktop->messageStack()->flash(Inkscape::NORMAL_MESSAGE, _("Creating single dot"));
DocumentUndo::done(desktop->getDocument(), SP_VERB_NONE, _("Create single dot"));
}
开发者ID:AakashDabas,项目名称:inkscape,代码行数:59,代码来源:freehand-base.cpp
示例8: sp_rect_toolbox_selection_changed
/**
* \param selection should not be NULL.
*/
static void sp_rect_toolbox_selection_changed(Inkscape::Selection *selection, GObject *tbl)
{
int n_selected = 0;
Inkscape::XML::Node *repr = NULL;
SPItem *item = NULL;
if ( g_object_get_data( tbl, "repr" ) ) {
g_object_set_data( tbl, "item", NULL );
}
purge_repr_listener( tbl, tbl );
for (GSList const *items = selection->itemList();
items != NULL;
items = items->next) {
if (SP_IS_RECT(reinterpret_cast<SPItem *>(items->data))) {
n_selected++;
item = reinterpret_cast<SPItem *>(items->data);
repr = item->getRepr();
}
}
EgeOutputAction* act = EGE_OUTPUT_ACTION( g_object_get_data( tbl, "mode_action" ) );
g_object_set_data( tbl, "single", GINT_TO_POINTER(FALSE) );
if (n_selected == 0) {
g_object_set( G_OBJECT(act), "label", _("<b>New:</b>"), NULL );
GtkAction* w = GTK_ACTION( g_object_get_data( tbl, "width_action" ) );
gtk_action_set_sensitive(w, FALSE);
GtkAction* h = GTK_ACTION( g_object_get_data( tbl, "height_action" ) );
gtk_action_set_sensitive(h, FALSE);
} else if (n_selected == 1) {
g_object_set( G_OBJECT(act), "label", _("<b>Change:</b>"), NULL );
g_object_set_data( tbl, "single", GINT_TO_POINTER(TRUE) );
GtkAction* w = GTK_ACTION( g_object_get_data( tbl, "width_action" ) );
gtk_action_set_sensitive(w, TRUE);
GtkAction* h = GTK_ACTION( g_object_get_data( tbl, "height_action" ) );
gtk_action_set_sensitive(h, TRUE);
if (repr) {
g_object_set_data( tbl, "repr", repr );
g_object_set_data( tbl, "item", item );
Inkscape::GC::anchor(repr);
sp_repr_add_listener(repr, &rect_tb_repr_events, tbl);
sp_repr_synthesize_events(repr, &rect_tb_repr_events, tbl);
}
} else {
// FIXME: implement averaging of all parameters for multiple selected
//gtk_label_set_markup(GTK_LABEL(l), _("<b>Average:</b>"));
g_object_set( G_OBJECT(act), "label", _("<b>Change:</b>"), NULL );
sp_rtb_sensitivize( tbl );
}
}
开发者ID:myutwo,项目名称:inkscape,代码行数:59,代码来源:rect-toolbar.cpp
示例9: arena_handler
/// \todo fixme.
static gint arena_handler(SPCanvasArena */*arena*/, Inkscape::DrawingItem *ai, GdkEvent *event, SPSVGView *svgview)
{
static gdouble x, y;
static gboolean active = FALSE;
SPEvent spev;
SPItem *spitem = (ai) ? (static_cast<SPItem*>(ai->data())) : 0;
switch (event->type) {
case GDK_BUTTON_PRESS:
if (event->button.button == 1) {
active = TRUE;
x = event->button.x;
y = event->button.y;
}
break;
case GDK_BUTTON_RELEASE:
if (event->button.button == 1) {
if (active && (event->button.x == x) &&
(event->button.y == y)) {
spev.type = SP_EVENT_ACTIVATE;
if ( spitem != 0 )
{
spitem->emitEvent (spev);
}
}
}
active = FALSE;
break;
case GDK_MOTION_NOTIFY:
active = FALSE;
break;
case GDK_ENTER_NOTIFY:
spev.type = SP_EVENT_MOUSEOVER;
spev.data = svgview;
if ( spitem != 0 )
{
spitem->emitEvent (spev);
}
break;
case GDK_LEAVE_NOTIFY:
spev.type = SP_EVENT_MOUSEOUT;
spev.data = svgview;
if ( spitem != 0 )
{
spitem->emitEvent (spev);
}
break;
default:
break;
}
return TRUE;
}
开发者ID:Drooids,项目名称:inkscape,代码行数:55,代码来源:svg-view.cpp
示例10: SP_ITEM
Geom::OptRect Selection::documentBounds(SPItem::BBoxType type) const
{
Geom::OptRect bbox;
std::vector<SPItem*> const items = const_cast<Selection *>(this)->itemList();
if (items.empty()) return bbox;
for ( std::vector<SPItem*>::const_iterator iter=items.begin();iter!=items.end(); ++iter) {
SPItem *item = SP_ITEM(*iter);
bbox |= item->documentBounds(type);
}
return bbox;
}
开发者ID:NotBrianZach,项目名称:modalComposableProgrammableFuzzySearchingVectorGraphicEditing,代码行数:13,代码来源:selection.cpp
示例11: preferredBounds
// If we have a selection of multiple items, then the center of the first item
// will be returned; this is also the case in SelTrans::centerRequest()
boost::optional<Geom::Point> Selection::center() const {
std::vector<SPItem*> const items = const_cast<Selection *>(this)->itemList();
if (!items.empty()) {
SPItem *first = items.back(); // from the first item in selection
if (first->isCenterSet()) { // only if set explicitly
return first->getCenter();
}
}
Geom::OptRect bbox = preferredBounds();
if (bbox) {
return bbox->midpoint();
} else {
return boost::optional<Geom::Point>();
}
}
开发者ID:NotBrianZach,项目名称:modalComposableProgrammableFuzzySearchingVectorGraphicEditing,代码行数:17,代码来源:selection.cpp
示例12: sp_object_unref
void SPUse::href_changed() {
this->_delete_connection.disconnect();
this->_transformed_connection.disconnect();
if (this->child) {
this->detach(this->child);
this->child = NULL;
}
if (this->href) {
SPItem *refobj = this->ref->getObject();
if (refobj) {
Inkscape::XML::Node *childrepr = refobj->getRepr();
SPObject* obj = SPFactory::createObject(NodeTraits::get_type_string(*childrepr));
SPItem *item = dynamic_cast<SPItem *>(obj);
if (item) {
child = item;
this->attach(this->child, this->lastChild());
sp_object_unref(this->child, this);
this->child->invoke_build(this->document, childrepr, TRUE);
for (SPItemView *v = this->display; v != NULL; v = v->next) {
Inkscape::DrawingItem *ai = this->child->invoke_show(v->arenaitem->drawing(), v->key, v->flags);
if (ai) {
v->arenaitem->prependChild(ai);
}
}
} else {
delete obj;
g_warning("Tried to create svg:use from invalid object");
}
this->_delete_connection = refobj->connectDelete(
sigc::hide(sigc::mem_fun(this, &SPUse::delete_self))
);
this->_transformed_connection = refobj->connectTransformed(
sigc::hide(sigc::mem_fun(this, &SPUse::move_compensate))
);
}
}
}
开发者ID:AakashDabas,项目名称:inkscape,代码行数:48,代码来源:sp-use.cpp
示例13: g_slist_reverse
void CGroup::hide (unsigned int key) {
SPItem * child;
GSList *l = g_slist_reverse(_group->childList(false, SPObject::ActionShow));
while (l) {
SPObject *o = SP_OBJECT (l->data);
if (SP_IS_ITEM (o)) {
child = SP_ITEM (o);
child->invoke_hide (key);
}
l = g_slist_remove (l, o);
}
if (((SPItemClass *) parent_class)->hide)
((SPItemClass *) parent_class)->hide (_group, key);
}
开发者ID:Spin0za,项目名称:inkscape,代码行数:16,代码来源:sp-item-group.cpp
示例14: _showChildren
void CGroup::_showChildren (Inkscape::Drawing &drawing, Inkscape::DrawingItem *ai, unsigned int key, unsigned int flags) {
Inkscape::DrawingItem *ac = NULL;
SPItem * child = NULL;
GSList *l = g_slist_reverse(_group->childList(false, SPObject::ActionShow));
while (l) {
SPObject *o = SP_OBJECT (l->data);
if (SP_IS_ITEM (o)) {
child = SP_ITEM (o);
ac = child->invoke_show (drawing, key, flags);
if (ac) {
ai->appendChild(ac);
}
}
l = g_slist_remove (l, o);
}
}
开发者ID:Spin0za,项目名称:inkscape,代码行数:16,代码来源:sp-item-group.cpp
示例15: while
Geom::OptRect CGroup::bounds(SPItem::BBoxType type, Geom::Affine const &transform)
{
Geom::OptRect bbox;
GSList *l = _group->childList(false, SPObject::ActionBBox);
while (l) {
SPObject *o = SP_OBJECT (l->data);
if (SP_IS_ITEM(o) && !SP_ITEM(o)->isHidden()) {
SPItem *child = SP_ITEM(o);
Geom::Affine const ct(child->transform * transform);
bbox |= child->bounds(type, ct);
}
l = g_slist_remove (l, o);
}
return bbox;
}
开发者ID:Spin0za,项目名称:inkscape,代码行数:16,代码来源:sp-item-group.cpp
示例16: SP_ITEM
void
LPEMirrorSymmetry::doOnApply (SPLPEItem *lpeitem)
{
using namespace Geom;
SPItem *item = SP_ITEM(lpeitem);
Geom::Matrix t = sp_item_i2d_affine(item);
Geom::Rect bbox = *item->getBounds(t); // fixme: what happens if getBounds does not return a valid rect?
Point A(bbox.left(), bbox.bottom());
Point B(bbox.left(), bbox.top());
A *= t;
B *= t;
Piecewise<D2<SBasis> > rline = Piecewise<D2<SBasis> >(D2<SBasis>(Linear(A[X], B[X]), Linear(A[Y], B[Y])));
reflection_line.set_new_value(rline, true);
}
开发者ID:,项目名称:,代码行数:16,代码来源:
示例17: getEquipmentType
Equipment::EquipmentType Equipment::getEquipmentType(SPItem item) {
unsigned int clientTypeId = item->getClientTypeId();
Equipment::EquipmentType et = et_invalid;
if (clientTypeId > 0 && clientTypeId <= et_count) {
et = (Equipment::EquipmentType)(clientTypeId);
}
return et;
}
开发者ID:AMaster2010,项目名称:Rhynn,代码行数:8,代码来源:Equipment.cpp
示例18: equip
bool Equipment::equip(SPItem item, unsigned int skillBase, unsigned int magicBase, bool checkCanEquip) {
if (item->getUsageType() == ItemUsageType::equip && (!checkCanEquip || item->getEquippedStatus() == ItemEquippedStatus::not_equipped)) {
// check required skill / magic, check unequip as on client
EquipmentType et = getEquipmentType(item);
//bool canEquip1 = canEquip(item, skillBase, magicBase);
//std::cout << "eq type: " << et << (canEquip1 ? " e ok" : " enok ") << std::endl;
if (et != et_invalid && (!checkCanEquip || canEquip(item, skillBase, magicBase))) {
if (items[et].get() != 0) {
unequip(item, skillBase, magicBase, false);
}
items[et] = item;
item->setEquippedStatus(ItemEquippedStatus::equipped);
calculateEffects();
return true;
}
}
return false;
}
开发者ID:AMaster2010,项目名称:Rhynn,代码行数:18,代码来源:Equipment.cpp
示例19: sp_item_widget_hidden_toggled
void
sp_item_widget_hidden_toggled(GtkWidget *widget, SPWidget *spw)
{
if (gtk_object_get_data (GTK_OBJECT (spw), "blocked"))
return;
SPItem *item = sp_desktop_selection(SP_ACTIVE_DESKTOP)->singleItem();
g_return_if_fail (item != NULL);
gtk_object_set_data (GTK_OBJECT (spw), "blocked", GUINT_TO_POINTER (TRUE));
item->setExplicitlyHidden(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)));
sp_document_done (SP_ACTIVE_DOCUMENT, SP_VERB_DIALOG_ITEM,
gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))? _("Hide object") : _("Unhide object"));
gtk_object_set_data (GTK_OBJECT (spw), "blocked", GUINT_TO_POINTER (FALSE));
}
开发者ID:loveq369,项目名称:DoonSketch,代码行数:18,代码来源:item-properties.cpp
示例20: sp_usepath_move_compensate
static void
sp_usepath_move_compensate(Geom::Affine const *mp, SPItem *original, SPUsePath *self)
{
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
guint mode = prefs->getInt("/options/clonecompensation/value", SP_CLONE_COMPENSATION_PARALLEL);
if (mode == SP_CLONE_COMPENSATION_NONE) {
return;
}
SPItem *item = SP_ITEM(self->owner);
// TODO kill naughty naughty #if 0
#if 0
Geom::Affine m(*mp);
if (!(m.is_translation())) {
return;
}
Geom::Affine const t(item->transform);
Geom::Affine clone_move = t.inverse() * m * t;
// Calculate the compensation matrix and the advertized movement matrix.
Geom::Affine advertized_move;
if (mode == SP_CLONE_COMPENSATION_PARALLEL) {
//clone_move = clone_move.inverse();
advertized_move.set_identity();
} else if (mode == SP_CLONE_COMPENSATION_UNMOVED) {
clone_move = clone_move.inverse() * m;
advertized_move = m;
} else {
g_assert_not_reached();
}
// Commit the compensation.
item->transform *= clone_move;
sp_item_write_transform(item, item->getRepr(), item->transform, &advertized_move);
#else
(void)mp;
(void)original;
#endif
self->sourceDirty = true;
item->requestDisplayUpdate(SP_OBJECT_MODIFIED_FLAG);
}
开发者ID:AakashDabas,项目名称:inkscape,代码行数:42,代码来源:sp-use-reference.cpp
注:本文中的SPItem类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论