September 1, 2021, 15:01 (GMT)
adaptive_cloth: fix: Mesh: collapse edge: n2 not updated for v1
A simple solution that is extremely difficult to debug. This
particular part of the collapse edge function is run rarely and to
make this particular bug even harder to find is that only a subsequent
operation will show any signs of a problem.
One way to trigger this bug is to static remesh Suzanne (Blender
monkey) at 0.005 or lower minimum size. This leads to a crash due to a
bad optional access of a node.
The vert refers to the node but the node doesn't refer to the vert. So
once this sort of situation is created, when that vert's nodes need to
be used, it leads to a bad optional access.
Such a simple fix :)
September 1, 2021, 09:26 (GMT)
adaptive_cloth: squash unused parameters warnings in release mode
All unused parameter warnings in BKE_cloth_remesh.hh and
cloth_remesh.cc have been fixed either by adding a #ifndef NDEBUG
directive or by changing the code slightly.
September 1, 2021, 08:20 (GMT)
adaptive_cloth: AdaptiveMesh: verts of new sewing edge as preserve
Newly created sewing edges's verts should also be marked as preserve.
August 31, 2021, 15:47 (GMT)
adaptive_cloth: AdaptiveMesh: force split for sewing
Option to split the opposite edge even if it does not meet the size
criterion, with the option, it ensures that no sewing edge is missed
when an edge is split (it can be missed if the opposite edge doesn't
meet the size criterion).
August 31, 2021, 15:02 (GMT)
adaptive_cloth: AdaptiveMesh: mark sewing edge verts as preserve
Mark all verts attached to sewing edge(s) as preserve, this ensures
that no sewing edge(s) are removed which would otherwise lead to
results are not in line with what the artist would want.
August 31, 2021, 13:41 (GMT)
adaptive_cloth: AdaptiveMesh: ensure edge between sewing edges
While trying to create the sewing edges, ensure that the vert in
question is between 2 or more edges that are between sewing edges.
Also ensure that the opposite is between sewing edges.
August 30, 2021, 12:38 (GMT)
adaptive_cloth: AdaptiveMesh: no need to add flag after split edge
Since split edge triangulate already handles copying the extra data,
there is no need to try to add the flag `EDGE_BETWEEN_SEWING_EDGES` to
the newly split edges.
August 30, 2021, 12:36 (GMT)
adaptive_cloth: Mesh: split edge: option to copy extra data
An extra option to copy to the extra data from the edge that is split
to the edges that are formed due to the split. This does not include
the other edges added for triangulation purposes.
August 29, 2021, 14:52 (GMT)
adaptive_cloth: AdaptiveMesh: setting EdgeData flags after split
Edges that had EDGE_BETWEEN_SEWING_EDGES when split, the new edges
should also be EDGE_BETWEEN_SEWING_EDGES.
August 29, 2021, 14:49 (GMT)
adaptive_cloth: AdaptiveMesh: mark edges between sewing edges
Add a new flag for EdgeData that stores if the edge is between sewing
edges or not.
A function that marks all the edges that between sewing edges.
Call this function in the initialization of the static remeshing if
sewing is enabled.
August 28, 2021, 12:29 (GMT)
adaptive_cloth: AdaptiveMesh: sewing: dump file after adding edge
Dump the serialized Mesh after adding the loose (sewing) edge.
August 28, 2021, 12:17 (GMT)
adaptive_cloth: AdaptiveMesh: do not split a loose edge
August 28, 2021, 12:00 (GMT)
adaptive_cloth: AdaptiveMesh: sewing: add the sewing edge if needed
If the opposite edge still exists and it can be split, add a sewing
edge between `vert` and the newly created vert.
August 28, 2021, 11:58 (GMT)
adaptive_cloth: AdaptiveMesh: split edge: verts added during split
Split edge now appends the flip edges mesh diff to the split edge mesh
diff and returns this complete mesh diff and the verts that were added
during split operation.
August 28, 2021, 11:02 (GMT)
adaptive_cloth: AdaptiveMesh: flip edges: return complete MeshDiff
Return a complete MeshDiff of all the operations done in flip edges by
appending the MeshDiff(s) after each operation.
August 28, 2021, 10:58 (GMT)
adaptive_cloth: AdaptiveMesh: is edge splittable
Abstract out the edge splittablity check to a function.
August 28, 2021, 10:52 (GMT)
adaptive_cloth: AdaptiveMesh: compute_info_element functions
AdaptiveMesh specific compute info for elements. This internally calls
the Mesh specific compute info to make function calls easier.
August 28, 2021, 10:39 (GMT)
adaptive_cloth: MeshDiff: append one MeshDiff to another
August 28, 2021, 10:37 (GMT)
adaptive_cloth: MeshDiff: remove elements that don't exist in mesh
It is possible to create a MeshDiff which is updated to remove a
certain element that was initially added. So the added element index
is no longer valid and should be removed.
This function removes elements from the `added_elements` lists that no
longer exist in the mesh.
August 28, 2021, 10:35 (GMT)
adaptive_cloth: MeshDiff: add elements
Functions to add elements to `added_element`.