libigl / libigl.github.io Goto Github PK
View Code? Open in Web Editor NEWRepository for the libigl website, online tutorial and documentation
Home Page: http://libigl.github.io
Repository for the libigl website, online tutorial and documentation
Home Page: http://libigl.github.io
On the website, the code blocks are not being rendered correctly, but when it is deployed locally with mkdocs serve
it is. See images below:
from https://libigl.github.io:
from localhost using mkdocs serve
From comparing the generated site in the master branch to the locally generated one, it seems that the ```cpp``` codeblocks are indeed not converted correctly. See code snippets below:
from https://libigl.github.io:
Lines 900 to 920 in 9a8f08c
from localhost using mkdocs serve
<div class="highlight"><pre><span></span><code><span class="cp">#include</span><span class="w"> </span><span class="cpf"><igl/cotmatrix.h></span><span class="cp"></span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf"><Eigen/Dense></span><span class="cp"></span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf"><Eigen/Sparse></span><span class="cp"></span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf"><iostream></span><span class="cp"></span>
<span class="kt">int</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"></span>
<span class="p">{</span><span class="w"></span>
<span class="w"> </span><span class="n">Eigen</span><span class="o">::</span><span class="n">MatrixXd</span><span class="w"> </span><span class="n">V</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span><span class="mi">2</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">V</span><span class="o"><<</span><span class="mi">0</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="mi">0</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="mi">1</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="n">Eigen</span><span class="o">::</span><span class="n">MatrixXi</span><span class="w"> </span><span class="n">F</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">F</span><span class="o"><<</span><span class="mi">0</span><span class="p">,</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="w"></span>
<span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="n">Eigen</span><span class="o">::</span><span class="n">SparseMatrix</span><span class="o"><</span><span class="kt">double</span><span class="o">></span><span class="w"> </span><span class="n">L</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="n">igl</span><span class="o">::</span><span class="n">cotmatrix</span><span class="p">(</span><span class="n">V</span><span class="p">,</span><span class="n">F</span><span class="p">,</span><span class="n">L</span><span class="p">);</span><span class="w"></span>
<span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">cout</span><span class="o"><<</span><span class="s">"Hello, mesh: "</span><span class="o"><<</span><span class="n">std</span><span class="o">::</span><span class="n">endl</span><span class="o"><<</span><span class="n">L</span><span class="o">*</span><span class="n">V</span><span class="o"><<</span><span class="n">std</span><span class="o">::</span><span class="n">endl</span><span class="p">;</span><span class="w"></span>
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
</code></pre></div>
Most of the info on secondary pages of the website is pretty outdated (static library/external dependencies, etc.). I'm just opening this here as a reminder to update those whenever possible.
Pages to check/update:
By default the base URL is http://libigl.github.io/libigl/ (see: mkdocs.yml) however this is redirected to https://libigl.github.io/
At libigl repo itself the description text says:
"Simple C++ geometry processing library. http://libigl.github.io/libigl/"
but the README contains links without [...]/libigl/
.
According to the website one should use the link: http://libigl.github.io/libigl/
And the links on the website itself are somewhat confusing because only [...]/libigl/tutorial/
is redirected to [...]/tutorial/
.
Other links mostly contain [...]/libigl/
e.g. go to https://libigl.github.io/#coding-guidelines-and-tips the links for style guide and coding tips link to https://libigl.github.io/libigl/style-guidelines / https://libigl.github.io/libigl/coding-guidelines (broken) and not https://libigl.github.io/style-guidelines / https://libigl.github.io/coding-guidelines (working).
So basically there are many broken links: https://github.com/libigl/libigl.github.io/search?q=libigl.github.io%2Flibigl%2F&unscoped_q=libigl.github.io%2Flibigl%2F
I'd like to fix. Is it ok to replace all links to http://libigl.github.io/libigl/$something
with http://libigl.github.io/$something
.
Just creating a redirect like for libigl/index.html and libigl/tutorial/index.html is not sufficient because e.g. the link to Example 505 in the FAQ because the #parameter
will be lost.
Alternatively all the .md file in docs/
could be moved into docs/libigl
then http://libigl.github.io/libigl/ would be the correct site URL.
So it's more or less a decision if you want to use http://libigl.github.io/libigl/ or http://libigl.github.io/ (without [...]/libigl
and the way it currently is).
Anyway just let me know which of the two versions you prefer so I can to submit a PR :)
AFAIK our new external_project_add
method for pulling in dependencies is not discussed on index.md or elsewhere. Since this still may be unusual for many users, it'd be nice to have a short description of what it's doing.
I don't know if it is the right place. Is libigl
capable of calculating curvatures and normal vectors on a hex mesh which means rectangular elements on surface.
The pencil icon links to https://github.com/libigl/libigl/edit/master/docs/index.md
is it possible to make it link to https://github.com/libigl/libigl.github.io/edit/master/docs/index.md ?
On the index page there is a simple hello world example to make sure you have things set up. Trying to compile it with the supplied command:
g++ -std=c++11 -I/usr/local/include/eigen3 -I./libigl/include/ hello.cpp -o hello
Resulted in this error message on my end.
/usr/bin/ld: /tmp/ccmLIPie.o: in function `_ZNSt6threadC1IRKZN3igl12parallel_forIiZNS1_12parallel_forIiZNS1_20squared_edge_lengthsIN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS6_IiLin1ELin1ELi0ELin1ELin1EEENS6_IdLin1ELi3ELi0ELin1ELi3EEEEEvRKNS5_10MatrixBaseIT_EERKNSA_IT0_EERNS5_15PlainObjectBaseIT1_EEEUliE_EEbSB_RKSF_mEUlmE_ZNS3_IiSN_EEbSB_SP_mEUlimE0_SQ_EEbSB_SP_RKSK_RKT2_mEUliimE_JRiS10_RmEvEEOSB_DpOT0_':
main.cpp:(.text._ZNSt6threadC2IRKZN3igl12parallel_forIiZNS1_12parallel_forIiZNS1_20squared_edge_lengthsIN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS6_IiLin1ELin1ELi0ELin1ELin1EEENS6_IdLin1ELi3ELi0ELin1ELi3EEEEEvRKNS5_10MatrixBaseIT_EERKNSA_IT0_EERNS5_15PlainObjectBaseIT1_EEEUliE_EEbSB_RKSF_mEUlmE_ZNS3_IiSN_EEbSB_SP_mEUlimE0_SQ_EEbSB_SP_RKSK_RKT2_mEUliimE_JRiS10_RmEvEEOSB_DpOT0_[_ZNSt6threadC5IRKZN3igl12parallel_forIiZNS1_12parallel_forIiZNS1_20squared_edge_lengthsIN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS6_IiLin1ELin1ELi0ELin1ELin1EEENS6_IdLin1ELi3ELi0ELin1ELi3EEEEEvRKNS5_10MatrixBaseIT_EERKNSA_IT0_EERNS5_15PlainObjectBaseIT1_EEEUliE_EEbSB_RKSF_mEUlmE_ZNS3_IiSN_EEbSB_SP_mEUlimE0_SQ_EEbSB_SP_RKSK_RKT2_mEUliimE_JRiS10_RmEvEEOSB_DpOT0_]+0x3f): undefined reference to `pthread_create'
/usr/bin/ld: /tmp/ccmLIPie.o: in function `_ZNSt6threadC1IRKZN3igl12parallel_forIiZNS1_12parallel_forIiZNS1_20squared_edge_lengthsIN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS6_IiLin1ELin1ELi0ELin1ELin1EEENS6_IdLin1ELi3ELi0ELin1ELi3EEEEEvRKNS5_10MatrixBaseIT_EERKNSA_IT0_EERNS5_15PlainObjectBaseIT1_EEEUliE_EEbSB_RKSF_mEUlmE_ZNS3_IiSN_EEbSB_SP_mEUlimE0_SQ_EEbSB_SP_RKSK_RKT2_mEUliimE_JRiRKiRmEvEEOSB_DpOT0_':
main.cpp:(.text._ZNSt6threadC2IRKZN3igl12parallel_forIiZNS1_12parallel_forIiZNS1_20squared_edge_lengthsIN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS6_IiLin1ELin1ELi0ELin1ELin1EEENS6_IdLin1ELi3ELi0ELin1ELi3EEEEEvRKNS5_10MatrixBaseIT_EERKNSA_IT0_EERNS5_15PlainObjectBaseIT1_EEEUliE_EEbSB_RKSF_mEUlmE_ZNS3_IiSN_EEbSB_SP_mEUlimE0_SQ_EEbSB_SP_RKSK_RKT2_mEUliimE_JRiRKiRmEvEEOSB_DpOT0_[_ZNSt6threadC5IRKZN3igl12parallel_forIiZNS1_12parallel_forIiZNS1_20squared_edge_lengthsIN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS6_IiLin1ELin1ELi0ELin1ELin1EEENS6_IdLin1ELi3ELi0ELin1ELi3EEEEEvRKNS5_10MatrixBaseIT_EERKNSA_IT0_EERNS5_15PlainObjectBaseIT1_EEEUliE_EEbSB_RKSF_mEUlmE_ZNS3_IiSN_EEbSB_SP_mEUlimE0_SQ_EEbSB_SP_RKSK_RKT2_mEUliimE_JRiRKiRmEvEEOSB_DpOT0_]+0x3f): undefined reference to `pthread_create'
/usr/bin/ld: /tmp/ccmLIPie.o: in function `_ZNSt6threadC1IRKZN3igl12parallel_forIiZNS1_12parallel_forIiZNS1_20squared_edge_lengthsIN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS6_IiLin1ELin1ELi0ELin1ELin1EEENS6_IdLin1ELi3ELi0ELin1ELi3EEEEEvRKNS5_10MatrixBaseIT_EERKNSA_IT0_EERNS5_15PlainObjectBaseIT1_EEEUliE0_EEbSB_RKSF_mEUlmE_ZNS3_IiSN_EEbSB_SP_mEUlimE0_SQ_EEbSB_SP_RKSK_RKT2_mEUliimE_JRiS10_RmEvEEOSB_DpOT0_':
main.cpp:(.text._ZNSt6threadC2IRKZN3igl12parallel_forIiZNS1_12parallel_forIiZNS1_20squared_edge_lengthsIN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS6_IiLin1ELin1ELi0ELin1ELin1EEENS6_IdLin1ELi3ELi0ELin1ELi3EEEEEvRKNS5_10MatrixBaseIT_EERKNSA_IT0_EERNS5_15PlainObjectBaseIT1_EEEUliE0_EEg++ -std=c++11 -I/usr/local/include/eigen3 -I./libigl/include/ hello.cpp -o hellobSB_RKSF_mEUlmE_ZNS3_IiSN_EEbSB_SP_mEUlimE0_SQ_EEbSB_SP_RKSK_RKT2_mEUliimE_JRiS10_RmEvEEOSB_DpOT0_[_ZNSt6threadC5IRKZN3igl12parallel_forIiZNS1_12parallel_forIiZNS1_20squared_edge_lengthsIN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS6_IiLin1ELin1ELi0ELin1ELin1EEENS6_IdLin1ELi3ELi0ELin1ELi3EEEEEvRKNS5_10MatrixBaseIT_EERKNSA_IT0_EERNS5_15PlainObjectBaseIT1_EEEUliE0_EEbSB_RKSF_mEUlmE_ZNS3_IiSN_EEbSB_SP_mEUlimE0_SQ_EEbSB_SP_RKSK_RKT2_mEUliimE_JRiS10_RmEvEEOSB_DpOT0_]+0x3f): undefined reference to `pthread_create'
/usr/bin/ld: /tmp/ccmLIPie.o: in function `_ZNSt6threadC1IRKZN3igl12parallel_forIiZNS1_12parallel_forIiZNS1_20squared_edge_lengthsIN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS6_IiLin1ELin1ELi0ELin1ELin1EEENS6_IdLin1ELi3ELi0ELin1ELi3EEEEEvRKNS5_10MatrixBaseIT_EERKNSA_IT0_EERNS5_15PlainObjectBaseIT1_EEEUliE0_EEbSB_RKSF_mEUlmE_ZNS3_IiSN_EEbSB_SP_mEUlimE0_SQ_EEbSB_SP_RKSK_RKT2_mEUliimE_JRiRKiRmEvEEOSB_DpOT0_':
main.cpp:(.text._ZNSt6threadC2IRKZN3igl12parallel_forIiZNS1_12parallel_forIiZNS1_20squared_edge_lengthsIN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS6_IiLin1ELin1ELi0ELin1ELin1EEENS6_IdLin1ELi3ELi0ELin1ELi3EEEEEvRKNS5_10MatrixBaseIT_EERKNSA_IT0_EERNS5_15PlainObjectBaseIT1_EEEUliE0_EEbSB_RKSF_mEUlmE_ZNS3_IiSN_EEbSB_SP_mEUlimE0_SQ_EEbSB_SP_RKSK_RKT2_mEUliimE_JRiRKiRmEvEEOSB_DpOT0_[_ZNSt6threadC5IRKZN3igl12parallel_forIiZNS1_12parallel_forIiZNS1_20squared_edge_lengthsIN5Eigen6MatrixIdLin1ELin1ELi0ELin1ELin1EEENS6_IiLin1ELin1ELi0ELin1ELin1EEENS6_IdLin1ELi3ELi0ELin1ELi3EEEEEvRKNS5_10MatrixBaseIT_EERKNSA_IT0_EERNS5_15PlainObjectBaseIT1_EEEUliE0_EEbSB_RKSF_mEUlmE_ZNS3_IiSN_EEbSB_SP_mEUlimE0_SQ_EEbSB_SP_RKSK_RKT2_mEUliimE_JRiRKiRmEvEEOSB_DpOT0_]+0x3f): undefined reference to `pthread_create'
/usr/bin/ld: /tmp/ccmLIPie.o: in function `_ZNSt6threadC1IRKZN3igl12parallel_forIlZNS1_12parallel_forIlZNS1_10doubleareaIN5Eigen6MatrixIdLin1ELi3ELi0ELin1ELi3EEENS6_IdLin1ELi1ELi0ELin1ELi1EEEEEvRKNS5_10MatrixBaseIT_EENSA_6ScalarERNS5_15PlainObjectBaseIT0_EEEUliE_EEbSA_RKSG_mEUlmE_ZNS3_IlSJ_EEbSA_SL_mEUllmE0_SM_EEbSA_SL_RKT1_RKT2_mEUlllmE_JRlSX_RmEvEEOSA_DpOT0_':
main.cpp:(.text._ZNSt6threadC2IRKZN3igl12parallel_forIlZNS1_12parallel_forIlZNS1_10doubleareaIN5Eigen6MatrixIdLin1ELi3ELi0ELin1ELi3EEENS6_IdLin1ELi1ELi0ELin1ELi1EEEEEvRKNS5_10MatrixBaseIT_EENSA_6ScalarERNS5_15PlainObjectBaseIT0_EEEUliE_EEbSA_RKSG_mEUlmE_ZNS3_IlSJ_EEbSA_SL_mEUllmE0_SM_EEbSA_SL_RKT1_RKT2_mEUlllmE_JRlSX_RmEvEEOSA_DpOT0_[_ZNSt6threadC5IRKZN3igl12parallel_forIlZNS1_12parallel_forIlZNS1_10doubleareaIN5Eigen6MatrixIdLin1ELi3ELi0ELin1ELi3EEENS6_IdLin1ELi1ELi0ELin1ELi1EEEEEvRKNS5_10MatrixBaseIT_EENSA_6ScalarERNS5_15PlainObjectBaseIT0_EEEUliE_EEbSA_RKSG_mEUlmE_ZNS3_IlSJ_EEbSA_SL_mEUllmE0_SM_EEbSA_SL_RKT1_RKT2_mEUlllmE_JRlSX_RmEvEEOSA_DpOT0_]+0x42): undefined reference to `pthread_create'
/usr/bin/ld: /tmp/ccmLIPie.o:main.cpp:(.text._ZNSt6threadC2IRKZN3igl12parallel_forIlZNS1_12parallel_forIlZNS1_10doubleareaIN5Eigen6MatrixIdLin1ELi3ELi0ELin1ELi3EEENS6_IdLin1ELi1ELi0ELin1ELi1EEEEEvRKNS5_10MatrixBaseIT_EENSA_6ScalarERNS5_15PlainObjectBaseIT0_EEEUliE_EEbSA_RKSG_mEUlmE_ZNS3_IlSJ_EEbSA_SL_mEUllmE0_SM_EEbSA_SL_RKT1_RKT2_mEUlllmE_JRlRKlRmEvEEOSA_DpOT0_[_ZNSt6threadC5IRKZN3igl12parallel_forIlZNS1_12parallel_forIlZNS1_10doubleareaIN5Eigen6MatrixIdLin1ELi3ELi0ELin1ELi3EEENS6_IdLin1ELi1ELi0ELin1ELi1EEEEEvRKNS5_10MatrixBaseIT_EENSA_6ScalarERNS5_15PlainObjectBaseIT0_EEEUliE_EEbSA_RKSG_mEUlmE_ZNS3_IlSJ_EEbSA_SL_mEUllmE0_SM_EEbSA_SL_RKT1_RKT2_mEUlllmE_JRlRKlRmEvEEOSA_DpOT0_]+0x42): more undefined references to `pthread_create' follow
collect2: error: ld returned 1 exit status
Where the linker can't seem to find pthread_create
. Not sure if something is up with my machine or the example but adding the flag -lpthread
to the command allows g++ to find the pthread code.
It is http://www.cad.zju.edu.cn/english.html now.
You may change the line 272 of the following file:
https://github.com/libigl/libigl.github.io/blob/docs/docs/index.md#L272
Since the .html and the .md live in different branches, I'm struggling to find a good workflow for developing the library.
Suppose I've checked out the docs branch and then make a change to tutorial.md, what's the best practice for previewing my change on the .html website?
Chapter 7 is getting a bit out of control. Meanwhile, Chapter 1 is simultaneously an intro chapter and a "viewer features" chapter. Let's use this issue to discuss some reorganization. For reference, here're the current tutorial entries (that we have code for; so this includes ones that have missing documentation):
Tetgen
FastAutomaticSkinningTransformations
SignedDistance
MeshImplicitFunction
SweptVolume
BiharmonicDeformation
Boolean
GaussianCurvature
ExplodedView
SLIM
HarmonicParam
NRosyDesign
ViewerMenu
CSGTree
AsRigidAsPossible
Events
ScreenCapture
BoundedBiharmonicWeights
CurvatureDirections
MarchingCubes
LaplaceEquation
Decimation
LSCMParam
MEX
ShapeUp
Planarization
AmbientOcclusion
Laplacian
WindingNumber
Statistics
Gradient
GeodesicDistance
BiharmonicCoordinates
Kelvinlets
SCAF
MultipleViews
Triangle
DirectDeltaMush
FileIO
IterativeClosestPoint
FastWindingNumber
MIQ
DualQuaternionSkinning
Picking
MultipleMeshes
MarchingTets
DrawMesh
ARAPParam
Colors
EigenDecomposition
Matlab
Slice
QuadraticProgramming
FacetOrientation
Overlays
Sort
FrameField
BlueNoise
LinearEqualityConstraints
Normals
Subdivision
DataSmoothing
HeatGeodesics
ImGuizmo
PolyharmonicDeformation
Serialization
During the hackaton @alecjacobson had some trouble on macOS building the website with mkdocs. the problem mostly comes from the figureAltCaption
plugin that I'm using to transform the markdown code for the figures in the tutorial into the html with caption text. There are two related problems here:
conda
environment for the versions of the packages I have on my machine (and that work), but I didn't manage to run it on my Windows machine, so I'll have to see if I an create the conda environment directly from a Windows machine see if it helps.Anyway, if other mac users can pitch in an tell me if either the virtualenv/Pipenv/conda files that I've put on the root allow them to build the website correctly, or if you have the same issue with url in captions not showing properly, that'd be great. Alternatively, if any of our python power-user like @fwilliams or @jiangzhongshi can pitch in and try to help setting up a proper python environment for building the website, that'd be great.
the 'install with conda' button at https://libigl.github.io/ is not working
The tutorial calls decimate
via
igl::decimate(V,F,1000,U,G);
However, a quick look at libigl/include/igl/decimate.h shows that there is no such function.
I've left a blank for it. cc @fwilliams
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.