• msv's avatar
    0028017: Unexpected result of General Fuse operation · 24542bc0
    msv authored
    Several improvements have been made in BO code to fix the bug:
    
    - Create empty edge-edge interference if intersection is close to an end vertex. This will help to avoid creation of unnecessary edge-face intersections.
    - Improve PutPaveOnCurve() method to join nearly located vertices when they are put on the same section curve.
    - Add processing of same-domain vertices for section edges in UpdatePaveBlocks() method.
    - Improve the method CorrectWires() in order to not increase vertex tolerance if it will cover the major part of an edge.
    - Replace vertices of section edges by same-domain equivalents.
    - In the algorithm BOPAlgo_WireSplitter, correct angles computation and evaluation, taking into account periodicity.
    - Modify PostTreatFF to properly take into account the orientations of coinciding section edges.
    - In IntTools_Context::ComputePE, check distance from the point to vertices of the edge if the projection to the curve is failure.
    
    Tests update:
    - test offset\faces_type_i\C9 has been updated; now instead of returning bad shape it returns null result.
    
    Notes for porting:
    - Modify BopAlgo_PaveFiller so that on output each interference refers to the new vertex that will hit in the result (same-domain of the initial new vertex).
    - Make the method BOPDS_DS::Index() returning valid index for new shapes.
    
    // eliminate compile warning on VC14
    24542bc0
BOPAlgo_PaveFiller.hxx 17.9 KB