See point 4 of the very first post:triplus wrote:There is one thing i don't understand when it comes to @ickby proposal. In tree view there would be only one entry?
ickby wrote:Gui adoptions
a.Enable the tree to show a object multiple times
See point 4 of the very first post:triplus wrote:There is one thing i don't understand when it comes to @ickby proposal. In tree view there would be only one entry?
ickby wrote:Gui adoptions
a.Enable the tree to show a object multiple times
I'd be curious to know what was done. I thought of that too, and the best I've come up with is that as soon as InList of anything is queried, document graph is built and cached, so that calls to InList of this and other objects that will follow will be super fast. Then, if document changes, the cached graph is either updated, or simply thrown away. The bad thing about that is that getInList will become non-const and non-reentrant.ickby wrote:This also means that you still would do a lot of "bottom-up" searching of the graph (e.g. from object to all objects linking to that object) where the current document object model is not well suited for. Hence jriegels adoptions are still valuable for speeding this up.
This is your advantage in this case, IMO. At least you know something that lead to trouble in past. I don't know, so I can fall into that trap too.ickby wrote:I would still like to think a few days about it, you know, I'm a marked child regarding failed assembly structures and want to be sure there is not a show stopper we miss.
In general it is rather straight forward. Every DocumentObject has a std::vector InList that holds all objects that link to it. Than all PropertyLink properties are adopted to keep this list up-to-date. Every time a link is made or dropped the objects Inlists are updated. I actually like it very much, keeps the updating-work localized and the effort minimal compared to current way of doing it. The only downside is the need to really find all link codes.DeepSOIC wrote:I'd be curious to know what was done.
Sounds good to me.ickby wrote:Every DocumentObject has a std::vector InList that holds all objects that link to it. Than all PropertyLink properties are adopted to keep this list up-to-date. Every time a link is made or dropped the objects Inlists are updated.
I don't quite understand what you mean. But. That made me think of tree view, and ickby's proposal to make tree view show an object multiple times.tanderson69 wrote:Whatever you need to do. please don't hide a DAG structure behind a tree view.
Code: Select all
Document
Part
Extrude
Sketch
Part001
Sketch
Code: Select all
Document
Part
Extrude
Part001
Sketch