Blender Git Commits

Blender Git "soc-2021-adaptive-cloth" branch commits.

Page: 10 / 13

July 7, 2021, 13:49 (GMT)
adaptive_cloth: fix: Mesh: delete elements bunch of fixes
July 7, 2021, 13:48 (GMT)
adaptive_cloth: Mesh: get_checked_other_vert()
July 7, 2021, 13:48 (GMT)
adaptive_cloth: Mesh: get_checked_node_of_vert()
July 7, 2021, 13:47 (GMT)
adaptive_cloth: Mesh: get_checked_verts_of_edge()
July 7, 2021, 13:45 (GMT)
adaptive_cloth: Mesh: get_checked_element()
July 7, 2021, 12:24 (GMT)
adaptive_cloth: fix: add_empty_interp_element() crash sometimes

Since the elements have a reference to the `Arena`, if the `Arena` changes in size, which can happen because of `add_empty_element()`, then the references can become invalid. Realloc can create memory space elsewhere and copy the contents, the references to the previous memory space are not updated which means references to the previous memory space are invalid.

There are three ways to fix this:
- Create a copy and work on the copy, this is inefficient
- Get a reference to that element again, this is efficient but may not be possible always
- Don't use the reference after an operation that can lead to the invalidation of the reference, this is the most efficient way but may not be possible always

Decided to go with the third way in this case.

Side note: Having a borrow checker completely eliminates such problems. Rust should be the way forward.
July 7, 2021, 12:22 (GMT)
adaptive_cloth: Face: add has_vert_index(), has_edge()
July 7, 2021, 12:20 (GMT)
adaptive_cloth: Edge: make has_vert() const, add get_verts()
July 7, 2021, 12:10 (GMT)
bli: generational_arena: fix: begin() points to `EntryNoExist`

When the first element of `Arena::data` is `EntryNoExist`, must iterate over the vector until the first `EntryExist` is found.

For `Arena::end()` this shouldn't be necessary because it should point to the last element + 1 anyway, so the `operator*` on this is meaningless.
July 5, 2021, 15:54 (GMT)
adaptive_cloth: Mesh: delete elements
July 5, 2021, 15:54 (GMT)
adaptive_cloth: Mesh: add empty element with interpolation
July 5, 2021, 15:51 (GMT)
adaptive_cloth: Mesh: get other vert when given edge and face indices
July 4, 2021, 12:16 (GMT)
adaptive_cloth: MeshDiff: initial
July 3, 2021, 14:59 (GMT)
adaptive_cloth: tests: Mesh to MeshIO, include only valid normals and uvs
July 3, 2021, 13:30 (GMT)
adaptive_cloth: tests: Mesh: write loose edges
July 3, 2021, 13:29 (GMT)
adaptive_cloth: Mesh: Write: support loose edges
July 3, 2021, 12:43 (GMT)
bli: generational_arena: fix: compile error when gtests not enabled
July 3, 2021, 09:33 (GMT)
adaptive_cloth: Mesh: support loose edges (read only)
July 2, 2021, 17:53 (GMT)
adaptive_cloth: tests: MeshIO: write DNA Mesh loose edges
July 2, 2021, 17:53 (GMT)
adaptive_cloth: MeshIO: support line indices for write to DNA Mesh
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021