Commit Graph

2603 Commits

Author SHA1 Message Date
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
Paolo Cignoni b543ff311e fixed gcc compatibility issue 2010-07-12 13:21:12 +00:00
Paolo Cignoni 0f6cfeb1c0 removed harmless gcc warnings (unsigned vs signed int) 2010-07-01 09:21:56 +00:00
granzuglia 3d68cc75cf from iterator to const_iterator 2010-07-01 09:13:08 +00:00
granzuglia 937a004f80 changed include file 2010-07-01 08:51:06 +00:00
ganovelli f890ce75ee added HasPerVertexVFAdjacency and HasPerFaceVFAdjacency. Removed
generic HasVFAdjacency which made the logical AND of the two and updated the 
relative calls.
2010-06-24 18:48:40 +00:00
ganovelli eb3f1a97fc added HasPerVertexVFAdjacency and HasPerFaceVFAdjacency. Removed
generic HasVFAdjacency which made the logical AND of the two and updated the 
relative calls.
2010-06-24 12:35:37 +00:00
ganovelli a42f07b445 added missing include 2010-06-24 12:30:48 +00:00
Paolo Cignoni f7efa76f35 added a missing std:: to max() 2010-06-23 14:25:08 +00:00
Paolo Cignoni 04694569cf corrected un-initialized variable in RGBtoHSV 2010-06-23 14:23:32 +00:00
ganovelli ad0a3daf01 version that should work with synamic linked libraries (to be tested) 2010-06-21 15:52:18 +00:00
ganovelli 9026213628 removed unused classes for allocation of temporary data 2010-06-19 15:39:06 +00:00
Paolo Cignoni 8ca2013615 removed harmless gcc warnings 2010-06-18 14:44:21 +00:00
Paolo Cignoni 74f1f69132 a few changes to remove ambiguous variable naming and a few warnings 2010-06-18 14:40:36 +00:00
Paolo Cignoni 799914a0d8 commented unused argument of base ImportData to remove gcc warning 2010-06-18 14:32:50 +00:00
Paolo Cignoni 02e0b3409a removed a meaningless import of an uninitailzed var. 2010-06-18 14:31:58 +00:00
Paolo Cignoni 830fb74a0f Complete re-wrote of the link condition test for topology preserving edge collapse. Now it is much slower but really correct. Hopefully. 2010-06-18 11:47:04 +00:00
ganovelli a8ee1c9143 importlocal--> importdata 2010-06-18 08:01:14 +00:00
ganovelli 19755ed9b7 definition of USedTypes changed to ensure that MeshType::FaceType is the same as VertexType::FaceType (begin Vertex and Face any type among Vertex,Face,Edge,HEdge).
Compiles with gcc 4.4, .net 2005
2010-06-18 07:53:21 +00:00
ganovelli f3b67673fc new Append<> beta version 2010-06-16 17:28:18 +00:00
ganovelli 7c35161210 ImportLocal to ImportData. Adjacencies are no more handle by ImportData, but
by speficic functions in append.h (ImportPerxxxAdj(..))
2010-06-16 16:31:17 +00:00
ganovelli 4750b7c666 rewritten including handling of all adjacencies.
Still incomplete treatment of non uptade but existing adjacencies...
2010-06-16 16:30:24 +00:00
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
ganovelli d0bdf4665f ImportLocal to ImportData. Adjacencies are no more handle by ImportData, but
by speficic functions in append.h (ImportPerxxxAdj(..))
2010-06-16 16:25:02 +00:00
ganovelli 585f0462e8 ImportLocal to ImportData. Adjacencies are no more handle by ImportData, but
by speficic functions in append.h (ImportPerxxxAdj(..))
2010-06-16 16:24:26 +00:00
ganovelli e8d3020714 added typename to PointerToAttribute to dynamically check the GetPer[]Attribute 2010-06-16 15:18:39 +00:00
ganovelli 0a64a31e6e added typechecking and function to return the list of attributes of a given type 2010-06-16 15:17:42 +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 beb996e9c9 Renamed a symbol that caused ambiguity (VertexInfo -> vertexClipInfo) added functor and function for box clipping 2010-06-16 13:23:07 +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 044412a099 Added initialization of tex index in the constructor of texcoord 2010-06-16 10:27:38 +00:00
Paolo Cignoni 12d257c3ab Debugged:
method Point2::SquaredDistance() invoked Norm2 method, which does not exist. Invocation replaced with (*this-p).SquaredNorm()
2010-05-31 12:13:47 +00:00
Nico Pietroni cf60111b79 changed call to InterpolationParameters... 2010-05-31 10:12:31 +00:00
Nico Pietroni 066bc0b7cf changed calls to the new InterpolationParameters function 2010-05-25 14:54:50 +00:00
Paolo Cignoni 157ba4ccfb added class prototype for segment (needed for box intersection) 2010-05-24 08:25:26 +00:00
Marco Di Benedetto 0fc8a49a51 2010-05-22 19:47:43 +00:00
Gianpaolo Palma 13f0066cfa Fixed bug in the rasterization function to generate correct samples outside triangles which have a texture space border edge. 2010-05-21 16:43:58 +00:00
Nico Pietroni 44618a036a Added ClosestPoint2Box2 function 2010-05-20 13:58:08 +00:00
ganovelli 4b45045c18 added inlusion of alltypes.h 2010-05-19 17:18:19 +00:00
ganovelli de851eb29e inclusion of alltypes.h 2010-05-19 17:16:58 +00:00
ganovelli f12433c258 uncommented fourth template parameter in declaration of trimesh 2010-05-19 17:06:18 +00:00
ganovelli 6b807efa9c separated alltypes from usedtypes. The dummy types for simplex where char, now are derived by
their proper type (eg. the dummy type for Vertex is a simple derivation of vcg::Vertex)
2010-05-19 17:05:29 +00:00
Nico Pietroni 3ab37342c6 corrected 1 bug in CountEdges function 2010-05-19 15:09:59 +00:00
Paolo Cignoni 7473b2177a Added ComputePerFaceQualityHistogram (provided by Andrea Tagliasacchi) 2010-05-05 12:30:58 +00:00
Paolo Cignoni b6d2c330f2 added a wrapper for the getkclosest that does not need the edgeplane additional data structure
and corrected a bug in the function that shot a bunch ofrays
2010-05-04 08:19:51 +00:00
Paolo Cignoni c41e4d2e04 IMPORTANT CHANGE;
the rarely used frompolar and topolar returns angles in RADIANTS
changed the function names to clarify, avoid stupid bugs, and to adequate to the standard
2010-05-04 08:07:18 +00:00
Paolo Cignoni b2d20dd837 Removed printf and added the standard callback approach 2010-04-30 09:55:34 +00:00
Paolo Cignoni c7f479c580 Cleaned up a bit the generic updateheap function of the generic tri_edge_collapse that was incorrect in case of generic non symmetric collapses 2010-04-30 09:54:00 +00:00
Paolo Cignoni cc92e014cc added RemoveFaceFoldByFlip that Search and remove by flipping small single triangle folds:
- a face has normal opposite to all other faces
 - choose the edge that brings to the face f1 containing the vertex opposite to that edge.
2010-04-30 09:43:42 +00:00
Paolo Cignoni 77a846fe90 added a wrapper to the robust InterpolationParameters that uses a normal to choose the interpolation orientation 2010-04-30 09:42:10 +00:00
mtarini ddcd4c0bf9 Fixed catmull clark subdivision schema. 2010-04-29 15:07:41 +00:00
Paolo Cignoni 05151acef5 added ComputePerFaceQualityDistribution 2010-04-29 14:54:07 +00:00
granzuglia 43592cc07e updated code in order to improve compatibility with g++ compiler. 2010-04-29 10:39:07 +00:00
granzuglia 904f0d9d3a updated callback function for ball pivoting. 2010-04-29 09:33:05 +00:00
granzuglia bc14f81543 patched many bugs in advancing front basic algorithm.
updated ball pivoting to new interface.
2010-04-29 09:19:49 +00:00
Paolo Cignoni 75bada1828 added class HalfEdgeTopology 2010-04-29 07:02:37 +00:00
Paolo Cignoni ad1a95fb7c added a new class Pos based on halfedge 2010-04-29 07:00:46 +00:00
Nico Pietroni aeff903128 added normal vector return on the RaySpherical function 2010-04-28 13:11:26 +00:00
Paolo Cignoni e271f9adb8 added missing function HasEHAdjacency 2010-04-26 15:11:52 +00:00
Paolo Cignoni 4a4039f138 fixed wrong pointer type in EHAdj class 2010-04-26 15:02:04 +00:00
Paolo Cignoni 7bd30d3ca0 fixed wrong pointer type in FHAdj class 2010-04-26 14:54:44 +00:00
Paolo Cignoni df4edbee23 corrected some bugs in halfedge allocation 2010-04-26 14:49:42 +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 01a0a4b93c Added HEadj class to store adjacency between halfehdges and edges 2010-04-26 14:08:33 +00:00
Federico Ponchio 8331ee9981 added IsIn for sphere 2010-04-22 19:05:24 +00:00
Paolo Cignoni cb73c0bb80 added a missing vcg::math:: namespace qualifier 2010-04-21 21:09:57 +00:00