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
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
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
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
7053bdabf0
removed harmless warnings
2008-07-15 06:57:25 +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
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
89d09cb1b4
Fix a bug in TopoEdgeFlip::UpdateHeap (walking a around a border vertex).
2008-05-06 12:05:55 +00:00
Paolo Cignoni
c918066b8e
Old and useless comments erased.
2008-04-23 16:34:56 +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
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
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
a8e1f18844
Added TopoEdgeFlip class. Some refactoring.
2008-04-07 13:48:35 +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
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
d78ce1aee8
Minor changes.
2008-03-08 12:43:26 +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
12c8c9f3ff
Added Allocator::DeleteFace and Allocator::DeleteVertex; Now the use of SetD() should be deprecated.
2007-10-16 16:46:53 +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
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
9cf8cbd534
Bugfix the init function.
2007-01-31 15:24:30 +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
2226163daf
First working release.
2007-01-15 11:41:09 +00:00
Paolo Cignoni
7be5d031b9
typenames and qualifiers for gcc compliance
2006-10-15 07:31:22 +00:00
Paolo Cignoni
6295f96fbd
Heavyly restructured for meshlab inclusion. Now the access to the quadric elements are mediated by a static helper class.
2006-10-09 20:12:55 +00:00
Paolo Cignoni
2896499a4b
Changed some access to VertexFaceIterator to reflect the shorter new operators.
2006-10-09 20:09:40 +00:00
Paolo Cignoni
c2fb20c70b
Updated to the new style face->Normal() becomes Normal(face)
2006-10-07 17:20:25 +00:00
ganovelli
f73fa19346
modifications to compile with gcc
2005-12-12 11:15:26 +00:00
Paolo Cignoni
6b14910e5f
Now creation of new edge use Ordered() constructor to comply the fact that the basic collapse is simmetric.
2005-10-12 10:44:01 +00:00
Paolo Cignoni
2ef5b676b5
Changed the sign of the priority of a collapse. Now it is its the error as it should (and not -error)
2005-10-02 23:19:36 +00:00
Federico Ponchio
2328e5b1e4
*** empty log message ***
2005-04-14 11:35:09 +00:00
Paolo Cignoni
1509a9b434
Better management of symmetric/asymmetric edge collapses
2005-01-19 10:35:28 +00:00
Paolo Cignoni
8ca248762a
Moved param classes inside; added support for optimal placement and symmetric; added update heap also here (not only in the base class)
2004-12-10 01:07:15 +00:00
Paolo Cignoni
953c594401
better comments and removed logging
2004-12-10 01:03:53 +00:00
Paolo Cignoni
da6bf044f0
passed parameters by reference in many funcs and gcc cleaning
2004-11-23 10:34:45 +00:00
Paolo Cignoni
86f9e28e07
Initial commit
2004-11-05 09:57:18 +00:00
ganovelli
e3380d3702
pos to edge
2004-10-25 16:28:32 +00:00
ganovelli
4359486afc
A vcg.::Pos was used to implement the collapse type. CHanged
...
to vcg::Edge
2004-10-25 07:07:56 +00:00
ganovelli
215aaa2e84
corrected error in -error (see localoptimization)
2004-09-29 17:08:16 +00:00
ganovelli
de4b5c1d43
changed P() to cP()
2004-09-15 11:20:15 +00:00
ganovelli
26c2861e7a
creation
2004-09-15 10:25:20 +00:00
Federico Ponchio
882e9a9b16
Header guards typo
2004-09-09 13:23:01 +00:00