Added further python bindings, extended py_vector slightly
This commit is contained in:
@@ -150,6 +150,21 @@ const char *__doc_igl_jet = R"igl_Qu8mg5v7(// JET like MATLAB's jet
|
||||
// r red value
|
||||
// g green value
|
||||
// b blue value)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_cat = R"igl_Qu8mg5v7(// Perform concatenation of a two matrices along a single dimension
|
||||
// If dim == 1, then C = [A;B]. If dim == 2 then C = [A B]
|
||||
//
|
||||
// Template:
|
||||
// Scalar scalar data type for sparse matrices like double or int
|
||||
// Mat matrix type for all matrices (e.g. MatrixXd, SparseMatrix)
|
||||
// MatC matrix type for ouput matrix (e.g. MatrixXd) needs to support
|
||||
// resize
|
||||
// Inputs:
|
||||
// A first input matrix
|
||||
// B second input matrix
|
||||
// dim dimension along which to concatenate, 0 or 1
|
||||
// Outputs:
|
||||
// C output matrix
|
||||
// )igl_Qu8mg5v7";
|
||||
const char *__doc_igl_eigs = R"igl_Qu8mg5v7(See eigs for the documentation.)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_per_corner_normals = R"igl_Qu8mg5v7(// Compute vertex normals via vertex position list, face list
|
||||
// Inputs:
|
||||
@@ -198,6 +213,29 @@ const char *__doc_igl_colon = R"igl_Qu8mg5v7(// Colon operator like matlab's col
|
||||
// than hi, vice versa if hi<low
|
||||
// Output:
|
||||
// I list of values from low to hi with step size step)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_fit_rotations = R"igl_Qu8mg5v7(// Known issues: This seems to be implemented in Eigen/Geometry:
|
||||
// Eigen::umeyama
|
||||
//
|
||||
// FIT_ROTATIONS Given an input mesh and new positions find rotations for
|
||||
// every covariance matrix in a stack of covariance matrices
|
||||
//
|
||||
// Inputs:
|
||||
// S nr*dim by dim stack of covariance matrices
|
||||
// single_precision whether to use single precision (faster)
|
||||
// Outputs:
|
||||
// R dim by dim * nr list of rotations
|
||||
//)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_fit_rotations_planar = R"igl_Qu8mg5v7(// FIT_ROTATIONS Given an input mesh and new positions find 2D rotations for
|
||||
// every vertex that best maps its one ring to the new one ring
|
||||
//
|
||||
// Inputs:
|
||||
// S nr*dim by dim stack of covariance matrices, third column and every
|
||||
// third row will be ignored
|
||||
// Outputs:
|
||||
// R dim by dim * nr list of rotations, third row and third column of each
|
||||
// rotation will just be identity
|
||||
//)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_fit_rotations_SSE = R"igl_Qu8mg5v7(See fit_rotations_SSE for the documentation.)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_rotate_vectors = R"igl_Qu8mg5v7(// Rotate the vectors V by A radiants on the tangent plane spanned by B1 and
|
||||
// B2
|
||||
//
|
||||
@@ -245,6 +283,17 @@ const char *__doc_igl_avg_edge_length = R"igl_Qu8mg5v7(// Compute the average ed
|
||||
// l average edge length
|
||||
//
|
||||
// See also: adjacency_matrix)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_barycentric_coordinates = R"igl_Qu8mg5v7(// Compute barycentric coordinates in a tet
|
||||
//
|
||||
// Inputs:
|
||||
// P #P by 3 Query points in 3d
|
||||
// A #P by 3 Tet corners in 3d
|
||||
// B #P by 3 Tet corners in 3d
|
||||
// C #P by 3 Tet corners in 3d
|
||||
// D #P by 3 Tet corners in 3d
|
||||
// Outputs:
|
||||
// L #P by 4 list of barycentric coordinates
|
||||
// )igl_Qu8mg5v7";
|
||||
const char *__doc_igl_lscm = R"igl_Qu8mg5v7(// Compute a Least-squares conformal map parametrization (equivalently
|
||||
// derived in "Intrinsic Parameterizations of Surface Meshes" [Desbrun et al.
|
||||
// 2002] and "Least Squares Conformal Maps for Automatic Texture Atlas
|
||||
@@ -273,6 +322,41 @@ const char *__doc_igl_find_cross_field_singularities = R"igl_Qu8mg5v7(// Inputs:
|
||||
// isSingularity #V by 1 boolean eigen Vector indicating the presence of a singularity on a vertex
|
||||
// singularityIndex #V by 1 integer eigen Vector containing the singularity indices
|
||||
//)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_upsample = R"igl_Qu8mg5v7(// Subdivide a mesh without moving vertices: loop subdivision but odd
|
||||
// vertices stay put and even vertices are just edge midpoints
|
||||
//
|
||||
// Templates:
|
||||
// MatV matrix for vertex positions, e.g. MatrixXd
|
||||
// MatF matrix for vertex positions, e.g. MatrixXi
|
||||
// Inputs:
|
||||
// V #V by dim mesh vertices
|
||||
// F #F by 3 mesh triangles
|
||||
// Outputs:
|
||||
// NV new vertex positions, V is guaranteed to be at top
|
||||
// NF new list of face indices
|
||||
//
|
||||
// NOTE: V should not be the same as NV,
|
||||
// NOTE: F should not be the same as NF, use other proto
|
||||
//
|
||||
// Known issues:
|
||||
// - assumes (V,F) is edge-manifold.)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_point_mesh_squared_distance = R"igl_Qu8mg5v7(// Compute distances from a set of points P to a triangle mesh (V,F)
|
||||
//
|
||||
// Inputs:
|
||||
// P #P by 3 list of query point positions
|
||||
// V #V by 3 list of vertex positions
|
||||
// Ele #Ele by (3|2|1) list of (triangle|edge|point) indices
|
||||
// Outputs:
|
||||
// sqrD #P list of smallest squared distances
|
||||
// I #P list of primitive indices corresponding to smallest distances
|
||||
// C #P by 3 list of closest points
|
||||
//
|
||||
// Known bugs: This only computes distances to given primitivess. So
|
||||
// unreferenced vertices are ignored. However, degenerate primitives are
|
||||
// handled correctly: triangle [1 2 2] is treated as a segment [1 2], and
|
||||
// triangle [1 1 1] is treated as a point. So one _could_ add extra
|
||||
// combinatorially degenerate rows to Ele for all unreferenced vertices to
|
||||
// also get distances to points.)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_parula = R"igl_Qu8mg5v7(// PARULA like MATLAB's parula
|
||||
//
|
||||
// Inputs:
|
||||
@@ -361,6 +445,27 @@ const char *__doc_igl_active_set = R"igl_Qu8mg5v7(// Known Bugs: rows of [Aeq;Ai
|
||||
// Benchmark: For a harmonic solve on a mesh with 325K facets, matlab 2.2
|
||||
// secs, igl/min_quad_with_fixed.h 7.1 secs
|
||||
//)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_per_edge_normals = R"igl_Qu8mg5v7(// Compute face normals via vertex position list, face list
|
||||
// Inputs:
|
||||
// V #V by 3 eigen Matrix of mesh vertex 3D positions
|
||||
// F #F by 3 eigen Matrix of face (triangle) indices
|
||||
// weight weighting type
|
||||
// FN #F by 3 matrix of 3D face normals per face
|
||||
// Output:
|
||||
// N #2 by 3 matrix of mesh edge 3D normals per row
|
||||
// E #E by 2 matrix of edge indices per row
|
||||
// EMAP #E by 1 matrix of indices from all edges to E
|
||||
//)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_covariance_scatter_matrix = R"igl_Qu8mg5v7(// Construct the covariance scatter matrix for a given arap energy
|
||||
// Inputs:
|
||||
// V #V by Vdim list of initial domain positions
|
||||
// F #F by 3 list of triangle indices into V
|
||||
// energy ARAPEnergyType enum value defining which energy is being used.
|
||||
// See ARAPEnergyType.h for valid options and explanations.
|
||||
// Outputs:
|
||||
// CSM dim*#V/#F by dim*#V sparse matrix containing special laplacians along
|
||||
// the diagonal so that when multiplied by V gives covariance matrix
|
||||
// elements, can be used to speed up covariance matrix computation)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_boundary_facets = R"igl_Qu8mg5v7(// BOUNDARY_FACETS Determine boundary faces (edges) of tetrahedra (triangles)
|
||||
// stored in T (analogous to qptoolbox's `outline` and `boundary_faces`).
|
||||
//
|
||||
@@ -385,6 +490,27 @@ const char *__doc_igl_compute_frame_field_bisectors = R"igl_Qu8mg5v7(// Compute
|
||||
// BIS1 #F by 3 eigen Matrix of the first per face frame field bisector
|
||||
// BIS2 #F by 3 eigen Matrix of the second per face frame field bisector
|
||||
//)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_edge_lengths = R"igl_Qu8mg5v7(// Constructs a list of lengths of edges opposite each index in a face
|
||||
// (triangle/tet) list
|
||||
//
|
||||
// Templates:
|
||||
// DerivedV derived from vertex positions matrix type: i.e. MatrixXd
|
||||
// DerivedF derived from face indices matrix type: i.e. MatrixXi
|
||||
// DerivedL derived from edge lengths matrix type: i.e. MatrixXd
|
||||
// Inputs:
|
||||
// V eigen matrix #V by 3
|
||||
// F #F by 2 list of mesh edges
|
||||
// or
|
||||
// F #F by 3 list of mesh faces (must be triangles)
|
||||
// or
|
||||
// T #T by 4 list of mesh elements (must be tets)
|
||||
// Outputs:
|
||||
// L #F by {1|3|6} list of edge lengths
|
||||
// for edges, column of lengths
|
||||
// for triangles, columns correspond to edges [1,2],[2,0],[0,1]
|
||||
// for tets, columns correspond to edges
|
||||
// [3 0],[3 1],[3 2],[1 2],[2 0],[0 1]
|
||||
//)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_readOBJ = R"igl_Qu8mg5v7(// Read a mesh from an ascii obj file, filling in vertex positions, normals
|
||||
// and texture coordinates. Mesh may have faces of any number of degree
|
||||
//
|
||||
@@ -487,6 +613,18 @@ const char *__doc_igl_min_quad_with_fixed_solve = R"igl_Qu8mg5v7(// Solves a sys
|
||||
// sol #unknowns+#lagrange by cols solution to linear system
|
||||
// Returns true on success, false on error)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_min_quad_with_fixed = R"igl_Qu8mg5v7(See min_quad_with_fixed for the documentation.)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_writeMESH = R"igl_Qu8mg5v7(// save a tetrahedral volume mesh to a .mesh file
|
||||
//
|
||||
// Templates:
|
||||
// Scalar type for positions and vectors (will be cast as double)
|
||||
// Index type for indices (will be cast to int)
|
||||
// Input:
|
||||
// mesh_file_name path of .mesh file
|
||||
// V double matrix of vertex positions #V by 3
|
||||
// T #T list of tet indices into vertex positions
|
||||
// F #F list of face indices into vertex positions
|
||||
//
|
||||
// Known bugs: Holes and regions are not supported)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_unique = R"igl_Qu8mg5v7(// Act like matlab's [C,IA,IC] = unique(X)
|
||||
//
|
||||
// Templates:
|
||||
@@ -550,6 +688,23 @@ const char *__doc_igl_slice_into = R"igl_Qu8mg5v7(// Act like the matlab Y(row_i
|
||||
// Y ym by yn lhs matrix
|
||||
// Output:
|
||||
// Y ym by yn lhs matrix, same as input but Y(R,C) = X)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_slice_tets = R"igl_Qu8mg5v7(// SLICE_TETS Slice through a tet mesh (V,T) along a given plane (via its
|
||||
// implicit equation).
|
||||
//
|
||||
// Inputs:
|
||||
// V #V by 3 list of tet mesh vertices
|
||||
// T #T by 4 list of tet indices into V
|
||||
// plane list of 4 coefficients in the plane equation: [x y z 1]'*plane = 0
|
||||
// Optional:
|
||||
// 'Manifold' followed by whether to stitch together triangles into a
|
||||
// manifold mesh {true}: results in more compact U but slightly slower.
|
||||
// Outputs:
|
||||
// U #U by 3 list of triangle mesh vertices along slice
|
||||
// G #G by 3 list of triangles indices into U
|
||||
// J #G list of indices into T revealing from which tet each faces comes
|
||||
// BC #U by #V list of barycentric coordinates (or more generally: linear
|
||||
// interpolation coordinates) so that U = BC*V
|
||||
// )igl_Qu8mg5v7";
|
||||
const char *__doc_igl_n_polyvector = R"igl_Qu8mg5v7(// Inputs:
|
||||
// v0, v1 the two #3 by 1 vectors
|
||||
// normalized boolean, if false, then the vectors are normalized prior to the calculation
|
||||
@@ -577,6 +732,19 @@ const char *__doc_igl_boundary_loop = R"igl_Qu8mg5v7(// Compute list of ordered
|
||||
// Outputs:
|
||||
// L list of loops where L[i] = ordered list of boundary vertices in loop i
|
||||
//)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_polar_svd = R"igl_Qu8mg5v7(// Computes the polar decomposition (R,T) of a matrix A using SVD singular
|
||||
// value decomposition
|
||||
//
|
||||
// Inputs:
|
||||
// A 3 by 3 matrix to be decomposed
|
||||
// Outputs:
|
||||
// R 3 by 3 rotation matrix part of decomposition (**always rotataion**)
|
||||
// T 3 by 3 stretch matrix part of decomposition
|
||||
// U 3 by 3 left-singular vectors
|
||||
// S 3 by 1 singular values
|
||||
// V 3 by 3 right-singular vectors
|
||||
//
|
||||
//)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_comb_cross_field = R"igl_Qu8mg5v7(// Inputs:
|
||||
// V #V by 3 eigen Matrix of mesh vertex 3D positions
|
||||
// F #F by 4 eigen Matrix of face (quad) indices
|
||||
@@ -592,6 +760,20 @@ const char *__doc_igl_invert_diag = R"igl_Qu8mg5v7(// Templates:
|
||||
// X an m by n sparse matrix
|
||||
// Outputs:
|
||||
// Y an m by n sparse matrix)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_readMESH = R"igl_Qu8mg5v7(// load a tetrahedral volume mesh from a .mesh file
|
||||
//
|
||||
// Templates:
|
||||
// Scalar type for positions and vectors (will be read as double and cast
|
||||
// to Scalar)
|
||||
// Index type for indices (will be read as int and cast to Index)
|
||||
// Input:
|
||||
// mesh_file_name path of .mesh file
|
||||
// Outputs:
|
||||
// V double matrix of vertex positions #V by 3
|
||||
// T #T list of tet indices into vertex positions
|
||||
// F #F list of face indices into vertex positions
|
||||
//
|
||||
// Known bugs: Holes and regions are not supported)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_copyleft_comiso_miq = R"igl_Qu8mg5v7(// Inputs:
|
||||
// V #V by 3 list of mesh vertex 3D positions
|
||||
// F #F by 3 list of faces indices in V
|
||||
|
||||
Reference in New Issue
Block a user