After I put the script in the thread, I got some comments that are asking me if it can import a point cloud data. I didn't know about point cloud and the script had no ability to do that, so I tried to consider how to import it and started to develop a new script.
2009/01/18 v0.14, t23 |
+ added a new UI mode which allows you to use the script from the
menu Mesh in Blender. You can set the parameters quickly in the new
popup block. |
+ can switch the UI mode. The popup UI will be display if the 3D
window is in EditMode, and the script GUI will be display in
otherwise. |
2009/01/11 v0.13, t21 |
+ corrected the function CalcAverageNormal. The algorithm is based
on Lagrange's Lambda Method minimizing of sum(ax+by+cz)^2, which
is the real minimization of the distances between vertices and the
center, instead of least squares using ax+by+cz=1 in v0.12 or older. |
2008/11/16 v0.12, t19 |
+ The script name was changed and it's going to be called Point
Cloud Skinner 1 Umbrella instead of Point Cloud to 3D Mesh,
because another way of skinning has been created and it's called
Point Cloud Skinner 2 Carapace. |
+ A GUI was added to make it easy to setup, using the module Blender
GUI Provider. The module code has been appended to t15 simply. |
+ TimeProfiler was created to measure process time, and the code
was included into t19. |
+ PointsGridManager has been improved to collect vertices faster by
using hash values for keys of the dictionary that contains the
grid cells. |
2008/02/03 v0.11, t15 |
+ created PointsGridManager class to manage a lot of vertices with a
meshed grid. It allows you to gather vertices that are located in
a distance with less time consumption. |
+ changed the process of checking the internal angles. Now it can
check more correctly if the triangle outside has shaper angle than
# the triangle around center, and can avoid discarding the vertices. |
2008/01/18 v0.10, t14 |
+ changed the script to use average normal and added a new parameter gb["MaxDistForAxis"] to set the distance in which it gathers
vertices to decide the average normal. |
+ fixed the bug that causes an error in the process of checking the
internal angles. It was solved by checking the length of NeigVert2
- NeigVert1. |
2008/01/17 v0.9, t13 |
+ The upgrade for checking the internal angles in t12 has two
problems and they could make a shape triangle because of missing
to reduce unnecessary vertices, and it has been fixed in t13. (One
of two was solved by enabling the vertex if its neighbor vertex is
in unable region in SomeEndVerts state, and the other was by
enabling the vertex if it and its both neighbor vertices form a
shaper triangle.) |
+ It has been found that the fixes above cause another problem near
the edges of the surface with making a shape triangle, and it has
been also fixed. |
2008/01/16 v0.8, t12 |
+ upgraded the functionality of checking the adjacent 2 triangles and
can reorganize the triangles into good shapes. |
+ modified the way of checking the internal angles using a new concept.
It can avoid the intersection of faces that will come from reducing
the vertices by the checking. |
2008/01/06 v0.7, t10 |
+ upgraded the functionality of checking the internal angles and can
check if the angle is too small or large. |
2007/12/10 v0.6, t7 |
+ added the functionality to avoid making intersection of faces, but
some faces still have intersection in a noisy point cloud.
(To avoid the intersection, it looks at faces that have been already
made, and such a face is called a face-end face in the script. First
it searches for face-end edges that are just connected to the center
vertex and groups the vertices by the edges. Next in each group it
searches for the other face-end edges and discards the vertices that
are hidden by the edges. And it makes faces out of the left vertices.) |
+ haven't yet upgraded the functionality of checking the internal
angles for the new version, so removed the previous codes. |
+ haven't yet upgraded the functionality of checking the adjacent
triangles for the new ersion, so commented out the codes now. |
2007/11/29 v0.5, t6 |
+ created FacesManager class to manage faces. It provides you with an
easy way to find the faces that include a specified vertex. The
purpose is to find the already made faces to avoid making overlapping
faces. |
2007/11/29 v0.4, t5 |
+ separated the algorithm code in MakeFacesAround into some smaller
methods because the code length started to be long. Also changed the
way to send data to those methods and now use Data class to send it. |
2007/11/22 v0.3, t4 |
+ can check if angles between adjacent 2 vertices are acceptable. |
+ can check if adjacent 2 triangles have appropriate shapes. |
+ changed the way of sending faces' information to downward
functionalities in the algorithm and now treat it in the same unified
data structure everywhere. |
2007/11/18 v0.2, t3 |
+ the algorithm has not changed but a few codes changed to make it easy
to read, for example changing into gb["*"] style, compacting for loop
codes. |
2007/11/16 v0.1, t2 |
+ t1 code was separated and t2 started newly to concentrate on the
development for skinning a point cloud. |
+ implemented a simple algorithm to make faces around each vertex. |