Blender V5.0
geometry_data_retrieval.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#pragma once
10
11#include <Eigen/Dense>
12
13#include "slim.h"
15
16using namespace Eigen;
17
18namespace slim {
19
21 int columns_2 = 2;
22 int columns_3 = 3;
28
29 bool use_weights = false;
30 double weight_influence = 0.0;
31
32 /* All the following maps have to be declared as last members. */
38
43
47
49 GeometryData(const GeometryData &) = delete;
51
52 void construct_slim_data(SLIMData &slim_data,
53 bool skip_initialization,
54 int reflection_mode) const;
55
56 void retrieve_pinned_vertices(bool border_vertices_are_pinned);
57
58 private:
59 void set_geometry_data_matrices(SLIMData &slim_data) const;
60 bool has_valid_preinitialized_map() const;
61 bool can_initialization_be_skipped(bool skip_initialization) const;
62 void combine_matrices_of_pinned_and_boundary_vertices();
63 void initialize_if_needed(SLIMData &slim_data) const;
64 void initialize_uvs(SLIMData &slim_data) const;
65};
66
67} // namespace slim
void construct_slim_data(SLIMData &slim_data, bool skip_initialization, int reflection_mode) const
Map< VectorXi > explicitly_pinned_vertex_indices
Map< MatrixXi > edges_by_vertexindices
GeometryData & operator=(const GeometryData &)=delete
Map< VectorXi > boundary_vertex_indices
Map< MatrixXd > vertex_positions3d
void retrieve_pinned_vertices(bool border_vertices_are_pinned)
GeometryData(const GeometryData &)=delete
GeometryData(const MatrixTransfer &mt, MatrixTransferChart &chart)
Map< MatrixXi > faces_by_vertexindices
Map< VectorXf > weights_per_vertex
Map< Matrix< double, Dynamic, Dynamic, RowMajor > > positions_of_explicitly_pinned_vertices2d