Commit Graph

2668 Commits

Author SHA1 Message Date
Paolo Cignoni affd9ee469 Corrected bug. Assert called when a no internal vertex was present. 2011-04-08 09:26:57 +00:00
Paolo Cignoni 5233b20f12 Added a function Flip a mesh so that its normals are orented outside.
Just for safety it uses a voting scheme.
It assumes that
* mesh has already has coherent normals.
* mesh is watertight and single component.
2011-04-07 22:28:28 +00:00
Paolo Cignoni f8eb8a41dd Cleaned up a bit triangle3. Removed some weird interpolation wrappers (that ended to be misused) and updated the rest of the lib to comply with this changes 2011-04-05 21:53:12 +00:00
Paolo Cignoni 57cfc71a34 heavily restructured. Still need a lot of work. Name changed. Some stuff using it could not work anymore... 2011-04-05 08:57:23 +00:00
Paolo Cignoni 214904b312 Ongoing corrections of include paths to comply the new folder arrangement 2011-04-03 22:50:59 +00:00
ganovelli 25b5f39dad Ongoing Rearrangement of filepath
delete old trimesh content
2011-04-01 17:18:15 +00:00
ganovelli 6c0c32ecfe Ongoing Rearrangement of filepath
delete old trimesh content
2011-04-01 17:17:42 +00:00
ganovelli 3c7efa7bff Ongoing Rearrangement of filepath
delete old trimesh content
2011-04-01 17:17:15 +00:00
ganovelli f4a5512500 Ongoing Rearrangement of filepath
delete old trimesh content
2011-04-01 17:16:29 +00:00
ganovelli 2506364fc4 Ongoing Rearrangement of filpath 2011-04-01 17:15:34 +00:00
ganovelli 1fc83af05c Ongoing Rearrangement of filepath
replaced the path to comply the filepaths modification.
The replacements are as follows:

/complex/trimesh/base.h --> /complex/complex.h
/complex/trimesh/allocate.h --> /complex/allocate.h
/complex/trimesh/append.h --> /complex/append.h
/complex/trimesh/ --> /complex/algorithms/
/complex/local_optimization/ ---> /complex/algorithms/local_optimization/
/complex/local_optimization.h ---> /complex/algorithms/local_optimization.h
/complex/intersection.h ---> /complex/algorithms/intersection.h
/complex/boundary.h ---> /complex/algorithms/boundary.h
2011-04-01 17:06:52 +00:00
ganovelli 9ff0ad3f1e Ongoing Rearrangement of filepath
replaced the path to comply the filepaths modification.
The replacements are as follows:

/complex/trimesh/base.h --> /complex/complex.h
/complex/trimesh/allocate.h --> /complex/allocate.h
/complex/trimesh/append.h --> /complex/append.h
/complex/trimesh/ --> /complex/algorithms/
/complex/local_optimization/ ---> /complex/algorithms/local_optimization/
/complex/local_optimization.h ---> /complex/algorithms/local_optimization.h
/complex/intersection.h ---> /complex/algorithms/intersection.h
/complex/boundary.h ---> /complex/algorithms/boundary.h
2011-04-01 17:06:03 +00:00
ganovelli fea1228701 adding complex.h 2011-04-01 17:00:18 +00:00
ganovelli 0cc7ff76b9 Ongoing Rearrangement of filpath
deleting base.h
2011-04-01 16:59:40 +00:00
ganovelli 882896dd8d Ongoing Rearrangement of filpath
renaming of complex/base.h to complex/complex.h
2011-04-01 16:45:05 +00:00
ganovelli 1ad23912db 2011-04-01 16:25:49 +00:00
ganovelli 3262c530c8 Ongoing Rearrangement of filpath
ACTION 3
2011-04-01 16:22:18 +00:00
ganovelli 562ddb5397 Ongoing Rearrangement of filpath
ACTION 2
2011-04-01 16:20:53 +00:00
ganovelli 830a3402c2 Ongoing Rearrangement of filpath
ACTION 1
2011-04-01 16:19:48 +00:00
Nico Pietroni ed6221e993 Added TriangleTriangleIntersect2D function 2011-04-01 16:13:34 +00:00
Paolo Cignoni cf619d282b Corrected various c++ errors. 2011-04-01 06:26:31 +00:00
ganovelli d84b39382a correction to NameBound mechanism to compile with gcc. 2011-03-31 16:19:34 +00:00
granzuglia d09c937697 added missing included file 2011-03-25 11:04:01 +00:00
Gianpaolo Palma 7816e73d74 Changed "int lenght" to "ScalarType lenght" in ClosestPoint function. 2011-03-22 18:17:52 +00:00
Paolo Cignoni 605b0fdefc Added functions for removing in a smarter way non manifoldness :
SplitNonManifoldVertex
RemoveNonManifoldFace
2011-03-22 11:57:33 +00:00
Paolo Cignoni 2d218e768a commented some code 2011-03-22 11:53:48 +00:00
Paolo Cignoni 90ee3c4a71 added NumberOfFacesOnEdge function on a pos 2011-03-22 11:52:19 +00:00
Gianpaolo Palma e3d8489f0f Bug fixed in the ClosestPoint2Box2 function 2011-03-21 17:03:34 +00:00
Gianpaolo Palma e90c417d2b Minor changes in ClosestPoint function 2011-03-21 17:02:02 +00:00
Paolo Cignoni daa0030db1 Changed MeshType::HasFFTopology() -> HasFFAdjacency (m ) 2011-03-21 14:47:01 +00:00
Paolo Cignoni 6807df8ea1 added SelectionStack utility class. 2011-03-21 14:45:38 +00:00
Paolo Cignoni e66769545e added cutoff distance to geodesic computations 2011-03-14 15:23:37 +00:00
Paolo Cignoni 4447fab921 Added FaceRandomConnectedComponent to colorize faces according connected components 2011-03-14 09:34:22 +00:00
Paolo Cignoni 127caef1a6 removed a harmless gcc warning 2011-03-11 10:28:21 +00:00
Paolo Cignoni 6a876e1fc9 removed warnings due to deprecated hash map usage 2011-02-17 16:40:56 +00:00
Paolo Cignoni 4c1a6502b2 harmless gcc warnings (ambiguous boolean expressions) 2011-02-17 16:39:38 +00:00
Paolo Cignoni 463c31e27a removed harmless and useless const in return values 2011-02-17 16:25:55 +00:00
Paolo Cignoni 7eaece45af harmless gcc warnings 2011-02-17 11:41:21 +00:00
Paolo Cignoni 8fd11ae657 harmless gcc warnings 2011-02-17 11:40:22 +00:00
Paolo Cignoni ec825ed246 harmless gcc warnings 2011-02-17 11:39:57 +00:00
Paolo Cignoni 2e6bc99646 harmless gcc warnings 2011-02-17 11:39:21 +00:00
Paolo Cignoni 88107edef1 Added Shot::GetViewDir() method 2011-02-17 09:58:16 +00:00
Paolo Cignoni 4a26c71e63 added a safety check for the feature point to be in the cell (could jump outside for numerical errors...) 2011-02-14 10:53:33 +00:00
Paolo Cignoni 59e89dfc73 Fixed parameter order on method compute_fitmap;
Added parameter to set number of smoothing iterations;
2011-02-10 16:02:47 +00:00
Paolo Cignoni 326fa280ce added missing include 2011-02-10 09:51:43 +00:00
Marco Callieri 6395138b1f added function for laplacian smoothing of normals on unstructured point clouds 2011-02-09 14:42:30 +00:00
Paolo Cignoni 4107c587d0 Modified check for diagonal collapses 2011-02-04 17:14:47 +00:00
Paolo Cignoni c68b61391f Added a missing include 2011-02-04 09:31:47 +00:00
Paolo Cignoni 9ddbd14616 Fixed wrong function calls 2011-02-01 12:59:57 +00:00
Paolo Cignoni 6583f81c3f Removed wrong file inclusion 2011-02-01 12:58:02 +00:00
Paolo Cignoni 99950cc5f4 Modified computation of EH and HE relations in method FromIndexed;
Removed assertions and added checks about EH and HE relations;
2011-02-01 10:55:06 +00:00
Paolo Cignoni e49dfa63bb Corrected bug about mesh attributes 2011-01-31 16:59:46 +00:00
Paolo Cignoni a3fab7ebf2 Removed wrong assertions 2011-01-31 16:58:27 +00:00
Paolo Cignoni 7037098822 Added to BitQuad Support a Generic quad triangulation function and used in OFF importer.
It takes in input 4 vertex pointrs and rotate them so that a simple fan triangulation is Ok.
  It uses geometric criteria for avoiding bad shaped triangles, and folds
  and it use an internal set of already created diagonal to avoid the creation of non manifold situations.
2011-01-27 15:49:21 +00:00
Paolo Cignoni fb836dcf17 Added classes for quad meshes simplification 2011-01-27 15:41:05 +00:00
Paolo Cignoni 183f106f23 Added class HalfedgeQuadClean 2011-01-27 15:39:39 +00:00
Paolo Cignoni 2984bda3c8 Added suffix "_quad" to all methods only for quads 2011-01-27 14:22:48 +00:00
Paolo Cignoni feafb246da Removed class Garbage 2011-01-27 12:19:40 +00:00
Paolo Cignoni 3777d7925d Edge pointers substituted with hedge pointers;
Made EH and HE adjs optional;
Re-written method to check if a diagonal is collapsible;
2011-01-27 12:03:44 +00:00
Paolo Cignoni 7e611ef038 Removed and assert in the quality computation (if one side is zero for numerical rounding it should return zero as quality) 2011-01-27 10:49:23 +00:00
Paolo Cignoni 94235fc548 commented useless parameter to avoid warning 2010-12-21 15:06:09 +00:00
Paolo Cignoni 6ca76c16b1 added useful he functions 2010-12-15 22:38:36 +00:00
Nico Pietroni b89a689a15 triangle3 InterpolationParameters calls now calls InterpolationParameters2 which correctly refers to the unique implementation of triangle2d evaluation of barycentric coordinates in triangle2.h 2010-12-13 00:01:13 +00:00
Nico Pietroni 542bfc8a91 corrected InterpolationParameters funtion in order to evaluate correctly barycentric coordinates even for points wich falls outside the triangle. 2010-12-12 23:59:55 +00:00
Nico Pietroni 387c62414a added constructor with Min and Max 2010-12-12 23:57:39 +00:00
Luigi Malomo 9d1e54a140 fixed bug to prevent deleted faces rasterization 2010-12-05 18:22:45 +00:00
Federico Ponchio ef57d3e7e5 interpolate -> Interpolate. 2010-11-15 00:16:40 +00:00
ganovelli d505581af9 bug fixing in vector_ocf::reserve for the case of empty vector 2010-11-11 09:33:35 +00:00
Paolo Cignoni 5a21c7cd76 Removed the ReorderVert function used for permutating the accessory attributes of OCF components. IT should not be used. 2010-11-09 08:27:44 +00:00
Paolo Cignoni 8446d9f566 added method to know if a spatial indexing structure is empty or not 2010-11-09 08:15:14 +00:00
Paolo Cignoni 070c47b0a5 added method to know if a spatial ubdexing structure is empty or not 2010-11-09 08:12:58 +00:00
ganovelli 3bd7cbe5ea added cQ() to QualityOcf 2010-11-06 16:38:15 +00:00
Nico Pietroni c818969366 added method P to return bounding box points as in Box3 2010-11-05 16:18:51 +00:00
Paolo Cignoni 343493ef11 Moved the ORTHO, PERSPECTIVE enums from the vcg namespace to the camera class namespace. 2010-10-31 13:19:09 +00:00
Paolo Cignoni 80a8c29144 Added function to normalize face/vertex quality value into a given range (usually 0..1) 2010-10-31 13:03:36 +00:00
Nico Pietroni 969f556691 added if(vp<oldBase || vp>oldEnd) return; test in PointerUpdater::Update function, so that entities that doesn't need to be updated has no problems 2010-10-27 17:46:46 +00:00
ganovelli 766b1b3f89 CompactFaceVector and CompactVertexVector now may return a PointerUpdater 2010-10-22 16:01:58 +00:00
Paolo Cignoni a9db0be12d shotf and shotd are TYPEDEF not SUBCLASS !!! 2010-10-21 13:41:29 +00:00
Paolo Cignoni 696afea0a9 removed harmless warnings 2010-10-20 08:57:59 +00:00
Paolo Cignoni 999e110d01 renamed EPSILON into loc_EPSILON to avoid collsions with some defines. 2010-10-15 21:46:16 +00:00
Paolo Cignoni 9939b0c51b Harmless warning: commented unused parameter 2010-10-15 21:18:01 +00:00
Paolo Cignoni 98d61f03a2 removed an extra typename detected by gcc... 2010-10-15 21:15:39 +00:00
Nico Pietroni e74d22e0e5 corrected the call to new IntersectionSegmentTriangle function (after a bug fixing in the function) 2010-10-15 15:23:37 +00:00
Nico Pietroni f1a446558f - removed virtual to ComputerPriority Function
- getPos and GetMark become const
2010-10-15 15:20:37 +00:00
Nico Pietroni 7332494ee2 line 331 called the correct distance function between segment-point in distance3.h 2010-10-15 15:19:12 +00:00
Nico Pietroni 6d34aec94b TrianglePointDistance moved to distance.h 2010-10-15 15:17:57 +00:00
Nico Pietroni e690807441 Distance functions moved to distance3.h 2010-10-15 15:17:15 +00:00
Nico Pietroni 793cf46180 - SquaredDistance moved to distance3.h
- Lenght and SquaredLength changed to const functions
2010-10-15 15:16:32 +00:00
Nico Pietroni 6ad59d0756 corrected IntersectionSegmentTriangle calls, the value dist was not updated coherently 2010-10-15 15:15:27 +00:00
Nico Pietroni efadeb21f1 DistancePoint3Box3 calls moved and renamed in distance3.h 2010-10-15 15:14:06 +00:00
Nico Pietroni 6134c11fbd first release version of the collection of minimum distance functions between geometric entities in 3D 2010-10-15 15:13:22 +00:00
ganovelli 123a51b774 replaced ImportLocal with ImportData (it was left behind) 2010-10-15 09:25:52 +00:00
ganovelli d10a9822d3 replaced ImportLocal with ImportData (it was left behind) 2010-10-15 09:25:27 +00:00
ganovelli 3bcc518722 replaced ImportLocal with ImportData (it was left behind) 2010-10-15 09:24:51 +00:00
Paolo Cignoni 628f22f3c9 removed one useless parameter from the FastFit function of the paso-doble smoothing function. 2010-10-15 09:23:09 +00:00
Paolo Cignoni 445dad8458 removed harmless warnings 2010-10-15 09:15:11 +00:00
Paolo Cignoni 2bdd323387 removed harmless warnings 2010-10-15 09:14:35 +00:00
Paolo Cignoni 2e9d5c0936 removed some old surviving math:Max and changed to std::max 2010-10-15 09:13:58 +00:00
Paolo Cignoni ac9f0d1452 removed a couple of CMeshO types that surfaced when moving stuff from meshlab to vcg 2010-10-15 09:12:54 +00:00
ganovelli da757efdd3 bug fixed (final): CompactFaceVector resized the attributes per face
to the number of "vertices" of the mesh
2010-10-08 16:51:45 +00:00
ganovelli 354b225e92 bug fixed: CompactFaceVector resized the attributes per face
to the number of "vertices" of the mesh
2010-10-08 15:58:32 +00:00
granzuglia de3371806e added #include<algorithm> 2010-10-08 12:08:24 +00:00
granzuglia b3d63c7c64 moved InterpolationParameters function after the Normal function definition 2010-10-06 12:58:09 +00:00
granzuglia e2b56e9023 removed int32_t 2010-10-06 09:17:29 +00:00
granzuglia a003c5ce73 added progress bar support to PrincipalDirectionsPCA 2010-10-04 08:47:33 +00:00
Paolo Cignoni 9df46522b2 a comment 2010-10-01 21:37:55 +00:00
Paolo Cignoni c77aeae697 Cleaned up a bit the Final flipping stage of EMC. Now it is a bit more robust. 2010-10-01 21:36:49 +00:00
Paolo Cignoni f83dc8b993 rewrote checkflip edge. 2010-10-01 20:27:30 +00:00
Nico Pietroni 8370978230 Added a new call of InterpolationParameters with infers the Normal by the Triangle itself 2010-10-01 13:47:16 +00:00
Paolo Cignoni d4786a1702 added maxElem minElem functions that returns values of the added elements and that can be outside the minmax range of the histogram 2010-10-01 08:59:25 +00:00
Paolo Cignoni 92bbd33394 Added function to compute the barycenter of the thin shell surface model. E.g. the barycenter of the mesh as if all the mass was concentrated over the surface of the mesh. Useful for computing barycenter of planar figures. 2010-09-30 23:30:22 +00:00
ganovelli 087e28ddc4 handled offsset for wedgetexcoord (to redo better) 2010-09-27 14:40:24 +00:00
Paolo Cignoni 30f6267da1 Corrected the unneeded resetting of un referenced normals when computing per vertex normals starting from faces. 2010-09-24 11:21:15 +00:00
ganovelli 09c8ff302a added ClusterVertex (like MergeCloseVertex but without removing the copies) 2010-09-23 16:47:25 +00:00
Paolo Cignoni af5e0eb46b small changes to the histogram interface to allow the use of weighted histograms 2010-09-21 22:33:37 +00:00
Paolo Cignoni 349e9869cf Updated many vcg files to do not use anymore the vcg::Max(a,b) and vcg::Min(a,b). Use the std version instead. 2010-09-21 22:09:13 +00:00
Paolo Cignoni 47138fce2f WARNING: important change. Removed the useless vcg::math::Max(a,b) that mimicked the std::max, and changed into a three argument Max(a,b,c) (quite useful in a lot of context and missing in std::. 2010-09-21 22:00:39 +00:00
Paolo Cignoni 7977e270c5 added the possibility of customizing the histogram bucket size 2010-09-13 09:47:23 +00:00
Paolo Cignoni d263446d0e small changed needed for allowing derivation of extended classes 2010-09-13 09:42:25 +00:00
Paolo Cignoni 56fe9a828b BUG! In IntersectionRayMesh the IntersectionLineTriangle had a parameter swapped...
Thanks to Bo Jiang & Meng Luan for the kind bug submission
2010-09-13 09:35:24 +00:00
Paolo Cignoni dbf4fa7311 removed harmless warning 2010-09-13 09:33:30 +00:00
Paolo Cignoni 2bfd589613 disambiguated a pow call 2010-09-07 22:14:20 +00:00
Paolo Cignoni f7e2f7d539 removed harmless warning 2010-09-07 10:31:04 +00:00
Paolo Cignoni 271ac17c95 Added a missing UpdateSelection :: FaceFromQualityRange 2010-09-07 10:28:45 +00:00
Paolo Cignoni 4a84e2035e added function to compute montecarlo distribution with an approximate number of samples exploiting the poisson distribution 2010-09-06 22:11:11 +00:00
Paolo Cignoni 275b0e55d9 corrected small bug in the make_even_by split procedure for making meshes always with an even number of faces (useful prerequisite for tri-to-quad conversion) 2010-09-06 22:09:18 +00:00
ganovelli d0d2efa454 removed the use of RTTI for checking the name of the attribute TYPE
in the Get*Attribute. Now the check is only on the size of the type.
2010-09-03 22:17:14 +00:00
Paolo Cignoni f55d7a0048 removed a small bug in the link condition 2010-09-02 22:23:10 +00:00
Paolo Cignoni 7627f2e9f4 added a few missing include 2010-09-02 21:40:30 +00:00
Paolo Cignoni 149ae8ec5b Significant improvment in correctness and robustness of Loop subdivision surfaces (BIG thanks to Simon Boye' for submitting the patches) 2010-09-02 06:21:07 +00:00
ganovelli 101e46bc6b bug corrected. attribute member "_padding" was not initialized in Add*Attribute 2010-09-01 17:16:43 +00:00
Paolo Cignoni 885bf05702 Added methods to get the 1-ring;
Added comments;
Removed useless methods;
2010-09-01 15:10:30 +00:00
ganovelli 396e54b566 new mod to support partial selection (possibly to revise):
NOTE on how to use Append::MEsh with selected elements:

If we want to append only the  selected faces of the mesh and call the Append::Mesh
with selected parameter = true, we must ensure that also the cofaces of inferior
order are selected (vertices and edges). 
Otherwise what happen is that the vertices are NOT appended and then the appended
(selected) faces cannot be built.
On the other ahnd Append::Mesh will NOT change the selected flag of the input mesh, it must be done
before calling it. (check  tri::UpdateSelection<CMeshO>::VertexFromFaceLoose(currentMesh->cm); ) 

The same problem for the adjacencies with higher order simplexes. In this cases they are simply not updated . For example, if only a few vertices are selected, and they have, say, VFAdj, it is ignored.
2010-08-11 15:54:37 +00:00
ganovelli b9765da147 missing condition on D flag added. It caused deleted elements to be added and
counter to increment, with consequent failure of vn=mesh.vert.size()- #{deleted}
2010-08-11 14:43:16 +00:00
ganovelli 2d35671e51 replaced SetS with SetV and IsS with IsV. 2010-08-09 19:59:30 +00:00
Paolo Cignoni 0f7ec1f8d2 added fitmaps 2010-08-05 14:24:09 +00:00
Paolo Cignoni 9093cce622 removed harmless gcc warnings 2010-08-05 14:20:43 +00:00
Paolo Cignoni 10106736c2 added operation types for quads 2010-08-05 13:18:33 +00:00
ganovelli b25f303ce3 replaced "if" on a condition that has to be always true with assertions 2010-07-27 14:20:12 +00:00
mtarini 4dcb3be0b3 minor: removed superfluous "typename" 2010-07-25 13:31:57 +00:00
mtarini 2cc56a6651 Cleaned up! Translated several comments, removed old history, Added GlobalToLocal and LocalToGlobal and MakeSquare, cleaned up types, etc. 2010-07-24 15:29:20 +00:00
Paolo Cignoni 1140ca5a32 Added multiscale curvature computation (UpdateCurvatureLocal) 2010-07-23 15:48:45 +00:00
Paolo Cignoni c3d20c9b87 added a smoothing algorithm for quad meshes with half-edge topology 2010-07-23 14:11:36 +00:00
Paolo Cignoni e081be0c6f Never write a 'using namespace" inside a .h file. Removed 2010-07-23 06:09:52 +00:00
Paolo Cignoni 59442fff3f optimized halfedge operations 2010-07-22 13:14:55 +00:00
Paolo Cignoni 1d8a4c8e64 added nring class that efficiently extracts the n-ring of a vertex 2010-07-22 12:32:31 +00:00
matteodelle 3064a869cc Michele Sottile: added GetFovFromFocal 2010-07-21 15:54:31 +00:00
Federico Ponchio 1017656a61 returned closest point was wrong. 2010-07-15 19:37:59 +00:00
Paolo Cignoni 8451875482 slight change in the PointDistance. Now it checks with an assert in the ifthenelse chain that it chooses the best projection direction and removed a warning. 2010-07-14 08:09:28 +00:00
Paolo Cignoni 882d039da6 removed mostly harmless gcc warnings (unused/uninitialized vars) 2010-07-14 08:00:16 +00:00