Hi all,
I've asked this before but unfortunately I haven't been able to fix it yet. My rewritten 3D box class inherits from SPGroup. Each box has six children of type Box3DSide, each of which is inherited from SPPolygon. So far so good. The problem is that I can't figure out what functions I need to call in sp_3dbox_update so that the boxes are correctly updated on screen during handle dragging (but without writing to repr for efficiency). My most promising-looking approaches so far have been:
1) Call sp_shape_set_shape() for each of the sides (where the corresponding curve is drawn). However, this does not have any visible effect during dragging (the box is shown only when sp_box3d_write() is called).
2) Call requestDisplayUpdate() for each of the sides. This is obviously wrong since it triggers an update while another one is being processed. Consequently, Inkscape issues a corresponding warning on the command line. But at least with this approach the box is correctly updated on screen.
3) Not register sp_3dbox_update() at all in sp_3dbox_class_init(). This was a last desperate attempt because I figured that perhaps the parent SPGroup would take care of udating the children. But it turned out that in this case the update methods of the sides are not even called.
So there should be something in between 1) and 2) which correctly updates the screen but doesn't issue the "update already in progress" warning. Any ideas? I'm completely lost in my maze of attempts and would appreciate any hints what else I could try or where to look further.
Thanks! Max