blender/tests/files/io_tests/obj
Campbell Barton 490e0b283c Fix #163256: error where filling curves with holes only output a hole
Filling relied on original face ids to decide which
faces must stay valid, these are only set for CCW faces,
so every edge inside a CW face was dissolved.
The "Fill Curve" node then output only the holes.

Resolve by using the hole status for output types with holes,
as the even-odd & non-zero rules accept either orientation.

Note that this changes how winding multiple times is interpreted,
each lap flips the even-odd "fill" state.
So 1x winding around a polygon is filled, 2x isn't 3x is ... and so on
(matching SVG/PostScript behavior for the even-odd method).

Remove `USE_FACE_ORDERED_EDGE_DEDUPE` since it doesn't define expected
behavior for filling and was only added as a stress test.
An OBJ face that walks its boundary twice no longer imports as a face,
update the test data accordingly.

Technically a regression in [0], although it only worked by accident:
the face-id flood used to escape the face boundary and tag the whole CDT
(the slowdown [0] resolved), so no interior edges were dissolved.
Limiting the flood-fill exposed that `add_face_ids` skips CW faces,
leaving the input face winding to decide which faces are kept,
even though even-odd filling should ignore the winding.

[0]: ef99d1d8b3

Ref !163295
2026-09-10 03:12:14 +00:00
..
reference Fix #163256: error where filling curves with holes only output a hole 2026-09-10 03:12:14 +00:00
all_curves.obj Curves: Simplify calculation of NURBS basis functions 2025-09-04 21:49:58 +02:00
all_curves_as_nurbs.obj Curves: Simplify calculation of NURBS basis functions 2025-09-04 21:49:58 +02:00
all_objects.mtl Nodes: remove "Use Nodes" in Shader Editor for Object Materials 2025-09-14 17:53:54 +02:00
all_objects.obj Curves: Simplify calculation of NURBS basis functions 2025-09-04 21:49:58 +02:00
all_objects_mat_groups.mtl Nodes: remove "Use Nodes" in Shader Editor for Object Materials 2025-09-14 17:53:54 +02:00
all_objects_mat_groups.obj Curves: Simplify calculation of NURBS basis functions 2025-09-04 21:49:58 +02:00
all_quads.obj
all_tris.mtl
all_tris.obj
cube.mtl
cube.obj
cube4m_clamp_2.json Fix #122256, #123862: OBJ import Clamp Size option issues 2025-05-20 11:57:42 +02:00
cube4m_clamp_2.obj Fix #122256, #123862: OBJ import Clamp Size option issues 2025-05-20 11:57:42 +02:00
cube4m_clamp_05.json Fix #122256, #123862: OBJ import Clamp Size option issues 2025-05-20 11:57:42 +02:00
cube4m_clamp_05.obj Fix #122256, #123862: OBJ import Clamp Size option issues 2025-05-20 11:57:42 +02:00
cube_all_data_triangulated.obj
cube_loose_edges_verts.obj
cube_normal_edit.obj
cube_o_after_verts.obj
cube_vertex_groups.obj
cubes_clamp_15.json Fix #141434: OBJ importer should apply bounds clamp size to the whole scene 2025-07-04 10:36:18 +02:00
cubes_clamp_15.obj Fix #141434: OBJ importer should apply bounds clamp size to the whole scene 2025-07-04 10:36:18 +02:00
cubes_positioned.obj
cubes_vertex_colors.obj
cubes_vertex_colors_mrgb.obj
cubes_with_textures.mtl
cubes_with_textures.obj
cubes_with_textures_rel.mtl
cubes_with_textures_rel.obj
edges.obj
faces_invalid_or_with_holes.obj Fix #163256: error where filling curves with holes only output a hole 2026-09-10 03:12:14 +00:00
fgons.obj
invalid_faces.obj
invalid_indices.obj
invalid_syntax.obj Core: Increase MAX_ID_NAME length from 66 to 258 (Blender 5.0) 2025-06-19 16:39:20 +02:00
invalid_vertex_group_index.obj I/O: Harden geometry import for invalid data 2026-05-13 14:24:11 +02:00
makehuman.obj
materials.mtl
materials.obj
materials_pbr.mtl
materials_pbr.obj
materials_without_pbr.mtl
materials_without_pbr.obj
non_uniform_scale.obj
nurbs.obj IO: OBJ improvements for NURBS curves 2025-08-01 06:37:28 +02:00
nurbs_curves.obj IO: OBJ improvements for NURBS curves 2025-08-01 06:37:28 +02:00
nurbs_cyclic.obj
nurbs_endpoint.obj
nurbs_invalid_indices.obj I/O: Harden geometry import for invalid data 2026-05-13 14:24:11 +02:00
nurbs_manual.obj IO: OBJ improvements for NURBS curves 2025-08-01 06:37:28 +02:00
nurbs_mesh.obj Curves: Simplify calculation of NURBS basis functions 2025-09-04 21:49:58 +02:00
polylines.obj
rhino_curve_arc_bezier_deg2.obj IO: OBJ improvements for NURBS curves 2025-08-01 06:37:28 +02:00
rhino_curve_bezier_deg3_cyclic.obj IO: OBJ improvements for NURBS curves 2025-08-01 06:37:28 +02:00
rhino_curve_bezier_deg4_rat.obj IO: OBJ improvements for NURBS curves 2025-08-01 06:37:28 +02:00
rhino_curve_circle_bezier_deg2_cyclic.obj IO: OBJ improvements for NURBS curves 2025-08-01 06:37:28 +02:00
rhino_curve_uniform_cyclic_deg3.obj IO: OBJ improvements for NURBS curves 2025-08-01 06:37:28 +02:00
rhino_curve_uniform_cyclic_deg7.obj IO: OBJ improvements for NURBS curves 2025-08-01 06:37:28 +02:00
split_options.obj
split_options_by_group.json
split_options_by_group.obj
split_options_by_object_and_group.json
split_options_by_object_and_group.obj
split_options_none.json
split_options_none.obj
suzanne_all_data.obj
texture.png
vertex_colors_non_contiguous.obj
vertices.obj