Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/intern
diff options
context:
space:
mode:
authorAurel Gruber <aurel.gruber@infix.ch>2017-04-13 17:33:11 +0300
committerAurel Gruber <aurel.gruber@infix.ch>2017-04-13 17:33:11 +0300
commitae7b67902191abb7e5aefbdcc20b84f050ec2b08 (patch)
treed108dffa7d2283f189c74d787dc0bf2f1d035578 /intern
parent3cae116704f35dc7b73480057761538a6a612ea6 (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.cpp10
-rw-r--r--intern/slim/intern/slim_parametrizer.cpp31
-rw-r--r--intern/slim/intern/slim_parametrizer.h5
-rw-r--r--intern/slim/slim_capi.h7
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);