X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Fbox3d.cpp;h=cda482e738c3944c2a05044bcb594d4f5f5c36aa;hb=9e973c4fb2183b877bb600a7e9c75e93b3e7d6d1;hp=2a8d24167c4fdf9ff4f0cb99cd71ed693004b123;hpb=e77e2e02d8ab186389f86e48b1834d95f51cf68d;p=inkscape.git diff --git a/src/box3d.cpp b/src/box3d.cpp index 2a8d24167..cda482e73 100644 --- a/src/box3d.cpp +++ b/src/box3d.cpp @@ -321,7 +321,8 @@ box3d_position_set (SPBox3D *box) /* This draws the curve and calls requestDisplayUpdate() for each side (the latter is done in box3d_side_position_set() to avoid update conflicts with the parent box) */ for (SPObject *child = sp_object_first_child(SP_OBJECT (box)); child != NULL; child = SP_OBJECT_NEXT(child) ) { - box3d_side_position_set (SP_BOX3D_SIDE (child)); + if (SP_IS_BOX3D_SIDE(child)) + box3d_side_position_set(SP_BOX3D_SIDE(child)); } } @@ -365,21 +366,22 @@ box3d_set_transform(SPItem *item, NR::Matrix const &xform) gdouble const sw = hypot(ret[0], ret[1]); gdouble const sh = hypot(ret[2], ret[3]); - SPItem *sideitem = NULL; - for (SPObject *side = sp_object_first_child(box); side != NULL; side = SP_OBJECT_NEXT(side)) { - sideitem = SP_ITEM(side); + for (SPObject *child = sp_object_first_child(box); child != NULL; child = SP_OBJECT_NEXT(child)) { + if (SP_IS_ITEM(child)) { + SPItem *childitem = SP_ITEM(child); - // Adjust stroke width - sp_item_adjust_stroke(sideitem, sqrt(fabs(sw * sh))); + // Adjust stroke width + sp_item_adjust_stroke(childitem, sqrt(fabs(sw * sh))); - // Adjust pattern fill - sp_item_adjust_pattern(sideitem, xform); + // Adjust pattern fill + sp_item_adjust_pattern(childitem, xform); - // Adjust gradient fill - sp_item_adjust_gradient(sideitem, xform); + // Adjust gradient fill + sp_item_adjust_gradient(childitem, xform); - // Adjust LPE - sp_item_adjust_livepatheffect(item, xform); + // Adjust LPE + sp_item_adjust_livepatheffect(childitem, xform); + } } return NR::identity(); @@ -1148,8 +1150,9 @@ static std::map box3d_get_sides (SPBox3D *box) { std::map sides; for (SPObject *side = sp_object_first_child(box); side != NULL; side = SP_OBJECT_NEXT(side)) { - sides[Box3D::face_to_int(sp_repr_get_int_attribute(SP_OBJECT_REPR(side), - "inkscape:box3dsidetype", -1))] = SP_BOX3D_SIDE(side); + if (SP_IS_BOX3D_SIDE(side)) + sides[Box3D::face_to_int(sp_repr_get_int_attribute(SP_OBJECT_REPR(side), + "inkscape:box3dsidetype", -1))] = SP_BOX3D_SIDE(side); } sides.erase(-1); return sides; @@ -1418,8 +1421,6 @@ box3d_convert_to_guides(SPItem *item) { return; } - SPDocument *doc = SP_OBJECT_DOCUMENT(box); - std::list > pts; /* perspective lines in X direction */ @@ -1440,7 +1441,7 @@ box3d_convert_to_guides(SPItem *item) { box3d_push_back_corner_pair(box, pts, 2, 6); box3d_push_back_corner_pair(box, pts, 3, 7); - sp_guide_pt_pairs_to_guides(doc, pts); + sp_guide_pt_pairs_to_guides(inkscape_active_desktop(), pts); } /*