Commit Graph

182 Commits

Author SHA1 Message Date
ganovelli e92adc2095 ImportLocal to ImportData. Adjacencies are no more handle by ImportData, but
by speficic functions in append.h (ImportPerxxxAdj(..))
2010-06-16 16:29:07 +00:00
Paolo Cignoni 2bbf1c86ef Added first version of vertex quality saturation function (to be thorougly tested) 2010-06-16 13:23:59 +00:00
Paolo Cignoni 79783ac1bb Moved the removal of faces with edges outside a given range to a selection function into UpdateSelection<>:: 2010-06-16 11:40:14 +00:00
Paolo Cignoni 75bada1828 added class HalfEdgeTopology 2010-04-29 07:02:37 +00:00
Paolo Cignoni 5c9ee5cdff added allocation and conversion of edges in function FromIndexed
added new tests in function CheckConsistency
2010-04-26 14:33:55 +00:00
Paolo Cignoni 8c0d44a430 Refactored and uniformed the naming of functions for testing manifoldness. Now they are named CountNonManifoldEdgeFF and CountNonManifoldVertexFF and eventually they can select the non manifold components 2010-04-20 00:45:12 +00:00
Paolo Cignoni 84a6e15c84 added missing std:: qualifier 2010-04-20 00:34:21 +00:00
Paolo Cignoni 9f7776f96f added selection to FaceQualityRamp colorization 2010-04-14 10:42:19 +00:00
Paolo Cignoni b2e4c6cf80 corrected an ugly bug in the testfaceface
(note that it still assert for non 2manif meshes...)
2010-03-26 22:53:31 +00:00
ganovelli a96c0e79aa [introduction of half edges as alternative representation]
No modification should be necessary for the existing code.

most relevant changes:

creation of folder:
vcg/connectors  
vcg/connectors/hedge.h
vcg/connectors/hedge_component.h

addition to the container of half edges to the trimesh:
HEdgeContainer hedge; // container
int hn;               // number of half edges

addition of 
vcg/trimesh/update/halfedge_indexed.h
which contains:
- the functions to compute the half edge representation from the indexed  and vivecersa
- the functions to add or remove an half edge
2010-03-25 16:50:45 +00:00
Paolo Cignoni b4857331f6 added FaceFauxCrease and other small helper for managing faux edges 2010-03-23 07:23:32 +00:00
Paolo Cignoni 3b770c935a added updateQuality Vertex Clamp 2010-03-18 14:20:29 +00:00
Paolo Cignoni 63e21f15cb Disambiguated the origin of the ScalarType and CoordType in the simplex class. Now it derives from the type specified by the vertexRef component for the faces and from the Coord component for the vertexes. To be sure the ScalarType and CoordTypes are initialized to weird point3<bool> and char just to detect easisly when the wrong types shallow... 2010-03-18 10:02:32 +00:00
Paolo Cignoni d340b8b92a removed harmless gcc warnings 2010-03-02 23:17:15 +00:00
Paolo Cignoni 137c239375 removed harmless gcc warnings 2010-01-03 01:31:26 +00:00
Paolo Cignoni fbbf8fe436 Removed gcc4.4 warnings 2009-12-08 15:57:19 +00:00
Paolo Cignoni d60fa01037 cleaning up include files 2009-12-07 08:23:02 +00:00
Paolo Cignoni 86d534ec95 added a missing std:: 2009-12-01 08:34:16 +00:00
Paolo Cignoni 3482ee805e added a few missing std:: and cleaned up a bit the requirements 2009-11-05 10:19:42 +00:00
Paolo Cignoni ad4ad4026c added computation of the per-vertex directions and values of curvature using a quadric fitting method 2009-11-05 09:55:43 +00:00
Nico Pietroni 810c3df9a4 Changed TestVertexFace function in order to test if the each face is effectively added to the VF list of a vertex. 2009-10-14 13:54:39 +00:00
Paolo Cignoni ca16dcdf52 added management of faux edges in functions that retrieve the set of edges 2009-10-02 14:13:04 +00:00
granzuglia bb97c3a1ec changes in order to compile with gcc 3.x 2009-07-15 16:27:29 +00:00
mtarini 077e720428 Added PerBitQuadFaceNormalized 2009-07-07 15:22:28 +00:00
Paolo Cignoni 168ea81ca8 Added PerlinColor function and ColorNoise function 2009-06-16 08:57:24 +00:00
Paolo Cignoni 69004410e3 Corrected a wrong function to clear border face flag (and added BORDER012 to the enums of the flags) 2009-06-04 08:15:59 +00:00
Paolo Cignoni 37057700b2 Changed the brightness and contrast color processing algorithm to match exactly the GIMP algorithm. 2009-05-25 09:02:32 +00:00
Paolo Cignoni 291c2790af Removed harmless warnings 2009-05-22 07:54:42 +00:00
Paolo Cignoni 312532aab3 added missing test on deleted faces 2009-04-21 15:42:18 +00:00
mtarini 52de726be4 minor (commento) 2009-04-20 22:50:43 +00:00
Paolo Cignoni 47dc2ecd6c Added two different methods for computing vertex normals from facet normals, weighted and weighted by angle 2009-04-10 14:21:00 +00:00
ganovelli b7dd6f79aa added include to flag.h 2009-04-01 13:05:35 +00:00
Paolo Cignoni a16baded52 Added FaceConnectedFF; the function expands current selection to cover the whole connected component. 2009-04-01 04:30:35 +00:00
ganovelli f1ef838535 corrected bug in MeanAndGaussian, computation for the obtuse case (thanks Bo Jang) 2009-01-20 10:26:05 +00:00
Paolo Cignoni 0a287f7bce added missing function for setting flags on faces 2009-01-15 15:59:51 +00:00
Paolo Cignoni 1f992d7929 Added helper function to returning a list of all the unique edges of a mesh 2009-01-14 15:54:50 +00:00
Paolo Cignoni 9dc34faae4 added missing face flags clear/setting members 2009-01-14 01:16:11 +00:00
ganovelli 39ffa7cd3d [SIMPLEXplus promotion]
This modification removes the old way to define simplexes (already deprecated and unsupported).
In the following SIMPLEX = [vertex|edge|face|tetrahedron]

All the stuff that was in vcg/simplex/SIMPLEXplus/ has now been promoted to vcg/simplex/

Details:
- the folder vcg/simplex/SIMPLEX/with has been removed
- the file vcg/simplex/SIMPLEX/base.h has been renamed into  vcg/simplex/SIMPLEX/base_old.h 
- the content of vcg/simplex/SIMPLEXplus/ has been moved into vcg/simplex/SIMPLEX/
- the folder vcg/simplex/SIMPLEXplus/ has been removed

Actions the update the  code using vcglib:
replace <vcg/simplex/SIMPLEXplus/*> with  <vcg/simplex/SIMPLEX/*> in every include
for MESHLAB users: already done along with this commit
2008-12-19 10:39:32 +00:00
ganovelli d3682195ca replaced a "3" with a f->VN() 2008-12-18 17:53:42 +00:00
Paolo Cignoni c2c940338e added a missing PerFaceFromCurrentVertexNormal mode 2008-12-18 00:27:47 +00:00
Paolo Cignoni 8ef495be20 added test to skip degenerate triangles in curvature computation 2008-12-12 15:08:36 +00:00
Paolo Cignoni 2143a5138a corrected bug in PerVertexFromCurrentFaceNormal (wrong use of Construct() ) 2008-12-09 07:51:33 +00:00
Paolo Cignoni f6388be600 added VertexSet, the dual of UpdateFlags::VertexClear(bitmask); 2008-12-05 22:44:03 +00:00
ganovelli 274e20b3df changed m.HasFFTopology to HasFFTopology(m) 2008-11-12 16:06:59 +00:00
Paolo Cignoni e587581275 add transposeInPlace and duplicate V(int) 2008-10-29 11:17:11 +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 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
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 4783ac9a62 added an assertion 2008-10-24 10:26:28 +00:00
Paolo Cignoni 9b0875d19e added a missing std:: 2008-10-14 14:28:33 +00:00