Paolo Cignoni
4a26c71e63
added a safety check for the feature point to be in the cell (could jump outside for numerical errors...)
2011-02-14 10:53:33 +00:00
Paolo Cignoni
59e89dfc73
Fixed parameter order on method compute_fitmap;
...
Added parameter to set number of smoothing iterations;
2011-02-10 16:02:47 +00:00
Paolo Cignoni
326fa280ce
added missing include
2011-02-10 09:51:43 +00:00
Paolo Cignoni
4107c587d0
Modified check for diagonal collapses
2011-02-04 17:14:47 +00:00
Paolo Cignoni
c68b61391f
Added a missing include
2011-02-04 09:31:47 +00:00
Paolo Cignoni
9ddbd14616
Fixed wrong function calls
2011-02-01 12:59:57 +00:00
Paolo Cignoni
6583f81c3f
Removed wrong file inclusion
2011-02-01 12:58:02 +00:00
Paolo Cignoni
99950cc5f4
Modified computation of EH and HE relations in method FromIndexed;
...
Removed assertions and added checks about EH and HE relations;
2011-02-01 10:55:06 +00:00
Paolo Cignoni
e49dfa63bb
Corrected bug about mesh attributes
2011-01-31 16:59:46 +00:00
Paolo Cignoni
a3fab7ebf2
Removed wrong assertions
2011-01-31 16:58:27 +00:00
Paolo Cignoni
7037098822
Added to BitQuad Support a Generic quad triangulation function and used in OFF importer.
...
It takes in input 4 vertex pointrs and rotate them so that a simple fan triangulation is Ok.
It uses geometric criteria for avoiding bad shaped triangles, and folds
and it use an internal set of already created diagonal to avoid the creation of non manifold situations.
2011-01-27 15:49:21 +00:00
Paolo Cignoni
fb836dcf17
Added classes for quad meshes simplification
2011-01-27 15:41:05 +00:00
Paolo Cignoni
183f106f23
Added class HalfedgeQuadClean
2011-01-27 15:39:39 +00:00
Paolo Cignoni
2984bda3c8
Added suffix "_quad" to all methods only for quads
2011-01-27 14:22:48 +00:00
Paolo Cignoni
feafb246da
Removed class Garbage
2011-01-27 12:19:40 +00:00
Paolo Cignoni
3777d7925d
Edge pointers substituted with hedge pointers;
...
Made EH and HE adjs optional;
Re-written method to check if a diagonal is collapsible;
2011-01-27 12:03:44 +00:00
Paolo Cignoni
94235fc548
commented useless parameter to avoid warning
2010-12-21 15:06:09 +00:00
Paolo Cignoni
6ca76c16b1
added useful he functions
2010-12-15 22:38:36 +00:00
Luigi Malomo
9d1e54a140
fixed bug to prevent deleted faces rasterization
2010-12-05 18:22:45 +00:00
Paolo Cignoni
5a21c7cd76
Removed the ReorderVert function used for permutating the accessory attributes of OCF components. IT should not be used.
2010-11-09 08:27:44 +00:00
Paolo Cignoni
80a8c29144
Added function to normalize face/vertex quality value into a given range (usually 0..1)
2010-10-31 13:03:36 +00:00
Nico Pietroni
969f556691
added if(vp<oldBase || vp>oldEnd) return; test in PointerUpdater::Update function, so that entities that doesn't need to be updated has no problems
2010-10-27 17:46:46 +00:00
ganovelli
766b1b3f89
CompactFaceVector and CompactVertexVector now may return a PointerUpdater
2010-10-22 16:01:58 +00:00
Paolo Cignoni
696afea0a9
removed harmless warnings
2010-10-20 08:57:59 +00:00
Paolo Cignoni
9939b0c51b
Harmless warning: commented unused parameter
2010-10-15 21:18:01 +00:00
Nico Pietroni
e74d22e0e5
corrected the call to new IntersectionSegmentTriangle function (after a bug fixing in the function)
2010-10-15 15:23:37 +00:00
Nico Pietroni
f1a446558f
- removed virtual to ComputerPriority Function
...
- getPos and GetMark become const
2010-10-15 15:20:37 +00:00
ganovelli
123a51b774
replaced ImportLocal with ImportData (it was left behind)
2010-10-15 09:25:52 +00:00
ganovelli
d10a9822d3
replaced ImportLocal with ImportData (it was left behind)
2010-10-15 09:25:27 +00:00
Paolo Cignoni
628f22f3c9
removed one useless parameter from the FastFit function of the paso-doble smoothing function.
2010-10-15 09:23:09 +00:00
Paolo Cignoni
445dad8458
removed harmless warnings
2010-10-15 09:15:11 +00:00
Paolo Cignoni
ac9f0d1452
removed a couple of CMeshO types that surfaced when moving stuff from meshlab to vcg
2010-10-15 09:12:54 +00:00
ganovelli
da757efdd3
bug fixed (final): CompactFaceVector resized the attributes per face
...
to the number of "vertices" of the mesh
2010-10-08 16:51:45 +00:00
ganovelli
354b225e92
bug fixed: CompactFaceVector resized the attributes per face
...
to the number of "vertices" of the mesh
2010-10-08 15:58:32 +00:00
granzuglia
e2b56e9023
removed int32_t
2010-10-06 09:17:29 +00:00
granzuglia
a003c5ce73
added progress bar support to PrincipalDirectionsPCA
2010-10-04 08:47:33 +00:00
Paolo Cignoni
9df46522b2
a comment
2010-10-01 21:37:55 +00:00
Paolo Cignoni
c77aeae697
Cleaned up a bit the Final flipping stage of EMC. Now it is a bit more robust.
2010-10-01 21:36:49 +00:00
Paolo Cignoni
92bbd33394
Added function to compute the barycenter of the thin shell surface model. E.g. the barycenter of the mesh as if all the mass was concentrated over the surface of the mesh. Useful for computing barycenter of planar figures.
2010-09-30 23:30:22 +00:00
ganovelli
087e28ddc4
handled offsset for wedgetexcoord (to redo better)
2010-09-27 14:40:24 +00:00
Paolo Cignoni
30f6267da1
Corrected the unneeded resetting of un referenced normals when computing per vertex normals starting from faces.
2010-09-24 11:21:15 +00:00
ganovelli
09c8ff302a
added ClusterVertex (like MergeCloseVertex but without removing the copies)
2010-09-23 16:47:25 +00:00
Paolo Cignoni
349e9869cf
Updated many vcg files to do not use anymore the vcg::Max(a,b) and vcg::Min(a,b). Use the std version instead.
2010-09-21 22:09:13 +00:00
Paolo Cignoni
7977e270c5
added the possibility of customizing the histogram bucket size
2010-09-13 09:47:23 +00:00
Paolo Cignoni
56fe9a828b
BUG! In IntersectionRayMesh the IntersectionLineTriangle had a parameter swapped...
...
Thanks to Bo Jiang & Meng Luan for the kind bug submission
2010-09-13 09:35:24 +00:00
Paolo Cignoni
dbf4fa7311
removed harmless warning
2010-09-13 09:33:30 +00:00
Paolo Cignoni
f7e2f7d539
removed harmless warning
2010-09-07 10:31:04 +00:00
Paolo Cignoni
271ac17c95
Added a missing UpdateSelection :: FaceFromQualityRange
2010-09-07 10:28:45 +00:00
Paolo Cignoni
4a84e2035e
added function to compute montecarlo distribution with an approximate number of samples exploiting the poisson distribution
2010-09-06 22:11:11 +00:00
Paolo Cignoni
275b0e55d9
corrected small bug in the make_even_by split procedure for making meshes always with an even number of faces (useful prerequisite for tri-to-quad conversion)
2010-09-06 22:09:18 +00:00
ganovelli
d0d2efa454
removed the use of RTTI for checking the name of the attribute TYPE
...
in the Get*Attribute. Now the check is only on the size of the type.
2010-09-03 22:17:14 +00:00
Paolo Cignoni
f55d7a0048
removed a small bug in the link condition
2010-09-02 22:23:10 +00:00
Paolo Cignoni
7627f2e9f4
added a few missing include
2010-09-02 21:40:30 +00:00
Paolo Cignoni
149ae8ec5b
Significant improvment in correctness and robustness of Loop subdivision surfaces (BIG thanks to Simon Boye' for submitting the patches)
2010-09-02 06:21:07 +00:00
ganovelli
101e46bc6b
bug corrected. attribute member "_padding" was not initialized in Add*Attribute
2010-09-01 17:16:43 +00:00
Paolo Cignoni
885bf05702
Added methods to get the 1-ring;
...
Added comments;
Removed useless methods;
2010-09-01 15:10:30 +00:00
ganovelli
396e54b566
new mod to support partial selection (possibly to revise):
...
NOTE on how to use Append::MEsh with selected elements:
If we want to append only the selected faces of the mesh and call the Append::Mesh
with selected parameter = true, we must ensure that also the cofaces of inferior
order are selected (vertices and edges).
Otherwise what happen is that the vertices are NOT appended and then the appended
(selected) faces cannot be built.
On the other ahnd Append::Mesh will NOT change the selected flag of the input mesh, it must be done
before calling it. (check tri::UpdateSelection<CMeshO>::VertexFromFaceLoose(currentMesh->cm); )
The same problem for the adjacencies with higher order simplexes. In this cases they are simply not updated . For example, if only a few vertices are selected, and they have, say, VFAdj, it is ignored.
2010-08-11 15:54:37 +00:00
ganovelli
b9765da147
missing condition on D flag added. It caused deleted elements to be added and
...
counter to increment, with consequent failure of vn=mesh.vert.size()- #{deleted}
2010-08-11 14:43:16 +00:00
ganovelli
2d35671e51
replaced SetS with SetV and IsS with IsV.
2010-08-09 19:59:30 +00:00
Paolo Cignoni
0f7ec1f8d2
added fitmaps
2010-08-05 14:24:09 +00:00
Paolo Cignoni
9093cce622
removed harmless gcc warnings
2010-08-05 14:20:43 +00:00
Paolo Cignoni
10106736c2
added operation types for quads
2010-08-05 13:18:33 +00:00
ganovelli
b25f303ce3
replaced "if" on a condition that has to be always true with assertions
2010-07-27 14:20:12 +00:00
Paolo Cignoni
1140ca5a32
Added multiscale curvature computation (UpdateCurvatureLocal)
2010-07-23 15:48:45 +00:00
Paolo Cignoni
c3d20c9b87
added a smoothing algorithm for quad meshes with half-edge topology
2010-07-23 14:11:36 +00:00
Paolo Cignoni
e081be0c6f
Never write a 'using namespace" inside a .h file. Removed
2010-07-23 06:09:52 +00:00
Paolo Cignoni
59442fff3f
optimized halfedge operations
2010-07-22 13:14:55 +00:00
Paolo Cignoni
1d8a4c8e64
added nring class that efficiently extracts the n-ring of a vertex
2010-07-22 12:32:31 +00:00
Paolo Cignoni
882d039da6
removed mostly harmless gcc warnings (unused/uninitialized vars)
2010-07-14 08:00:16 +00:00
Paolo Cignoni
b543ff311e
fixed gcc compatibility issue
2010-07-12 13:21:12 +00:00
Paolo Cignoni
0f6cfeb1c0
removed harmless gcc warnings (unsigned vs signed int)
2010-07-01 09:21:56 +00:00
granzuglia
3d68cc75cf
from iterator to const_iterator
2010-07-01 09:13:08 +00:00
granzuglia
937a004f80
changed include file
2010-07-01 08:51:06 +00:00
ganovelli
f890ce75ee
added HasPerVertexVFAdjacency and HasPerFaceVFAdjacency. Removed
...
generic HasVFAdjacency which made the logical AND of the two and updated the
relative calls.
2010-06-24 18:48:40 +00:00
ganovelli
eb3f1a97fc
added HasPerVertexVFAdjacency and HasPerFaceVFAdjacency. Removed
...
generic HasVFAdjacency which made the logical AND of the two and updated the
relative calls.
2010-06-24 12:35:37 +00:00
ganovelli
a42f07b445
added missing include
2010-06-24 12:30:48 +00:00
Paolo Cignoni
f7efa76f35
added a missing std:: to max()
2010-06-23 14:25:08 +00:00
Paolo Cignoni
8ca2013615
removed harmless gcc warnings
2010-06-18 14:44:21 +00:00
Paolo Cignoni
74f1f69132
a few changes to remove ambiguous variable naming and a few warnings
2010-06-18 14:40:36 +00:00
Paolo Cignoni
02e0b3409a
removed a meaningless import of an uninitailzed var.
2010-06-18 14:31:58 +00:00
Paolo Cignoni
830fb74a0f
Complete re-wrote of the link condition test for topology preserving edge collapse. Now it is much slower but really correct. Hopefully.
2010-06-18 11:47:04 +00:00
ganovelli
a8ee1c9143
importlocal--> importdata
2010-06-18 08:01:14 +00:00
ganovelli
19755ed9b7
definition of USedTypes changed to ensure that MeshType::FaceType is the same as VertexType::FaceType (begin Vertex and Face any type among Vertex,Face,Edge,HEdge).
...
Compiles with gcc 4.4, .net 2005
2010-06-18 07:53:21 +00:00
ganovelli
f3b67673fc
new Append<> beta version
2010-06-16 17:28:18 +00:00
ganovelli
7c35161210
ImportLocal to ImportData. Adjacencies are no more handle by ImportData, but
...
by speficic functions in append.h (ImportPerxxxAdj(..))
2010-06-16 16:31:17 +00:00
ganovelli
4750b7c666
rewritten including handling of all adjacencies.
...
Still incomplete treatment of non uptade but existing adjacencies...
2010-06-16 16:30:24 +00:00
ganovelli
e92adc2095
ImportLocal to ImportData. Adjacencies are no more handle by ImportData, but
...
by speficic functions in append.h (ImportPerxxxAdj(..))
2010-06-16 16:29:07 +00:00
ganovelli
e8d3020714
added typename to PointerToAttribute to dynamically check the GetPer[]Attribute
2010-06-16 15:18:39 +00:00
ganovelli
0a64a31e6e
added typechecking and function to return the list of attributes of a given type
2010-06-16 15:17:42 +00:00
Paolo Cignoni
2bbf1c86ef
Added first version of vertex quality saturation function (to be thorougly tested)
2010-06-16 13:23:59 +00:00
Paolo Cignoni
beb996e9c9
Renamed a symbol that caused ambiguity (VertexInfo -> vertexClipInfo) added functor and function for box clipping
2010-06-16 13:23:07 +00:00
Paolo Cignoni
79783ac1bb
Moved the removal of faces with edges outside a given range to a selection function into UpdateSelection<>::
2010-06-16 11:40:14 +00:00
Nico Pietroni
066bc0b7cf
changed calls to the new InterpolationParameters function
2010-05-25 14:54:50 +00:00
Marco Di Benedetto
0fc8a49a51
2010-05-22 19:47:43 +00:00
Gianpaolo Palma
13f0066cfa
Fixed bug in the rasterization function to generate correct samples outside triangles which have a texture space border edge.
2010-05-21 16:43:58 +00:00
ganovelli
f12433c258
uncommented fourth template parameter in declaration of trimesh
2010-05-19 17:06:18 +00:00
ganovelli
6b807efa9c
separated alltypes from usedtypes. The dummy types for simplex where char, now are derived by
...
their proper type (eg. the dummy type for Vertex is a simple derivation of vcg::Vertex)
2010-05-19 17:05:29 +00:00
Nico Pietroni
3ab37342c6
corrected 1 bug in CountEdges function
2010-05-19 15:09:59 +00:00
Paolo Cignoni
7473b2177a
Added ComputePerFaceQualityHistogram (provided by Andrea Tagliasacchi)
2010-05-05 12:30:58 +00:00
Paolo Cignoni
b6d2c330f2
added a wrapper for the getkclosest that does not need the edgeplane additional data structure
...
and corrected a bug in the function that shot a bunch ofrays
2010-05-04 08:19:51 +00:00
Paolo Cignoni
b2d20dd837
Removed printf and added the standard callback approach
2010-04-30 09:55:34 +00:00
Paolo Cignoni
c7f479c580
Cleaned up a bit the generic updateheap function of the generic tri_edge_collapse that was incorrect in case of generic non symmetric collapses
2010-04-30 09:54:00 +00:00
Paolo Cignoni
cc92e014cc
added RemoveFaceFoldByFlip that Search and remove by flipping small single triangle folds:
...
- a face has normal opposite to all other faces
- choose the edge that brings to the face f1 containing the vertex opposite to that edge.
2010-04-30 09:43:42 +00:00
mtarini
ddcd4c0bf9
Fixed catmull clark subdivision schema.
2010-04-29 15:07:41 +00:00
Paolo Cignoni
05151acef5
added ComputePerFaceQualityDistribution
2010-04-29 14:54:07 +00:00
granzuglia
43592cc07e
updated code in order to improve compatibility with g++ compiler.
2010-04-29 10:39:07 +00:00
granzuglia
904f0d9d3a
updated callback function for ball pivoting.
2010-04-29 09:33:05 +00:00
granzuglia
bc14f81543
patched many bugs in advancing front basic algorithm.
...
updated ball pivoting to new interface.
2010-04-29 09:19:49 +00:00
Paolo Cignoni
75bada1828
added class HalfEdgeTopology
2010-04-29 07:02:37 +00:00
Nico Pietroni
aeff903128
added normal vector return on the RaySpherical function
2010-04-28 13:11:26 +00:00
Paolo Cignoni
e271f9adb8
added missing function HasEHAdjacency
2010-04-26 15:11:52 +00:00
Paolo Cignoni
df4edbee23
corrected some bugs in halfedge allocation
2010-04-26 14:49:42 +00:00
Paolo Cignoni
5c9ee5cdff
added allocation and conversion of edges in function FromIndexed
...
added new tests in function CheckConsistency
2010-04-26 14:33:55 +00:00
Paolo Cignoni
956f343087
added missing typenames to new rayspherical fucntion
2010-04-21 21:08:08 +00:00
Nico Pietroni
7c89077eb7
Added function RaySpherical
2010-04-21 17:21:43 +00:00
Paolo Cignoni
8c0d44a430
Refactored and uniformed the naming of functions for testing manifoldness. Now they are named CountNonManifoldEdgeFF and CountNonManifoldVertexFF and eventually they can select the non manifold components
2010-04-20 00:45:12 +00:00
Paolo Cignoni
3291bb2889
Made uniform the naming of the intersection functions, added some comment and improved a bit the robustness of the triangle triangle intersection test in a mesh
2010-04-20 00:41:45 +00:00
Paolo Cignoni
84a6e15c84
added missing std:: qualifier
2010-04-20 00:34:21 +00:00
Paolo Cignoni
9f7776f96f
added selection to FaceQualityRamp colorization
2010-04-14 10:42:19 +00:00
granzuglia
9cd42be265
removed illegal *m.vert.end()
2010-04-12 12:45:06 +00:00
Marco Di Benedetto
38a4636b51
added generic functors to attribute seam.
2010-03-29 16:27:41 +00:00
Paolo Cignoni
b2e4c6cf80
corrected an ugly bug in the testfaceface
...
(note that it still assert for non 2manif meshes...)
2010-03-26 22:53:31 +00:00
Paolo Cignoni
0165f918f1
removed harmless gcc warnings
2010-03-26 09:43:45 +00:00
ganovelli
d4b7e1c8fe
[introduction of half edges as alternative representation]
...
No modification should be necessary for the existing code.
most relevant changes:
creation of folder:
vcg/connectors
vcg/connectors/hedge.h
vcg/connectors/hedge_component.h
addition to the container of half edges to the trimesh:
HEdgeContainer hedge; // container
int hn; // number of half edges
addition of
vcg/trimesh/update/halfedge_indexed.h
which contains:
- the functions to compute the half edge representation from the indexed and vivecersa
- the functions to add or remove an half edge
2010-03-25 16:52:55 +00:00
ganovelli
be64ec50c3
added inclusion of <string>
2010-03-25 16:51:20 +00:00
ganovelli
a96c0e79aa
[introduction of half edges as alternative representation]
...
No modification should be necessary for the existing code.
most relevant changes:
creation of folder:
vcg/connectors
vcg/connectors/hedge.h
vcg/connectors/hedge_component.h
addition to the container of half edges to the trimesh:
HEdgeContainer hedge; // container
int hn; // number of half edges
addition of
vcg/trimesh/update/halfedge_indexed.h
which contains:
- the functions to compute the half edge representation from the indexed and vivecersa
- the functions to add or remove an half edge
2010-03-25 16:50:45 +00:00
ganovelli
42557f19f8
[introduction of half edges as alternative representation]
...
No modification should be necessary for the existing code.
most relevant changes:
creation of folder:
vcg/connectors
vcg/connectors/hedge.h
vcg/connectors/hedge_component.h
addition to the container of half edges to the trimesh:
HEdgeContainer hedge; // container
int hn; // number of half edges
addition of
vcg/trimesh/update/halfedge_indexed.h
which contains:
- the functions to compute the half edge representation from the indexed and vivecersa
- the functions to add or remove an half edge
2010-03-25 16:50:28 +00:00
ganovelli
cf7563eff4
[introduction of half edges as alternative representation]
...
No modification should be necessary for the existing code.
most relevant changes:
creation of folder:
vcg/connectors
vcg/connectors/hedge.h
vcg/connectors/hedge_component.h
addition to the container of half edges to the trimesh:
HEdgeContainer hedge; // container
int hn; // number of half edges
addition of
vcg/trimesh/update/halfedge_indexed.h
which contains:
- the functions to compute the half edge representation from the indexed and vivecersa
- the functions to add or remove an half edge
2010-03-25 16:50:10 +00:00
ganovelli
e06c7f7e70
[temporary commit, it is to be moved to trimesh/update/halfedge_indexed.h]
2010-03-25 16:23:09 +00:00
Paolo Cignoni
1fb9d1c555
added a few disambiguating 'template' keywords
2010-03-23 22:37:46 +00:00
Paolo Cignoni
ac52e05bc4
added management variable disk radius sampling to poisson pruning
2010-03-23 16:15:27 +00:00
ganovelli
fb9d702e08
nametypebound..corrected bugs, changed a name, regrouped functions.
...
Change useless NameOf in NamesWithType which returns all the names bound to a given type
2010-03-23 09:47:52 +00:00
ganovelli
bda10aba6e
NameTypeBound wsorking (still to refine)
2010-03-23 09:25:13 +00:00
Paolo Cignoni
b6cb2fc881
added option to the Poisson sampling filter of using an additional mesh as source of already generated samples.
...
In this way it is possible to refine existing sampling by using different sample pools
2010-03-23 07:26:34 +00:00
Paolo Cignoni
b4857331f6
added FaceFauxCrease and other small helper for managing faux edges
2010-03-23 07:23:32 +00:00
Paolo Cignoni
d55a1069de
converted to the new style with mark outside the trimesh class
2010-03-19 22:56:30 +00:00
ganovelli
ca8d4abed3
All the functions handling TriMesh::imark have been moved outside the definition
...
of TriMesh to workaround an internal compiler error of vc compiler, and the usages have been
consequently updated
2010-03-19 17:14:01 +00:00
ganovelli
584936f27a
[ Changes in definition of TriMesh: PART II ]
...
Note: No changes to existing code need be the done, this mod
should be fully backward compatible
Old way to define a TriMesh ==============
struct MyMesh: public vcg::tri::TriMesh< vector<MyVertex> , vector <MyFace> >{};
new ways to define a TriMesh ==============
struct MyMesh: public vcg::tri::TriMesh< CONT1 >{};
struct MyMesh: public vcg::tri::TriMesh< CONT1 , CONT2>{};
struct MyMesh: public vcg::tri::TriMesh< CONT1 , CONT2, CONT3>{};
where CONT[i] can be vector< [MyVertex | MyEdge | MyFace ] >
(the order is unimportant)
2010-03-19 17:13:31 +00:00
ganovelli
30f799220d
All the functions handling TriMesh::imark have been moved outside the definition
...
of TriMesh to workaround an internal compiler error of vc compiler, and the usages have been
consequently updated
2010-03-19 17:05:14 +00:00
ganovelli
f90bd789a3
added class AllTypes to implement type trait in trimesh/base.h
...
AllTypes is a class defining, as inner classes, global default names
for vertex,edge and face
2010-03-19 17:02:36 +00:00
ganovelli
5ce2c677f5
added include to trimesh/base.h
2010-03-19 17:00:45 +00:00
Paolo Cignoni
3b770c935a
added updateQuality Vertex Clamp
2010-03-18 14:20:29 +00:00
Paolo Cignoni
3976724c18
removed harmless warnings and improved Cone generator
2010-03-18 10:07:39 +00:00
Paolo Cignoni
9aa23c4f6c
removed harmless warnings
2010-03-18 10:03:31 +00:00
Paolo Cignoni
335afeee7e
Disambiguated the origin of the ScalarType and CoordType in the simplex class. Now it derives from the type specified by the vertexRef component for the faces and from the Coord component for the vertexes. To be sure the ScalarType and CoordTypes are initialized to weird point3<bool> and char just to detect easisly when the wrong types shallow...
2010-03-18 10:03:00 +00:00
Paolo Cignoni
63e21f15cb
Disambiguated the origin of the ScalarType and CoordType in the simplex class. Now it derives from the type specified by the vertexRef component for the faces and from the Coord component for the vertexes. To be sure the ScalarType and CoordTypes are initialized to weird point3<bool> and char just to detect easisly when the wrong types shallow...
2010-03-18 10:02:32 +00:00
Paolo Cignoni
2a1aebfa3d
converted to the new UsedTypes syntax
2010-03-17 09:22:23 +00:00
Paolo Cignoni
80f825a428
removed harmless warnings
2010-03-16 14:25:30 +00:00
Paolo Cignoni
bf69d1c24a
removed harmless warnings
2010-03-16 14:22:08 +00:00
Paolo Cignoni
404831fc2f
added a missing 'template' keyword between class and metod name.
2010-03-16 11:06:32 +00:00
ganovelli
09b0fb5ef7
added a way to define a scope, i.e. a collection of bounds between name of the attributes
...
and their type, so that one can add an attribute without knowing its type. It is useful
when working with plugin.
example:
vcg::tri::NameTypeScope myScope;
AddNameTypeBound<int>(myScope,std::string("number");
AddNameTypeBound<float>(myScope,std::string("incoming_light"));
we have crated a scope myScope where "number" is bound a int and incoming_light is a float
In another part of code where I may not know the type of "number", I can still do:
AddPerVertexAttribute(myScope, mesh, "number");
and an int attibute name "number" will be added.
2010-03-15 15:17:20 +00:00
ganovelli
2e739825c8
[ Changes in definition of TriMesh: PART I ]
...
Note for the developers: the change to make to existing projects is very little
but strictly necessary to compile. This change IS NOT backward compliant.
==== OLD ==== way to define a TriMesh:
// forward declarations
class MyVertex;
class MyEdge;
class MyFace;
class MyVertex: public VertexSimp2 < MyVertex, MyEdge, MyFace, vertex::Coord3f,...other components>{};
class MyFace: public FaceSimp2 < MyVertex, MyEdge, MyFace, face::VertexRef,...other components>{};
class MyMesh: public TriMesh<vector<MyVertex>,vector<MyFace> >{};
==== NEW ==== way to define a TriMesh:
// forward declarations
class MyVertex;
class MyEdge;
class MyFace;
// declaration of which types is used as VertexType, which type is used as FaceType and so on...
class MyUsedTypes: public vcg::UsedType < vcg::Use<MyVertex>::AsVertexType,
vcg::Use<MyFace>::AsFaceType>{};
class MyVertex: public Vertex < MyUsedTypes, vertex::Coord3f,...other components>{};
class MyFace: public Face < MyUsedTypes, face::VertexRef,...other components>{};
class MyMesh: public TriMesh<vector<MyVertex>,vector<MyFace> >{};
===== classes introduced [vcg::UsedType] : it is a class containing all the types that must be passed to the definition of Vertex, Face, Edge... This
class replaces the list of classes to pass as first templates and the need to specify the maximal simplicial. So
< MyVertex, MyEdge, MyFace, beocmes MyUsedTypes,
and
VertexSimp2 becomes Vertex
[vcg::Use] : an auxiliary class to give a simple way to specify the role of a type
Note 2: the order of templates parameters to vcg::UsedTypes is unimportant, e.g:
class MyUsedTypes: public vcg::UsedType <vcg::Use<MyVertex>::AsVertexType,
vcg::Use<MyEdge>::AsEdgeType,
vcg::Use<MyFace>::AsFaceType>{};
is the same as:
class MyUsedTypes: public vcg::UsedType <vcg::Use<MyFace>::AsFaceType,
vcg::Use<MyEdge>::AsEdgeType,
vcg::Use<MyVertex>::AsVertexType>{};
==== the Part II will be a tiny change to the class TriMesh it self.
2010-03-15 13:10:43 +00:00
ganovelli
c40a6c3d97
[ Changes in definition of TriMesh: PART I ]
...
Note for the developers: the change to make to existing projects is very little
but strictly necessary to compile. This change IS NOT backward compliant.
==== OLD ==== way to define a TriMesh:
// forward declarations
class MyVertex;
class MyEdge;
class MyFace;
class MyVertex: public VertexSimp2 < MyVertex, MyEdge, MyFace, vertex::Coord3f,...other components>{};
class MyFace: public FaceSimp2 < MyVertex, MyEdge, MyFace, face::VertexRef,...other components>{};
class MyMesh: public TriMesh<vector<MyVertex>,vector<MyFace> >{};
==== NEW ==== way to define a TriMesh:
// forward declarations
class MyVertex;
class MyEdge;
class MyFace;
// declaration of which types is used as VertexType, which type is used as FaceType and so on...
class MyUsedTypes: public vcg::UsedType < vcg::Use<MyVertex>::AsVertexType,
vcg::Use<MyFace>::AsFaceType>{};
class MyVertex: public Vertex < MyUsedTypes, vertex::Coord3f,...other components>{};
class MyFace: public Face < MyUsedTypes, face::VertexRef,...other components>{};
class MyMesh: public TriMesh<vector<MyVertex>,vector<MyFace> >{};
===== classes introduced
[vcg::UsedType] : it is a class containing all the types that must be passed to the definition of Vertex, Face, Edge... This
class replaces the list of typenames to pass as first templates and the need to specify the maximal simplicial. So
<MyVertex, MyEdge, MyFace becomes <MyUsedTypes<
and
VertexSimp2 becomes Vertex
[vcg::Use] : an auxiliary class to give a simple way to specify the role of a type
Note 2: the order of templates parameters to vcg::UsedTypes is unimportant, e.g:
class MyUsedTypes: public vcg::UsedType <vcg::Use<MyVertex>::AsVertexType,
vcg::Use<MyEdge>::AsEdgeType,
vcg::Use<MyFace>::AsFaceType>{};
is the same as:
class MyUsedTypes: public vcg::UsedType <vcg::Use<MyFace>::AsFaceType,
vcg::Use<MyEdge>::AsEdgeType,
vcg::Use<MyVertex>::AsVertexType>{};
Note 3: you only need to specify the type you use. If you do not have edges you do not need
to include vcg::Use<MyEdge>::AsEdgeType in the template list of UsedTypes.
==== the Part II will be a tiny change to the class TriMesh it self.
2010-03-15 10:42:52 +00:00
Paolo Cignoni
d340b8b92a
removed harmless gcc warnings
2010-03-02 23:17:15 +00:00
Paolo Cignoni
355edd042e
removed harmless warnings
2010-02-24 09:56:58 +00:00
Paolo Cignoni
9f8497013f
removed harmless warnings
2010-02-24 09:55:28 +00:00
Paolo Cignoni
18c92582d4
Cleaned up the CompactFaceVector and the CompactVertexVector, Now they correctly manage existing FV and FF topology by preserving them (if they are initialized to something meaningful).
2010-02-22 17:37:51 +00:00
Paolo Cignoni
446400f6fc
Now the compactvertex and compactface funtions use the importlocal chain so we are sure that all the meaningful data is correctly copied (otherwise ocf stuff will not be copied) On the other hand when using ImportLocal we do not copy pointer based stuff like adjacency and *vertex pointers* that must be terefore copied by hand...
2010-02-19 00:21:26 +00:00
Luigi Malomo
8465fa432c
Modified rasterization algorithm to generate samples from buffer areas outside (texture space) border edges
2010-02-09 19:10:22 +00:00
Paolo Cignoni
796c2f0b56
Implemented MakeTriEvenBySplit (still assume that the mesh is a single connected component), removed some face assigment with the (hopefully) safer ImportLocal.
2010-01-03 02:14:51 +00:00
Paolo Cignoni
29e956d524
Corrected a small bug in CountNonManifoldVertexFFVF and changed the use of bit from selection to visit bit in the CountEdges
2010-01-03 01:59:32 +00:00
Paolo Cignoni
49bbc55cac
removed harmless gcc warnings
2010-01-03 01:57:39 +00:00
Paolo Cignoni
137c239375
removed harmless gcc warnings
2010-01-03 01:31:26 +00:00
matteodelle
401abff90a
Correction of IntersectionRayMesh functions, they did not compile.
2009-12-21 13:02:28 +00:00
Paolo Cignoni
fbbf8fe436
Removed gcc4.4 warnings
2009-12-08 15:57:19 +00:00
Paolo Cignoni
39f12e9fdd
added a function to permutate the vertex vector according to a given permutation.
2009-12-07 09:05:20 +00:00
Paolo Cignoni
d60fa01037
cleaning up include files
2009-12-07 08:23:02 +00:00
Paolo Cignoni
8a0c86c857
corrected the template in the normal<> function... again
2009-12-07 08:17:10 +00:00
Paolo Cignoni
760a767504
cleaning up include files
2009-12-07 08:15:59 +00:00
Paolo Cignoni
1c0ae1268c
added a slightly faster version of the longest edge stratified subdivision sampling
2009-12-04 08:36:49 +00:00
Paolo Cignoni
32619f1625
harmless gcc compiling issues
2009-12-03 23:17:46 +00:00
Paolo Cignoni
c749b3e143
Heavily restructured PoissonDisk resampling. Now there are two approaches, a pure pruning and a cell pruning approach
2009-12-02 15:10:12 +00:00
Paolo Cignoni
7c907e72ae
Corrected a survived old style use of temporary data in smoothning of vertex normals
2009-12-01 08:37:27 +00:00
Paolo Cignoni
86d534ec95
added a missing std::
2009-12-01 08:34:16 +00:00
Paolo Cignoni
dc82ece647
Optimized version of poisson sampling
2009-11-30 15:53:23 +00:00
Paolo Cignoni
a89b2ace77
added some const and inline keywords
2009-11-30 10:32:37 +00:00
Paolo Cignoni
a209a9b890
Refactoring of the Poisson Sampling algorithm. Hopefully faster
2009-11-25 15:50:36 +00:00
Paolo Cignoni
3482ee805e
added a few missing std:: and cleaned up a bit the requirements
2009-11-05 10:19:42 +00:00
Paolo Cignoni
ad4ad4026c
added computation of the per-vertex directions and values of curvature using a quadric fitting method
2009-11-05 09:55:43 +00:00
Nico Pietroni
fe6d3ca34d
restored changes for a corrected use of default copy constructor
2009-10-27 10:48:52 +00:00
Marco Di Benedetto
a80c4d25ef
fixed in-place version.
2009-10-26 12:19:21 +00:00
Marco Di Benedetto
e7cbe4f558
modified typedef due to GCC complaints.
2009-10-23 20:25:54 +00:00
Marco Di Benedetto
d650013e60
first commit.
2009-10-23 10:04:51 +00:00
Paolo Cignoni
8dd2320a4d
add missing std::
2009-10-15 11:53:09 +00:00
Nico Pietroni
fdd33df567
minor changes
2009-10-14 16:15:50 +00:00
Nico Pietroni
01f772d7f8
corrected order of operations of decrease-increase valencies
2009-10-14 15:15:32 +00:00
Nico Pietroni
8c67be5617
added interpolator class for refinement
2009-10-14 15:05:08 +00:00
mtarini
2f1c77c69a
Added a flag to choose whether to use Length based criteria or Quality based ones.
2009-10-14 14:35:25 +00:00
mtarini
7c78d81cdc
added importance weighting.
2009-10-14 14:32:55 +00:00
Nico Pietroni
a60c31845c
added function HasConsistentEdges
2009-10-14 13:56:06 +00:00
Nico Pietroni
810c3df9a4
Changed TestVertexFace function in order to test if the each face is effectively added to the VF list of a vertex.
2009-10-14 13:54:39 +00:00
ganovelli
b902431bc1
extended support to dump attributes (see wrap/io_trimesh/[import | export]_VMI.h )
...
It was only for vertices, now it is also for faces and mesh attributes.
Compiled gcc and .net. Tested only on toy exmaples
2009-10-07 11:05:29 +00:00
Paolo Cignoni
06bda0acae
corrected the use of default copy constructor with the more or less standard importLocal
2009-10-05 22:46:32 +00:00
Paolo Cignoni
ca16dcdf52
added management of faux edges in functions that retrieve the set of edges
2009-10-02 14:13:04 +00:00
Paolo Cignoni
a35120d9d9
added faux edge sampling management
2009-10-02 14:11:34 +00:00
mtarini
5acb759d8e
Removed a rarely expressed bug on CollapseDiag
2009-09-24 16:12:57 +00:00
Paolo Cignoni
d2edfc1f4d
removed two dummy useless functions
2009-09-22 22:36:22 +00:00
Paolo Cignoni
022df4f59a
Added ComputePerVertexQualityDistribution
2009-09-22 16:42:59 +00:00
Paolo Cignoni
1b7adbe035
Hole filling now returns the number of closed holes
2009-09-12 05:20:32 +00:00
mtarini
beb12f0b7c
2009-09-09 12:26:04 +00:00
mtarini
88ef8fa03b
minor performance optimizations.
2009-09-07 17:54:39 +00:00
mtarini
7e3ad9eced
2009-09-07 16:44:01 +00:00
mtarini
15f6f89d06
Added a few convenience methods to Pos.
2009-09-07 15:53:28 +00:00
mtarini
a2e777fd9a
2009-09-04 16:49:41 +00:00
Nico Pietroni
5846e9a86d
added initial #define to avoid multiple inclusion
2009-09-04 15:52:21 +00:00
mtarini
2c3a92242b
Added working valency in flags computations (and used to detect singlets/doublets quicker)
2009-09-03 22:35:28 +00:00
mtarini
b4b6e596eb
2009-09-02 17:25:17 +00:00
Nico Pietroni
e43cfa5f43
corrected bugs in Iterator
2009-09-02 13:28:37 +00:00
Nico Pietroni
c1daa656fe
corrected bug in returning value of MarkSmallestEdgeOrDiag
2009-09-02 13:27:30 +00:00
Nico Pietroni
672cb554b1
added Initial #define to exclusive inclusion
2009-09-01 18:23:50 +00:00
mtarini
8f89da47ef
Now collapse methods (diagonal, counter-diag, and edge) return bool success and take optional parameter of type Pos (around which to rotate to find all affected quads). Also added an iterator that goes around Pos that returns quads (only once per quad).
2009-09-01 17:14:35 +00:00
Nico Pietroni
37c11749f7
changed flags of vertices in case of modifications
2009-08-31 18:45:58 +00:00
mtarini
d3232eb472
Added keep track Valency (in flags. For now, uses hard-wired flag interval 24-28.).
...
Valency used to detect Singlet, Doublets. Marks vertex flag V in affected Quads in all basic operations (method MarkFaceF)
2009-08-31 14:58:57 +00:00
Nico Pietroni
733caf9478
changed TestEdgeRotation() and quadQuality() from private to public
2009-08-30 10:04:21 +00:00
Paolo Cignoni
b14cd10824
Added management of per-vertex quality values during simplification to amplify initial quadric values
2009-08-30 09:35:36 +00:00
mtarini
d231b9d021
Encapsulated everything in a static class. Also, templated with Interpolator "single-method static class" functor to make custom vertex interpolations during collapses.
2009-08-28 15:17:23 +00:00
mtarini
ecd1de4d94
added UpdateQualityAsBitQuadValency
2009-08-21 18:46:51 +00:00
mtarini
8e081cde43
Now BitQuadMarkVertexRotations rotates all profitable ones (not just the 1st)
2009-08-21 18:46:05 +00:00
Paolo Cignoni
b9ad0d4aa2
A function inside AddPointSet() was templated on CMeshO instead of the general type MeshType. This could lead to errors at compile time. CMeshO has been replaced with MeshType and now works fine.
2009-08-07 13:56:38 +00:00
Paolo Cignoni
b54b74e103
changed doxigen comments.
2009-08-04 21:10:08 +00:00
Paolo Cignoni
b507e2e8f7
added comments in doxygen style.
2009-08-02 21:43:13 +00:00
ganovelli
286ac9162a
added cr at the end
2009-07-29 12:48:30 +00:00
ganovelli
f1b1220225
small changes to enable the mesh dumping on VMI file (see wrap/io_trimesh/[import | export]_VMI.h )
...
and HandlesWrapper renamed to PointerToAttribute
2009-07-29 12:46:46 +00:00
Paolo Cignoni
4e1b6897b1
class that provides an estimation of the overlap of two meshes. It works as follow: it samples N points in a normal equalized manner on the Mov mesh, then count how many points of the Fix mesh are in consensus with the sampled points. To be in consensus means: distance between points is <= param.consensusDistance AND the angle between points normals is <= param.normalAngle. This works for point clouds too. comments will be added in next commit.
2009-07-28 23:07:26 +00:00
Paolo Cignoni
44fd7bb2ba
slightly changed the trivial sampler to make simpler to use all the sampling strategies to just get a coord vector.
2009-07-22 05:59:03 +00:00
Paolo Cignoni
9608ec798b
compilation fixes with Eigen
2009-07-21 07:29:13 +00:00
granzuglia
b41603d086
added missing #include file update/topology.h
2009-07-17 08:22:38 +00:00
Paolo Cignoni
7e5a7630f2
-added CountPointSet() to clustering
...
-ComputePerVertexQualityHistogram() modified; added a parameter to compute histogram taking into account just selected vertexes.
2009-07-16 10:16:39 +00:00
granzuglia
bb97c3a1ec
changes in order to compile with gcc 3.x
2009-07-15 16:27:29 +00:00
Nico Pietroni
046558798a
lien 242 added cast to ScalarType on "2.0" to avoid warning in case of float usage
2009-07-14 14:33:00 +00:00
Nico Pietroni
61d4d72c4c
removed closests[i]->C()=Color4b::Green; form MergeCloseVertex function
2009-07-14 14:31:20 +00:00
Paolo Cignoni
15531646b5
better comment in assert of finding nan in histograms
2009-07-14 09:00:23 +00:00
Paolo Cignoni
d71d110703
Heavily restructured clustering class to allow also a subsampling strategy that allow the fast extraction of a well spaced subset of vertices
2009-07-14 08:57:05 +00:00
Marco Di Benedetto
a79d8f9bd8
changed field order in PointerUpdater to prevent constructor warning (in initialization list).
2009-07-08 16:12:46 +00:00
mtarini
ec1c94cee2
Added a few seek-best-op (and-do-it) operations (MarkSmallestEdgeOrDiag... etc)
2009-07-07 15:25:13 +00:00
mtarini
ef71c4ef04
Added new local operations (RotateBitQuadVertex, CollapseQuadEdge...).
2009-07-07 15:23:42 +00:00
mtarini
077e720428
Added PerBitQuadFaceNormalized
2009-07-07 15:22:28 +00:00
mtarini
f4bc92f6f7
Bitquad_* first version.
2009-06-30 14:09:09 +00:00
Marco Di Benedetto
54f5418be2
removed reset to false of preventUpdateFlag in Clear().
2009-06-29 16:13:26 +00:00
Paolo Cignoni
e8908f7742
Added CountBitLargePolygons (better name suggestion?) for counting the number of polygons in the case that there are vertexes surrounded by faux edges too (like in the case of dodecahedron of platonic.h)
2009-06-26 23:18:51 +00:00
mtarini
92e3bf554f
Added ExtractPolygon quad support function
2009-06-26 13:05:52 +00:00
Paolo Cignoni
c7320a32a3
added functions to remove connected components
2009-06-25 08:49:37 +00:00
Paolo Cignoni
b2bc0d07ba
small gcc compilation errors (typenames, missing std...)
2009-06-25 07:29:29 +00:00
Paolo Cignoni
eae78a0251
completed the correct working of temporary data inside the refinement functions
2009-06-25 06:19:00 +00:00
Paolo Cignoni
2c3da1c3c9
changed the constructor of the MidPoint functor of the refine. Now it requires a Mesh as an argument to get reliable knowledge of the presence/absence of temporary data.
2009-06-24 20:31:57 +00:00
Paolo Cignoni
60afe72ca8
added initialization of the mesh color to the standard opossum gray
2009-06-23 20:43:39 +00:00
Paolo Cignoni
168ea81ca8
Added PerlinColor function and ColorNoise function
2009-06-16 08:57:24 +00:00
Paolo Cignoni
fde38e0612
added missing iteration control inthe hc laplacian smoothing
2009-06-11 23:56:06 +00:00
Paolo Cignoni
70d3ccfa23
Removed harmless warnings
2009-06-11 23:55:06 +00:00
Marco Callieri
b066baa686
added cast in a SQRT (could not resolve overloading
...
(int)(sqrt((double)n_samples) +1.0);
2009-06-08 15:48:55 +00:00
Paolo Cignoni
b05e5d1184
Made public the default constructor of PerVertexAttributeHandle, PerFaceAttributeHandle.
...
I hope that it was done private by mistake...
2009-06-07 08:55:44 +00:00
Federico Ponchio
b39afe0c18
gcc complained about perVertexAttributeHandle missing template parameters...
2009-06-05 11:08:37 +00:00
ganovelli
f223914581
factorized a bit the attribute classes in TriMesh;
...
added to IsValidHandle the check that pointer to data is not null.
Explanation:
a handle may be not valid for two reasons:
1) the attribute has been destroyed with a DeletePer*Attribute
2) the handle has been declared but not initialized.
The change is to cover the case 2)
2009-06-04 16:13:21 +00:00
ganovelli
66ec7652dc
factorized a bit the attribute classes in TriMesh;
...
added to IsValidHandle the check that pointer to data is not null.
Explanation:
a handle may be not valid for two reasons:
1) the attribute has been destroyed with a DeletePer*Attribute
2) the handle has been declared but not initialized.
The change is to cover the case 2)
2009-06-04 16:08:15 +00:00
Paolo Cignoni
69004410e3
Corrected a wrong function to clear border face flag (and added BORDER012 to the enums of the flags)
2009-06-04 08:15:59 +00:00
Federico Ponchio
e888ef1560
removed some useless consts
2009-06-03 12:23:20 +00:00
Paolo Cignoni
b3e9a9e105
Changed a few geodesic function from void to bool to return possible failures (like for exmple asking for border distance on a mesh without border)
2009-05-26 22:31:58 +00:00
mtarini
c0b0c7469c
Added diagnostic and measurement methods for bit-polygonal meshes: IsBitQuadOnly, IsBitTriOnly, IsBitPolygonal, IsBitTriQuadOnly, CountBitQuads, CountBitTris, CountBitPolygons, HasConsistentPerFaceFauxFlag...
2009-05-26 18:19:17 +00:00
Paolo Cignoni
37057700b2
Changed the brightness and contrast color processing algorithm to match exactly the GIMP algorithm.
2009-05-25 09:02:32 +00:00
Paolo Cignoni
a0a965f17c
Added the method GetClosestFaceNormal, that use the functor PointNormalDistanceFunctor.
2009-05-23 20:10:48 +00:00
Paolo Cignoni
291c2790af
Removed harmless warnings
2009-05-22 07:54:42 +00:00
Paolo Cignoni
e1e58a75cf
added another shape to platonic, a camera.
2009-05-21 23:04:49 +00:00
Paolo Cignoni
c5491807fd
*** SIGNIFICANT CHANGE ***
...
The member 'camera' of the base trimesh class, is no more used since Dec 2006.His initial purpose was keeping intrinsics of the camera, but it is a long time that intrinsics have moved into the Shot class.
The I/O procedure already comply this fact filling only the interal structure.
2009-05-21 23:02:48 +00:00
Paolo Cignoni
143f9461dd
moved (and renamed) trivial walker from apps/ to vcg/complex/trimesh/create
2009-05-18 14:19:12 +00:00
Paolo Cignoni
08ffe4b7a1
re-correct the assert that was causing a failure. The previous commit tho marching cubes.h (done by me!) was rather wrong. Sorry,.
2009-05-08 21:41:37 +00:00
mtarini
a7e5e51ddc
added IsPolygonal, which tells you whether the mesh actually represents a polygonal mesh (false if triangle only)
2009-04-27 14:13:28 +00:00
Paolo Cignoni
1236df14c5
Added RemoveDuplicateFace Function
2009-04-23 21:21:21 +00:00
Nico Pietroni
c73495b7ce
added __VCG_DECIMATION_TRIFLIP to ensure unique inclusion
2009-04-22 15:13:41 +00:00
Paolo Cignoni
8bd0953add
removed harmless warning
2009-04-22 10:31:33 +00:00
Paolo Cignoni
cc0204e797
removed harmless warning
2009-04-22 10:30:04 +00:00
Paolo Cignoni
665fa05d1c
Added RegularRecursiveOffset sampling function
2009-04-22 10:27:44 +00:00
Paolo Cignoni
312532aab3
added missing test on deleted faces
2009-04-21 15:42:18 +00:00
mtarini
aeaec2ab4c
All methods now set flags Faux (where appropriate) that identifies edges inside a polynomial face (quads & penta).
...
FaceGird now cuts closer aoround holes.
Rewritten Cilynder (too many errors in prev version)
2009-04-20 22:53:31 +00:00
mtarini
52de726be4
minor (commento)
2009-04-20 22:50:43 +00:00
Paolo Cignoni
fb261dc8bf
added cleaning function to merge very close vertice (for the one who needs a unify duplicate vertices that unify also vertices that are not exactly the same
2009-04-19 21:13:36 +00:00
Paolo Cignoni
0c61619049
Solved bug about aliasing when resampling with signed distance thin and long triangles.
2009-04-10 15:05:49 +00:00
Paolo Cignoni
47dc2ecd6c
Added two different methods for computing vertex normals from facet normals, weighted and weighted by angle
2009-04-10 14:21:00 +00:00
Paolo Cignoni
e702547041
added in the Append::Mesh function the possibility of copying also unreferenced vertices (indispensable for point sets!)
2009-04-04 16:58:21 +00:00
ganovelli
dd468f9d5d
compiled with gcc
2009-04-01 13:07:08 +00:00
ganovelli
b7dd6f79aa
added include to flag.h
2009-04-01 13:05:35 +00:00
Paolo Cignoni
a16baded52
Added FaceConnectedFF; the function expands current selection to cover the whole connected component.
2009-04-01 04:30:35 +00:00
Paolo Cignoni
3447c82e88
Removed a few harmless warnings
2009-03-30 20:58:18 +00:00
Paolo Cignoni
066c2bdb8b
Corrected ComputePoissonDiskRadius to Manage approximately the PointCloud Case, using area of the bbox as an approx of the surface area.
2009-03-27 15:09:14 +00:00
Paolo Cignoni
9a0b315fb0
Small change in poisson point sampling, we should call the sampler class with the input mesh
2009-03-26 10:51:44 +00:00
Paolo Cignoni
cf028b728b
Added parameter invertQuality to PoissonDiskSampling in order to invert
...
how quality influences density distribution
2009-03-25 08:22:03 +00:00
Paolo Cignoni
499822bc17
NO_QT defines to explicitly disable qt dependant behavior
2009-03-25 08:13:07 +00:00
ganovelli
917343b0f5
removed the (useless) template parameter to Per[XXX]DeleteAttribute(mesh,name)
2009-03-20 10:22:16 +00:00
ganovelli
60c50bcf48
corrected vert:: to vertex::
2009-03-20 07:15:20 +00:00
Paolo Cignoni
e6fe311c6d
Updated DepthSmooth to the recent library changes
2009-03-20 00:27:07 +00:00
Paolo Cignoni
2ba11ecc4a
Restructured a bit the stratified sampling approaches
2009-03-19 22:04:52 +00:00
Marco Di Benedetto
375e0cec74
added static member for vertex radius check (HasPerVertexRadius()).
2009-03-19 17:26:26 +00:00
Paolo Cignoni
c955238597
Added a missing HasPerVertexRadius
2009-03-19 16:22:23 +00:00
Marco Di Benedetto
a0e1593671
use const_iterator for input face container.
2009-03-17 16:39:23 +00:00
Paolo Cignoni
c39498df1f
Fixed CMeshO error
2009-03-12 15:56:31 +00:00
Paolo Cignoni
04e2464e3d
Added RemoveTVertexByCollapse and RemoveTVertexByFlip methods
2009-03-11 16:43:16 +00:00
Nico Pietroni
d2bcd3dffa
added in MidPoint inheritance of texture coordinates
2009-02-27 16:12:20 +00:00
Paolo Cignoni
17f0ac0431
added another grid building function. This one build up a possibly incomplete grid.
2009-02-16 00:59:24 +00:00
Paolo Cignoni
891aaef124
Corrected bug in the normalization of quality->radius of the poisson variable disk sampling
2009-02-11 09:38:41 +00:00
Paolo Cignoni
b9949e8910
Added a custom macro to disable qt calls if not needed, just a temporary
...
solution
2009-01-29 11:12:57 +00:00
Paolo Cignoni
5b921d1159
max must begin with a capital M...
2009-01-29 10:49:34 +00:00
Paolo Cignoni
76f8093297
Namespace correction for max function
2009-01-29 10:46:39 +00:00
Paolo Cignoni
d41a88bfe5
added handy constructor with the base mesh to vertex/face marker functors
2009-01-29 00:17:31 +00:00
Paolo Cignoni
92f9a2026b
completed the refactoring of the variable disk sampling
2009-01-29 00:16:00 +00:00
Paolo Cignoni
eaa4d2232b
Refactored a bit the structure of the poisson sampling code to include the variable density sampling
2009-01-27 23:54:47 +00:00
Paolo Cignoni
c9173c73fe
corrected wrong invocation of istwomanifold check
2009-01-26 15:15:11 +00:00
ganovelli
79b2ad6eef
added possibility to pass a functor to evaluate the distance between two vertices
...
other than the EuclideanDistance (which is the default value)
2009-01-23 17:15:43 +00:00
Paolo Cignoni
3d5ccb47f9
compilation fixes with eigen (norm2=>squaredNorm, a*b => a.dot(b))
2009-01-23 16:58:47 +00:00
Massimiliano Corsini
393ef8a41a
add changing density
2009-01-21 17:39:40 +00:00
Paolo Cignoni
ca1ac6323f
add absolute distance resampling
2009-01-21 16:22:05 +00:00
Massimiliano Corsini
ce6e4023c5
improve generatePoissonDisk performances
2009-01-21 15:40:16 +00:00
Massimiliano Corsini
226d111f9c
modify generatePoissonDisk taking into account spatial hash properties
2009-01-20 11:06:12 +00:00
ganovelli
f1ef838535
corrected bug in MeanAndGaussian, computation for the obtuse case (thanks Bo Jang)
2009-01-20 10:26:05 +00:00
Paolo Cignoni
4f6cff78ed
Yet another missing template keyword for gcc
2009-01-20 08:18:01 +00:00
Paolo Cignoni
92fd17590a
Really really working poisson disk
2009-01-19 23:18:10 +00:00
ganovelli
d6d380f09b
corrected on operator = for the attributes (it was not assigning the _handle)
2009-01-19 12:57:47 +00:00
Paolo Cignoni
0879d07401
Corrected a wrong template arg MyMesh into the right MeshType
2009-01-18 23:52:27 +00:00
Massimiliano Corsini
6be9fe3b03
fix typos
2009-01-18 19:33:50 +00:00
Massimiliano Corsini
d0fcdcf5cd
final version of the poissondisk sampling
...
(there is still a bug in GetInSphereVertex)
2009-01-17 17:37:06 +00:00
Paolo Cignoni
4b1be10671
rewrote VertTmark to have a reasonable dummy behaviour (it is useless...)
2009-01-16 16:15:13 +00:00
Paolo Cignoni
f1336a0085
still experimenting with the poisson sampling
2009-01-16 16:14:16 +00:00
Massimiliano Corsini
83350db29a
poissondisk sampling finished...
2009-01-16 15:01:46 +00:00
Massimiliano Corsini
7bd8b4f19b
poissondisk sampling completely restructure for performance
2009-01-16 11:30:19 +00:00
Massimiliano Corsini
87ed77aa88
fix return error on vertexattrib
2009-01-16 11:29:43 +00:00
matteodelle
1c65575000
Added faceface updatetopology in Sphere, otherwise it crashes!
2009-01-16 08:05:33 +00:00
Massimiliano Corsini
dad1103184
poisson disk sampling (under construction...)
2009-01-15 22:38:37 +00:00
ganovelli
87b8c55144
added Allocator::IsValidHandle which returns true if an handle to an attribute is valid or if the attribute
...
has been removed. This modification affects timesh/allocate.h and trimesh/base.h
2009-01-15 17:41:59 +00:00
matteodelle
12e32feb59
Replaced forgotten CMeshO with MESH_TYPE in line 314
2009-01-15 17:31:23 +00:00
Massimiliano Corsini
f5e4f86859
2009-01-15 17:03:08 +00:00
Paolo Cignoni
957fb711ed
minor gcc compilation issues
2009-01-15 16:00:46 +00:00
Paolo Cignoni
0a287f7bce
added missing function for setting flags on faces
2009-01-15 15:59:51 +00:00
Massimiliano Corsini
15ae5168f2
further step in poisson disk sampling development..
2009-01-15 15:32:10 +00:00
Paolo Cignoni
ab8fe0462d
added some missing typename for gcc compiling
2009-01-15 08:04:12 +00:00
Paolo Cignoni
0e037cabc1
added multisampling distance field evaluation
2009-01-15 01:31:09 +00:00
Paolo Cignoni
f001af1c5c
better comments and removed useless code
2009-01-15 01:25:15 +00:00
Massimiliano Corsini
fdaa2e88d1
poisson disk under development... (not working for now)
2009-01-14 17:12:12 +00:00
Paolo Cignoni
45ffbac554
added a forgot std::
2009-01-14 16:22:40 +00:00
Paolo Cignoni
2497e3d286
Added Edge Uniform sampling function that takes samples uniformly only on the mesh edges by regularly subdividing them
2009-01-14 15:56:07 +00:00
Paolo Cignoni
1f992d7929
Added helper function to returning a list of all the unique edges of a mesh
2009-01-14 15:54:50 +00:00
Paolo Cignoni
3f38ad70da
Complete re-wrote of the refinement code. Now the predicate is called only once for each edge. no more std:maps are used but the new attributes to store temporary pointers inside newly subdivided faces.
2009-01-14 01:18:34 +00:00
Paolo Cignoni
9dc34faae4
added missing face flags clear/setting members
2009-01-14 01:16:11 +00:00
Paolo Cignoni
3cee0f23b5
commented out a addCell call that was undefined
2009-01-13 21:10:57 +00:00
Massimiliano Corsini
c4ca67e959
fix typo
2009-01-12 16:11:37 +00:00
Paolo Cignoni
417c52b7b0
Better comments clarifying the purpose of Samplers and Algorithms for sampling
2009-01-12 16:01:49 +00:00
Massimiliano Corsini
1a05696eb5
first sketch of the Poisson disk (projection-based) sampling
2009-01-12 14:22:03 +00:00
Massimiliano Corsini
abbf0d60ce
starting to implement PoissonDisk sampling
2009-01-11 15:43:58 +00:00
Massimiliano Corsini
44aa343da6
minor changes in poisson disk
2009-01-09 17:05:10 +00:00
Massimiliano Corsini
3586a13438
replace rand() with MarsenneTwister generator
2009-01-09 14:35:46 +00:00
Paolo Cignoni
28c4843567
Heavily restructured. Now more robust and allow also the creation of discretized surfaces
2009-01-08 11:26:49 +00:00
Paolo Cignoni
20272bf7ac
gcc compilation issues
2009-01-08 07:52:16 +00:00
ganovelli
8ae63ef1c3
- added optional parameter to return the closest vertex as a vertex attribute
...
- added a tolerance to check triangle inequality
2009-01-07 14:25:46 +00:00
ganovelli
2e7bde9f24
more clean up, unified single and multiple sources cases
2009-01-06 15:13:43 +00:00
ganovelli
818129d045
refactorized but Still to clean up;
...
It seems to work but "continuous" distance estimation cannot work with multiple sources.
In this case edge leght estimation is used.
2008-12-22 19:51:11 +00:00
Paolo Cignoni
56d93a02b6
Othography. Fartest -> Farthest
2008-12-21 07:44:29 +00:00
Paolo Cignoni
36c902097a
put class in namespace tri, removed useless parameter from DistanceFromBorder()
2008-12-21 01:37:29 +00:00
ganovelli
39ffa7cd3d
[SIMPLEXplus promotion]
...
This modification removes the old way to define simplexes (already deprecated and unsupported).
In the following SIMPLEX = [vertex|edge|face|tetrahedron]
All the stuff that was in vcg/simplex/SIMPLEXplus/ has now been promoted to vcg/simplex/
Details:
- the folder vcg/simplex/SIMPLEX/with has been removed
- the file vcg/simplex/SIMPLEX/base.h has been renamed into vcg/simplex/SIMPLEX/base_old.h
- the content of vcg/simplex/SIMPLEXplus/ has been moved into vcg/simplex/SIMPLEX/
- the folder vcg/simplex/SIMPLEXplus/ has been removed
Actions the update the code using vcglib:
replace <vcg/simplex/SIMPLEXplus/*> with <vcg/simplex/SIMPLEX/*> in every include
for MESHLAB users: already done along with this commit
2008-12-19 10:39:32 +00:00
ganovelli
d3682195ca
replaced a "3" with a f->VN()
2008-12-18 17:53:42 +00:00
ganovelli
db04989f13
added support for meshes with holes
2008-12-18 17:52:48 +00:00
Paolo Cignoni
20b46e3122
added the default use of a safe random generator for shuffling vectors (mingw rand seems really bad...)
2008-12-18 00:30:52 +00:00
Paolo Cignoni
c2c940338e
added a missing PerFaceFromCurrentVertexNormal mode
2008-12-18 00:27:47 +00:00
Paolo Cignoni
8ef495be20
added test to skip degenerate triangles in curvature computation
2008-12-12 15:08:36 +00:00
Paolo Cignoni
4e2808a64e
added assert for avoiding to put trash into a histogram
2008-12-12 15:06:27 +00:00
Paolo Cignoni
46cc8c7327
Removed harmless warnings
2008-12-11 13:56:37 +00:00
Paolo Cignoni
85dc63a154
moved here from meshlab. Long time due.
2008-12-11 13:52:25 +00:00
Paolo Cignoni
3485b76d8f
Added explicit casts
2008-12-09 11:36:34 +00:00
Paolo Cignoni
8f591655f3
added comment on the two critical asserts
2008-12-09 07:52:27 +00:00
Paolo Cignoni
2143a5138a
corrected bug in PerVertexFromCurrentFaceNormal (wrong use of Construct() )
2008-12-09 07:51:33 +00:00
Paolo Cignoni
a37e44cff1
Made create:box working. Current version was plain wrong. Thanks to Lorenzo Marchi
2008-12-08 14:56:28 +00:00
Paolo Cignoni
0047c70cae
Translated comments, added various notes, removed some dead code, changed a bit the interface of the default edgelen predicate
2008-12-05 22:57:20 +00:00
Paolo Cignoni
0e13472efb
corrected a wrong assert in grid creation function
2008-12-05 22:55:36 +00:00
Paolo Cignoni
e744ca1c0e
added the missing HasPerVertexMark
2008-12-05 22:45:05 +00:00
Paolo Cignoni
f6388be600
added VertexSet, the dual of UpdateFlags::VertexClear(bitmask);
2008-12-05 22:44:03 +00:00
Paolo Cignoni
cca3b3ad5f
cleaned up a lot of typename gcc compilation issues
2008-12-02 10:04:16 +00:00
Paolo Cignoni
62c3f721aa
Added missing include trimesh/allocate.h
2008-11-28 13:45:39 +00:00
ganovelli
1d263ec3ff
added the possibility to include a container of edges as a third parameter.
...
This mod should be fully backward compatible (tested .net 2005 and gcc 4.2.4)
2008-11-27 18:01:07 +00:00
ganovelli
9d8e452e65
added Alloc to support polygon meshes
2008-11-26 17:58:15 +00:00
ganovelli
01750729b6
missing checks on deleted simplex added
2008-11-26 17:57:09 +00:00
ganovelli
faeef173e8
added AddEdge and RemoveEdge (still much ongoing)
2008-11-26 17:56:00 +00:00
ganovelli
4cae6b5107
added the update of the pointers related to the AddEdges
2008-11-26 17:46:31 +00:00
Massimiliano Corsini
992a808685
2008-11-20 17:00:30 +00:00
Paolo Cignoni
8e23847cab
Distance functor is now a template parameter
2008-11-20 16:24:42 +00:00
Paolo Cignoni
619f3f69ef
Addedd missing include
2008-11-20 13:26:59 +00:00
Paolo Cignoni
42709146e6
Addedd missing std namespace befor make_pair
2008-11-20 13:26:26 +00:00
Massimiliano Corsini
99e6ea5dd6
add fake poisson-disk sampling
2008-11-17 12:52:17 +00:00
Paolo Cignoni
5c6c7cafd5
changed the interface of the texel sampling function. Now width and height of the sampling texture can be different
2008-11-14 15:12:02 +00:00
Paolo Cignoni
360da1dd58
small changes (this-> disambiguations) and a type hack to grant compilation on mac gcc
2008-11-13 09:44:46 +00:00
ganovelli
2dfa6976ac
[EDGE_SUPPORT] first working draft. It contains a class with two static function to compute indexed data structure from half edges and viceversa
2008-11-12 17:09:26 +00:00
ganovelli
274e20b3df
changed m.HasFFTopology to HasFFTopology(m)
2008-11-12 16:06:59 +00:00
ganovelli
122f0412c8
made compliant to polygon_support
2008-11-12 16:03:24 +00:00
ganovelli
c7e86ab57a
remove unreferenced variable
2008-11-12 16:01:11 +00:00
ganovelli
a5cbc8c7f8
added return to RemoveNonManifoldVertex
2008-11-12 16:00:27 +00:00
ganovelli
e37cca54a3
[EDGE SUPPORT]
...
Added default template to TriMesh to include the edges.
Added peredge attributes.
These modification do not require any change to the code using TriMesh, but it allows
to specify a real type of edge in case you want to use it.
2008-11-12 15:51:01 +00:00
ganovelli
1aa88e635b
added update of newEnd in AddFaces
...
Added [de]allocation of edges and per-edges attributes.
2008-11-12 15:46:16 +00:00
Paolo Cignoni
d124cae6fb
added a missing include
2008-11-07 15:37:46 +00:00
Paolo Cignoni
2e7c97e90e
Corrected the update cycle in the AddFace. Thanks to Michele Vannoni for pointing out this bug!
2008-11-07 15:36:19 +00:00
Paolo Cignoni
df84db769c
Rewrote the function for the selection and counting of non manifold vertices. Now it does not require VF topology, just FF.
2008-11-07 10:12:39 +00:00
Paolo Cignoni
336de84d19
Added an unbiased montecarlo and a revised (still to be improved) stratified sampling
2008-11-01 07:22:29 +00:00
Paolo Cignoni
49c72bc54e
Disambiguated some grid utility names (IPtoTP into IPfToPf and IPiToPf) in order to avoid ambiguities (due to automatic cast?)
2008-10-30 09:01:03 +00:00
Paolo Cignoni
e587581275
add transposeInPlace and duplicate V(int)
2008-10-29 11:17:11 +00:00
Paolo Cignoni
c1551eddfd
make Point derive Eigen's Matrix and some cleanning
2008-10-28 11:47:37 +00:00
ganovelli
949637c795
added private copy constructor and assignment operator to prevent people from doing those things
...
added empty constructors to attribute handles
2008-10-28 11:00:30 +00:00
Paolo Cignoni
7befff7bec
make point2 derived Eigen's Matrix, and a set of minimal fixes to make meshlab compile
...
with both old and new version. The fixes include:
- dot product: vec0 * vec1 => vec0.dot(vec1) (I added .dot() to the old Point classes too)
- Transpose: Transpose is an Eigen type, so we cannot keep it if Eigen is used. Therefore
I added a .tranpose() to old matrix classes, and modified most of the Transpose() to transpose()
both in vcg and meshlab. In fact, transpose() are free with Eigen, it simply returns a transpose
expression without copies. On the other be carefull: m = m.transpose() won't work as expected,
here me must evaluate to a temporary: m = m.transpose().eval(); However, this operation in very
rarely needed: you transpose at the same sime you set m, or you use m.transpose() directly.
- the last issue is Normalize which both modifies *this and return a ref to it. This behavior
don't make sense anymore when using expression template, e.g., in (a+b).Normalize(), the type
of a+b if not a Point (or whatever Vector types), it an expression of the addition of 2 points,
so we cannot modify the value of *this, since there is no value. Therefore I've already changed
all those .Normalize() of expressions to the Eigen's version .normalized().
- Finally I've changed the Zero to SetZero in the old Point classes too.
2008-10-28 00:59:46 +00:00
Paolo Cignoni
ab200fc950
Port to eigen2: state of the mess:
...
* curently nothing change if you don't define VCG_USE_EIGEN
* make Matrix*, Point3 and Point4 derive Eigen::Matrix (still ugly)
* now catching all the dot products to replace them by .dot()
note that most of meshlab already compile
2008-10-27 19:35:17 +00:00
ganovelli
69ebba04b9
Created.
...
PolygonSupport provides the functions to import a trimesh from a polygonal mesh and viceversa.
2008-10-27 16:54:32 +00:00
Paolo Cignoni
4db69febbe
big replacement .Zero => .SetZero, and start of Eigen's compatibilities (currently disabled by default)
2008-10-27 14:48:14 +00:00
Paolo Cignoni
64fcbc961a
compilation fix for 64bits systems
2008-10-24 12:41:50 +00:00
ganovelli
4783ac9a62
added an assertion
2008-10-24 10:26:28 +00:00
Paolo Cignoni
c5ec73d0f7
Added IntersectionRayMesh overload function who return hit point, baricentric's coordinates and a pointer of intersected face.
2008-10-14 14:31:35 +00:00
Paolo Cignoni
9b0875d19e
added a missing std::
2008-10-14 14:28:33 +00:00
Paolo Cignoni
6f1e8d0641
Added UpdateColor::VertexFromFace and UpdateColor::FaceFromVertex
2008-10-14 13:41:37 +00:00
ganovelli
dddce06a72
use of NextFE (of the jumping_pos) instead of NextE
2008-10-14 09:47:16 +00:00
Paolo Cignoni
ae6f7fee0f
Added FaceQualityGray() and changed (for sake of symmetry) FaceQuality() to FaceQualityRamp()
2008-10-14 06:37:36 +00:00
Paolo Cignoni
de8504ba3e
Added ComputePerFaceQualityMinMax()
2008-10-14 06:36:25 +00:00
ganovelli
d7920e1cc4
Added principal curvatures direction computation with by means of normal cycles:
...
Restricted delaunay triangulations and normal cycle
Cohen-Steiner, David and Morvan, Jean-Marie SCG '03
2008-10-13 14:55:05 +00:00
ganovelli
56857ecdb7
some cleanup of the Taubin tensor estimator (still not working properly)
2008-10-10 14:58:33 +00:00
Paolo Cignoni
78501226de
Removed a few warnings and added a template keyword in the call of a templated function member.
2008-10-09 13:50:45 +00:00
Paolo Cignoni
413001c79b
The fr parameter is now declared as const in local function ImportFace
2008-10-08 14:44:56 +00:00
ganovelli
0d4b3fbed0
[Polygon modification]
...
Added components to the face to handle generic polygons.
(compiled with .net and gcc)
This commit includes the following files:
vcg/complex/trimesh/base.h
Added deallocation of polygon data in the destructor
vcg/complex/trimesh/allocate.h
generalization from 3 to VN() vertices
vcg/complex/trimesh/update/topology.h
generalization from 3 to VN() vertices
vcg/complex/trimesh/update/flags.h
generalization from 3 to VN() vertices
vcg/simplex/face/pos.h
generalization from 3 to VN() vertices
vcg/simplex/faceplus/base.h
Added the method VN() to query the number of vertices
of the polygon (deafult 3) and methods Prev and Next
vcg/simplex/faceplus/component.h
added Alloc and Dealloc calls along the hierarchies
2008-10-08 09:10:53 +00:00
Paolo Cignoni
b58cabc1b6
better comment at the begininning explaing a bit the Refine templated mechanism.
2008-10-07 07:02:01 +00:00
ganovelli
a0cdf71abf
found a bug in PrincipaDirections, clean up of the function and better comments (thanks E.Puppo)
2008-10-02 14:25:54 +00:00
Paolo Cignoni
4f2be6a4ba
a forgotten trimesh -> tri (See previous commits of Fabio Ganovelli)
2008-09-30 12:38:34 +00:00
ganovelli
e16d065e93
[Namespaces changes]
...
vert->vertex
clean up of some namespaces to comply the following naming:
Complexes (3 letters namespaces):
order 0 (point cloud ) :vrt
order 1 (edge meshes) :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet
Simplexes (extended namespaces):
order 0 (vertex) :vertex
order 1 (edge) :edge
order 2 (triangle) :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 11:41:58 +00:00
ganovelli
7f399c7515
[Namespaces changes]
...
vert->vertex
trimesh->tri
clean up of some namespaces to comply the following naming:
Complexes (3 letters namespaces):
order 0 (point cloud ) :vrt
order 1 (edge meshes) :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet
Simplexes (extended namespaces):
order 0 (vertex) :vertex
order 1 (edge) :edge
order 2 (triangle) :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 11:38:05 +00:00
ganovelli
3831d9716f
[Namespaces changes]
...
vert->vrt
clean up of some namespaces to comply the following naming:
Complexes (3 letters namespaces):
order 0 (point cloud ) :vrt
order 1 (edge meshes) :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet
Simplexes (extended namespaces):
order 0 (vertex) :vertex
order 1 (edge) :edge
order 2 (triangle) :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:59:29 +00:00
ganovelli
b96b375d64
[Namespaces changes]
...
vert->vrt
clean up of some namespaces to comply the following naming:
Complexes (3 letters namespaces):
order 0 (point cloud ) :vrt
order 1 (edge meshes) :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet
Simplexes (extended namespaces):
order 0 (vertex) :vertex
order 1 (edge) :edge
order 2 (triangle) :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:57:42 +00:00
ganovelli
beb57b487c
[Namespaces changes]
...
vert->vrt
clean up of some namespaces to comply the following naming:
Complexes (3 letters namespaces):
order 0 (point cloud ) :vrt
order 1 (edge meshes) :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet
Simplexes (extended namespaces):
order 0 (vertex) :vertex
order 1 (edge) :edge
order 2 (triangle) :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:57:09 +00:00
ganovelli
abd367ac3f
[Namespaces changes]
...
vert->vrt
clean up of some namespaces to comply the following naming:
Complexes (3 letters namespaces):
order 0 (point cloud ) :vrt
order 1 (edge meshes) :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet
Simplexes (extended namespaces):
order 0 (vertex) :vertex
order 1 (edge) :edge
order 2 (triangle) :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:56:35 +00:00
ganovelli
e5d28ed8b5
[Namespaces changes]
...
trimesh->tri
clean up of some namespaces to comply the following naming:
Complexes (3 letters namespaces):
order 0 (point cloud ) :vrt
order 1 (edge meshes) :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet
Simplexes (extended namespaces):
order 0 (vertex) :vertex
order 1 (edge) :edge
order 2 (triangle) :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:55:18 +00:00
ganovelli
ece2df9202
[Namespaces changes]
...
trimesh->tri
clean up of some namespaces to comply the following naming:
Complexes (3 letters namespaces):
order 0 (point cloud ) :vrt
order 1 (edge meshes) :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet
Simplexes (extended namespaces):
order 0 (vertex) :vertex
order 1 (edge) :edge
order 2 (triangle) :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:53:28 +00:00
ganovelli
682865bf25
[Namespaces changes]
...
trimesh->tri
clean up of some namespaces to comply the following naming:
Complexes (3 letters namespaces):
order 0 (point cloud ) :vrt
order 1 (edge meshes) :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet
Simplexes (extended namespaces):
order 0 (vertex) :vertex
order 1 (edge) :edge
order 2 (triangle) :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:52:37 +00:00
ganovelli
ac3321980c
[Namespaces changes]
...
vert->vertex
trimesh->tri
clean up of some namespaces to comply the following naming:
Complexes (3 letters namespaces):
order 0 (point cloud ) :vrt
order 1 (edge meshes) :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet
Simplexes (extended namespaces):
order 0 (vertex) :vertex
order 1 (edge) :edge
order 2 (triangle) :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:52:09 +00:00
ganovelli
13c853509e
[Namespaces changes]
...
trimesh->tri
clean up of some namespaces to comply the following naming:
Complexes (3 letters namespaces):
order 0 (point cloud ) :vrt
order 1 (edge meshes) :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet
Simplexes (extended namespaces):
order 0 (vertex) :vertex
order 1 (edge) :edge
order 2 (triangle) :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:51:38 +00:00
ganovelli
7e579b7895
[Namespaces changes]
...
edge->edg
clean up of some namespaces to comply the following naming:
Complexes (3 letters namespaces):
order 0 (point cloud ) :vrt
order 1 (edge meshes) :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet
Simplexes (extended namespaces):
order 0 (vertex) :vertex
order 1 (edge) :edge
order 2 (triangle) :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:50:43 +00:00
ganovelli
9143a0d389
[Namespaces changes]
...
edge->edg
trimesh->tri
clean up of some namespaces to comply the following naming:
Complexes (3 letters namespaces):
order 0 (point cloud ) :vrt
order 1 (edge meshes) :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet
Simplexes (extended namespaces):
order 0 (vertex) :vertex
order 1 (edge) :edge
order 2 (triangle) :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:49:09 +00:00
ganovelli
cec96ba260
addded template parameter to comply the new definition of functor and
...
[Namespaces changes]
vert->vertex
clean up of some namespaces to comply the following naming:
Complexes (3 letters namespaces):
order 0 (point cloud ) :vrt
order 1 (edge meshes) :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet
Simplexes (extended namespaces):
order 0 (vertex) :vertex
order 1 (edge) :edge
order 2 (triangle) :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:48:41 +00:00
ganovelli
970c388277
[Namespaces changes]
...
edge->edg
clean up of some namespaces to comply the following naming:
Complexes (3 letters namespaces):
order 0 (point cloud ) :vrt
order 1 (edge meshes) :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet
Simplexes (extended namespaces):
order 0 (vertex) :vertex
order 1 (edge) :edge
order 2 (triangle) :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:47:09 +00:00
ganovelli
e15127934c
[Namespaces changes]
...
edge->edg
clean up of some namespaces to comply the following naming:
Complexes (3 letters namespaces):
order 0 (point cloud ) :vrt
order 1 (edge meshes) :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet
Simplexes (extended namespaces):
order 0 (vertex) :vertex
order 1 (edge) :edge
order 2 (triangle) :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:46:18 +00:00
ganovelli
8fd3eecf80
added version on IntersectionBallMesh that take a grid. It's a draft, to be refactored. And
...
[Namespaces changes]
edge->edg
clean up of some namespaces to comply the following naming:
Complexes (3 letters namespaces):
order 0 (point cloud ) :vrt
order 1 (edge meshes) :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet
Simplexes (4 letters namespaces):
order 0 (vertex) :vert
order 1 (edge) :edge
order 2 (triangle) :triangle
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:18:24 +00:00
Paolo Cignoni
8143b27315
added missing include callback.h
2008-09-29 10:12:38 +00:00
Paolo Cignoni
f3bddee157
gcc compiling issues (again using template keyword to disambiguate templated functions in templated classes)
2008-09-25 16:10:47 +00:00
ganovelli
a097ef4df9
automatic rough alignment by using 4pcs (4-points congruent sets for Robust pairwise surface registration, Mitra et al. SIGGREAPH 08). First working draft
2008-09-24 16:17:33 +00:00
ganovelli
68d900ec7e
changes to compile previous commit with gcc
2008-09-24 09:15:38 +00:00
ganovelli
f7da79d507
Add template parameter to PointDistanceFunctor
2008-09-24 08:56:06 +00:00
ganovelli
d52199f64c
DistanceFunctor templated on the type of the query
...
Added GetClosestVertexNormal which uses Vertex Position and Normal (see PointNormalDistanceFunctor)
2008-09-24 08:37:42 +00:00
Paolo Cignoni
7473170272
Improved robustness of FF adj from texture coords adjacency.
...
Now faces with degenerated tex coords are more correctly managed.
2008-09-15 10:08:41 +00:00
ganovelli
4971b69b13
corrected wrong constant in Covariance (thanks F.Ponchio)
...
and minor calculation simplifications
2008-09-10 16:18:32 +00:00
Federico Ponchio
696941893d
Translated some italian comments... many more to translate.
2008-08-25 12:33:06 +00:00
Paolo Cignoni
201313a5de
Changed the name of the pointer to edge Ep into the more standard VEp (like vertex plus and the other vertex to simplex adjacencies VFp and VTp)
2008-08-20 20:35:29 +00:00
ganovelli
a00da7b3f3
minor type changes to compile with gcc
...
removed debug include to export_ply.h
2008-08-19 11:09:52 +00:00
ganovelli
1185e2ab96
minor type changes to compile with gcc
2008-08-19 11:03:39 +00:00
ganovelli
6bda668af8
missing include added
2008-08-19 10:22:31 +00:00
ganovelli
3c69c98cd8
some clean up PrincipalDirections (not working well)
...
added PrincipalDirectionsPCA
added VertexCurvature that takes a mesh (the name has to be changed)
2008-08-19 10:15:32 +00:00
ganovelli
4e81e65145
added Covariance to to compute the covariance of a generic mesh (without the use of divergence theorem)
2008-08-19 09:43:24 +00:00
ganovelli
1ac5c66e78
added IntersectionBallMesh
...
added some to the functions
2008-08-19 09:40:52 +00:00
ganovelli
4ac273db73
corrected bug in the number of added vertices
2008-08-19 09:09:44 +00:00
ganovelli
7a03d966d3
corrected small bug in FaceSimilar
2008-08-14 14:19:29 +00:00
Paolo Cignoni
19b903e34b
added a basic Function computing the intersection between a trimesh and a plane that does not require a spatial search structure (useful if you want to make a small number of slices)
2008-08-14 10:04:01 +00:00
Paolo Cignoni
eb307140bb
Renamed (and refactored to use Stat::MinMax function) method for ramp-coloring a mesh according to its Quality from UpdateColor::VertexQuality to UpdateColor::VertexQualityRamp.
...
Added UpdateColor::VertexQualityGray.
2008-08-12 08:02:53 +00:00
ganovelli
8ad902095a
removed ImportVertex for ImportLocal
2008-08-07 16:20:01 +00:00
ganovelli
085e19d121
ImportVertex removed (use ImportLocal), ImportFace cleaned up
...
Bug in version of Append for selected faces removed
2008-08-07 16:19:31 +00:00
ganovelli
cbb547cdf0
uncommented GetInSphereFace (compiled with gcc 4.2.3 and .net 2005)
2008-08-04 15:27:58 +00:00
ganovelli
86816cc60f
added few missing template type
2008-08-04 11:03:48 +00:00
ganovelli
1a9220ce98
behaviour change: AddFaces and AddVertices return the vert.end() and face.end() if called with n==0.
...
Added AddVertices with local pointers to VertexPointer to update
2008-07-29 13:20:44 +00:00
Paolo Cignoni
33dd499605
Added FaceColorLaplacian function to smooth color among faces
2008-07-28 08:20:22 +00:00
Paolo Cignoni
d89a3da4ea
commented
2008-07-24 09:53:18 +00:00
Paolo Cignoni
a880db7489
modified white balance filter to use a custom color to correct white.
2008-07-23 15:29:14 +00:00
Paolo Cignoni
f614f1b5ac
append should append the texture names too and update the texture index accordingly
2008-07-20 21:20:49 +00:00
Paolo Cignoni
8f44e94747
Added missing includes
2008-07-20 14:34:26 +00:00
Paolo Cignoni
19bb932a8f
Fixed a bug on white balance. now it works fine.
2008-07-18 13:07:10 +00:00
Paolo Cignoni
4842e38c94
Added White balance filter.
...
Terminology of the desaturation filter has been changed to match the gimp's one.
2008-07-17 21:46:48 +00:00
Paolo Cignoni
f5afb40d66
added a desaturation method based on Luminance, and relative functions.
2008-07-17 20:11:13 +00:00
Paolo Cignoni
e19635f285
Modified EQ filter to allows working on RGB channels, separated channels, and lightness. It works correctly, but the processing seems to be a different one respect to Gimp (almost when working on RGB). Memory usage can be decreased...
2008-07-17 14:51:20 +00:00
Paolo Cignoni
ed2a6ce2f8
Added Desaturation filter and relative functions.
...
An ENUM for Desaturation methods has been added too.
Added EQ filter and relative functions. It works just on lighness right now. Comments still to be written. work in progress.
2008-07-17 10:07:19 +00:00
Paolo Cignoni
5082a0cb03
Corrected a very small bug in the finalize of the quadric simplification, (RW flags were not correctly restored at the end of the simplification)
2008-07-17 06:52:56 +00:00
Paolo Cignoni
b9263267ec
Added color levels filter. Some bug fixed.
2008-07-15 22:29:38 +00:00
Paolo Cignoni
38323a3c48
disambiguated a pow() call
2008-07-15 10:40:10 +00:00
Paolo Cignoni
437d258a22
Added (from an idea of Fabio Ganovelli) the possibility of adding face-quality driving quadrics. For each face, three quadric perpendicular to the face plane and passing through the edges are added (just like for borders, but with a much lower weight). In case of very planar surface these quadrics try to keep the original shapes of triangles, preferring small edge collapse. Without this in planar zones collapse order could be random.
2008-07-15 07:15:18 +00:00
Paolo Cignoni
2472215e8d
added VertexCoordPlanarLaplacian that moves only the vertices that does not change the orientation of the incident faces. Very useful for creating good meshing of CAD models.
2008-07-15 07:10:31 +00:00
Paolo Cignoni
7053bdabf0
removed harmless warnings
2008-07-15 06:57:25 +00:00
Paolo Cignoni
4efd5c21f5
fixed gamma correction
2008-07-11 10:17:09 +00:00
Paolo Cignoni
c0f5310cde
Added functions to perform gamma correction.
...
Parameters type changed all to float instead of int,
to achieve a better precision in computations.
2008-07-10 22:11:56 +00:00
Paolo Cignoni
b626643efb
Re-factored the Heap-Simplex ratio parameter. Now it is something that should be asked to the localmodification class.
2008-07-10 09:44:09 +00:00
Paolo Cignoni
6be78dcf70
Added color processing functions.
...
Some changes still to be performed.
2008-07-09 22:25:31 +00:00
Paolo Cignoni
9debed15de
Added Brighting function that increase/decrease the brightnes of the vertex colors
2008-07-09 15:19:06 +00:00
Paolo Cignoni
c3735f3e5d
Added a small hack for the case of non-simmertric collapses where the average number of heap elements is almost the double of the symmetric case and therefore you should avoid too frequent heap garbage collections.
2008-07-09 10:48:19 +00:00
Paolo Cignoni
1407af2537
removed harmless warnings
2008-07-09 10:31:55 +00:00
Nico Pietroni
72ce36f55c
converted functions into static
2008-07-08 14:49:08 +00:00
Paolo Cignoni
9c314b7f2f
Added support for callback in Laplacian and Taubin;
...
improved comments and removed a bug from the Taubin smoothing
2008-07-05 05:49:57 +00:00
Paolo Cignoni
a8becdc8f1
refactored laplacian smoothing and added taubin smoothing
2008-07-04 00:32:48 +00:00
Paolo Cignoni
a6f9f33a62
removed references to the meshlab code (qdebug and leaked mesh types)
2008-07-03 21:39:37 +00:00
Nico Pietroni
b3c2645005
changed line 215 for compilation problems in case of class extension (just semantic)
2008-07-03 10:21:17 +00:00
Nico Pietroni
1a2be8bdfa
changed line 268 for compilation problems in case of class extension (just semantic)
2008-07-03 10:20:12 +00:00
Paolo Cignoni
bafcd1768e
remove harmless warnings
2008-07-02 13:26:25 +00:00
Paolo Cignoni
711c985689
update to the new single template BasicGrid
2008-07-01 12:37:27 +00:00
Paolo Cignoni
8314b1759a
Heavily restructured (an almost complete rewrite) of the class that convert a mesh to a distance field and run marching cubes on it.
2008-07-01 09:37:31 +00:00
Paolo Cignoni
4e6ff1e97a
removed harmless warnings
2008-07-01 09:34:43 +00:00
Federico Ponchio
a4a0d6acf3
last_seed++ shodl have been ++last_seed
2008-06-30 08:46:06 +00:00
Paolo Cignoni
3c81fe2f0e
Removed a m.cm leaked from meshlab here.
...
Thanks to Alain Boyer for the kind bug submission!
2008-06-29 22:56:08 +00:00
Paolo Cignoni
700b8cd26e
Removed annoying unsigned vs signed warnings.
...
Thanks to Alain Boyer for the kind bug submission!
2008-06-29 22:44:44 +00:00
Paolo Cignoni
7da7c0128e
Added the WedgeTexRemoveNull function. Currently texture coords are kept for ALL the triangles of a mesh. The texture id is stored with each face.
...
if a given face should not have tex coord it has the default -1 value for texture ID. This function will add an new fake texture, add that to the list of textures and change all the -1 id to that value.
2008-06-29 07:47:35 +00:00
Paolo Cignoni
674096eb00
added MultiFaceRandom to random color polygonal faces and improved vertexcolor border (now mixed vertexes have a different color)
2008-06-26 08:39:28 +00:00
ganovelli
db1c99cdf9
added PerMeshAttribute
2008-06-23 14:18:13 +00:00
Paolo Cignoni
86c880176d
Completed texture sampling method. now you can generate all the texels of a mesh with a uv mapping.
2008-06-20 23:33:24 +00:00
Paolo Cignoni
79786de3cc
Almost completed the Sampling Classes now all the classical methods are in. Added a TrivialSampler class to better illustrate the interface of the sampler object.
2008-06-20 15:11:30 +00:00
Paolo Cignoni
53ac17e6bb
Corrected bug in the Laplacian on multiple iteration (missing re-init of temporary data)
...
Completed the scale dependent laplacian
2008-06-17 23:05:25 +00:00
Paolo Cignoni
2ff77479af
added function to compute the FaceProjection flags used in point-face distance
2008-06-13 05:44:35 +00:00
Massimiliano Corsini
1059b3d24d
add missing include
2008-06-05 14:12:40 +00:00
Paolo Cignoni
a29f21fa59
added vertexweighted sampling
2008-06-04 13:29:04 +00:00
Paolo Cignoni
9b324d2f50
added missing license info
2008-05-29 20:54:34 +00:00
Paolo Cignoni
ca47599bd5
Added weighted area sampling
2008-05-29 06:17:09 +00:00
granzuglia
2d281abc5d
fixed doxygen comments according to the new vcg's doxygen comments style (please look at doxygen-comments-style.txt in the vcgrootfolder/docs)
2008-05-28 13:28:52 +00:00
granzuglia
f0373b8ebb
fixed doxygen comments according to the new vcg's doxygen comments style (please look at doxygen-comments-style.txt in the vcgrootfolder/docs)
2008-05-28 13:28:09 +00:00
Paolo Cignoni
9657491e07
First Version of the sampling class (useful for generating point set and metro oriented samplings)
2008-05-27 21:38:37 +00:00
Paolo Cignoni
5bc8b01870
Restrutctured a bit the FaceFace computing function in order to allow other function to compute the set of edges (needed in the new point_sampling.h)
2008-05-27 21:37:32 +00:00
Paolo Cignoni
cd7d4b5053
Added ComputeMeshArea
2008-05-27 21:35:26 +00:00
Paolo Cignoni
25dd36a704
updated to the new temporary data structure
2008-05-16 17:44:31 +00:00
Paolo Cignoni
634b5c4f63
updated to the new temporary data structure and heavily restructured in a big class with uniform naming
2008-05-16 17:44:06 +00:00
Paolo Cignoni
cf7f2af2a9
missing typename
2008-05-16 10:57:41 +00:00
ganovelli
1f929ed8f4
added Trimesh destructor to purge unremoved PerVertex[PerFace]Attribute
2008-05-16 10:07:36 +00:00
Paolo Cignoni
92b267eaa8
added VertexFromQualityRange selection
2008-05-16 04:22:52 +00:00
ganovelli
666040bcf5
PerVertexAttribute and PerFaceAttribute added to Trimesh
2008-05-15 16:32:27 +00:00
ganovelli
3f765b9a39
Point3f->Coordtype
2008-05-14 10:03:29 +00:00
Paolo Cignoni
01f190a697
renamed vertex quality smoothing
...
added face normal smoothing FF (and added a VF to the previous face normal smoothing)
2008-05-08 23:50:44 +00:00
Paolo Cignoni
6dcc5e8a92
added normalizevertex
2008-05-08 23:48:00 +00:00
Paolo Cignoni
89d09cb1b4
Fix a bug in TopoEdgeFlip::UpdateHeap (walking a around a border vertex).
2008-05-06 12:05:55 +00:00
Paolo Cignoni
629e129152
removed useless code (two functions were repeated)
2008-05-02 11:35:45 +00:00
Paolo Cignoni
4114e0e60a
Added color smoothing, scale dependent laplacian changed a SD_old into SD fujumori, improved comments.
2008-05-02 09:43:25 +00:00
Paolo Cignoni
d6aeeb1f35
first draft
2008-04-30 13:23:47 +00:00
Paolo Cignoni
7f3c44851e
added a missing std::
2008-04-24 05:04:25 +00:00
Paolo Cignoni
2a69681d28
added facegrid method to build just the faces
2008-04-24 04:44:48 +00:00
Paolo Cignoni
35daaec635
VertexCurvature method added.
2008-04-23 16:37:15 +00:00
Paolo Cignoni
c918066b8e
Old and useless comments erased.
2008-04-23 16:34:56 +00:00
Paolo Cignoni
6cceb94d59
normalize normals of current faces instead of using new normals
2008-04-19 05:15:44 +00:00
Paolo Cignoni
1f6ba5e9d5
added PerVertexFromCurrentFaceNormal
...
AreaNormalizeFace NormalizeFace
and shortened PerVertexNormalizedPerFaceNormalized
2008-04-18 17:52:08 +00:00
Paolo Cignoni
aea7147a64
added facenormal smoothing
2008-04-18 17:48:29 +00:00
Paolo Cignoni
820bfdd65e
fast return for compacting functions if no compacting is needed
2008-04-18 17:45:23 +00:00
Paolo Cignoni
108af1cd44
Static method Insert added, to avoid some code repetition.
2008-04-17 18:11:47 +00:00
Paolo Cignoni
f93ee8b17d
Improvement in the delaunay test in TriEdgeFlip::ComputePriority.
2008-04-17 15:02:03 +00:00
Paolo Cignoni
f2e6bfa8eb
added HasPerVertexTexCoord ( mesh )
2008-04-15 10:34:07 +00:00
Paolo Cignoni
aa91e279c3
Added code to avoid swap of tex coords after flip.
2008-04-11 15:01:47 +00:00
Paolo Cignoni
81d6e1df96
Edge index of a pos is now E() and no more I()
2008-04-11 13:25:15 +00:00
Paolo Cignoni
4b43ac4de8
First working Version
2008-04-11 10:14:43 +00:00
Paolo Cignoni
fc917d5080
moved Index function from append to the allocate
2008-04-10 09:18:57 +00:00
Paolo Cignoni
a68e2a247e
New version of PlanarEdgeFlip::UpdateHeap method
2008-04-08 14:06:31 +00:00
Paolo Cignoni
f240adbf08
Fixed bug in PlanarEdgeFlip::UpdateHeap method.
2008-04-08 13:53:15 +00:00
Paolo Cignoni
c5a92fd4c0
added missing std::
2008-04-08 09:51:15 +00:00
Paolo Cignoni
a8e1f18844
Added TopoEdgeFlip class. Some refactoring.
2008-04-07 13:48:35 +00:00
Paolo Cignoni
598cb77fb6
Changed the edge split predicate, now it takes a pos instead of two pnts
...
Added quality interpolation
2008-04-07 12:58:48 +00:00
Paolo Cignoni
65933201d7
Added texture topology computation
2008-04-07 08:20:26 +00:00
Paolo Cignoni
8b7d16f29d
added methods for computing various kind of curvatures indicator from the HK values
2008-04-04 13:13:55 +00:00
Paolo Cignoni
9799717a58
minor changes to the topology correctness checks
2008-04-04 10:27:34 +00:00
Paolo Cignoni
46096f6b64
Cleaned up names, now Kg() gives back Gaussian Curvature (k1*k2), while Kh() gives back Mean Curvature 1/2(k1+k2)
2008-04-04 10:26:12 +00:00
Paolo Cignoni
9a31f6318d
template the reorder functions on the vector types (for ocf)
2008-04-03 22:47:10 +00:00
Paolo Cignoni
9f5f1f9fd3
Added templated parameter in PlanarEdgeFlip to set quality function for triangles.
2008-04-02 19:32:26 +00:00
Paolo Cignoni
82976a2001
f->P(i) instead of f->V(i)->P()
2008-03-29 12:05:59 +00:00
Paolo Cignoni
dfa921ff88
Refactoring in the code written to retrieve four vertexes around the edge to flip
2008-03-26 15:01:44 +00:00
ganovelli
929c3d3276
fixed bugs sign of principal direction and mean curvature value
2008-03-25 11:00:56 +00:00
Paolo Cignoni
3e090a41ff
Added a test to avoid degenerative flip which produce two identical overlapping faces.
...
Little code refactoring.
The planar swap now try to improve the average quality of faces, instead of improving the quality of the worst face.
2008-03-20 15:45:54 +00:00
Paolo Cignoni
c2bec8758d
Added safer way of computing the quality histogram, robust in the case the mesh contains some outlier value (very high or very low) that makes the choice of the beginning interval wrong
2008-03-19 05:24:39 +00:00
Paolo Cignoni
d014eae1bc
added color interpolation to butterfly
2008-03-18 10:31:47 +00:00
ganovelli
8a265c9d32
taubin and desbrun estimates added (-> see vcg/simplex/vertexplus/component.h [component_ocf.h|component_occ.h ]
2008-03-17 11:29:59 +00:00
Paolo Cignoni
7c37f033e1
Added check on deleted faces in RemoveDegenerateFace
2008-03-11 14:16:40 +00:00
Paolo Cignoni
3d4222b231
Completed the garbage collecting functions CompactVertexVector and CompactFaceVector.
2008-03-11 09:22:07 +00:00
Paolo Cignoni
d78ce1aee8
Minor changes.
2008-03-08 12:43:26 +00:00
Paolo Cignoni
378008bc5e
added HasConsistentPerWedgeTexCoord
2008-03-06 08:37:16 +00:00
Paolo Cignoni
2aac6ba625
TriEdgeFlip::ComputPriority now use vcg::CircumCenter(triangle) to compute circumcenter coordinates
2008-03-02 11:00:10 +00:00
Paolo Cignoni
9841c8db32
_pos.V(i) become _pos.F()->V(i); TriEdgeFlip now access members of parent class with this->...
2008-03-01 11:16:30 +00:00
Paolo Cignoni
9703ced0df
Added HasPerVertexColor static function
2008-02-21 17:27:06 +00:00
ganovelli
0b3e46c93c
added Cylinder(..). the filename platonic.h is lesser and lesser significant...
2008-02-15 14:38:32 +00:00
ganovelli
9751b6fc2c
changes to use vcg::vert::ImportLocal
2008-02-15 12:51:59 +00:00
Paolo Cignoni
73757c1177
added missing include matrix33
2008-02-15 08:08:59 +00:00
Paolo Cignoni
b8f1e0f612
added a missing IsD() check
2008-02-07 10:24:51 +00:00
Paolo Cignoni
fcf54790ea
added hasPerWedgeColor and HasPerWedgeNormal
2008-01-28 14:46:03 +00:00
Paolo Cignoni
eab6ea2400
added HasPerFaceNormal and HasPerVertexNormal
2008-01-28 08:42:07 +00:00
Paolo Cignoni
58482cfd03
added management of normals
2008-01-28 08:39:56 +00:00
Paolo Cignoni
5e52fd038c
corrected small bug in RemoveDuplicateVertex
2008-01-24 11:52:05 +00:00
ganovelli
f7e63772a2
include added
2008-01-19 17:43:49 +00:00
ganovelli
7051654171
more appropriate function names, licence updated, comment added
2008-01-12 19:41:46 +00:00
ganovelli
c919dca603
Recompiled from previous out of date version. Still to revise but working
2008-01-12 19:07:05 +00:00
Paolo Cignoni
5519491d1f
changed radius from percentage based to absolute and reverted the sign of the default walking
2007-12-18 17:30:04 +00:00
Paolo Cignoni
8b69adbfbd
removed harmless gcc warnings
2007-12-13 17:57:33 +00:00
Paolo Cignoni
1f38a990b5
forgotten required std::
2007-12-11 20:18:55 +00:00
Paolo Cignoni
7d6a210e75
Added the CompactVertexVector garbage collecting function.
2007-12-11 11:36:03 +00:00
Paolo Cignoni
200add7664
disambiguated pow call (again)
2007-11-23 17:02:47 +00:00
Paolo Cignoni
5de12ccbf3
disambiguated pow call
2007-11-23 15:42:11 +00:00
ganovelli
743e4f7a9e
compilation with gcc
2007-11-20 09:50:32 +00:00
ganovelli
a5d00b1c71
added missing newline at the end of file
2007-11-20 09:49:53 +00:00
ganovelli
79067524eb
added updating of vertex and face normals
2007-11-14 11:56:23 +00:00
Federico Ponchio
3bb9c7cbc6
Addded check for no color in mesh
2007-11-06 16:12:24 +00:00
Paolo Cignoni
b50e3f7760
added selection to the pasodoble smoothing
2007-11-05 23:47:20 +00:00
Paolo Cignoni
c2f8cdac1f
removed past end access in an assert
2007-11-05 23:46:43 +00:00
Paolo Cignoni
573ff87db2
Added a missing IsD() test
2007-10-29 11:32:46 +00:00
Paolo Cignoni
d063cb7493
bug in FaceBorderFromNone corrected (same as in Topology.h) Ganovelli
2007-10-22 14:55:07 +00:00
Paolo Cignoni
6144006bfd
Re-Wrote basic build function
2007-10-19 22:29:36 +00:00
Paolo Cignoni
12c8c9f3ff
Added Allocator::DeleteFace and Allocator::DeleteVertex; Now the use of SetD() should be deprecated.
2007-10-16 16:46:53 +00:00
Massimiliano Corsini
1e6b800880
remove signed/unsigned warning
2007-10-09 12:04:06 +00:00
Paolo Cignoni
6cee7ca8cd
Overloaded Intersection function to compute trimesh-plane intersection,it return the set of faces that are contained into intersected cells.
2007-09-19 12:16:31 +00:00
Paolo Cignoni
c704229b67
corrected computation of Barycenter
2007-08-20 21:06:29 +00:00
ganovelli
be681204b5
added
2007-07-31 12:31:34 +00:00
Paolo Cignoni
3019fb9177
Added remove degenerate vertex to manage vertex with NAN coords
2007-07-24 07:09:49 +00:00
Paolo Cignoni
91cbd0047f
added the missing PerVertexNormalizedPerFaceNormalized
2007-07-12 23:11:35 +00:00
ganovelli
66c083f919
added return type
2007-07-05 16:32:04 +00:00
Federico Ponchio
ec52ffd973
*** empty log message ***
2007-06-15 15:04:43 +00:00
Federico Ponchio
acc11c1df4
*** empty log message ***
2007-06-11 15:26:30 +00:00
Paolo Cignoni
f25f034dcb
Minor changes.
2007-06-07 15:34:11 +00:00
Paolo Cignoni
7c12dca79d
Minor changes : replaced TVp and TVi calls with VTp and VTi respectively.
2007-06-07 10:20:29 +00:00
Paolo Cignoni
080ec71ca5
Use the barycenter function from triangle3.h instead of
...
the one in face\base.h.
2007-06-06 15:38:57 +00:00
Nico Pietroni
ac2edcede5
compiling error resolved
2007-06-06 14:26:51 +00:00
Paolo Cignoni
90217d66c4
Replaced call to old StarSize method with NumberOfIncidentFaces
2007-06-04 06:45:05 +00:00
Federico Ponchio
511f4053c9
*** empty log message ***
2007-06-01 09:07:23 +00:00
Federico Ponchio
7823c5dba1
FIxed off-by-one error on FaceBorderFromNone.
2007-05-31 15:24:50 +00:00
Paolo Cignoni
e4aa42118a
Small gcc compiling issues
2007-05-31 10:08:16 +00:00
Paolo Cignoni
f354a9f445
Small gcc compiling issues
2007-05-31 09:39:56 +00:00
Federico Ponchio
007d53b7e0
*** empty log message ***
2007-05-30 15:09:58 +00:00
Federico Ponchio
73d01b5408
*** empty log message ***
2007-05-30 14:03:49 +00:00
Federico Ponchio
35d53d62c3
VFi++ -> ++VFi
2007-05-29 00:07:06 +00:00
Paolo Cignoni
a9ed51c145
Added some comments, and cleared startup a little
2007-05-22 15:25:14 +00:00
Paolo Cignoni
dd6a5552dc
Added VertexClear
2007-05-22 15:19:42 +00:00
Paolo Cignoni
97d7baf66c
Corrected gcc compiling issues
2007-05-21 13:22:40 +00:00
Paolo Cignoni
7ec9437835
Corrected gcc compiling issues
2007-05-21 11:12:10 +00:00
ganovelli
45bd389107
changes to comply "plus" types
2007-05-04 16:34:31 +00:00
Paolo Cignoni
7a36b9fadd
only use typename when necessary
2007-05-02 13:25:45 +00:00
Nico Pietroni
176c70e7d7
*** empty log message ***
2007-04-24 09:44:48 +00:00
Paolo Cignoni
3b9bf21738
Corrected bug in selectionVertexFromFaceStrict
2007-04-20 10:11:51 +00:00
Nico Pietroni
058eed2f38
- line 152 changed call intersection to IntersectionPlaneTriangle because changing in function's name
2007-04-10 22:46:57 +00:00
Paolo Cignoni
e7cf8d9203
Changed use of selected to visited flags. Improved variable namings and comments
2007-03-27 09:40:47 +00:00
Paolo Cignoni
81bfbcaed8
corrected managment of selected flag when refining the whole mesh flipmesh
2007-03-27 09:25:14 +00:00
Paolo Cignoni
f0eec0788b
added honoring of selected flag for flipmesh
2007-03-27 09:23:32 +00:00
Paolo Cignoni
ae9d8a8535
Solved an issue related to different casting double-float between gcc 3 and gcc 4
2007-03-22 11:07:16 +00:00
Paolo Cignoni
8f6e26f281
Substituted std::max with vcg::math::Max
2007-03-16 10:51:46 +00:00
mtarini
84946de883
Texture coord name change! "TCoord" and "Texture" are BAD. "TexCoord" is GOOD.
2007-03-12 15:42:11 +00:00
mtarini
22fd220c6f
Texture coord name change! "TCoord" and "Texture" are BAD. "TexCoord" is GOOD.
2007-03-12 15:37:19 +00:00
Paolo Cignoni
16ca848580
Added missing include and changed the call to jacobi
2007-03-08 22:48:17 +00:00
Paolo Cignoni
0ee9210dd2
std::numeric_limits<ScalarType>::max() -> (std::numeric_limits<ScalarType>::max)()
...
to avoid annoying misunderstaindings on msvc8
2007-02-27 15:17:17 +00:00
Paolo Cignoni
02beca15e3
Added Rad to the NormalThr Option and removed a bug in multiple exectuion of non optimal simplification (missing an isD check)
2007-02-25 09:20:10 +00:00
Paolo Cignoni
5ec1f9b0d3
Added guards on msvc pragmas
2007-02-22 09:18:41 +00:00
ganovelli
17560a65c0
Added HasPerVertexFlag
2007-02-14 15:31:41 +00:00
mtarini
28eb5780f0
added parameter theta (from conformal to equiareal) to AreaPresTextureOptimizer.
...
Improved feature lists (comments).
2007-02-02 04:11:00 +00:00
mtarini
436c9ae56c
added three general-utility global functions for texture coordinates: SmoothTextureCoords, IsFoldFree, MarkFolds (see descriptions)
2007-02-02 01:39:58 +00:00
mtarini
cea2074e7d
added a few general comments on AreaPreserving optimizer, recapping optimizer features.
2007-02-02 01:23:47 +00:00
mtarini
5a341ba1f4
First version: general virtual class for texture optimizers. A subclass for area preservation.
2007-02-02 01:18:15 +00:00
mtarini
4b0950bf11
First version: general virtual class for texture optimizers. A subclass for area preservation.
2007-02-02 01:16:27 +00:00
mtarini
d1f3afae97
First version: general virtual class for texture optimizers. A subclass for area preservation.
2007-02-02 00:55:35 +00:00
Paolo Cignoni
cc7146cc86
Added small comment to grid function
2007-02-01 06:38:27 +00:00
Paolo Cignoni
5c9ed4eb3b
Added FaceFromBorder
2007-02-01 06:37:05 +00:00
Paolo Cignoni
a2439416b2
Remove some usless code in Minimum Weight Triangulation.
2007-01-31 15:25:49 +00:00
Paolo Cignoni
9cf8cbd534
Bugfix the init function.
2007-01-31 15:24:30 +00:00
Paolo Cignoni
33d860cbb9
Bug fix
2007-01-31 11:46:12 +00:00
mtarini
5b54eecefa
aggiunta la VertexBorderFromNone (flag bordo per vertici senza richiedere nulla)
2007-01-30 18:49:23 +00:00
Paolo Cignoni
ef3acb4fc8
Removed unuseful CoordType test
2007-01-27 13:14:34 +00:00
Paolo Cignoni
2797b41cd5
Corrected ClearHeap Bug (thanks to pirosu)
2007-01-26 21:27:05 +00:00
Paolo Cignoni
9732b0f8b8
Added Finalize() method to the interface, corrected minor bugs on border preserving and postsimplification cleanup
...
Avoided double make_heap (it is done only in the local_optimization init)
2007-01-19 09:13:14 +00:00
Paolo Cignoni
f991e164a1
Added Finalize() method to the interface
2007-01-19 09:13:09 +00:00
Paolo Cignoni
a707c1d217
added missing typenames
2007-01-18 18:15:14 +00:00
Paolo Cignoni
090e33d162
The minimum weight algorithm keep the topology consistent.
2007-01-18 11:17:43 +00:00
Paolo Cignoni
fdaddf0e79
Added TrSplit function.
2007-01-17 14:31:47 +00:00
Paolo Cignoni
2226163daf
First working release.
2007-01-15 11:41:09 +00:00
ganovelli
d60eb7127a
currMetric inizialied to heap.front() (it was heap.back()- wrong)
2007-01-11 11:48:33 +00:00
Paolo Cignoni
f4d3561502
Added test in AddVertices to do not update un-initalized vert references (for newly allocated faces)
2007-01-11 10:24:25 +00:00
Paolo Cignoni
349a05f6f1
Removed useless and conflicting inclusion of face.h
2007-01-11 10:12:19 +00:00
matteodelle
cd277247cc
*** empty log message ***
2007-01-10 17:25:18 +00:00
Paolo Cignoni
0c8a863586
Bugfixed ComputeDihedralAngle function
2007-01-10 12:07:54 +00:00
Nico Pietroni
60958ee0e1
added initial define and included missing files
2007-01-03 15:51:28 +00:00
Paolo Cignoni
2581b0015e
Bug fix on ComputeDihedralAngle function
2006-12-27 15:09:52 +00:00
Paolo Cignoni
8547f05f14
Commented some variant of the quality measure of weighted ears
2006-12-12 11:14:51 +00:00
ganovelli
466ab5840c
added missing initialization of currMetric
2006-12-11 14:09:44 +00:00
Paolo Cignoni
f57a022c06
Added many this-> for gcc compiling
2006-12-07 00:40:18 +00:00
Paolo Cignoni
38e3e600a9
Corrected bugs on selfintersection
2006-12-06 13:03:59 +00:00
Nico Pietroni
d391c5f9f6
added max distance to rayIterator
2006-12-06 12:59:13 +00:00
Paolo Cignoni
b9be8bd5fd
Heavily restructured and corrected. Now a single Close ear function
...
Corrected Hole search function, and management of double non manifold vertex in a hole
Changed priority strategy in the heap, now a mix of quality and dihedral angle.
Changed but still untested IntersectionEar
2006-12-06 00:12:53 +00:00
ganovelli
b2bfe8dc1b
*** empty log message ***
2006-12-03 14:56:30 +00:00
ganovelli
aa74eaa4e3
created
2006-12-03 14:55:44 +00:00
Paolo Cignoni
1680347626
Corrected bug in the IsFFAdjacencyConsistent the Topology checking function.
2006-12-01 21:26:14 +00:00
Paolo Cignoni
02456f0505
Corrected bug in the search of holes. Removed output prints
2006-12-01 21:24:16 +00:00
Paolo Cignoni
9c5b7ce5a1
Corrected pop_heap vs pop_back issue in heap usage
2006-12-01 08:53:55 +00:00
Paolo Cignoni
d946007a70
Added a function for FF topology consistency check
2006-12-01 08:12:30 +00:00
Paolo Cignoni
2fc96f2682
Added Callback, Corrected some spelling errors (adiacense -> adjacency).
...
Added Validity Check function for hole loops
2006-12-01 00:11:17 +00:00
Paolo Cignoni
fcc1187856
Corrected IsOrientedMesh. After the templating of the swapedge it did not worked any more....
...
Added Texture management to the FlipMesh
2006-12-01 00:00:56 +00:00
Paolo Cignoni
638be12fdc
small gcc compiling issues
2006-11-30 11:49:20 +00:00
Paolo Cignoni
70c16f01ef
Made static exposed funtions of the class
2006-11-29 16:21:45 +00:00
Paolo Cignoni
5670460684
Added check with the new end and avoided dangerous updating of already updated pointers
2006-11-29 15:58:50 +00:00
Paolo Cignoni
ef0a22c229
Removed limit.
2006-11-29 15:25:22 +00:00
Paolo Cignoni
4110ebe3aa
Code refactory and bugfix.
2006-11-29 15:18:49 +00:00
Federico Ponchio
eb0ae58b64
removede int<->pointer conversions.
2006-11-29 14:20:10 +00:00
Paolo Cignoni
2f592ca2f8
Added Consistency check in the HasVFAdj static function
2006-11-28 22:35:29 +00:00
Paolo Cignoni
d614e6baa5
Added default constructor with null initialization to adjacency members.
...
AddFaces and AddVertices NEED to know if the topology is correctly computed to update it.
2006-11-28 22:34:28 +00:00
Paolo Cignoni
b50b9a7d8b
Added IsSizeConsistent
2006-11-27 10:36:35 +00:00
Paolo Cignoni
2954c88fef
Now compiles on gcc under linux.
2006-11-24 10:42:39 +00:00
Paolo Cignoni
d74b87b91e
Code refactory and added minimum weight triangolation.
2006-11-22 13:43:28 +00:00
Federico Ponchio
bfdae426b8
passing VDistFunct() to functions wanting a reference, not a value
...
(why a reference btw?)
2006-11-21 16:06:54 +00:00
Federico Ponchio
4687fa762f
Added usual typename.
2006-11-13 13:13:49 +00:00
Federico Ponchio
cc5d4df4e8
Removed a couple of useless assert.
2006-11-13 13:12:27 +00:00
Paolo Cignoni
73985fe506
Clear some useless code
2006-11-13 10:11:38 +00:00
Nico Pietroni
94d7ced114
added normalization of normal in DoRay functions
2006-11-12 02:41:03 +00:00
Nico Pietroni
fc770bdd96
added DoRayFuntion that return interpolated normal
2006-11-10 11:41:49 +00:00
Paolo Cignoni
d2cdb34aa2
Corrected RemoveNonManifoldFace
2006-11-09 17:26:24 +00:00
Paolo Cignoni
e2733d55df
Necessary changes for compilation with gcc 3.4.6. Especially the hash function is a problem
2006-11-07 15:13:57 +00:00
Paolo Cignoni
06047a697d
gcc compiling issues
2006-11-07 11:47:14 +00:00
Paolo Cignoni
865bb26e54
Corrected some errors in the reflections Has*** functions
2006-11-07 11:29:24 +00:00
Paolo Cignoni
62244759fc
Added Quality weighted laplacian smoothing
2006-11-07 11:28:02 +00:00
Paolo Cignoni
0146bedd72
Added missing std::
2006-11-07 07:56:43 +00:00