Commit Graph

25 Commits

Author SHA1 Message Date
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
Paolo Cignoni 355edd042e removed harmless warnings 2010-02-24 09:56:58 +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
granzuglia b41603d086 added missing #include file update/topology.h 2009-07-17 08:22:38 +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 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 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
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 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 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 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 c2fb20c70b Updated to the new style face->Normal() becomes Normal(face) 2006-10-07 17:20:25 +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 da6bf044f0 passed parameters by reference in many funcs and gcc cleaning 2004-11-23 10:34:45 +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 26c2861e7a creation 2004-09-15 10:25:20 +00:00