Commit Graph

2172 Commits

Author SHA1 Message Date
Paolo Cignoni e587581275 add transposeInPlace and duplicate V(int) 2008-10-29 11:17:11 +00:00
Paolo Cignoni 07f2e976ea * change all remaining Transpose to transpose,
* update the gl/math wrappers to make them more Eigen friendly
  (and remove the useless, and not used, and somehow dangerous
   *Direct and *E functions)
* add automatic reinterpret_casting from Eigen::Matrix to vcg
  specialized types
2008-10-29 00:05:44 +00:00
Paolo Cignoni 0361427bc0 big cleaning in Point* and Matrix*, now they are very closed to be simple typedef of
Eigen's Matrix. Now the dilema is how to mimic those typedefs, using inheritence ?
or using the classic workaround: typename Point3<float>::Type; with Point3<T>::Type defined
to Eigen::Matrix<T,3,1>. Anyway currently I support both (and the inheritence scheme has
to be preserved for compatibility). The advantage of the second approach is that when
eigen has to evaluate an expression it uses an Eigen::Matrix<>, so it is probably better
to only use Eigen::Matrix but I'm not 100% sure that makes a big difference especially if
we add some automatic reinterpret_cast between Eigen::Matrix and vcg::Point*....
2008-10-28 20:06:17 +00:00
Paolo Cignoni 6e0b8fe1aa added import vector 2008-10-28 15:00:16 +00:00
Paolo Cignoni c1551eddfd make Point derive Eigen's Matrix and some cleanning 2008-10-28 11:47:37 +00:00
ganovelli 949637c795 added private copy constructor and assignment operator to prevent people from doing those things
added empty constructors to attribute handles
2008-10-28 11:00:30 +00:00
Paolo Cignoni 977ddb9623 some cleaning 2008-10-28 10:16:43 +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 69ebba04b9 Created.
PolygonSupport provides the functions to import a trimesh from a polygonal mesh and viceversa.
2008-10-27 16:54:32 +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
Federico Ponchio 5394003338 Fixed small error in documentation 2008-10-24 18:49:40 +00:00
Paolo Cignoni 8a8eb6fb65 add the possiblity to sort eigenvalues/vectors according to their absolute values 2008-10-24 17:21:53 +00:00
Paolo Cignoni 57fe4376a2 fix a few warnings 2008-10-24 12:45:02 +00:00
Paolo Cignoni 64fcbc961a compilation fix for 64bits systems 2008-10-24 12:41:50 +00:00
Paolo Cignoni 24ea4251a9 Matrix33: make const the binary operators 2008-10-24 12:20:44 +00:00
ganovelli 4783ac9a62 added an assertion 2008-10-24 10:26:28 +00:00
ganovelli d5113f6204 added missing functions
IsCurvatureDirEnabled
EnableCurvatureDir

and debugged CurvatureDirTypeOcf, which
returned wrong values and [MAJOR] wasted
8 floats per vertex every time it was included in the type (enabled or not)
2008-10-24 09:54:23 +00:00
ganovelli 3a5b6ed2f3 added missing checks in ImportLocal 2008-10-24 09:50:55 +00:00
ganovelli cba885edbe missing (unreachable) return added 2008-10-24 09:49:47 +00:00
Paolo Cignoni 64ce68dac0 * make EmptyRadius::HasRadius returns false
* make gl/Shader and gl/Program* a bit easier to use:
 - automatic object creation
 - add Uniform() overloads for vcg::Point*f types
2008-10-15 08:02:14 +00:00
ganovelli 79ef95435a Compacted EmptyCurvature and EmptyCurvatureDir in EmptyCurvatureData and added EmptyRadius 2008-10-14 16:47:02 +00:00
ganovelli c454c38e60 added EmptyCurvatureData and EmptyRadius 2008-10-14 16:45:36 +00:00
ganovelli 8198cf4c8b added HasFaceQualityOcf() to EmptyColorMarkQuality 2008-10-14 16:42:29 +00:00
Paolo Cignoni fc98a34972 Add an optional per vertex radius property in occ, ocf, and IO mask.
Extend derivation_chain from 10 to 12
2008-10-14 14:58:09 +00:00
Paolo Cignoni c5ec73d0f7 Added IntersectionRayMesh overload function who return hit point, baricentric's coordinates and a pointer of intersected face. 2008-10-14 14:31:35 +00:00
Paolo Cignoni 9b0875d19e added a missing std:: 2008-10-14 14:28:33 +00:00
Paolo Cignoni 6f1e8d0641 Added UpdateColor::VertexFromFace and UpdateColor::FaceFromVertex 2008-10-14 13:41:37 +00:00
ganovelli dddce06a72 use of NextFE (of the jumping_pos) instead of NextE 2008-10-14 09:47:16 +00:00
ganovelli 699ca34f0c added missing HasFaceQualityOcf() in InfoOcf 2008-10-14 09:23:36 +00:00
Paolo Cignoni f15dcf5536 compacted the EmptyMark componenet into the EmptyColorMarkQuality component, to shorten the derivation. 2008-10-14 06:41:46 +00:00
Paolo Cignoni 94178d7128 Added optional per face quality 2008-10-14 06:40:29 +00:00
Paolo Cignoni ae6f7fee0f Added FaceQualityGray() and changed (for sake of symmetry) FaceQuality() to FaceQualityRamp() 2008-10-14 06:37:36 +00:00
Paolo Cignoni de8504ba3e Added ComputePerFaceQualityMinMax() 2008-10-14 06:36:25 +00:00
ganovelli d7920e1cc4 Added principal curvatures direction computation with by means of normal cycles:
Restricted delaunay triangulations and normal cycle
Cohen-Steiner, David   and Morvan, Jean-Marie SCG '03
2008-10-13 14:55:05 +00:00
ganovelli 56857ecdb7 some cleanup of the Taubin tensor estimator (still not working properly) 2008-10-10 14:58:33 +00:00
Paolo Cignoni 78501226de Removed a few warnings and added a template keyword in the call of a templated function member. 2008-10-09 13:50:45 +00:00
granzuglia 5d25249427 removed a stupid reference (&) from function VN's return type 2008-10-08 15:11:38 +00:00
Paolo Cignoni 413001c79b The fr parameter is now declared as const in local function ImportFace 2008-10-08 14:44:56 +00:00
Paolo Cignoni f30376e18d Added const qualifier to method cC() in Color class 2008-10-08 14:43:15 +00:00
Paolo Cignoni 39e2cf2b3e Spherical Harmonics are templatized on the number of coefficients 2008-10-08 14:01:34 +00:00
ganovelli 75a7b0a846 [Polygon modification]
Added components to the face to handle generic polygons.
(compiled with .net and gcc)

This commit includes the following files:
vcg/complex/trimesh/base.h
Added deallocation of polygon data in the destructor

vcg/complex/trimesh/allocate.h
generalization from 3 to VN() vertices

vcg/complex/trimesh/update/topology.h
generalization from 3 to VN() vertices

vcg/complex/trimesh/update/flags.h
generalization from 3 to VN() vertices

vcg/simplex/face/pos.h
generalization from 3 to VN() vertices

vcg/simplex/faceplus/base.h
Added the method VN() to query the number of vertices
of the polygon (deafult 3) and methods Prev and Next

vcg/simplex/faceplus/component.h
added Alloc and Dealloc calls along the hierarchies
2008-10-08 10:19:07 +00:00
ganovelli 0455dda283 corrected include path 2008-10-08 09:54:24 +00:00
ganovelli 23f7fc2bc3 added component for the spherical harmonics (by Daniele Bernabei) 2008-10-08 09:47:26 +00:00
ganovelli 0d4b3fbed0 [Polygon modification]
Added components to the face to handle generic polygons.
(compiled with .net and gcc)

This commit includes the following files:
vcg/complex/trimesh/base.h
Added deallocation of polygon data in the destructor

vcg/complex/trimesh/allocate.h
generalization from 3 to VN() vertices

vcg/complex/trimesh/update/topology.h
generalization from 3 to VN() vertices

vcg/complex/trimesh/update/flags.h
generalization from 3 to VN() vertices

vcg/simplex/face/pos.h
generalization from 3 to VN() vertices

vcg/simplex/faceplus/base.h
Added the method VN() to query the number of vertices
of the polygon (deafult 3) and methods Prev and Next

vcg/simplex/faceplus/component.h
added Alloc and Dealloc calls along the hierarchies
2008-10-08 09:10:53 +00:00
ganovelli d0d580c4ae Changed GetIntrinsics into:
GetExtrinsicsToWorldMatrix and
GetWorldToExtrinsicsMatrix
2008-10-07 10:57:09 +00:00
Paolo Cignoni b58cabc1b6 better comment at the begininning explaing a bit the Refine templated mechanism. 2008-10-07 07:02:01 +00:00
Paolo Cignoni 9fc4f7d36f added a missing const to grid Create 2008-10-07 06:56:26 +00:00
ganovelli a0cdf71abf found a bug in PrincipaDirections, clean up of the function and better comments (thanks E.Puppo) 2008-10-02 14:25:54 +00:00
Paolo Cignoni 4f2be6a4ba a forgotten trimesh -> tri (See previous commits of Fabio Ganovelli) 2008-09-30 12:38:34 +00:00
ganovelli e16d065e93 [Namespaces changes]
vert->vertex


clean up of some namespaces to comply the following naming:

Complexes (3 letters namespaces):
order 0 (point cloud    ) :vrt
order 1 (edge meshes)     :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet

Simplexes (extended namespaces):
order 0 (vertex)      :vertex 
order 1 (edge)        :edge 
order 2 (triangle)    :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 11:41:58 +00:00
ganovelli bb741600ca <limits.h> to <limit> 2008-09-30 11:41:04 +00:00
ganovelli 7f399c7515 [Namespaces changes]
vert->vertex
trimesh->tri


clean up of some namespaces to comply the following naming:

Complexes (3 letters namespaces):
order 0 (point cloud    ) :vrt
order 1 (edge meshes)     :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet

Simplexes (extended namespaces):
order 0 (vertex)      :vertex 
order 1 (edge)        :edge 
order 2 (triangle)    :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 11:38:05 +00:00
ganovelli 7defccba1b getclosest update for \the new definition of distance functor 2008-09-30 11:01:09 +00:00
ganovelli 3831d9716f [Namespaces changes]
vert->vrt


clean up of some namespaces to comply the following naming:

Complexes (3 letters namespaces):
order 0 (point cloud    ) :vrt
order 1 (edge meshes)     :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet

Simplexes (extended namespaces):
order 0 (vertex)      :vertex 
order 1 (edge)        :edge 
order 2 (triangle)    :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:59:29 +00:00
ganovelli b96b375d64 [Namespaces changes]
vert->vrt


clean up of some namespaces to comply the following naming:

Complexes (3 letters namespaces):
order 0 (point cloud    ) :vrt
order 1 (edge meshes)     :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet

Simplexes (extended namespaces):
order 0 (vertex)      :vertex 
order 1 (edge)        :edge 
order 2 (triangle)    :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:57:42 +00:00
ganovelli beb57b487c [Namespaces changes]
vert->vrt


clean up of some namespaces to comply the following naming:

Complexes (3 letters namespaces):
order 0 (point cloud    ) :vrt
order 1 (edge meshes)     :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet

Simplexes (extended namespaces):
order 0 (vertex)      :vertex 
order 1 (edge)        :edge 
order 2 (triangle)    :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:57:09 +00:00
ganovelli abd367ac3f [Namespaces changes]
vert->vrt


clean up of some namespaces to comply the following naming:

Complexes (3 letters namespaces):
order 0 (point cloud    ) :vrt
order 1 (edge meshes)     :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet

Simplexes (extended namespaces):
order 0 (vertex)      :vertex 
order 1 (edge)        :edge 
order 2 (triangle)    :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:56:35 +00:00
ganovelli e5d28ed8b5 [Namespaces changes]
trimesh->tri

clean up of some namespaces to comply the following naming:

Complexes (3 letters namespaces):
order 0 (point cloud    ) :vrt
order 1 (edge meshes)     :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet

Simplexes (extended namespaces):
order 0 (vertex)      :vertex 
order 1 (edge)        :edge 
order 2 (triangle)    :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:55:18 +00:00
ganovelli ece2df9202 [Namespaces changes]
trimesh->tri


clean up of some namespaces to comply the following naming:

Complexes (3 letters namespaces):
order 0 (point cloud    ) :vrt
order 1 (edge meshes)     :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet

Simplexes (extended namespaces):
order 0 (vertex)      :vertex 
order 1 (edge)        :edge 
order 2 (triangle)    :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:53:28 +00:00
ganovelli 682865bf25 [Namespaces changes]
trimesh->tri


clean up of some namespaces to comply the following naming:

Complexes (3 letters namespaces):
order 0 (point cloud    ) :vrt
order 1 (edge meshes)     :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet

Simplexes (extended namespaces):
order 0 (vertex)      :vertex 
order 1 (edge)        :edge 
order 2 (triangle)    :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:52:37 +00:00
ganovelli ac3321980c [Namespaces changes]
vert->vertex
trimesh->tri

clean up of some namespaces to comply the following naming:

Complexes (3 letters namespaces):
order 0 (point cloud    ) :vrt
order 1 (edge meshes)     :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet

Simplexes (extended namespaces):
order 0 (vertex)      :vertex 
order 1 (edge)        :edge 
order 2 (triangle)    :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:52:09 +00:00
ganovelli 13c853509e [Namespaces changes]
trimesh->tri


clean up of some namespaces to comply the following naming:

Complexes (3 letters namespaces):
order 0 (point cloud    ) :vrt
order 1 (edge meshes)     :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet

Simplexes (extended namespaces):
order 0 (vertex)      :vertex 
order 1 (edge)        :edge 
order 2 (triangle)    :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:51:38 +00:00
ganovelli 7e579b7895 [Namespaces changes]
edge->edg


clean up of some namespaces to comply the following naming:

Complexes (3 letters namespaces):
order 0 (point cloud    ) :vrt
order 1 (edge meshes)     :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet

Simplexes (extended namespaces):
order 0 (vertex)      :vertex 
order 1 (edge)        :edge 
order 2 (triangle)    :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:50:43 +00:00
ganovelli 9143a0d389 [Namespaces changes]
edge->edg
trimesh->tri

clean up of some namespaces to comply the following naming:

Complexes (3 letters namespaces):
order 0 (point cloud    ) :vrt
order 1 (edge meshes)     :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet

Simplexes (extended namespaces):
order 0 (vertex)      :vertex 
order 1 (edge)        :edge 
order 2 (triangle)    :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:49:09 +00:00
ganovelli cec96ba260 addded template parameter to comply the new definition of functor and
[Namespaces changes]
vert->vertex

clean up of some namespaces to comply the following naming:

Complexes (3 letters namespaces):
order 0 (point cloud    ) :vrt
order 1 (edge meshes)     :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet

Simplexes (extended namespaces):
order 0 (vertex)      :vertex 
order 1 (edge)        :edge 
order 2 (triangle)    :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:48:41 +00:00
ganovelli 970c388277 [Namespaces changes]
edge->edg

clean up of some namespaces to comply the following naming:

Complexes (3 letters namespaces):
order 0 (point cloud    ) :vrt
order 1 (edge meshes)     :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet

Simplexes (extended namespaces):
order 0 (vertex)      :vertex 
order 1 (edge)        :edge 
order 2 (triangle)    :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:47:09 +00:00
ganovelli e15127934c [Namespaces changes]
edge->edg

clean up of some namespaces to comply the following naming:

Complexes (3 letters namespaces):
order 0 (point cloud    ) :vrt
order 1 (edge meshes)     :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet

Simplexes (extended namespaces):
order 0 (vertex)      :vertex 
order 1 (edge)        :edge 
order 2 (triangle)    :triangle (temporarily it remains "face")
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:46:18 +00:00
ganovelli e652cc5a38 [Namespaces changes]
vert->vertex 

clean up of some namespaces to comply the following naming:

Complexes (3 letters namespaces):
order 0 (point cloud    ) :vrt
order 1 (edge meshes)     :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet

Simplexes (4 letters namespaces):
order 0 (vertex)      :vert 
order 1 (edge)        :edge 
order 2 (triangle)    :triangle
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:42:55 +00:00
ganovelli de35204e95 [Namespaces changes]
vert->vertex 

clean up of some namespaces to comply the following naming:

Complexes (3 letters namespaces):
order 0 (point cloud    ) :vrt
order 1 (edge meshes)     :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet

Simplexes (4 letters namespaces):
order 0 (vertex)      :vert 
order 1 (edge)        :edge 
order 2 (triangle)    :triangle
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:42:16 +00:00
ganovelli ea7b394eb3 [Namespaces changes]
vert->vertex 

clean up of some namespaces to comply the following naming:

Complexes (3 letters namespaces):
order 0 (point cloud    ) :vrt
order 1 (edge meshes)     :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet

Simplexes (4 letters namespaces):
order 0 (vertex)      :vert 
order 1 (edge)        :edge 
order 2 (triangle)    :triangle
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:41:41 +00:00
ganovelli 811b263e33 [Namespaces changes]
vert->vertex 

clean up of some namespaces to comply the following naming:

Complexes (3 letters namespaces):
order 0 (point cloud    ) :vrt
order 1 (edge meshes)     :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet

Simplexes (4 letters namespaces):
order 0 (vertex)      :vert 
order 1 (edge)        :edge 
order 2 (triangle)    :triangle
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:40:42 +00:00
ganovelli cdb021e821 added typenames to compile with gcc 2008-09-30 10:38:58 +00:00
ganovelli 5d1bd20c33 added warning for deprecation of this way to define the simplex 2008-09-30 10:38:04 +00:00
ganovelli 7021c9af38 added warning for deprecation 2008-09-30 10:35:44 +00:00
ganovelli 4697eb936f typenames and definition added to compile with gcc. THe aprt of type querying temporarily commented out (to fix) 2008-09-30 10:34:27 +00:00
ganovelli 8fd3eecf80 added version on IntersectionBallMesh that take a grid. It's a draft, to be refactored. And
[Namespaces changes]
edge->edg

clean up of some namespaces to comply the following naming:

Complexes (3 letters namespaces):
order 0 (point cloud    ) :vrt
order 1 (edge meshes)     :edg
order 2 (triangle meshes) :tri
order 3 (triangle meshes) :tet

Simplexes (4 letters namespaces):
order 0 (vertex)      :vert 
order 1 (edge)        :edge 
order 2 (triangle)    :triangle
order 3 (tetrahedron) :tetrahedron
2008-09-30 10:18:24 +00:00
ganovelli 4fc9dd2639 added edgeSimp definition 2008-09-30 09:47:25 +00:00
Paolo Cignoni 8143b27315 added missing include callback.h 2008-09-29 10:12:38 +00:00
ganovelli b5bca977a7 added pragma message to deprecate this way to define the simplex 2008-09-28 14:30:09 +00:00
ganovelli a2e3e5b725 Removed Similarity from Shot
Problem: Shot was using similarity merely to store
rotation and translation. 
There was an incompatibility in that Similarity::ToMatrix
gives scale*rotation*translation while in Shot
the translation stores the viewpoint and the rotation the orientation of the Shot.

In this version, a small class ReferenceFrame was done to play the role of similarity and MultMatrix and MultSimilarity functions were added to transform the frame by multiplying it for a Matrix44 (or applying a similarity).

NOTE: the file export_ply.ply and import_ply.h must also be updated.

-- only compiled with .net ---
2008-09-26 17:07:32 +00:00
Federico Ponchio e5258c6aa3 Attempting to make similarity compatible with both quaternions and matrix44 2008-09-26 15:37:53 +00:00
Paolo Cignoni f3bddee157 gcc compiling issues (again using template keyword to disambiguate templated functions in templated classes) 2008-09-25 16:10:47 +00:00
ganovelli a097ef4df9 automatic rough alignment by using 4pcs (4-points congruent sets for Robust pairwise surface registration, Mitra et al. SIGGREAPH 08). First working draft 2008-09-24 16:17:33 +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 f7da79d507 Add template parameter to PointDistanceFunctor 2008-09-24 08:56:06 +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 a952bb1801 DistanceFunctor templated on the type of the query
Added PointNormalDistanceFunctor
2008-09-24 08:42:17 +00:00
ganovelli f6da3d936d DistanceFunctor templated on the type of the query 2008-09-24 08:41:04 +00:00
ganovelli d52199f64c DistanceFunctor templated on the type of the query
Added GetClosestVertexNormal which uses Vertex Position and Normal (see PointNormalDistanceFunctor)
2008-09-24 08:37:42 +00:00
ganovelli 3d8400f86e added a missing templatization od Point3 in Decompose (thanks Oscar Barney) 2008-09-22 13:49:15 +00:00
ganovelli efd69c8291 qualifier Camera<S>:: removed in inline definition (thanks Oscar Barney) 2008-09-22 13:42:49 +00:00
ganovelli b2960231ca corrected bug on PointBase class (thanks Oscar Barney) 2008-09-22 13:40:53 +00:00
ganovelli 889b2ddaa3 chamged " to < in the #include 2008-09-22 09:35:01 +00:00
ganovelli f2ed76753c added inclusion of functional 2008-09-22 09:10:58 +00:00
Paolo Cignoni 7473170272 Improved robustness of FF adj from texture coords adjacency.
Now faces with degenerated tex coords are more correctly managed.
2008-09-15 10:08:41 +00:00
ganovelli 4971b69b13 corrected wrong constant in Covariance (thanks F.Ponchio)
and minor calculation simplifications
2008-09-10 16:18:32 +00:00
granzuglia b9ce07204e Minor changes according to new Point<N,S> definition. 2008-09-10 14:06:13 +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
Paolo Cignoni e8c7472dca Corrected name of template type S in UndistortedToDistorted() to avoid the shadowing between S as type and S as variable name. 2008-09-09 17:41:33 +00:00
matteodelle c94dbdfdaf 2008-09-09 09:22:55 +00:00
matteodelle 0c2491e1b4 new functions to handle distortion: should not affect previous stuff. tested but still error prone... 2008-09-09 09:20:48 +00:00
Paolo Cignoni e7c9656219 Corrected the ImportLocal function for most of the optional classess. Previous version did not check for the availability of the optional component before trying to import it. 2008-08-28 07:19:04 +00:00
Federico Ponchio 12d5a0e322 Removed compile warning by initializing imax to 0 in Decompose(). 2008-08-27 14:33:20 +00:00
Federico Ponchio 696941893d Translated some italian comments... many more to translate. 2008-08-25 12:33:06 +00:00
Paolo Cignoni 201313a5de Changed the name of the pointer to edge Ep into the more standard VEp (like vertex plus and the other vertex to simplex adjacencies VFp and VTp) 2008-08-20 20:35:29 +00:00
Paolo Cignoni 559161beda Changed the name of the pointer to edge Ep into the more standard VEp (like vertex plus and the other vertex to simplex adjacencies VFp and VTp) 2008-08-20 20:34:01 +00:00
ganovelli a00da7b3f3 minor type changes to compile with gcc
removed debug include  to export_ply.h
2008-08-19 11:09:52 +00:00
ganovelli 1185e2ab96 minor type changes to compile with gcc 2008-08-19 11:03:39 +00:00
ganovelli 6bda668af8 missing include added 2008-08-19 10:22:31 +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 3c69c98cd8 some clean up PrincipalDirections (not working well)
added PrincipalDirectionsPCA 
added VertexCurvature that takes a mesh (the name has to be changed)
2008-08-19 10:15:32 +00:00
ganovelli 4e81e65145 added Covariance to to compute the covariance of a generic mesh (without the use of divergence theorem) 2008-08-19 09:43:24 +00:00
ganovelli 1ac5c66e78 added IntersectionBallMesh
added some to the functions
2008-08-19 09:40:52 +00:00
ganovelli 4ac273db73 corrected bug in the number of added vertices 2008-08-19 09:09:44 +00:00
Paolo Cignoni 5843045302 Added missing VEAdj (adjacency vertex-edge used in EdgeMesh) 2008-08-17 20:29:23 +00:00
ganovelli 7a03d966d3 corrected small bug in FaceSimilar 2008-08-14 14:19:29 +00:00
Paolo Cignoni 19b903e34b added a basic Function computing the intersection between a trimesh and a plane that does not require a spatial search structure (useful if you want to make a small number of slices) 2008-08-14 10:04:01 +00:00
Paolo Cignoni 7c66288207 changed a RotateRad to the new SetRotateRad 2008-08-14 10:02:07 +00:00
ganovelli 3462f6a8c2 changed from Rotate (in degrees) to SetRotateRad and SetRotateDeg (the same as in Matrix44.h)
Added return type to the functions SetXXX
2008-08-12 17:31:11 +00:00
Paolo Cignoni eb307140bb Renamed (and refactored to use Stat::MinMax function) method for ramp-coloring a mesh according to its Quality from UpdateColor::VertexQuality to UpdateColor::VertexQualityRamp.
Added UpdateColor::VertexQualityGray.
2008-08-12 08:02:53 +00:00
Paolo Cignoni 9e214da6ff Re-inserted the return statement in the Invert() function that was erroneously removed with the previous commit. 2008-08-11 12:56:37 +00:00
Paolo Cignoni 65320e40a7 Added a clarifying comment on the Invert versus Inverse issue 2008-08-11 08:04:19 +00:00
ganovelli 1e94f7cf46 Add covariance matrix of a set of points 2008-08-07 18:33:23 +00:00
ganovelli 82d9dec26a aadded this-> to + operator to compile with .net 2008-08-07 16:22:27 +00:00
ganovelli 8ad902095a removed ImportVertex for ImportLocal 2008-08-07 16:20:01 +00:00
ganovelli 085e19d121 ImportVertex removed (use ImportLocal), ImportFace cleaned up
Bug in version of Append for selected faces removed
2008-08-07 16:19:31 +00:00
ganovelli 96e89673ec corrected bug in ImportLocal of N() 2008-08-07 16:16:06 +00:00
ganovelli b284013486 replaced "=" with Import(..) in ImportLocal of P().
Note: this means that ImportLocal converts the type of vertex position.
2008-08-07 16:14:45 +00:00
ganovelli 523634a27b added const C(), corrected bug in ImportLocal of WT 2008-08-07 16:11:59 +00:00
Paolo Cignoni dde42be7ea Added new line at the end of file 2008-08-04 15:55:53 +00:00
Paolo Cignoni e4e5507757 Added missing includes 2008-08-04 15:38:10 +00:00
ganovelli cbb547cdf0 uncommented GetInSphereFace (compiled with gcc 4.2.3 and .net 2005) 2008-08-04 15:27:58 +00:00
ganovelli 86816cc60f added few missing template type 2008-08-04 11:03:48 +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 e17c0de7e8 made the function Name of Color and Quality a public member 2008-08-04 10:47: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
ganovelli 1a9220ce98 behaviour change: AddFaces and AddVertices return the vert.end() and face.end() if called with n==0.
Added AddVertices with local pointers to VertexPointer to update
2008-07-29 13:20:44 +00:00
Paolo Cignoni 2dc0c1e1dc Fixed compilation bug under Visual Studio 2005 2008-07-29 13:01:10 +00:00
Paolo Cignoni 33dd499605 Added FaceColorLaplacian function to smooth color among faces 2008-07-28 08:20:22 +00:00
Paolo Cignoni d89a3da4ea commented 2008-07-24 09:53:18 +00:00
Paolo Cignoni c46f5f2435 removed a version of the ComputeRigidMatchMatrix that take in input a weight vector. User should use ComputeWeightRigidMatchMatrix directly 2008-07-23 22:50:15 +00:00
Paolo Cignoni f61a69c94f in "ComputeRigidMatchMatrix(std::vector<ScalarType> weights,Matrix44x &res,std::vector<Point3x> &Pfix,std::vector<Point3x> &Pmov)" I changed:
Quaterniond qtmp;  ----->to------>	Quaternionx qtmp;
Point3d tr;	   ----->to------>	Point3x tr;
2008-07-23 17:30:30 +00:00
Paolo Cignoni 6a4631b94b 1) in "ComputeWeightedRigidMatchMatrix" I changed:
std::vector<double> weights       ----->to------>     std::vector<ScalarType> weights
tmp.Trasp();		          ----->to------>     tmp.Transpose();
QQ.Zero();		          ----->to------>     QQ.SetZero();
RM.Zero();		          ----->to------>     RM.SetZero();
ccm.Trasp();		          ----->to------>     ccm.Transpose();
QQ.Jacobi(d,v,nrot);	          ----->to------>     Jacobi(QQ,d,v,nrot);
q.RotMatrix(Rot);	          ----->to------>     q.ToMatrix(Rot);
tr= (bfix - Rot.Apply(bmov));     ----->to------>     tr= (bfix - Rot *bmov);		
Trn.Translate(tr);	          ----->to------>     Trn.SetTranslate(tr);	


2) in "ComputeRigidMatchMatrix" I changed:
return ComputeRigidMatchMatrix(res,Pfix,Pmov,qtmp,tr); 	----->to------>	 return ComputeWeightedRigidMatchMatrix(res,Pfix,Pmov,weights,qtmp,tr);
2008-07-23 17:19:51 +00:00
Paolo Cignoni a880db7489 modified white balance filter to use a custom color to correct white. 2008-07-23 15:29:14 +00:00
Federico Ponchio 825483d177 Rationalized ToMatrix and FromMatrix (and improved algorithm). 2008-07-21 13:38:55 +00:00
Federico Ponchio 75ee76b233 PlaneFitting returns the eigenvalues instead of true now. 2008-07-21 08:34:31 +00:00
Paolo Cignoni f614f1b5ac append should append the texture names too and update the texture index accordingly 2008-07-20 21:20:49 +00:00
Paolo Cignoni 8f44e94747 Added missing includes 2008-07-20 14:34:26 +00:00
Paolo Cignoni 19bb932a8f Fixed a bug on white balance. now it works fine. 2008-07-18 13:07:10 +00:00
Paolo Cignoni 4842e38c94 Added White balance filter.
Terminology of the desaturation filter has been changed to match the gimp's one.
2008-07-17 21:46:48 +00:00
Paolo Cignoni f5afb40d66 added a desaturation method based on Luminance, and relative functions. 2008-07-17 20:11:13 +00:00
Paolo Cignoni e19635f285 Modified EQ filter to allows working on RGB channels, separated channels, and lightness. It works correctly, but the processing seems to be a different one respect to Gimp (almost when working on RGB). Memory usage can be decreased... 2008-07-17 14:51:20 +00:00
Paolo Cignoni ed2a6ce2f8 Added Desaturation filter and relative functions.
An ENUM for Desaturation methods has been added too.
Added EQ filter and relative functions. It works just on lighness right now. Comments still to be written. work in progress.
2008-07-17 10:07:19 +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 b9263267ec Added color levels filter. Some bug fixed. 2008-07-15 22:29:38 +00:00
Paolo Cignoni 38323a3c48 disambiguated a pow() call 2008-07-15 10:40:10 +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 2472215e8d added VertexCoordPlanarLaplacian that moves only the vertices that does not change the orientation of the incident faces. Very useful for creating good meshing of CAD models. 2008-07-15 07:10:31 +00:00
Paolo Cignoni 7053bdabf0 removed harmless warnings 2008-07-15 06:57:25 +00:00
Federico Ponchio 89973a1a14 Extrinsics in Shot use Matrix44 not Quaternion. therefore ToMatrix was correct.
Rolling back.... sigh.
2008-07-14 13:42:22 +00:00
Federico Ponchio 844be84004 GetCol3 -> GetColumn3 (this part needs to be tested!) 2008-07-14 13:28:27 +00:00
Paolo Cignoni a20902efd8 VERY IMPORTANT CHANGE - Could break the compilation of a lot of code around.
SetRotate of matrix44 has gone. Now only the explicit version SetRotateDeg and SetRotateRad are available. It was too error prone having something with the OpenGL syntax but using radiant instead the OpenGL degrees
2008-07-13 05:37:00 +00:00
Paolo Cignoni 4efd5c21f5 fixed gamma correction 2008-07-11 10:17:09 +00:00
Paolo Cignoni c0f5310cde Added functions to perform gamma correction.
Parameters type changed all to float instead of int,
to achieve a better precision in computations.
2008-07-10 22:11:56 +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
Paolo Cignoni 6be78dcf70 Added color processing functions.
Some changes still to be performed.
2008-07-09 22:25:31 +00:00
Paolo Cignoni 9debed15de Added Brighting function that increase/decrease the brightnes of the vertex colors 2008-07-09 15:19:06 +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 c3735f3e5d Added a small hack for the case of non-simmertric collapses where the average number of heap elements is almost the double of the symmetric case and therefore you should avoid too frequent heap garbage collections. 2008-07-09 10:48:19 +00:00
Paolo Cignoni 1407af2537 removed harmless warnings 2008-07-09 10:31:55 +00:00
Nico Pietroni 72ce36f55c converted functions into static 2008-07-08 14:49:08 +00:00
Paolo Cignoni d83de7eef4 Small modifications to compile with gcc >4.3 (thanks to Carlo Casta!) 2008-07-05 23:35:06 +00:00
Paolo Cignoni 9c314b7f2f Added support for callback in Laplacian and Taubin;
improved comments and removed a bug from the Taubin smoothing
2008-07-05 05:49:57 +00:00
Paolo Cignoni a8becdc8f1 refactored laplacian smoothing and added taubin smoothing 2008-07-04 00:32:48 +00:00
Paolo Cignoni 3af17fab9a added initializer and passed the init value as const reference 2008-07-04 00:31:54 +00:00
Paolo Cignoni a6f9f33a62 removed references to the meshlab code (qdebug and leaked mesh types) 2008-07-03 21:39:37 +00:00
Nico Pietroni 38c1cc7aaf changed epsilon value on InterpolationParameters function 2008-07-03 10:22:37 +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 bafcd1768e remove harmless warnings 2008-07-02 13:26:25 +00:00
Paolo Cignoni 711c985689 update to the new single template BasicGrid 2008-07-01 12:37:27 +00:00
Paolo Cignoni 8314b1759a Heavily restructured (an almost complete rewrite) of the class that convert a mesh to a distance field and run marching cubes on it. 2008-07-01 09:37:31 +00:00
Paolo Cignoni 4e6ff1e97a removed harmless warnings 2008-07-01 09:34:43 +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 445cf3bec0 removed harmless warnings 2008-06-30 15:00:47 +00:00
Paolo Cignoni d3debc41e4 Changed the SetFF IsFF, ClearFF flag functions to the new names SetF IsF, ClearF 2008-06-30 09:58:43 +00:00
Federico Ponchio a4a0d6acf3 last_seed++ shodl have been ++last_seed 2008-06-30 08:46:06 +00:00
Paolo Cignoni 3c81fe2f0e Removed a m.cm leaked from meshlab here.
Thanks to Alain Boyer for the kind bug submission!
2008-06-29 22:56:08 +00:00
Paolo Cignoni 700b8cd26e Removed annoying unsigned vs signed warnings.
Thanks to Alain Boyer for the kind bug submission!
2008-06-29 22:44:44 +00:00
Paolo Cignoni 7da7c0128e Added the WedgeTexRemoveNull function. Currently texture coords are kept for ALL the triangles of a mesh. The texture id is stored with each face.
if a given face should not have tex coord it has the default -1 value for texture ID. This function will add an new fake texture, add that to the list of textures and change all the -1 id to that value.
2008-06-29 07:47:35 +00:00
Paolo Cignoni 674096eb00 added MultiFaceRandom to random color polygonal faces and improved vertexcolor border (now mixed vertexes have a different color) 2008-06-26 08:39:28 +00:00
Paolo Cignoni 0c68c95685 added function IsF()/SetF()/ClearF() to check if a given side of the face is a feature/internal edge; are used by some importer to mark internal edges of polygonal faces that have been triangulated 2008-06-26 08:36:28 +00:00
Paolo Cignoni 616b3fedc5 Added the class oriented bounding box inherited from box3.h 2008-06-23 17:28:30 +00:00
ganovelli 1c8f9ed436 corrected: DumET DumFt and DumTT to DumClass (see derivation_chain.h) 2008-06-23 17:10:48 +00:00
ganovelli 20610a1915 corrected: DumET DumFt and DumTT to DumClass (see derivation_chain.h) 2008-06-23 17:06:28 +00:00
ganovelli d70efb4573 added. Derivation_chain.h contains the inheritance mechanism used to define the (vertex and face) component 2008-06-23 16:30:17 +00:00
ganovelli 22aa059de2 factorized, see vcg/container/derivation_chain.h 2008-06-23 14:27:44 +00:00
ganovelli d35e8ba0c4 factorized, see vcg/container/derivation_chain.h 2008-06-23 14:25:39 +00:00
ganovelli c7f76ab84b factorized, see vcg/container/derivation_chain.h 2008-06-23 14:22:32 +00:00
ganovelli 3d21fcba1d removed dependency on qt 2008-06-23 14:20:52 +00:00
ganovelli 006b7df1b8 added type Attribute 2008-06-23 14:19:56 +00:00
ganovelli db1c99cdf9 added PerMeshAttribute 2008-06-23 14:18:13 +00:00
Paolo Cignoni 86c880176d Completed texture sampling method. now you can generate all the texels of a mesh with a uv mapping. 2008-06-20 23:33:24 +00:00
Paolo Cignoni 79786de3cc Almost completed the Sampling Classes now all the classical methods are in. Added a TrivialSampler class to better illustrate the interface of the sampler object. 2008-06-20 15:11: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 53ac17e6bb Corrected bug in the Laplacian on multiple iteration (missing re-init of temporary data)
Completed the scale dependent laplacian
2008-06-17 23:05:25 +00:00
Paolo Cignoni 3779f19eee Corrected nasty bug in the newest version of the point-face distance, now the two versions are quite coherent 2008-06-13 06:03:27 +00:00
Paolo Cignoni 2ff77479af added function to compute the FaceProjection flags used in point-face distance 2008-06-13 05:44:35 +00:00
Massimiliano Corsini 1059b3d24d add missing include 2008-06-05 14:12:40 +00:00
Paolo Cignoni a29f21fa59 added vertexweighted sampling 2008-06-04 13:29:04 +00:00
Paolo Cignoni 7f4d6cbd76 Added a version of the point-face distance function that does NOT require the precomputed edgeplane additional data. 2008-06-04 13:27:10 +00:00
Paolo Cignoni ae26b6103d Deleted hopefully the last trash files that were incorrectly added by mistake by Giuseppe Turini (who had svn access removed). PLEASE TAKE A BIT OF CARE BEFORE ISSUING A RANDOM COMMIT. 2008-06-04 12:53:29 +00:00
Paolo Cignoni 1f2b207bf2 Deleted all the rest of the orrible trash directories that were incorrectly added by mistake by Giuseppe Turini (who had svn access removed). PLEASE TAKE A BIT OF CARE BEFORE ISSUING A RANDOM COMMIT. 2008-06-04 12:48:51 +00:00
Paolo Cignoni 2e9f615c7a 2008-06-04 09:27:54 +00:00
Paolo Cignoni 9b324d2f50 added missing license info 2008-05-29 20:54:34 +00:00
Paolo Cignoni ca47599bd5 Added weighted area sampling 2008-05-29 06:17:09 +00:00
Paolo Cignoni 8a6dbded39 Corrected wrong license information in the header 2008-05-28 23:29:23 +00:00
granzuglia 2d281abc5d fixed doxygen comments according to the new vcg's doxygen comments style (please look at doxygen-comments-style.txt in the vcgrootfolder/docs) 2008-05-28 13:28:52 +00:00
granzuglia f0373b8ebb fixed doxygen comments according to the new vcg's doxygen comments style (please look at doxygen-comments-style.txt in the vcgrootfolder/docs) 2008-05-28 13:28:09 +00:00
Paolo Cignoni 45ed8cb000 Capital f in Factorial 2008-05-28 08:59:40 +00:00
Paolo Cignoni a152d0e208 First release 2008-05-28 08:55:04 +00:00
Paolo Cignoni 0a0436a13c Removed $Log$ macro 2008-05-28 08:54:33 +00:00
Paolo Cignoni 4ee18ed103 First release 2008-05-28 08:53:30 +00:00
Paolo Cignoni 2caf6034f3 Added SQRT_TWO 2008-05-28 08:51:32 +00:00
Paolo Cignoni 89bdafdf8c Other improvements in the ImportLocal. Bug removed (ocf data was imported even if the component was not enabled) 2008-05-28 07:25:20 +00:00
Paolo Cignoni 9657491e07 First Version of the sampling class (useful for generating point set and metro oriented samplings) 2008-05-27 21:38:37 +00:00
Paolo Cignoni 5bc8b01870 Restrutctured a bit the FaceFace computing function in order to allow other function to compute the set of edges (needed in the new point_sampling.h) 2008-05-27 21:37:32 +00:00
Paolo Cignoni cd7d4b5053 Added ComputeMeshArea 2008-05-27 21:35:26 +00:00
Paolo Cignoni 6bb1ea8fcc Small syntax error in the various ImportLocal 2008-05-27 16:32:58 +00:00
Paolo Cignoni 19c4510a33 Corrected bug in the management of ocf curvature components 2008-05-26 09:52:38 +00:00
Paolo Cignoni 25dd36a704 updated to the new temporary data structure 2008-05-16 17:44:31 +00:00
Paolo Cignoni 634b5c4f63 updated to the new temporary data structure and heavily restructured in a big class with uniform naming 2008-05-16 17:44:06 +00:00
Paolo Cignoni cf7f2af2a9 missing typename 2008-05-16 10:57:41 +00:00
Paolo Cignoni 399277570b First release 2008-05-16 10:36:35 +00:00
ganovelli 42430a1318 added virtual destructor 2008-05-16 10:09:26 +00:00
ganovelli 1f929ed8f4 added Trimesh destructor to purge unremoved PerVertex[PerFace]Attribute 2008-05-16 10:07:36 +00:00
ganovelli 69a35e8912 Enable() and Disable() removed. The memory is allocated by the contructor 2008-05-16 08:48:49 +00:00
Paolo Cignoni 92b267eaa8 added VertexFromQualityRange selection 2008-05-16 04:22:52 +00:00
ganovelli bd7f2980c5 Start() Stop() removed. Allocation on creation, disallocaiton on distruction 2008-05-15 16:35:17 +00:00
ganovelli 666040bcf5 PerVertexAttribute and PerFaceAttribute added to Trimesh 2008-05-15 16:32:27 +00:00
ganovelli 3f765b9a39 Point3f->Coordtype 2008-05-14 10:03:29 +00:00
Paolo Cignoni 01f190a697 renamed vertex quality smoothing
added face normal smoothing FF (and added a VF to the previous face normal smoothing)
2008-05-08 23:50:44 +00:00
Paolo Cignoni 6dcc5e8a92 added normalizevertex 2008-05-08 23:48:00 +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 629e129152 removed useless code (two functions were repeated) 2008-05-02 11:35:45 +00:00
Paolo Cignoni 4114e0e60a Added color smoothing, scale dependent laplacian changed a SD_old into SD fujumori, improved comments. 2008-05-02 09:43:25 +00:00
Paolo Cignoni d6aeeb1f35 first draft 2008-04-30 13:23:47 +00:00
Paolo Cignoni 7f3c44851e added a missing std:: 2008-04-24 05:04:25 +00:00
Paolo Cignoni 2a69681d28 added facegrid method to build just the faces 2008-04-24 04:44:48 +00:00
Paolo Cignoni 35daaec635 VertexCurvature method added. 2008-04-23 16:37:15 +00:00
Paolo Cignoni c918066b8e Old and useless comments erased. 2008-04-23 16:34:56 +00:00
Paolo Cignoni 8972bf2ea2 added construct from and to float 2008-04-22 20:44:07 +00:00
Paolo Cignoni 6cceb94d59 normalize normals of current faces instead of using new normals 2008-04-19 05:15:44 +00:00
Paolo Cignoni 1f6ba5e9d5 added PerVertexFromCurrentFaceNormal
AreaNormalizeFace NormalizeFace
and shortened PerVertexNormalizedPerFaceNormalized
2008-04-18 17:52:08 +00:00
Paolo Cignoni aea7147a64 added facenormal smoothing 2008-04-18 17:48:29 +00:00
Paolo Cignoni 820bfdd65e fast return for compacting functions if no compacting is needed 2008-04-18 17:45:23 +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 f2e6bfa8eb added HasPerVertexTexCoord ( mesh ) 2008-04-15 10:34:07 +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
Federico Ponchio 9cb9c1dace Fixed Axis. Due to quaternion changes. 2008-04-11 12:22:32 +00:00
Paolo Cignoni 4b43ac4de8 First working Version 2008-04-11 10:14:43 +00:00
Paolo Cignoni 36361be798 Big change. removed nexte.
Now the function is NextFE.
added find border function
2008-04-11 10:13:01 +00:00
Paolo Cignoni 0caa683764 better comments, renamed I() -> E()
removed wrong coherent function
2008-04-11 10:11:32 +00:00
Paolo Cignoni fc917d5080 moved Index function from append to the allocate 2008-04-10 09:18:57 +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 c5a92fd4c0 added missing std:: 2008-04-08 09:51:15 +00:00
Paolo Cignoni a8e1f18844 Added TopoEdgeFlip class. Some refactoring. 2008-04-07 13:48:35 +00:00
Paolo Cignoni 598cb77fb6 Changed the edge split predicate, now it takes a pos instead of two pnts
Added quality interpolation
2008-04-07 12:58:48 +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
Paolo Cignoni 65933201d7 Added texture topology computation 2008-04-07 08:20:26 +00:00
Paolo Cignoni de92614c18 FaceType::VerteType --> FaceType::VertexType 2008-04-06 08:55:16 +00:00
Paolo Cignoni 8b7d16f29d added methods for computing various kind of curvatures indicator from the HK values 2008-04-04 13:13:55 +00:00
Paolo Cignoni 9799717a58 minor changes to the topology correctness checks 2008-04-04 10:27:34 +00:00
Paolo Cignoni 46096f6b64 Cleaned up names, now Kg() gives back Gaussian Curvature (k1*k2), while Kh() gives back Mean Curvature 1/2(k1+k2) 2008-04-04 10:26:12 +00:00
Paolo Cignoni 89a4321cdf added optional mark and cleaned up some nasty type bugs. 2008-04-03 23:15:40 +00:00
Paolo Cignoni 242e5ab82a compacted two pair of empty components to shorten derivation chains 2008-04-03 23:12:28 +00:00
Paolo Cignoni 0a367b89ba Increased the derivation chain lenght. God save the compiler patience! 2008-04-03 23:02:17 +00:00
Paolo Cignoni 9a31f6318d template the reorder functions on the vector types (for ocf) 2008-04-03 22:47:10 +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
ganovelli 929c3d3276 fixed bugs sign of principal direction and mean curvature value 2008-03-25 11:00:56 +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 c2bec8758d Added safer way of computing the quality histogram, robust in the case the mesh contains some outlier value (very high or very low) that makes the choice of the beginning interval wrong 2008-03-19 05:24:39 +00:00
Paolo Cignoni f9538e9f56 added missing include 2008-03-18 14:29:01 +00:00
Paolo Cignoni d014eae1bc added color interpolation to butterfly 2008-03-18 10:31:47 +00:00
ganovelli bd36c63923 added curvature and curvatruredir (compiled .net 2005 and gcc) 2008-03-17 11:39:15 +00:00
ganovelli b457b0c978 removed printf 2008-03-17 11:36:37 +00:00
ganovelli 8a265c9d32 taubin and desbrun estimates added (-> see vcg/simplex/vertexplus/component.h [component_ocf.h|component_occ.h ] 2008-03-17 11:29:59 +00:00
ganovelli 84adadf680 adding of Curvature, compilation with GCC 2008-03-17 11:25:27 +00:00
Paolo Cignoni 7c37f033e1 Added check on deleted faces in RemoveDegenerateFace 2008-03-11 14:16:40 +00:00
Paolo Cignoni 3d4222b231 Completed the garbage collecting functions CompactVertexVector and CompactFaceVector. 2008-03-11 09:22:07 +00:00
Paolo Cignoni d78ce1aee8 Minor changes. 2008-03-08 12:43:26 +00:00
Paolo Cignoni 04d00284a5 added missing include limits 2008-03-06 10:45:39 +00:00
Paolo Cignoni 378008bc5e added HasConsistentPerWedgeTexCoord 2008-03-06 08:37:16 +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 051c612aba Heavily refactored the whole structure.
Some interfaces have been changed. Be careful.
2008-03-05 11:21:49 +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 d14283e619 added maxcount 2008-02-29 12:15:06 +00:00
Paolo Cignoni 97c0bd9ffa Added FFpi methods and better init of texture coords 2008-02-28 15:41:17 +00:00
Federico Ponchio 82635287c7 Returrned to s*r*t decomposition. 2008-02-24 18:03:03 +00:00
Federico Ponchio 6b3726ef90 Removed a Transpose due to change in quaternions.h ToMatrix 2008-02-22 18:10:39 +00:00
Federico Ponchio 8cc9a085a7 Changed to reflect quaternion toMatrix inversion. 2008-02-22 17:41:48 +00:00
Federico Ponchio 84760ee1f2 Fixed determinantt problem and quaternion problem. 2008-02-22 17:40:27 +00:00
Federico Ponchio 2b19c6c313 ToMatrix returned the inverse matrix. OUCH.
This affects trackball and shot.h
Added a const also.
2008-02-22 17:39:59 +00:00
Paolo Cignoni 9703ced0df Added HasPerVertexColor static function 2008-02-21 17:27:06 +00:00
Federico Ponchio e4c62fec6d refixed bug in FromMatrix 2008-02-21 11:34:08 +00:00
Federico Ponchio a32c8842ef fixed bug in FromMatrix 2008-02-21 10:57:59 +00:00
Paolo Cignoni 652f27f40f corrected bug in FromMatrix 2008-02-21 10:30:18 +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 0b3e46c93c added Cylinder(..). the filename platonic.h is lesser and lesser significant... 2008-02-15 14:38:32 +00:00
ganovelli 9751b6fc2c changes to use vcg::vert::ImportLocal 2008-02-15 12:51:59 +00:00
Paolo Cignoni 73757c1177 added missing include matrix33 2008-02-15 08:08:59 +00:00
Paolo Cignoni b8f1e0f612 added a missing IsD() check 2008-02-07 10:24:51 +00:00
Paolo Cignoni 28c5847ec9 Other small typos 2008-02-05 20:42:43 +00:00
Paolo Cignoni a0cd1fc321 A small typo (a T:: instead of TT::) 2008-02-05 10:11:34 +00:00
ganovelli 0b53e968b8 typo in EmptyVertexRef corrected 2008-02-05 09:38:18 +00:00
ganovelli a39a42d2ca added ImportLocal which imports all local attributes into vertexplus and faceplus.
A local attribute is everything (N(), C(), Q()....) except pointers to other simplices
(i.e. FFAdj, VFAdj, VertexRef) which are set to NULL.
Added some function for const attributes
2008-02-04 21:26:49 +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 343df1c14c Important Change. Now GetBBox return a null bbox if called on a deleted face (instead of crashing) 2008-02-03 23:49:42 +00:00
Paolo Cignoni fcf54790ea added hasPerWedgeColor and HasPerWedgeNormal 2008-01-28 14:46:03 +00:00
Paolo Cignoni 57069766d4 corrected small bug in multitex coord indexing 2008-01-28 08:48:52 +00:00
Paolo Cignoni 8883301247 added assert when writing on empty data members 2008-01-28 08:42:51 +00:00
Paolo Cignoni eab6ea2400 added HasPerFaceNormal and HasPerVertexNormal 2008-01-28 08:42:07 +00:00
Paolo Cignoni 58482cfd03 added management of normals 2008-01-28 08:39:56 +00:00
Paolo Cignoni 5e52fd038c corrected small bug in RemoveDuplicateVertex 2008-01-24 11:52:05 +00:00
ganovelli b13473bdc7 missing const cVF added 2008-01-19 17:49:05 +00:00
ganovelli f7e63772a2 include added 2008-01-19 17:43:49 +00:00
ganovelli 7051654171 more appropriate function names, licence updated, comment added 2008-01-12 19:41:46 +00:00
ganovelli c919dca603 Recompiled from previous out of date version. Still to revise but working 2008-01-12 19:07:05 +00:00
Nico Pietroni 491317ecd5 *** empty log message *** 2008-01-07 10:36:00 +00:00
ganovelli 7ddf584fac useless matrix multiplication removed 2008-01-03 17:42:03 +00:00
ganovelli a7e016e1ef added RandomRotation 2008-01-03 17:40:17 +00:00