(2023-04-24, 20:48)Max Murtazin Wrote: Could it be changed how type 2 and 5 lines work for shading? At the moment, LDView basically throws everything in the same bin without considering how exactly they are meant to interact. Most importantly, complementary conds and line 2 over line 5
For complementary conds, there are cases when original conditional lines of primitive are "overshadowing" original conds — angle formed by line and control points of original cond is sharper, thus leading to condline appearing when it's not meant to — best example would be complementaries on new npeghol prims
Unless I am misunderstanding, there is nothing I can do about this. I would say that the part in question is technically wrong, and that perhaps a new primitive (without a complementary cond at the edge) is needed. The complementary conditionals at the edges of circular primitives are real geometry in the parts, and will be drawn based on their geometry. It isn't feasible to try to figure out what is next to them to decide if they are correct or not: that way lies madness.
(2023-04-24, 20:48)Max Murtazin Wrote: For line 2 over line 5, there are cases when line 2 appears in same place as a primitive line 5. It leads to an odd behavior of faces sharing vertex normals, when they are not meant to. Npeghol8 will be a good example, specifically a line 2 inside of it at the end of cylinder
LDView already checks for conditional lines that match edge lines, and removes them from the list of conditional lines used for smoothing. However, when I say "match" here, I do mean "match": both ends of the conditional line need to be the same as both ends of the edge line (with relatively forgiving rounding). For performance reasons, I don't think I can have it look for partial overlaps.