r03ert0 / meshgeometry

mesh geometry tools
25 stars 11 forks source link

meshgeometry

Mesh geometry tools. Several commands can be chained together, with the same operation appearing many times in the same command line. They are processed sequentially.

Compiling: bash compile.sh

In Linux, you may need to install the freeglut3 and libmesa libraries first: apt-get update apt install freeglut3-dev apt install mesa-common-dev

I/O commands Description
-iformat format_name Force input format (needs to precede imesh)
-oformat format_name Force output format (needs to precede omesh)
-i filename Input file (also accepts -imesh)
-o filename Output file (also accepts -omesh)
-odata filename Output data
Geometry measurement Description
-absgi Compute absolute gyrification index
-area Surface area
-checkOrientation Check that normals point outside
-centre Move the mesh's barycentre to the origin
-euler Print Euler characteristic
-foldLength Compute total fold length
-size Display mesh dimensions
-tris Display number of triangles
-verts Display number of vertices
-volume Compute mesh volume
-curv Compute curvature
-depth Compute sulcal depth
-areaMap Compute surface area per vertex
-icurv number_of_iterations Integrated curvature (warning: icurv changes the geometry of the mesh)
-isolatedVerts Count the number of isolated vertices in the mesh
Geometry modification Description
-add filename Add mesh at filename to the current mesh
-average n_meshes path1 path2 ... pathn Compute an average of n_meshes all of the same topology
-barycentricProjection reference_mesh Print barycentric coordinates for each vertex in reference_mesh
-fixFlip Detect flipped triangles and fix them
-fixSmall Detect triangles with an angle >160
-flip Flip normals degrees and fix them
-laplaceSmooth lambda number_of_iterations Laplace smoothing
-level level_value Adds new vertices (and triangles) to the edges that cross level_value in the vertex data (f.ex., mean curvature)
-normalise Place all vertices at distance 1 from the origin
-randverts number_of_vertices Generate homogeneously distributedrandom vertices over the mesh
-relax filename Relax current mesh to mesh at filename (both meshes have the same topology)
-resample smooth_mesh reference_mesh Resample the mesh to match the vertices and the topology of the argument mesh
-removeIsolatedVerts Removes isolated vertices in the mesh (if present)
-rotate x y z Rotate with angles x, y and z (in degrees)
-scale scale_value Multiply each vertex by 'scale'
-sortTriangles Sort the triangles in the mesh file along the x axis
-stereographic Stereographic projection
-subdivide Subdivide the mesh with one iteration of Kobbelt's sqrt(3) algorithm
-taubinSmooth lambda mu number_of_iterations Taubin Smoothing
-translate x y z Translate mesh by x, y, and z.
-lissencephalic Smooth valleys and hills, not the coast
-normal Mesh normal vectors
Data measurement Description
-countClusters value Count clusters in texture data
-max Maximum data value
-mean Mean data value
-min Minimum data value
Data modification Description
-addVal Add value data
-subVal Subtract value from data
-multVal Multiply data time value
-divVal Divide data by value
-clip min max Clip data values to the interval [min,max]\n\
-smoothData lambda number_of_iterations Laplace smoothing of data, lambda=0 -> no smoothing, lambda=1 -> each vertex value to neighbour's average
-threshold value 0:down/1:up Threshold texture data
Other Description
-drawSurface colourmap path draw surface in tiff format, colormap is 'grey' or 'rainbow'
-v Verbose mode
-h Help

Meshgeometry can read and write several formats, based on the file extension:

Extension Description
.orig, .pial, .white, .inflated, .sphere, .reg Freesurfer meshes
.curv, .sulc, .sratio Freesurfer data
.mesh BrainVisa mesh
.txt RT's mesh plain text format
.float Raw float data
.txt1 RT's data format
.bin n-e-r-v-o-u-s system web binary mesh
.wrl, .obj, .ply, .stl, .smesh, .off, .vtk, .gii Other mesh formats