diff options
author | Aurel Gruber <aurel.gruber@infix.ch> | 2017-04-13 17:33:11 +0300 |
---|---|---|
committer | Aurel Gruber <aurel.gruber@infix.ch> | 2017-04-13 17:33:11 +0300 |
commit | ae7b67902191abb7e5aefbdcc20b84f050ec2b08 (patch) | |
tree | d108dffa7d2283f189c74d787dc0bf2f1d035578 /intern | |
parent | 3cae116704f35dc7b73480057761538a6a612ea6 (diff) |
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.
Diffstat (limited to 'intern')
-rw-r--r-- | intern/slim/intern/slim_capi.cpp | 10 | ||||
-rw-r--r-- | intern/slim/intern/slim_parametrizer.cpp | 31 | ||||
-rw-r--r-- | intern/slim/intern/slim_parametrizer.h | 5 | ||||
-rw-r--r-- | intern/slim/slim_capi.h | 7 |
4 files changed, 3 insertions, 50 deletions
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); |