Blender V4.3
slim::MatrixTransferChart Struct Reference

#include <slim_matrix_transfer.h>

Public Member Functions

 MatrixTransferChart ()
 
 MatrixTransferChart (MatrixTransferChart &&)
 
 MatrixTransferChart (const MatrixTransferChart &)=delete
 
MatrixTransferChartoperator= (const MatrixTransferChart &)=delete
 
 ~MatrixTransferChart ()
 
void try_slim_solve (int iter_num)
 
void parametrize_single_iteration ()
 
void transfer_uvs_blended (float blend)
 
void free_slim_data ()
 

Public Attributes

int verts_num = 0
 
int faces_num = 0
 
int pinned_vertices_num = 0
 
int boundary_vertices_num = 0
 
int edges_num = 0
 
bool succeeded = false
 
std::vector< doublev_matrices
 
std::vector< doubleuv_matrices
 
std::vector< doublepp_matrices
 
std::vector< doubleel_vectors
 
std::vector< floatw_vectors
 
std::vector< intf_matrices
 
std::vector< intp_matrices
 
std::vector< inte_matrices
 
std::vector< intb_vectors
 
SLIMDataPtr data
 

Detailed Description

MatrixTransferChart holds all information and data matrices to be transferred from Blender to SLIM.

Definition at line 24 of file slim_matrix_transfer.h.

Constructor & Destructor Documentation

◆ MatrixTransferChart() [1/3]

slim::MatrixTransferChart::MatrixTransferChart ( )
default

◆ MatrixTransferChart() [2/3]

slim::MatrixTransferChart::MatrixTransferChart ( MatrixTransferChart && )
default

◆ MatrixTransferChart() [3/3]

slim::MatrixTransferChart::MatrixTransferChart ( const MatrixTransferChart & )
delete

◆ ~MatrixTransferChart()

slim::MatrixTransferChart::~MatrixTransferChart ( )
default

Member Function Documentation

◆ free_slim_data()

void slim::MatrixTransferChart::free_slim_data ( )

◆ operator=()

MatrixTransferChart & slim::MatrixTransferChart::operator= ( const MatrixTransferChart & )
delete

◆ parametrize_single_iteration()

void slim::MatrixTransferChart::parametrize_single_iteration ( )

Executes a single iteration of SLIM, must follow a proper setup & initialization.

Definition at line 129 of file slim_parametrizer.cpp.

References try_slim_solve().

◆ transfer_uvs_blended()

void slim::MatrixTransferChart::transfer_uvs_blended ( float blend)

Called from the native part during each iteration of interactive parametrization. The blend parameter decides the linear blending between the original UV map and the one obtained from the accumulated SLIM iterations so far.

Definition at line 104 of file slim_parametrizer.cpp.

References blend, slim::correct_map_surface_area_if_necessary(), slim::get_interactive_result_blended_with_original(), succeeded, and slim::transfer_uvs_back_to_native_part().

◆ try_slim_solve()

void slim::MatrixTransferChart::try_slim_solve ( int iter_num)

Member Data Documentation

◆ b_vectors

std::vector<int> slim::MatrixTransferChart::b_vectors

Vertex indices of boundary vertices.

Definition at line 52 of file slim_matrix_transfer.h.

◆ boundary_vertices_num

int slim::MatrixTransferChart::boundary_vertices_num = 0

Definition at line 28 of file slim_matrix_transfer.h.

◆ data

◆ e_matrices

std::vector<int> slim::MatrixTransferChart::e_matrices

Vertex index tuples making up edges (matrix [edges_num x 2] in a linearized form).

Definition at line 50 of file slim_matrix_transfer.h.

◆ edges_num

int slim::MatrixTransferChart::edges_num = 0

Definition at line 29 of file slim_matrix_transfer.h.

◆ el_vectors

std::vector<double> slim::MatrixTransferChart::el_vectors

Edge lengths.

Definition at line 41 of file slim_matrix_transfer.h.

◆ f_matrices

std::vector<int> slim::MatrixTransferChart::f_matrices

Vertex index triplets making up faces (matrix [faces_num x 3] in a linearized form).

Definition at line 46 of file slim_matrix_transfer.h.

◆ faces_num

int slim::MatrixTransferChart::faces_num = 0

Definition at line 26 of file slim_matrix_transfer.h.

◆ p_matrices

std::vector<int> slim::MatrixTransferChart::p_matrices

Indices of pinned vertices.

Definition at line 48 of file slim_matrix_transfer.h.

◆ pinned_vertices_num

int slim::MatrixTransferChart::pinned_vertices_num = 0

Definition at line 27 of file slim_matrix_transfer.h.

Referenced by slim::MatrixTransfer::setup_slim_data().

◆ pp_matrices

std::vector<double> slim::MatrixTransferChart::pp_matrices

Positions of pinned vertices (matrix [pinned_vertices_num x 2] in a linearized form).

Definition at line 39 of file slim_matrix_transfer.h.

◆ succeeded

bool slim::MatrixTransferChart::succeeded = false

◆ uv_matrices

std::vector<double> slim::MatrixTransferChart::uv_matrices

UV positions of vertices (matrix [verts_num x 2] in a linearized form).

Definition at line 37 of file slim_matrix_transfer.h.

Referenced by slim::transfer_uvs_back_to_native_part().

◆ v_matrices

std::vector<double> slim::MatrixTransferChart::v_matrices

Vertex positions (matrix [verts_num x 3] in a linearized form).

Definition at line 35 of file slim_matrix_transfer.h.

◆ verts_num

int slim::MatrixTransferChart::verts_num = 0

Definition at line 25 of file slim_matrix_transfer.h.

Referenced by slim::transfer_uvs_back_to_native_part().

◆ w_vectors

std::vector<float> slim::MatrixTransferChart::w_vectors

Weights per vertex.

Definition at line 43 of file slim_matrix_transfer.h.


The documentation for this struct was generated from the following files: