[Bf-blender-cvs] [25cfaf2e5c8] soc-2021-adaptive-cloth: adaptive_cloth: AdaptiveMesh: is edge splittable
ishbosamiya
noreply at git.blender.org
Mon Aug 30 09:15:09 CEST 2021
Commit: 25cfaf2e5c85af14542cc64e5ef2fd420e2fe0da
Author: ishbosamiya
Date: Sat Aug 28 16:28:59 2021 +0530
Branches: soc-2021-adaptive-cloth
https://developer.blender.org/rB25cfaf2e5c85af14542cc64e5ef2fd420e2fe0da
adaptive_cloth: AdaptiveMesh: is edge splittable
Abstract out the edge splittablity check to a function.
===================================================================
M source/blender/blenkernel/intern/cloth_remesh.cc
===================================================================
diff --git a/source/blender/blenkernel/intern/cloth_remesh.cc b/source/blender/blenkernel/intern/cloth_remesh.cc
index 11a1a5a4366..3a715497c6d 100644
--- a/source/blender/blenkernel/intern/cloth_remesh.cc
+++ b/source/blender/blenkernel/intern/cloth_remesh.cc
@@ -596,6 +596,18 @@ class AdaptiveMesh : public Mesh<NodeData<END>, VertData, EdgeData, internal::Em
}
private:
+ bool is_edge_splittable_adaptivemesh(const AdaptiveEdge &edge) const
+ {
+ /* auto [v1, v2] = this->get_checked_verts_of_edge(edge, false); */
+ /* if (v1.get_checked_extra_data().get_flag() & VERT_SELECTED_FOR_SPLIT || */
+ /* v2.get_checked_extra_data().get_flag() & VERT_SELECTED_FOR_SPLIT) { */
+ /* continue; */
+ /* } */
+ const auto &edge_data = edge.get_checked_extra_data();
+ auto edge_size = edge_data.get_size();
+ return edge_size > 1.0;
+ }
+
/**
* Gets the maximal independent set of splittable edge indices in
* the `AdaptiveMesh`.
@@ -638,14 +650,8 @@ class AdaptiveMesh : public Mesh<NodeData<END>, VertData, EdgeData, internal::Em
/* It is assumed that the edges sizes have been computed earlier
* and stored in the extra data of the edges */
for (const auto &edge : this->get_edges()) {
- auto [v1, v2] = this->get_checked_verts_of_edge(edge, false);
- /* if (v1.get_checked_extra_data().get_flag() & VERT_SELECTED_FOR_SPLIT || */
- /* v2.get_checked_extra_data().get_flag() & VERT_SELECTED_FOR_SPLIT) { */
- /* continue; */
- /* } */
- const auto &edge_data = edge.get_checked_extra_data();
- auto edge_size = edge_data.get_size();
- if (edge_size > 1.0) {
+ if (this->is_edge_splittable_adaptivemesh(edge)) {
+ auto [v1, v2] = this->get_checked_verts_of_edge(edge, false);
splittable_edge_indices.append(edge.get_self_index());
auto &v1_data = v1.get_checked_extra_data_mut();
auto &v1_flag = v1_data.get_flag_mut();
More information about the Bf-blender-cvs
mailing list