Commit Graph

454 Commits

Author SHA1 Message Date
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 393ec38d54 quick fix in color4 2008-10-27 19:38:52 +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 4002b9a706 created as a first working draft.
Tessellates a simple polygon with the earcut algorithm
assuming the polygon is  almost planar
2008-10-27 16:50:45 +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
ganovelli c0a5159672 changed member Zero() to SetZero() 2008-10-27 12:52:22 +00:00
Paolo Cignoni 57fe4376a2 fix a few warnings 2008-10-24 12:45:02 +00:00
Paolo Cignoni 9fc4f7d36f added a missing const to grid Create 2008-10-07 06:56:26 +00:00
ganovelli 7defccba1b getclosest update for \the new definition of distance functor 2008-09-30 11:01:09 +00:00
ganovelli 41bc27e33e Changed the type of query type. Made it dependend on distance functor 2008-09-24 09:28:53 +00:00
ganovelli 68d900ec7e changes to compile previous commit with gcc 2008-09-24 09:15:38 +00:00
ganovelli 6a649ee257 changes to comply the templatization of distance functor on the query type 2008-09-24 08:45:31 +00:00
ganovelli b2960231ca corrected bug on PointBase class (thanks Oscar Barney) 2008-09-22 13:40:53 +00:00
granzuglia 728a9020c4 The class PointBase has been renamed as Point.
An empty class PointBase has been added for backward compatibility.
Mathematical operation (+,+=,*,etc) in class Point<N,S> has been implemented.
2008-09-10 14:04:09 +00:00
ganovelli 1185e2ab96 minor type changes to compile with gcc 2008-08-19 11:03:39 +00:00
ganovelli 3cb29c805b changed template from vcg::Triangle to generic class to allow to pass a vcg::FaceSimpX (recall: the disambiguation was done in the function name exactly for this reason) 2008-08-19 10:21:01 +00:00
ganovelli 82d9dec26a aadded this-> to + operator to compile with .net 2008-08-07 16:22:27 +00:00
ganovelli d35117d9c2 added precompiler check if FABS macro is already defined 2008-08-04 10:54:34 +00:00
ganovelli 57c0fc8238 added inclusion of point3.h, removed useless namespace in InterpolationParameters 2008-08-04 10:53:08 +00:00
ganovelli 08cdd7b3aa added a version of CreateTight which takes a std::vector 2008-08-04 10:50:53 +00:00
ganovelli 3712ddfd50 - Change to avoid dangerous iterators decrement in RayITerator: reverse iterator used (same as in ClosestIterator)
-removed some old commented code
2008-07-29 16:05:29 +00:00
Paolo Cignoni 2dc0c1e1dc Fixed compilation bug under Visual Studio 2005 2008-07-29 13:01:10 +00:00
Federico Ponchio 75ee76b233 PlaneFitting returns the eigenvalues instead of true now. 2008-07-21 08:34:31 +00:00
Paolo Cignoni 4555f74ee3 added operator + between color with clamped specialization for unsigned chars 2008-07-09 15:18:08 +00:00
Paolo Cignoni 1407af2537 removed harmless warnings 2008-07-09 10:31:55 +00:00
Nico Pietroni 38c1cc7aaf changed epsilon value on InterpolationParameters function 2008-07-03 10:22:37 +00:00
Paolo Cignoni 711c985689 update to the new single template BasicGrid 2008-07-01 12:37:27 +00:00
Paolo Cignoni fa2c3fa060 updated the spatial indexing class to the new basicgrid class that has only one template parameter 2008-07-01 09:33:47 +00:00
Paolo Cignoni 4e227776f3 Removed one useless template parameter from the BasicGrid class and added a couple of useful accessory functions 2008-07-01 09:32:48 +00:00
Paolo Cignoni 616b3fedc5 Added the class oriented bounding box inherited from box3.h 2008-06-23 17:28:30 +00:00
Nico Pietroni 26e1c14de8 correct version of InterpolationParameters 2008-06-20 15:03:27 +00:00
Paolo Cignoni d95f6ee798 Added a constructor from point4 of the same type to allow the use of Point4 operator; e.g. col1 = col2 + col3
Added Clamp operator to get rid of out of 0..1 range values for floats
2008-06-17 23:08:53 +00:00
Paolo Cignoni 8972bf2ea2 added construct from and to float 2008-04-22 20:44:07 +00:00
Nico Pietroni 517108e947 corrected 1 warning in DistancePoint3Box3 function 2008-04-07 10:26:10 +00:00
Nico Pietroni 3edf76179c added default constructor 2008-04-07 10:24:55 +00:00
Nico Pietroni 8feedff976 correct 1 error on DistancePoint3Box3 (if the point is inside the box return distance to the nearest face instead of zero) 2008-03-05 11:48:08 +00:00
Nico Pietroni 94cb8fca1d added DistancePoint2Box2 2008-03-05 11:45:36 +00:00
Paolo Cignoni 66ee02eb49 __int64 is a MS only type. Added portability defines at the beginning. 2008-02-20 11:31:13 +00:00
Marco Callieri 3716a8c6df in BestDim(...) changed int -> _int64 to cope with programs with a very large cell number (like plyMC) 2008-02-19 12:43:01 +00:00
ganovelli 2dea5562fe typo corrected 2008-02-04 19:18:44 +00:00
Paolo Cignoni c6e1940149 Important Change. Now adding a null bbox to a bbox leave it unchanged (instead of trashing it) 2008-02-03 23:50:51 +00:00
Paolo Cignoni 57069766d4 corrected small bug in multitex coord indexing 2008-01-28 08:48:52 +00:00
Paolo Cignoni d87123b841 disambiguated sqrt call 2007-12-02 07:39:19 +00:00
Federico Ponchio 700ab9112d Added Mean Ratio metric for triangle quality. 2007-11-26 14:11:38 +00:00
ganovelli 9ff18f557b missing typename 2007-11-20 09:45:51 +00:00
Federico Ponchio f0d2300c82 QualityRadii values fixed. 2007-11-19 17:04:05 +00:00
Federico Ponchio e2dfebc909 Typo (missing comma). 2007-11-18 19:12:54 +00:00
Federico Ponchio 030feec36a Added qualityRadii: computes inradius /circumradius.
(ok the name is ugly...)
2007-11-16 14:22:35 +00:00
ganovelli c04c5cde70 added draft for sphereofsphres enclosing 2007-11-07 09:37:20 +00:00
Paolo Cignoni d3d7f047e4 added missing typenames 2007-10-16 16:45:49 +00:00