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 |
|