[Bf-blender-cvs] [ae7b6790219] uv_unwrapping_slim_algorithm: SLIM: disallowing pins to move to places that the SLIM algorithm can't handle. Also, this simplifiey the way we transfer uv coords back to native part.

Aurel Gruber noreply at git.blender.org
Thu Apr 13 16:33:57 CEST 2017


Commit: ae7b67902191abb7e5aefbdcc20b84f050ec2b08
Author: Aurel Gruber
Date:   Thu Apr 13 16:33:11 2017 +0200
Branches: uv_unwrapping_slim_algorithm
https://developer.blender.org/rBae7b67902191abb7e5aefbdcc20b84f050ec2b08

SLIM: disallowing pins to move to places that the SLIM algorithm can't handle. Also, this simplifiey the way we transfer uv coords back to native part.

===================================================================

M	intern/slim/intern/slim_capi.cpp
M	intern/slim/intern/slim_parametrizer.cpp
M	intern/slim/intern/slim_parametrizer.h
M	intern/slim/slim_capi.h
M	source/blender/editors/uvedit/uvedit_parametrizer.c
M	source/tools

===================================================================

diff --git a/intern/slim/intern/slim_capi.cpp b/intern/slim/intern/slim_capi.cpp
index 59bf7ecfe1a..9baa9bfe199 100644
--- a/intern/slim/intern/slim_capi.cpp
+++ b/intern/slim/intern/slim_capi.cpp
@@ -40,22 +40,12 @@ using namespace igl;
 
 void SLIM_transfer_uvs_blended_live(SLIMMatrixTransfer *mt,
 									void* slim_data_ptr,
-									int n_pins,
-									int n_selected_pins,
-									int *selected_pins,
-									int *pinned_vertex_indices,
-									double *pinned_vertex_positions,
 									int uv_chart_index){
 
 	SLIMData* slim_data = (SLIMData*) slim_data_ptr;
 	areacomp::correctMapSurfaceAreaIfNecessary(slim_data);
 	transferUvsBackToNativePartLive(mt,
 									slim_data->V_o,
-									n_pins,
-									n_selected_pins,
-									selected_pins,
-									pinned_vertex_indices,
-									pinned_vertex_positions,
 									uv_chart_index);
 }
 
diff --git a/intern/slim/intern/slim_parametrizer.cpp b/intern/slim/intern/slim_parametrizer.cpp
index cb9693f0772..db848ecb744 100644
--- a/intern/slim/intern/slim_parametrizer.cpp
+++ b/intern/slim/intern/slim_parametrizer.cpp
@@ -54,40 +54,13 @@ using namespace Eigen;
 
 void transferUvsBackToNativePartLive(SLIMMatrixTransfer *mt,
 									 Eigen::MatrixXd &UV,
-									 int n_pins,
-									 int n_selected_pins,
-									 int *selected_pins_indices,
-									 int *pin_indices,
-									 double *pin_positions,
 									 int uvChartIndex){
-
 	double *uvCoordinateArray = mt->uv_matrices[uvChartIndex];
 	int numberOfVertices = mt->n_verts[uvChartIndex];
 
-	double u, v;
-
 	for (int i = 0; i < numberOfVertices; i++) {
-
-		while (*selected_pins_indices < i) {
-			++selected_pins_indices;
-		}
-
-		while (*pin_indices < i) {
-			++pin_indices;
-			pin_positions += 2;
-		}
-
-		if (*selected_pins_indices == i && *pin_indices == i) {
-			u = *(pin_positions++);
-			v = *(pin_positions++);
-			++pin_indices;
-		} else {
-			u = UV(i,0);
-			v = UV(i,1);
-		}
-
-		*(uvCoordinateArray++) = u;
-		*(uvCoordinateArray++) = v;
+		*(uvCoordinateArray++) = UV(i,0);
+		*(uvCoordinateArray++) = UV(i,1);
 	}
 }
 
diff --git a/intern/slim/intern/slim_parametrizer.h b/intern/slim/intern/slim_parametrizer.h
index 440f55aae07..885fb7143ee 100644
--- a/intern/slim/intern/slim_parametrizer.h
+++ b/intern/slim/intern/slim_parametrizer.h
@@ -47,11 +47,6 @@ SLIMData* setup_slim(SLIMMatrixTransfer *transferredData,
 						 bool skipInitialization);
 void transferUvsBackToNativePartLive(SLIMMatrixTransfer *mt,
 									 Eigen::MatrixXd &UV,
-									 int n_pins,
-									 int n_selected_pins,
-									 int *selected_pins,
-									 int *pinned_vertex_indices,
-									 double *pinned_vertex_positions,
 									 int uvChartIndex);
 void transferUvsBackToNativePart(SLIMMatrixTransfer *mt, Eigen::MatrixXd &UV, int uvChartIndex);
 void param_slim_single_iteration(SLIMData *slimData);
diff --git a/intern/slim/slim_capi.h b/intern/slim/slim_capi.h
index e7ccaaf9866..2a92eb5909c 100644
--- a/intern/slim/slim_capi.h
+++ b/intern/slim/slim_capi.h
@@ -36,12 +36,7 @@ extern "C" {
 
 void SLIM_parametrize(SLIMMatrixTransfer *mt, int n_iterations, bool are_border_vertices_pinned, bool skip_initialization);
 void SLIM_transfer_uvs_blended_live(SLIMMatrixTransfer *mt,
-										void* slim_data_ptr,
-										int n_pins,
-										int n_selected_pins,
-										int *selected_pins,
-										int *pinned_vertex_indices,
-										double *pinned_vertex_positions,
+									void* slim_data_ptr,
 									int uv_chart_index);
 void SLIM_transfer_uvs_blended(SLIMMatrixTransfer *mt, void *slim, int uv_chart_index, float blend);
 void SLIM_parametrize_single_iteration(void *slim);
diff --git a/source/blender/editors/uvedit/uvedit_parametrizer.c b/source/blender/editors/uvedit/uvedit_parametrizer.c
index 8d599a3a1e4..15891555398 100644
--- a/source/blender/editors/uvedit/uvedit_parametrizer.c
+++ b/source/blender/editors/uvedit/uvedit_parametrizer.c
@@ -4977,7 +4977,7 @@ void param_slim_solve_iteration(ParamHandle *handle)
 							  pinned_vertex_positions_2D,
 							  n_selected_pins,
 							  selected_pins);
-		SLIM_transfer_uvs_blended_live(mt, chart->u.slim.ptr, n_pins, n_selected_pins, selected_pins, pinned_vertex_indices, pinned_vertex_positions_2D, i);
+		SLIM_transfer_uvs_blended_live(mt, chart->u.slim.ptr, i);
 
 		MEM_freeN(selected_pins);
 		MEM_freeN(pinned_vertex_indices);
diff --git a/source/tools b/source/tools
index b11375e8906..917692e4622 160000
--- a/source/tools
+++ b/source/tools
@@ -1 +1 @@
-Subproject commit b11375e89061303401376f7aeae42ac2fd64692a
+Subproject commit 917692e4622064f0803362d65dc958c226d642ba




More information about the Bf-blender-cvs mailing list