On Tue, Apr 5, 2016 at 2:51 AM, Igor Stasenko <siguctua@gmail.com> wrote:
Some more bashing today.. (don't take it personal, i may be wrong)
BlPath hierarchy.. and BlShape.
Why you redefining what is shape and what is path? Of course, you are free to do it in Bloc.. But in terms of Athens, all of BlPath are actually - shapes.. And BlShape is some kind of encapsulation of shape, paints and transform. It is a dumb state holder without any extra logic.
My rule of thumb: do not produce dumb state holders. They has to be smart, else it makes no sense in creating separate entity and designating it as something else than any other bunch of data thrown into single clump, sitting there deaf, blind, dead and silent until someone else will grab it somewhere and start using it for own purpose.
Sure, i could understand, why you potentially may want such object(s) around, but it is not shape anymore and i wouldn't call it like that. Because shape are shape, and has nothing to do with paints and transform, it don't knows and don't cares whether it will be filled or stroked or both, and how many times, and if there will be single paint or thousand. Such kind of properties is simply orthogonal to what shape existing for, because it exists only to define geometry.
I think all of that came from not understanding the roles of objects and how they interact in Athens.
Can you point us to documentation that describes Athen's architecture for these interactions? (sorry I haven't checked class comments, but I'm looking to start with something at higher level anyway) cheers -ben