Philippe Hurbain Wrote:What do you propose for BFC? It wouldn't be a big deal to convert all library to one or the other orientation, but what about 3D primitives turned inside out? Remove completely the notion of primitive (why not...)? Provide two sets of primitives, one seen from inside, the other from outside?
Well, i'm not a big fan of primitives (or even the hierarchical structure of subparts for that matter), but i think we can make some improvements even with them.
Having two separated standard for CCW and CW is useless. It still needs the code to check which is the current one to consider and to flip. Ideally, only one of the two should be there so you can blindly go in one direction and be sure it's ok. Now i don't remember but i think there's a per-file directive, and a per-part/face directive, or am i wrong? All of this could be removed and made implicit with some automatic sanitization.
About invertnext, it must be kept if we want to also keep inside out primitives. Or as you said, duplicate the primitive keeping one inside and one outside, which would be even better in my opinion. Why do we need to keep all the invertnext mechanism up, only to define an inside out box, that can be defined simply with (up to) 6 faces? Sure with curves ist's a little worst but still..
But just removing the CCW/CW will remove one layer of useless dust from the format and relative softwares, and it comes quite cheap. If we tackle the cheap issues we'll end with a cleaner library that will make a better starting point for anything else.