This page contains all products published on Matlab file exchange with a brief description and a link to Matlab central original page. In this section are also included possible extension that can be done to the product.
It is possible to require this extension sending a request to my e-mail. Extensions are all free donation price tools. Standard version can be downloaded from Matlab exchange (follow the link).
Products Published:
Surface recostruction from scattered points cloud Part1
Given a points cloud returns a tight triangulation. Notice that points doesn’t need to be in the z=f(x,y) form. This version is more suitable for closed surfaces, surfaces that represent a volume.
Possible extensions:
- Manifold extraction tool. Allows to return a manifold surface. The standard version do not ensure that because sometimes dalaunay triangulator generates slivers (quasi null-volume tetraedrons). The result is in the final surface there are more triangles forming more manifold surfaces but only one is the required one. This error only appears when trying to compute surface normals, for graphical purposes there is no need.
- Normals computation tool (under development): allows to compute surface normal preserving inward or outward orientation. It is usefull to build STL models.
- GetVolume: It also returns the VOLUME of the triangulated surface.
Surface recostruction from scattered points cloud Part2
An extention to part 1 that allows to work with open surfaces.
Possible extensions:
- More accurate manifold extraction tool (under development). A walking method that drastically reduces the probability to leave holes in the output triangulation.
Quicker Hull algorithm
Computes convex hull in N dimension. It is in practice a faster implementation of the quickhull algorithm. Up 10x speed improvement.
Ultra Fast Nearest Neighbor search
The GLTree, a faster alternative to kd-tree data structure. Tests shows speed improvements against ANN libray kd-tree from a 4x to10x factor.
A great advantage of this algorithm is is lineary complexity. It also has a very small tree time construction so it becomes advantageus aginst brute search even for a small number of points.
Possible extensions:
- 3D version.
- Personalized points data structure or class (to use the tool as C++ library).
- Personilized functions: whatever regarding spatial search can be implemented.
BruteSearch algorithm
A Mex implementation of the brute search algorithm for K nearest neighbour problem.
Fast convex hull algorithm
A totally m-coded routine that overcome in speed performances the native Matlab convhull.
Surface Parametrizer
Returns a 2D parametrization from a 3D traingulated manifold surface.
Algorithm informations:
The parametrization if perfomed using the Springs collapse method. This ensure no self-intersecant triangles will be in the Output.
Triangulation requirements:
The triangulation must be manifold with only one boundary. The boundary of the surface will be the boundary of the parametric space. With multiple boundaries errors maybe generated.
BuildSphere

This function drastically reduces the number of traingular patches when plotting a sphere.
Structured Tetraedral mesh generation
Structured Triangular mesh generation
Torsional Analisys of “non standard sections”
All structural engineers have sometimes the problem to compute shear stress in sections that can not be found in any handbook. This fem solver is the solution.
Traveling salesman problem using convhull
A toy that shows a simple but quite efficient solution to travelling salesman problem. Behind the algorithm the idea of minimizing a bounding surface. The minimal is the convex hull but it does not contains all the points so…
Linear systems solver
Solving many small linear systems in Matlab can be drastically slow. The looping time is greatly larger than the time spent in the binary solver. This tools solves all systems in a vectorized way avoiding loops with many factors of speed improvement.
UniqueRows
Can be a faster alternative to the Matlab unique(X,’rows’).
Geodetic dome
Linear truss fem solver.
In polygon test for convex polygon
Detects points inside a convex polygon. It is a combination of 3 different algorithms, depending on the input data, the fastest will be chosen.
Basic Gear design
A tool to design a 3D model of spur gears.
InPolyedronTest

- InPolyedron test

- In Polyedron Test
The InPolyedron function takes a manifold surface and a set of points. It is capable of detecting points inside the surface. Thanks to an efficient data structure, the current m-code version, is able to test 1e6 query points in 1e4 triangles surface in less than 5 seconds ( I have a 2.4Ghz Dual Core for mobile PC). It can also be requested a C++ version, it is not coded yet, but I thing it can be several factors faster.
Surface recostruction from scattered points cloud part3: The Ball Fretting Algorithm

- Surface recostructed using the Ball Fretting algorithm
The Ball Fretting algortihm is a surface recostruction tool designed for filled points cloud ( clouds in which there also internal points, not only the superficial ones). It is in practice a simplification of the ball pivoting algorithm and results are very close to that one. It requires one input parameter, the ball radius, the algorithm simulates a ball eating the clouds, the remaing part is the output surface.
Ultra-Fast Nearest K-Neighbors Search: GLTree3D

- K-Nearest Neighbors Graph
The 3D version of the 2d algorithm present on FEX ( http://www.mathworks.com/matlabcentral/fileexchange/22190 ). Here are shown som test perfomances on my 2.4 Ghz PC. Test is based on N reference points and N query points. They are uniformly random distributed in 0,1 range. For : N=100; elapsed time is: 0,001 seconds N=1000; elapsed time is: 0,003 seconds N=10000; elapsed time is: 0,029 seconds N=100000; elapsed time is: 0,325 seconds N=1000000; elapsed time is: 3,346 seconds A great advantage of this algorithm is his lineary complexity. It also has a very small tree time construction so it becomes advantageus against brute search even for a small number of points. MEX VERSION NOW AVALAIBLE !!!!!!!!!
Surface Volume
Surface Volume Gets the Volume Gets the Volume of triangulated surface with conform normals orientation. The Algorithm imagines splitting the surface in a set of tetraedrons for whisch is very easy to get the volume. Fast, reliable and even cheap.
Surface Domains Decomposition

- Surface Domains Detection

- Surface Domains Detection

- Surface Domains Detection
This tool detecs domains in a triangualted surface. It is very usefull whe there is the need to detect a single face from a triangulated model like STL files. It was used to apply pressure in Fem anlalisys taking as input STL files. NOtice the individuated surface domains flagged eith different colors.
MY Crust with Manifold extraction

- Non Manifold Surface

- Manifold Surface
Surface recostruction tool doesn’t always returns a manifold surface, very often internal triangles are present . If the surface is for graphical purpose, no problem, but what if need to process it. Most of surface post treatments algorithms fails on not manifold surfaces this tools attemps to repair it. The manifold extraction is performed with a ball pivoting method it also returns a conform triangles orientation which points outward. It si very easy after this treatment to build an STL file.
Normals Computation on triangulated surface

- Normals Computation on hook model

- Normals computations on pump carter model
Computing conform normals on traigulated models is not always the easiest thing, these tools attempts to simplify the process.



