Commit Graph

505 Commits

Author SHA1 Message Date
Paolo Cignoni c1551eddfd make Point derive Eigen's Matrix and some cleanning 2008-10-28 11:47:37 +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 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
Nico Pietroni 71f3accd9c added Mirror function 2007-10-12 10:02:41 +00:00
Federico Ponchio 6c762759ab Added Circumcenter function. 2007-10-10 15:11:30 +00:00
Federico Ponchio 76721c28d1 Just a clarification comment 2007-09-21 11:34:10 +00:00
ganovelli 1fee504228 added ScalarType to tetra3 2007-07-31 12:35:42 +00:00
Federico Ponchio 68032b71dd Added method Gather:
Using a cubic voxel of side <radius> (see Set with radius)
allows you to process all pairs of objects within radius distance.
Usefull to compute normals, weighted means etc.
Speedup is about 7x.
2007-07-16 16:59:26 +00:00
Paolo Cignoni 8bfd6c40e0 Splitted initialiazation functions of grid to add flexibility in the creation 2007-07-16 15:13:39 +00:00
Paolo Cignoni 854717ecfc added a missing static to the Construct() member 2007-07-12 06:41:24 +00:00
Massimiliano Corsini bfbbe58a2a fix area 2007-07-02 10:01:00 +00:00
Paolo Cignoni 220baf92c7 Corrected gcc compiling issues 2007-07-02 04:25:32 +00:00
Federico Ponchio 54aa4df7c7 Made compatible with ScalarType = double 2007-06-20 09:26:42 +00:00
Paolo Cignoni 2ebecdde24 Added method that computes the minimum distance between a segment and a point 2007-06-12 15:40:41 +00:00
Federico Ponchio d8032a9bc0 *** empty log message *** 2007-06-08 14:57:29 +00:00
Paolo Cignoni 279306b9f7 Corrected error in the comment to method IntersectionSphereTriangle 2007-06-08 07:40:40 +00:00
Paolo Cignoni 9105a551cd Added IntersectionSphereTriangle 2007-06-07 15:16:39 +00:00
Paolo Cignoni ca8780af81 casting (size_t) to (int) to avoid annoying warning 2007-06-06 10:33:36 +00:00
Paolo Cignoni 1e2f4c1a80 Added IntersectionSegmentSphere 2007-05-29 14:33:29 +00:00
Paolo Cignoni 9fee0bfaaa Corrected wrong deallocation when octree was destroyed after being never used. 2007-05-10 10:48:49 +00:00
Paolo Cignoni 01277711b6 Corrected InterpolationParameters invocation 2007-05-10 09:31:15 +00:00
ganovelli b8df8c98db debug: function Offset called without pars 2007-05-08 18:54:20 +00:00
Nico Pietroni de99d5c2d9 corrected error on intersection line-circle 2007-05-08 13:49:08 +00:00
Nico Pietroni 43958eea39 added circle-line intersection 2007-05-08 12:11:58 +00:00
Paolo Cignoni 5dd620e4e4 Added enum Dimension; 2007-05-07 07:47:59 +00:00
ganovelli 339f609ece moved InterpolationParamaters out the class Triangle 2007-05-04 16:33:27 +00:00
ganovelli ec652a6d99 added cast to avoid warning 2007-05-04 16:17:24 +00:00
Paolo Cignoni e5d3f05580 commented out non compiling intersectionSpherePlane 2007-04-16 09:08:15 +00:00
Nico Pietroni 5644153c35 IntersectionPlanePlane first parameter is a const 2007-04-10 22:26:47 +00:00
Nico Pietroni 511f80625d - corrected and renamed distance to point ( function TrianglePointDistance) 2007-04-04 23:23:55 +00:00
Nico Pietroni 99afe015fd setted to const the parameter passed to function Projection 2007-04-04 23:22:29 +00:00
Nico Pietroni 477c03ffd1 - Changed name of intersection function between plane and triangle from Intersection to IntersectionPlaneTriangle.
- Added Intersection_Plane_Sphere function.
2007-04-04 23:19:40 +00:00
Nico Pietroni c466753fe5 corrected test with max distance in ray Iterator 2007-03-26 08:12:30 +00:00
Nico Pietroni 63e2cdd95f *** empty log message *** 2007-03-22 18:12:00 +00:00
Nico Pietroni 0aa99556bf *** empty log message *** 2007-03-22 17:29:16 +00:00
mtarini 8fed8aeed3 removed old "tcoord2". New name is "texcoord2" 2007-03-12 15:28:13 +00:00
mtarini 23a0cb0be4 New name (TCoord -> TexCoord). First commit after name change. 2007-03-12 15:26:56 +00:00
Nico Pietroni 00cc5e3f15 line 375, corrected 1 error concerning intersection with bounding of the grid 2007-03-08 17:05:50 +00:00
Marco Di Benedetto 50ed5305a4 Added const qualifier to bbox parameter in Intersection_Triangle_Box(). 2007-02-21 02:40:52 +00:00
ganovelli 116707257a modif in ClosestIterator to include the last shell Si.siz [X|Y|X]. Tested with minialign and point based animation 2007-02-20 16:22:50 +00:00
Paolo Cignoni c4b0073433 Initial commit. Only the Set and GetInSphere methods of the SpatialIndex interface are implemented. 2007-02-18 22:43:10 +00:00
mtarini c842c83b77 renamed all methods (now uppercase). Also, the Position of a TCoord is now "P()". Old methods name are left, just for now, for back-compatibility. They will be removed soon. 2007-01-30 19:04:50 +00:00
Nico Pietroni 385ee8ba62 - 1 warning corrected in InterpolationParameters function 2007-01-29 00:21:46 +00:00
Nico Pietroni aacbec3178 first working version 2007-01-25 01:11:10 +00:00
Nico Pietroni 9ec0e7b571 added:
- RayLineIntersection
- RaySegmentIntersection
- SegmentSegmentIntersection
2007-01-25 01:04:54 +00:00
Paolo Cignoni 97ae6e35ed Corrected a syntax error in stabledot 2007-01-18 01:27:44 +00:00
Paolo Cignoni 9ba5050193 Added (Normalized) Normal version templated on three points (instead forcing the creation of a new triangle) 2007-01-13 00:25:23 +00:00
Nico Pietroni 191896afbb added constructors :
-Triangle2()
     -Triangle2(const CoordType &p0,const CoordType &p1,const CoordType &p2)

added functions:
     - InterpolationParameters
     - PointDistance
2007-01-08 09:29:58 +00:00
Nico Pietroni 9cbf2c1c3c - added easpilon test on convex function.
- renamed Intersection function with  IsInsideTrianglePoint and optimized using bouding boxes
2007-01-08 09:26:33 +00:00
Nico Pietroni a2ee98e3e4 first release version 2007-01-03 15:49:48 +00:00
Nico Pietroni 56086c51ae added line-line and line-segment intersection 2007-01-03 15:49:00 +00:00
ganovelli 8403681640 using of locally defined variable removed 2006-12-20 15:23:52 +00:00