meshing.detect_branch_changes

meshing.detect_branch_changes(branches, incidence)

Mark cells whose incident Hermite samples disagree on the active branch.

A hard CSG crease lies exactly where the surface switches from one min/max operand to another, so a cell whose surface samples carry different active branches straddles a seam. This is exact for hard Booleans and needs no angular threshold; combine it with :func:classify_feature_cells for black-box or smoothly blended fields.

Parameters

Name Type Description Default
branches np.ndarray Active branch per Hermite sample, from :func:active_branches, shaped (edge_count,). required
incidence CellIncidence Cell-to-edge mapping for the same edge set. required

Returns

Name Type Description
np.ndarray Boolean mask shaped (cell_count,); True where a seam crosses
np.ndarray the cell.