Monday, December 2, 2013

LSS Zone 1.2.0 beta

I'm really happy to announce this minor update, because it contains a feature, that I was working on since the very beginning. I'm talking about automatic contour tracing.

I was totally aware of the fact that drawing contours of zones vertex-by-vertex is time consuming and I would even say boring activity. So I dreamed to implement somehow 'one-click' usage scenario when it is necessary to pick only one single point inside an area bounded by some geometry elements in an active model, then get closed contour of a zone.
The main difficulty, which I didn't know how to work around at the beginning, was the fact that it is necessary to deal with simple geometry (not some kind of BIM elements, such as walls, openings etc, but just simple faces). And I had no idea, how it is even possible to find out if some given point of virtual 3D space is inside or outside some 'room'. The certain problem was how to find closed space, when it's not actually completely closed (i.e. it has some empty openings). It was a brain damaging period. Weird solutions were spinning in my head, but all of them were far from real solution.
Suddenly I experienced an afterlight. I realized, that the only thing I actually need for my certain practical task is to trace a flat (2D) contour somewhere above the highest opening of the 'room' but below its ceiling level. Because, you know an average room has perfectly closed contour at this level regardless to its openings.
The rest was just a matter of writing an appropriate code. Well, yes actually coding wasn't that easy too after all, because of more or less complex tracing logic and some special cases, which are to be handled during tracing process. Frankly speaking I'm not that sure, that all of special cases are taken into account in a current version, but after intensive testing looks like tracing logic works stable. At least within a recommended usage scenario.

1 comment: