Hi all, quick update.  Made good progress over the past few days (bug-fixing, refactoring, etc).  Notably, I'm now caching the floor points in profileNamespace, which has sped up development considerably.  News-flash, moved onto Chokepoints!   To get Chokepoints, we need two critical ingredients: A good clean outline. A reliable way to get all nodes contained within the outline. Recall as of last update, our outlines were pretty good but did not line up with the stairs (so not clean).  I now added a process by which the outlines clean themselves, and change shape over as many iterations as necessary to arrive at final cleaned shapes.  A few snapshots of the process in action:   Original (rough) outline:   Detection Process (picture this happening potentially multiple times as the outline mostly shrinks & sometimes grows slightly):   Final Clean outline:   Now, you may be wondering:  “Why have the outlines self-clean like this?  What happened to dumping and rebuilding the collections?”  For those curious, here’s why:   Also, the cleaned outlines do a great job now on balconies and porches, by detecting those skinny rails, etc.  (Note- We can't check all the collection's connections like this, as that would be prohibitively expensive CPU-wise, grinding down development of these scripts to a halt.  Sticking to this increased level of detection on just the outlines is quite CPU friendly.)   In the mean time, I found a way to get all the nodes inside the outline of any collection, even if it wraps up above & over itself.  This is a huge breakthrough, as using inPolygon (and cutting the collections) is no longer necessary!
Now we can get the Chokepoints (… well almost).  So far, we have raw "chokeway" points.  I’m going to have to pour over a bunch of possible chokeway point / outline arrangements and develop a good algorithm, in order to ultimately refine these raw chokeway points into usable Chokepoints.  Yeah, babysteps!   Raw "chokeway" points:    
    • Thanks
    • Like
    11