+85
-69
@@ -88,27 +88,26 @@ const char *__doc_igl_barycentric_to_global = R"igl_Qu8mg5v7(// Converts barycen
|
||||
// bc: #Xx3 Barycentric coordinates, one row per point
|
||||
//
|
||||
// Output:
|
||||
// #X: #Xx3 3D coordinates of all points in bc
|
||||
// )igl_Qu8mg5v7";
|
||||
// #X: #Xx3 3D coordinates of all points in bc)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_bbw = R"igl_Qu8mg5v7(// Compute Bounded Biharmonic Weights on a given domain (V,Ele) with a given
|
||||
// set of boundary conditions
|
||||
//
|
||||
// Templates
|
||||
// DerivedV derived type of eigen matrix for V (e.g. MatrixXd)
|
||||
// DerivedF derived type of eigen matrix for F (e.g. MatrixXi)
|
||||
// Derivedb derived type of eigen matrix for b (e.g. VectorXi)
|
||||
// Derivedbc derived type of eigen matrix for bc (e.g. MatrixXd)
|
||||
// DerivedW derived type of eigen matrix for W (e.g. MatrixXd)
|
||||
// Inputs:
|
||||
// V #V by dim vertex positions
|
||||
// Ele #Elements by simplex-size list of element indices
|
||||
// b #b boundary indices into V
|
||||
// bc #b by #W list of boundary values
|
||||
// data object containing options, intial guess --> solution and results
|
||||
// Outputs:
|
||||
// W #V by #W list of *unnormalized* weights to normalize use
|
||||
// igl::normalize_row_sums(W,W);
|
||||
// Returns true on success, false on failure)igl_Qu8mg5v7";
|
||||
// set of boundary conditions
|
||||
//
|
||||
// Templates
|
||||
// DerivedV derived type of eigen matrix for V (e.g. MatrixXd)
|
||||
// DerivedF derived type of eigen matrix for F (e.g. MatrixXi)
|
||||
// Derivedb derived type of eigen matrix for b (e.g. VectorXi)
|
||||
// Derivedbc derived type of eigen matrix for bc (e.g. MatrixXd)
|
||||
// DerivedW derived type of eigen matrix for W (e.g. MatrixXd)
|
||||
// Inputs:
|
||||
// V #V by dim vertex positions
|
||||
// Ele #Elements by simplex-size list of element indices
|
||||
// b #b boundary indices into V
|
||||
// bc #b by #W list of boundary values
|
||||
// data object containing options, intial guess --> solution and results
|
||||
// Outputs:
|
||||
// W #V by #W list of *unnormalized* weights to normalize use
|
||||
// igl::normalize_row_sums(W,W);
|
||||
// Returns true on success, false on failure)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_boundary_conditions = R"igl_Qu8mg5v7(// Compute boundary conditions for automatic weights computation. This
|
||||
// function expects that the given mesh (V,Ele) has sufficient samples
|
||||
// (vertices) exactly at point handle locations and exactly along bone and
|
||||
@@ -128,7 +127,11 @@ const char *__doc_igl_boundary_conditions = R"igl_Qu8mg5v7(// Compute boundary c
|
||||
// (notice the #b != #weights in general because #b will include all the
|
||||
// intermediary samples along each bone, etc.. The ordering of the
|
||||
// weights corresponds to [P;BE]
|
||||
// Returns true if boundary conditions make sense)igl_Qu8mg5v7";
|
||||
// Returns false if boundary conditions are suspicious:
|
||||
// P and BE are empty
|
||||
// bc is empty
|
||||
// some column of bc doesn't have a 0 (assuming bc has >1 columns)
|
||||
// some column of bc doesn't have a 1 (assuming bc has >1 columns))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`).
|
||||
//
|
||||
@@ -161,7 +164,7 @@ const char *__doc_igl_cat = R"igl_Qu8mg5v7(// Perform concatenation of a two mat
|
||||
// Inputs:
|
||||
// A first input matrix
|
||||
// B second input matrix
|
||||
// dim dimension along which to concatenate, 0 or 1
|
||||
// dim dimension along which to concatenate, 1 or 2
|
||||
// Outputs:
|
||||
// C output matrix
|
||||
// )igl_Qu8mg5v7";
|
||||
@@ -394,9 +397,7 @@ const char *__doc_igl_cotmatrix = R"igl_Qu8mg5v7(// Constructs the cotangent sti
|
||||
// **minus** the sum of off-diagonal entries. The diagonal entries are
|
||||
// therefore in general negative and the matrix is **negative** semi-definite
|
||||
// (immediately, -L is **positive** semi-definite)
|
||||
//
|
||||
// Known bugs: off by 1e-16 on regular grid. I think its a problem of
|
||||
// arithmetic order in cotmatrix_entries.h: C(i,e) = (arithmetic)/dblA/4)igl_Qu8mg5v7";
|
||||
//)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
|
||||
@@ -514,14 +515,21 @@ const char *__doc_igl_edge_lengths = R"igl_Qu8mg5v7(// Constructs a list of leng
|
||||
// for tets, columns correspond to edges
|
||||
// [3 0],[3 1],[3 2],[1 2],[2 0],[0 1]
|
||||
//)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_edge_topology = R"igl_Qu8mg5v7(// Initialize Edges and their topological relations
|
||||
const char *__doc_igl_edge_topology = R"igl_Qu8mg5v7(// Initialize Edges and their topological relations (assumes an edge-manifold
|
||||
// mesh)
|
||||
//
|
||||
// Output:
|
||||
// EV : #Ex2, Stores the edge description as pair of indices to vertices
|
||||
// FE : #Fx3, Stores the Triangle-Edge relation
|
||||
// EF : #Ex2: Stores the Edge-Triangle relation
|
||||
//
|
||||
// TODO: This seems to be a duplicate of edge_flaps.h)igl_Qu8mg5v7";
|
||||
// TODO: This seems to be a inferior duplicate of edge_flaps.h:
|
||||
// - unused input parameter V
|
||||
// - roughly 2x slower than edge_flaps
|
||||
// - outputs less information: edge_flaps reveals corner opposite edge
|
||||
// - FE uses non-standard and ambiguous order: FE(f,c) is merely an edge
|
||||
// incident on corner c of face f. In contrast, edge_flaps's EMAP(f,c) reveals
|
||||
// the edge _opposite_ corner c of face f)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_eigs = R"igl_Qu8mg5v7(See eigs for the documentation.)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_embree_ambient_occlusion = R"igl_Qu8mg5v7(// Compute ambient occlusion per given point
|
||||
//
|
||||
@@ -533,23 +541,6 @@ const char *__doc_igl_embree_ambient_occlusion = R"igl_Qu8mg5v7(// Compute ambie
|
||||
// S #P list of ambient occlusion values between 1 (fully occluded) and
|
||||
// 0 (not occluded)
|
||||
//)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_embree_reorient_facets_raycast = R"igl_Qu8mg5v7(// Orient each component (identified by C) of a mesh (V,F) using ambient
|
||||
// occlusion such that the front side is less occluded than back side, as
|
||||
// described in "A Simple Method for Correcting Facet Orientations in
|
||||
// Polygon Meshes Based on Ray Casting" [Takayama et al. 2014].
|
||||
//
|
||||
// Inputs:
|
||||
// V #V by 3 list of vertex positions
|
||||
// F #F by 3 list of triangle indices
|
||||
// rays_total Total number of rays that will be shot
|
||||
// rays_minimum Minimum number of rays that each patch should receive
|
||||
// facet_wise Decision made for each face independently, no use of patches
|
||||
// (i.e., each face is treated as a patch)
|
||||
// use_parity Use parity mode
|
||||
// is_verbose Verbose output to cout
|
||||
// Outputs:
|
||||
// I #F list of whether face has been flipped
|
||||
// C #F list of patch ID (output of bfs_orient > manifold patches))igl_Qu8mg5v7";
|
||||
const char *__doc_igl_embree_line_mesh_intersection = R"igl_Qu8mg5v7(// Project the point cloud V_source onto the triangle mesh
|
||||
// V_target,F_target.
|
||||
// A ray is casted for every vertex in the direction specified by
|
||||
@@ -567,6 +558,23 @@ const char *__doc_igl_embree_line_mesh_intersection = R"igl_Qu8mg5v7(// Project
|
||||
// id b1 b2. id is the id of a face of the source mesh. b1 and b2 are
|
||||
// the barycentric coordinates wrt the first two edges of the triangle
|
||||
// To convert to standard global coordinates, see barycentric_to_global.h)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_embree_reorient_facets_raycast = R"igl_Qu8mg5v7(// Orient each component (identified by C) of a mesh (V,F) using ambient
|
||||
// occlusion such that the front side is less occluded than back side, as
|
||||
// described in "A Simple Method for Correcting Facet Orientations in
|
||||
// Polygon Meshes Based on Ray Casting" [Takayama et al. 2014].
|
||||
//
|
||||
// Inputs:
|
||||
// V #V by 3 list of vertex positions
|
||||
// F #F by 3 list of triangle indices
|
||||
// rays_total Total number of rays that will be shot
|
||||
// rays_minimum Minimum number of rays that each patch should receive
|
||||
// facet_wise Decision made for each face independently, no use of patches
|
||||
// (i.e., each face is treated as a patch)
|
||||
// use_parity Use parity mode
|
||||
// is_verbose Verbose output to cout
|
||||
// Outputs:
|
||||
// I #F list of whether face has been flipped
|
||||
// C #F list of patch ID (output of bfs_orient > manifold patches))igl_Qu8mg5v7";
|
||||
const char *__doc_igl_find_cross_field_singularities = R"igl_Qu8mg5v7(// Inputs:
|
||||
// V #V by 3 eigen Matrix of mesh vertex 3D positions
|
||||
// F #F by 3 eigen Matrix of face (quad) indices
|
||||
@@ -643,7 +651,7 @@ const char *__doc_igl_get_seconds = R"igl_Qu8mg5v7(// Return the current time in
|
||||
// cout<<"part 2: "<<tictoc()<<endl;
|
||||
// ... // etc)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_grad = R"igl_Qu8mg5v7(// Gradient of a scalar function defined on piecewise linear elements (mesh)
|
||||
// is constant on each triangle i,j,k:
|
||||
// is constant on each triangle [tetrahedron] i,j,k:
|
||||
// grad(Xijk) = (Xj-Xi) * (Vi - Vk)^R90 / 2A + (Xk-Xi) * (Vj - Vi)^R90 / 2A
|
||||
// where Xi is the scalar value at vertex i, Vi is the 3D position of vertex
|
||||
// i, and A is the area of triangle (i,j,k). ^R90 represent a rotation of
|
||||
@@ -682,6 +690,23 @@ const char *__doc_igl_internal_angles = R"igl_Qu8mg5v7(// Compute internal angle
|
||||
//
|
||||
// Known Issues:
|
||||
// if poly-size ≠ 3 then dim must equal 3.)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_internal_angles_using_squared_edge_lengths = R"igl_Qu8mg5v7(// Inputs:
|
||||
// L_sq #F by 3 list of squared edge lengths
|
||||
// Output:
|
||||
// K #F by poly-size eigen Matrix of internal angles
|
||||
// for triangles, columns correspond to edges [1,2],[2,0],[0,1]
|
||||
//
|
||||
// Note:
|
||||
// Usage of internal_angles_using_squared_edge_lengths is preferred to internal_angles_using_squared_edge_lengths)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_internal_angles_using_edge_lengths = R"igl_Qu8mg5v7(// Inputs:
|
||||
// L #F by 3 list of edge lengths
|
||||
// Output:
|
||||
// K #F by poly-size eigen Matrix of internal angles
|
||||
// for triangles, columns correspond to edges [1,2],[2,0],[0,1]
|
||||
//
|
||||
// Note:
|
||||
// Usage of internal_angles_using_squared_edge_lengths is preferred to internal_angles_using_squared_edge_lengths
|
||||
// This function is deprecated and probably will be removed in future versions)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_invert_diag = R"igl_Qu8mg5v7(// Templates:
|
||||
// T should be a eigen sparse matrix primitive type like int or double
|
||||
// Inputs:
|
||||
@@ -1050,7 +1075,7 @@ const char *__doc_igl_readOBJ = R"igl_Qu8mg5v7(// Read a mesh from an ascii obj
|
||||
// FTC #F list of face indices into vertex texture coordinates
|
||||
// FN #F list of face indices into vertex normals
|
||||
// Returns true on success, false on errors)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_readOFF = R"igl_Qu8mg5v7(// Read a mesh from an ascii obj file, filling in vertex positions, normals
|
||||
const char *__doc_igl_readOFF = R"igl_Qu8mg5v7(// Read a mesh from an ascii OFF file, filling in vertex positions, normals
|
||||
// and texture coordinates. Mesh may have faces of any number of degree
|
||||
//
|
||||
// Templates:
|
||||
@@ -1062,10 +1087,8 @@ const char *__doc_igl_readOFF = R"igl_Qu8mg5v7(// Read a mesh from an ascii obj
|
||||
// Outputs:
|
||||
// V double matrix of vertex positions #V by 3
|
||||
// F #F list of face indices into vertex positions
|
||||
// TC double matrix of texture coordinats #TC by 2
|
||||
// FTC #F list of face indices into vertex texture coordinates
|
||||
// N double matrix of corner normals #N by 3
|
||||
// FN #F list of face indices into vertex normals
|
||||
// N list of vertex normals #V by 3
|
||||
// C list of rgb color values per vertex #V by 3
|
||||
// Returns true on success, false on errors)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_readTGF = R"igl_Qu8mg5v7(// READTGF
|
||||
//
|
||||
@@ -1279,8 +1302,6 @@ const char *__doc_igl_triangle_triangulate = R"igl_Qu8mg5v7(// Triangulate the i
|
||||
// Outputs:
|
||||
// V2 #V2 by 2 coordinates of the vertives of the generated triangulation
|
||||
// F2 #F2 by 3 list of indices forming the faces of the generated triangulation
|
||||
//
|
||||
// TODO: expose the option to prevent Steiner points on the boundary
|
||||
//)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_unique = R"igl_Qu8mg5v7(// Act like matlab's [C,IA,IC] = unique(X)
|
||||
//
|
||||
@@ -1319,24 +1340,16 @@ const char *__doc_igl_unproject_onto_mesh = R"igl_Qu8mg5v7(// Unproject a screen
|
||||
// fid id of the first face hit
|
||||
// bc barycentric coordinates of hit
|
||||
// Returns true if there's a hit)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
|
||||
const char *__doc_igl_upsample = R"igl_Qu8mg5v7(// Subdivide without moving vertices: Given the triangle mesh [V, F],
|
||||
// where n_verts = V.rows(), computes newV and a sparse matrix S s.t.
|
||||
// [newV, newF] is the subdivided mesh where newV = S*V.
|
||||
//
|
||||
// Inputs:
|
||||
// V #V by dim mesh vertices
|
||||
// F #F by 3 mesh triangles
|
||||
// n_verts an integer (number of mesh vertices)
|
||||
// F an m by 3 matrix of integers of triangle faces
|
||||
// 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";
|
||||
// S a sparse matrix (will become the subdivision matrix)
|
||||
// newF a matrix containing the new faces)igl_Qu8mg5v7";
|
||||
const char *__doc_igl_winding_number = R"igl_Qu8mg5v7(// WINDING_NUMBER Compute the sum of solid angles of a triangle/tetrahedron
|
||||
// described by points (vectors) V
|
||||
//
|
||||
@@ -1393,4 +1406,7 @@ const char *__doc_igl_writeOBJ = R"igl_Qu8mg5v7(// Write a mesh in an ascii obj
|
||||
// FN #F by 3|4 corner normal indices into CN
|
||||
// TC #TC by 2|3 texture coordinates
|
||||
// FTC #F by 3|4 corner texture coord indices into TC
|
||||
// Returns true on success, false on error)igl_Qu8mg5v7";
|
||||
// Returns true on success, false on error
|
||||
//
|
||||
// Known issues: Horrifyingly, this does not have the same order of
|
||||
// parameters as readOBJ.)igl_Qu8mg5v7";
|
||||
|
||||
Reference in New Issue
Block a user