Hi Noel,
AFAIR the XShapes/SdrObject(s) are needed to allow interaction/clicks in activated chart, so when you do not create these it may be necessary to completely rewrite the Chart View's interactions (Select, move, resize, etc...) *without* SdrObject(s)/SdrView stuff. Also AFAIR there is/was a feature added to also draw any SdrObject(s) - like in the other apps - freely and additionally to the existing, Chart-created ones. All this needs - unfortunately - the Sdr* DrawingLayer stuff, thus also the SdrObject(s), SdrViews, etc...
To not get to misunderstandings again: I would love to have direct geometry creation in Chart and to speed it up, just mentioning how the structure currently is. I made suggestions how to speed it up, too.
One idea I had (recently - not talked about yet) was to implement
a new SdrObject that may contain/host seq<primitives>, so a
kind of SdrPrimitiveObject. That may then be added/implemented to
all that UI interaction stuff we need in drawinglayer (not the
module, the 'old' stack) to make it interactively available as
e.g. Circle/Ellipse/Rectangle - you name it. Since only
used/constructed in Chart it would not need load/save, geometry
conversion would be free - get the primitive content :-)
Just my 2ct..
Actually I left out a step.
Before I even do that, I am going to switch the code from creating abstract UNO objectse.g. uno::Reference<drawing::XShape>to creating explicit typese.g. rtl::Reference<SvxShapePolyPolygon>Just to make it obvious what is happening, and easier to fix regressions.
-- -- ALG (PGP: EE1C 4B3F E751 D8BC C485 DEC1 3C59 F953 D81C F4A2)