Commit Graph

25 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
ganovelli bb741600ca <limits.h> to <limit> 2008-09-30 11:41:04 +00:00
Paolo Cignoni 2caf6034f3 Added SQRT_TWO 2008-05-28 08:51:32 +00:00
Paolo Cignoni 68effd0f7a Added IsNAN 2007-07-24 07:09:17 +00:00
Nico Pietroni f8eeaae81f added explicit cast in function inline float Sqrt(const int v) in order to avoid warnings 2007-01-08 09:23:49 +00:00
Paolo Cignoni ebc0ac52c0 Added two sqrt templates for resolving ambiguity of sqrt(int) 2006-10-13 13:14:50 +00:00
Paolo Cignoni 6d5c0cd0f7 Removed excess ';' from end of template functions, for gcc compiling 2005-12-01 01:03:37 +00:00
Paolo Cignoni 14a1c4c1e7 Aggiunte macro sin/cos/atan per C++ Builder 2004-08-31 15:42:59 +00:00
ganovelli 700d8efbef limits function cancelled 2004-05-10 13:00:14 +00:00
ganovelli cee79014d1 correction on templates 2004-05-03 08:38:08 +00:00
ganovelli 1b3fc69fac Min and Max changed from const members to static class function
Use: Value<float>::Min()
2004-04-15 09:36:59 +00:00
mtarini 0002503283 debugged Max and Min const values (to make them linkable) 2004-03-31 12:41:55 +00:00
Paolo Cignoni 0a7cf4514f int64 -> long long for GCC compatibility 2004-03-31 10:09:19 +00:00
mtarini e4cf5549cd - added VoidType - added "static_assert" 2004-03-16 00:23:50 +00:00
mtarini bc1fdc913b Added Atan2.
Added common utilities: Max, Min, Swap, Sort(a,b), Sort(a,b,c).
Changed Max values syntax. example:  Value<float>::Max
2004-03-10 17:37:54 +00:00
mtarini eda1533770 Added Atan2.
Added common utilities: Max, Min, Swap, Sort(a,b), Sort(a,b,c).
Changed Max values syntax. example:  Value<float>::Max
2004-03-10 16:54:57 +00:00
mtarini 5ed7bf6aba (CVS did not want to undo update) 2004-03-09 17:55:04 +00:00
mtarini 7a5b65928b *** empty log message *** 2004-03-08 19:40:48 +00:00
mtarini ed506a2ea5 first version (tarini) 2004-03-08 19:38:29 +00:00
Federico Ponchio a462f2ce71 Aggiunti un po di inline davanti alle funzioni 2004-03-08 14:49:37 +00:00
Federico Ponchio e5cde4e163 added Acos e Asin 2004-03-04 00:21:00 +00:00
Paolo Cignoni 5332b4ac5b changed math from class to template 2004-03-03 22:51:49 +00:00
Federico Ponchio ca807a0787 *** empty log message *** 2004-02-19 15:28:01 +00:00
Paolo Cignoni 5a558b0f8c Edited Comments and GPL license 2004-02-13 02:18:57 +00:00
Federico Ponchio 04afe4c81e Adding base.h 2004-02-09 13:32:16 +00:00