Commit Graph

3652 Commits

Author SHA1 Message Date
Paolo Cignoni 89635131a7 added in the comment a biblio ref to a very similar approach 2011-11-07 16:09:35 +00:00
Paolo Cignoni 34921eb3ba corrected small nasty bug in the rarely used compact edge vector... 2011-11-07 15:41:59 +00:00
Nico Pietroni 5fee62fbb1 changed several calls of CrossVector function 2011-11-01 18:41:54 +00:00
Nico Pietroni 4af26f2df2 line 565 changed "if (numholes!=1) return false;" to "if (numholes==0) return false;" it may be even have multiple holes 2011-11-01 18:40:55 +00:00
Paolo Cignoni dee3de3cc8 Added correct overloading of ImportData for per vertex curvature component. 2011-11-01 18:33:52 +00:00
ganovelli 99a41cf446 corrected ApplyRigidTransformation (zeroed last row of rot) 2011-10-28 14:20:27 +00:00
ganovelli cedf5fb284 bug fixing:
- mixup of nomes Edge and Face on the components.
- possibly use of empty vector in import_obj.h
Thanks to nagaokagetora for showing them
2011-10-25 10:03:10 +00:00
Paolo Cignoni 3b7609a7e8 Added algorithms for packing into a square rectangles and polygons 2011-10-20 22:29:20 +00:00
Paolo Cignoni e886684842 moved voronoi_clustering here from meshlab... 2011-10-20 22:26:46 +00:00
Nico Pietroni 2d8c6222cd added DifferenceCrossField, commented some non used function 2011-10-19 09:02:27 +00:00
Paolo Cignoni 16c39dfe24 removed other harmless gcc warnings... 2011-10-17 23:57:27 +00:00
Paolo Cignoni 7c6956fd4d Corrected some gcc compilation errors, Changed the IsFeasible function (now it tests that there is exactly one hole... 2011-10-17 23:35:30 +00:00
Paolo Cignoni 486795fcfb Better Comments on the Genus. 2011-10-17 23:33:48 +00:00
ganovelli f20ecb9db7 corrected a bug in ApplySimilarity (the translation was not zeroed when
transforming the rotational part)
2011-10-11 15:41:54 +00:00
Nico Pietroni f4a0b8bce4 added Coord3DtoUV function 2011-10-05 16:33:22 +00:00
Nico Pietroni a7c702c81d first release version 2011-10-05 16:17:40 +00:00
Paolo Cignoni 2fe129645b Rolled back 2011-10-05 15:04:40 +00:00
ganovelli 68fc8ae865 removed Neigh functions 2011-06-15 13:02:20 +00:00
Paolo Cignoni 7bb11892bb fixed ApplySimilarity when a scaling factor is present 2011-06-15 12:32:19 +00:00
ganovelli 09e0ccc62c added variational shape approximation partition of the mesh both
for triangle meshes and for vertex meshes
2011-06-14 17:10:57 +00:00
ganovelli a815890b15 minimal addition to support neighboorhood relation between vertices
and between faces
2011-06-14 16:18:34 +00:00
Marco Di Benedetto ddb4e72887 moved PointerToAttribute outside mesh definition to avoid type mismatches in append with two different mesh types. 2011-06-14 14:52:38 +00:00
granzuglia 129d4edbaf added several missing include file 2011-06-08 08:46:02 +00:00
granzuglia f58b646616 added several missing include file 2011-06-07 14:37:27 +00:00
granzuglia 1318e29cb0 added several missing include file 2011-06-07 14:36:33 +00:00
granzuglia 05ba578f8e added missing std prefix 2011-06-07 13:48:49 +00:00
Paolo Cignoni bd8f86bff5 Removed other dependencies from the meshlab basecode... 2011-06-06 00:13:10 +00:00
Paolo Cignoni 6de8b3f890 Added tri_edge_collapse_quadric_tex.h. The specialization of edge collapse for tex and geometry. It should be cleanded a little... 2011-06-05 23:39:31 +00:00
Paolo Cignoni 23d9ad9684 added BasicVertexPair templated class to store as less as possible of an edge... 2011-06-05 23:37:43 +00:00
Paolo Cignoni a7e4270ddb Moved here from meshlab. Very specialized class to perform texture quadric simplification using a 5dim quadric that simultaneously optimize texure and positions. 2011-06-04 21:54:39 +00:00
Paolo Cignoni 3fc9b9ef1f Added MeshCopy(dst,src), with the same syntax of memcopy 2011-06-03 14:37:50 +00:00
Paolo Cignoni 3d4ae1b506 Added UpdatePosition::Translate 2011-06-03 08:32:27 +00:00
Paolo Cignoni 477767ab77 Added QualityMidPointFunctor and QualityEdgePredicate; Two classes (functor and the predicate) that you need for using the refine framework to cut a mesh along a linear interpolation of the quality. This can be used for example to slice a mesh with a plane. 2011-06-02 21:31:30 +00:00
Paolo Cignoni 27d9cfd6cb Added VertexFromPlane that put into quality the distance from a plane 2011-06-02 21:28:50 +00:00
ganovelli 11adfa2aff Changes for supporting copying of PerVertex,PerEdge and PerFace attributes in the vcg::tri::Append (append.h)
- useless template paramtere in SimpleTempData_Base removed (simple_temporary_data.h)
- Attribute is now derived by SimpleTempData_Base
- SimpleTempData_Base defines a void * At(unsigned int i) function that returns a pointer to the i-th element of the vector withouth knowing the type
- removed the useless member _typeid from the PointerToAttribute. It was used to store the rtti, useless itself.

NOTE: the copy of attributes is done with a memcpy! This means that if you defined a operator = in your attribute this WILL NOT be used in the append.
2011-06-01 13:39:31 +00:00
ganovelli 7a86b3fd25 added EmptyVertexRef to the default type 2011-06-01 13:31:28 +00:00
Paolo Cignoni 7324e75142 mismatch between the edge.EVp(i) versus edge.V(i) usage. 2011-05-31 08:46:38 +00:00
Paolo Cignoni 08e072aeb1 added empty VE reference to the base class of edges 2011-05-31 08:45:41 +00:00
Paolo Cignoni 5c358c02a4 Cleaned up small bug in the vertex clustering alg (crashed on empty sets and on non compacted meshes 2011-05-31 08:37:13 +00:00
Paolo Cignoni 5b6f8055f2 Corrected bug in the computation of VE topology 2011-05-31 08:35:50 +00:00
Paolo Cignoni 7f12ed85d7 Cleaned up a bit the duplicated EV and VertexRef relations. Added VE component for keeping the list of edges incident on vertex 2011-05-31 08:33:41 +00:00
Paolo Cignoni 4f761caf15 Added missing HasEdgeXXXX for checking the components avalability in meshes 2011-05-31 08:32:01 +00:00
Paolo Cignoni 55068f366b Added CompactEdgeVector functions for removing unused edges 2011-05-31 08:28:40 +00:00
Paolo Cignoni 9b2574b767 fixed a funcrion parameter name that was equal to the template argument 2011-05-27 09:26:52 +00:00
Nico Pietroni 052e774fbc added Quality3 component 2011-05-25 16:28:18 +00:00
Massimiliano Corsini f0a1d1d567 ApplySimilarity finished and tested 2011-05-25 06:58:39 +00:00
Massimiliano Corsini 2a450c7c46 add ApplySimilarity - version with vcg::Similarity is unfinished 2011-05-24 21:13:05 +00:00
Massimiliano Corsini f35731d425 ApplyRigidTransformation fixed 2011-05-24 12:13:21 +00:00
Paolo Cignoni e2d800f89f Cleaned up a few things for edge topology management. Added isborder for edges... 2011-05-24 09:39:37 +00:00
Massimiliano Corsini 86b12c5fc7 ApplyRigidTransformation has been modified but not fixed yet
a new method to convert focal in px in focal in mm has been added
2011-05-23 16:30:34 +00:00
ganovelli b61d049408 ongoing testing 2011-05-23 15:09:21 +00:00
Massimiliano Corsini b31fc9ddec 2011-05-23 14:09:16 +00:00
Paolo Cignoni 894ffdbdfe Added trivial WedgeTexFromVertexTex 2011-05-20 23:20:33 +00:00
Paolo Cignoni a9e5d6d957 added WedgeTexFromPlane function to create simple planar parametrizations 2011-05-20 15:15:44 +00:00
Paolo Cignoni d7af2e62b3 Significant changes to the simplification/optimization framework:
* TriEdgeCollapse is no more multiply derived but it get its "work on two vertex" behavior from a template parameter called VertexPair.
* EdgeCollapse is no more a class devoted to the simplification but it has been renamed as EdgeCollapser and it is a static class templates over a generic <VertexPair> that offer methods to perform Edge Collapses.
* cleaned up the parameter passing method for local optimization classes (and added a baseParameterClass from which every local optimization method must subclass its own parameters)
2011-05-20 15:12:09 +00:00
Massimiliano Corsini eec4f43178 add a method to roto-translate the camera frame
add a service method to adjust the camera-shot when the World coordinates are scaled
2011-05-19 16:28:51 +00:00
Massimiliano Corsini 9349591548 fix some comments about the assumption made by the Shot 2011-05-19 08:46:38 +00:00
ganovelli c35b1c84ff DoubleArea vs Area discrepancy fixed 2011-05-18 11:38:42 +00:00
ganovelli 46790e61cd added FaceArea 2011-05-18 11:37:18 +00:00
Paolo Cignoni 122cc50798 added missing Abs(Point2) 2011-05-12 09:52:34 +00:00
Paolo Cignoni 1a92eddf4c removed three no more useful files of the old edgemesh. Ported useful sutff in the right places (topology.h and clean.h) 2011-05-11 10:00:15 +00:00
Paolo Cignoni 0c606a5cf5 added EdgeEdge topology computation function 2011-05-11 09:57:08 +00:00
Paolo Cignoni db5320cc64 Modified IntersectionPlaneSegment so that it returns always the same intersection independently from the segment orientation
Return false if segment is parallel with the plane.
2011-05-11 09:56:23 +00:00
Paolo Cignoni 3bb7e7bdd9 Corrected again the constructor of the base trimesh. Now it simply call the clear (just to enforce same behaviour) 2011-05-11 09:54:05 +00:00
Paolo Cignoni f7abd17dfe added RemoveDegenerateEdge and modifyed RemoveDuplicatedVertex to support edgemesh 2011-05-11 07:36:19 +00:00
Paolo Cignoni 6d27dabf19 Added Initialization of en to ZERO !!!! 2011-05-11 06:18:01 +00:00
Paolo Cignoni 577416408f Added functions for clearing flags on edges 2011-05-11 06:13:38 +00:00
Paolo Cignoni 589cb681e5 Added parenthesis to remove gcc warnings 2011-05-11 06:11:21 +00:00
Paolo Cignoni 580ec94ab3 Index functions (that given a simplex return its position in the vector) are const 2011-05-11 06:09:14 +00:00
Paolo Cignoni 2eec2e0d55 missing const in edge adj access 2011-05-10 21:56:15 +00:00
Paolo Cignoni 2c15159659 fixed multmatrix when a scaling factor is present 2011-05-03 15:19:04 +00:00
Paolo Cignoni e878e7ae88 Cleaned up a bit the geodesic interfaces. Removed useless parameters to avoid ambiguity. Could require updating the existing code using it 2011-04-22 11:09:30 +00:00
ganovelli e87fe74584 retry 2011-04-22 10:18:43 +00:00
ganovelli b5359da0a1 added missing std:: 2011-04-21 16:49:59 +00:00
ganovelli 3789370e24 updated to vcg version (HasEETopology to HasEEAdjacency) 2011-04-21 16:24:46 +00:00
ganovelli 099149e990 corrected bug in EEAdj constructor 2011-04-21 15:51:03 +00:00
Nico Pietroni c4cc235b52 - added call of FarthestVertex with returning vertices within a specified interval
- added initial #define to avoid multiple inclusion
2011-04-19 09:40:04 +00:00
ganovelli 017323e803 IptoP changed into IPfToPf 2011-04-13 16:15:13 +00:00
ganovelli dbd3bd1a70 rewritten wrong planeboxintersection 2011-04-13 16:07:35 +00:00
ganovelli 6b3c096e44 removed cvs old comments 2011-04-13 16:06:19 +00:00
granzuglia 451e3ec084 added missing include file 2011-04-13 13:02:41 +00:00
granzuglia 6d1e0fca7d from f.N() = -> f.N().Import in order to avoid compile errors when the defined mesh-type presents different scalar types for vertex-coordinates and vertex-normal 2011-04-12 08:26:15 +00:00
Paolo Cignoni f310574e04 - Shot::MultMatrix(Matrix44) now accepts matrices with scaling. Corrected the rotation multiplication. 2011-04-11 09:39:20 +00:00
ganovelli a5fc2fae6a bug corrected: . to -> in VertexAreaUniform 2011-04-08 14:28:00 +00:00
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
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
Paolo Cignoni 956f343087 added missing typenames to new rayspherical fucntion 2010-04-21 21:08:08 +00:00
Nico Pietroni ac4a79bc8f corrected call to new function Name IntersectionRayBox 2010-04-21 17:22:39 +00:00
Nico Pietroni 7c89077eb7 Added function RaySpherical 2010-04-21 17:21:43 +00:00
Paolo Cignoni bdc74ae3b4 uniformed to the new intersection naming schemas 2010-04-20 00:59:38 +00:00
Paolo Cignoni 8a47aaf62f removed a double init of a member of vector ocf and reordered members 2010-04-20 00:57:25 +00:00
Paolo Cignoni 3ee9667060 added two helper functions used for the self intersection tests 2010-04-20 00:56:08 +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 3291bb2889 Made uniform the naming of the intersection functions, added some comment and improved a bit the robustness of the triangle triangle intersection test in a mesh 2010-04-20 00:41:45 +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 db53730ae7 better comments for intersectionLineTriangle 2010-04-14 09:16:13 +00:00
granzuglia 9cd42be265 removed illegal *m.vert.end() 2010-04-12 12:45:06 +00:00
matteodelle 155cfe6845 New coords conversion function 2010-03-30 19:58:35 +00:00
Marco Di Benedetto 38a4636b51 added generic functors to attribute seam. 2010-03-29 16:27:41 +00:00
matteodelle 8b293069af Corrected an error in the template def. of TriMesh 2010-03-29 08:07:22 +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
Paolo Cignoni 0165f918f1 removed harmless gcc warnings 2010-03-26 09:43:45 +00:00
ganovelli d4b7e1c8fe [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:52:55 +00:00
ganovelli 261ff53ab1 [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:52:18 +00:00
ganovelli 0a74ba11a5 [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:51:49 +00:00
ganovelli be64ec50c3 added inclusion of <string> 2010-03-25 16:51:20 +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
ganovelli 42557f19f8 [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:28 +00:00
ganovelli cf7563eff4 [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:10 +00:00
ganovelli e06c7f7e70 [temporary commit, it is to be moved to trimesh/update/halfedge_indexed.h] 2010-03-25 16:23:09 +00:00
Paolo Cignoni 1fb9d1c555 added a few disambiguating 'template' keywords 2010-03-23 22:37:46 +00:00
Paolo Cignoni ac52e05bc4 added management variable disk radius sampling to poisson pruning 2010-03-23 16:15:27 +00:00
ganovelli fb9d702e08 nametypebound..corrected bugs, changed a name, regrouped functions.
Change useless NameOf in NamesWithType which returns all the names bound to a given type
2010-03-23 09:47:52 +00:00
ganovelli bda10aba6e NameTypeBound wsorking (still to refine) 2010-03-23 09:25:13 +00:00
Paolo Cignoni b6cb2fc881 added option to the Poisson sampling filter of using an additional mesh as source of already generated samples.
In this way it is possible to refine existing sampling by using different sample pools
2010-03-23 07:26:34 +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 d55a1069de converted to the new style with mark outside the trimesh class 2010-03-19 22:56:30 +00:00
ganovelli 2f8a8945cc added inclusion of used_types.h 2010-03-19 17:21:25 +00:00
ganovelli a2341076c1 added typedef of ScalarType 2010-03-19 17:20:52 +00:00
ganovelli 21dd8aa179 Simplified reflection typedefs:
added type traits to support the mod below:

[ Changes in definition of  TriMesh: PART II ]

Note: No changes to existing code need be the done, this mod
should be fully backward compatible

Old way to define a TriMesh ==============
struct MyMesh: public vcg::tri::TriMesh< vector<MyVertex> , vector <MyFace> >{};

new  ways to define a TriMesh ==============

struct MyMesh: public vcg::tri::TriMesh< CONT1 >{};
struct MyMesh: public vcg::tri::TriMesh< CONT1 , CONT2>{};
struct MyMesh: public vcg::tri::TriMesh< CONT1 , CONT2, CONT3>{};

where CONT[i] can be vector< [MyVertex | MyEdge | MyFace ] > 
(the order is unimportant)
2010-03-19 17:19:51 +00:00
ganovelli 9fc476b130 added type traits to support the mod below:
[ Changes in definition of  TriMesh: PART II ]

Note: No changes to existing code need be the done, this mod
should be fully backward compatible

Old way to define a TriMesh ==============
struct MyMesh: public vcg::tri::TriMesh< vector<MyVertex> , vector <MyFace> >{};

new  ways to define a TriMesh ==============

struct MyMesh: public vcg::tri::TriMesh< CONT1 >{};
struct MyMesh: public vcg::tri::TriMesh< CONT1 , CONT2>{};
struct MyMesh: public vcg::tri::TriMesh< CONT1 , CONT2, CONT3>{};

where CONT[i] can be vector< [MyVertex | MyEdge | MyFace ] > 
(the order is unimportant)
2010-03-19 17:18:00 +00:00
ganovelli 1428a1cc3c added a derivation chain to support the modification to the trimesh definition (below)
[ Changes in definition of  TriMesh: PART II ]

Note: No changes to existing code need be the done, this mod
should be fully backward compatible

Old way to define a TriMesh ==============
struct MyMesh: public vcg::tri::TriMesh< vector<MyVertex> , vector <MyFace> >{};

new  ways to define a TriMesh ==============

struct MyMesh: public vcg::tri::TriMesh< CONT1 >{};
struct MyMesh: public vcg::tri::TriMesh< CONT1 , CONT2>{};
struct MyMesh: public vcg::tri::TriMesh< CONT1 , CONT2, CONT3>{};

where CONT[i] can be vector< [MyVertex | MyEdge | MyFace ] > 
(the order is unimportant)
2010-03-19 17:17:06 +00:00
ganovelli ca8d4abed3 All the functions handling TriMesh::imark have been moved outside the definition
of TriMesh to workaround an internal compiler error of vc compiler, and the usages have been
consequently updated
2010-03-19 17:14:01 +00:00
ganovelli 584936f27a [ Changes in definition of TriMesh: PART II ]
Note: No changes to existing code need be the done, this mod
should be fully backward compatible

Old way to define a TriMesh ==============
struct MyMesh: public vcg::tri::TriMesh< vector<MyVertex> , vector <MyFace> >{};

new  ways to define a TriMesh ==============

struct MyMesh: public vcg::tri::TriMesh< CONT1 >{};
struct MyMesh: public vcg::tri::TriMesh< CONT1 , CONT2>{};
struct MyMesh: public vcg::tri::TriMesh< CONT1 , CONT2, CONT3>{};

where CONT[i] can be vector< [MyVertex | MyEdge | MyFace ] > 
(the order is unimportant)
2010-03-19 17:13:31 +00:00
ganovelli 30f799220d All the functions handling TriMesh::imark have been moved outside the definition
of TriMesh to workaround an internal compiler error of vc compiler, and the usages have been
consequently updated
2010-03-19 17:05:14 +00:00
ganovelli f90bd789a3 added class AllTypes to implement type trait in trimesh/base.h
AllTypes is a class defining, as inner classes, global default names
for vertex,edge and face
2010-03-19 17:02:36 +00:00
ganovelli 5ce2c677f5 added include to trimesh/base.h 2010-03-19 17:00:45 +00:00
Paolo Cignoni a201459a30 removed harmless warnings 2010-03-18 14:20:53 +00:00
Paolo Cignoni 3b770c935a added updateQuality Vertex Clamp 2010-03-18 14:20:29 +00:00
Paolo Cignoni cf872a327c Doh! Forgot a const in the getbbox of Face Base 2010-03-18 10:28:10 +00:00
Paolo Cignoni e4b0019e90 removed harmless warnings 2010-03-18 10:08:12 +00:00
Paolo Cignoni 3976724c18 removed harmless warnings and improved Cone generator 2010-03-18 10:07:39 +00:00
Paolo Cignoni fba6bd5917 removed harmless warnings/English Comments 2010-03-18 10:04:55 +00:00
Paolo Cignoni 9aa23c4f6c removed harmless warnings 2010-03-18 10:03:31 +00:00
Paolo Cignoni 335afeee7e 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:03:00 +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 2a1aebfa3d converted to the new UsedTypes syntax 2010-03-17 09:22:23 +00:00
Paolo Cignoni eca7114e6c corrected a small error inserted by mistake in the last commit... 2010-03-16 14:46:55 +00:00
Paolo Cignoni 80f825a428 removed harmless warnings 2010-03-16 14:25:30 +00:00
Paolo Cignoni bf69d1c24a removed harmless warnings 2010-03-16 14:22:08 +00:00
Paolo Cignoni 404831fc2f added a missing 'template' keyword between class and metod name. 2010-03-16 11:06:32 +00:00
ganovelli 09b0fb5ef7 added a way to define a scope, i.e. a collection of bounds between name of the attributes
and their type, so  that one can add an attribute without knowing its type. It is useful
when working with plugin.
example:
vcg::tri::NameTypeScope myScope;


AddNameTypeBound<int>(myScope,std::string("number");
AddNameTypeBound<float>(myScope,std::string("incoming_light"));

we have crated a scope myScope where "number" is bound a int and incoming_light is a float

In another part of code where I may not know the type of "number", I can still do:

AddPerVertexAttribute(myScope, mesh, "number");

and an int attibute name "number" will be added.
2010-03-15 15:17:20 +00:00
ganovelli 2e739825c8 [ Changes in definition of TriMesh: PART I ]
Note for the developers: the change to make to existing projects is very little
but strictly necessary to compile. This change IS NOT backward compliant.


==== OLD ==== way to define a TriMesh:

// forward declarations
class MyVertex;
class MyEdge;
class MyFace;

class MyVertex: public VertexSimp2 < MyVertex, MyEdge, MyFace, vertex::Coord3f,...other components>{};
class MyFace: public FaceSimp2 < MyVertex, MyEdge, MyFace, face::VertexRef,...other components>{};
class MyMesh: public TriMesh<vector<MyVertex>,vector<MyFace> >{};


==== NEW ==== way to define a TriMesh:
// forward declarations
class MyVertex;
class MyEdge;
class MyFace;

// declaration of which types is used as VertexType, which type is used as FaceType and so on...
class MyUsedTypes: public vcg::UsedType < vcg::Use<MyVertex>::AsVertexType,
                                         vcg::Use<MyFace>::AsFaceType>{};

class MyVertex: public Vertex < MyUsedTypes, vertex::Coord3f,...other components>{};
class MyFace: public Face < MyUsedTypes, face::VertexRef,...other components>{};
class MyMesh: public TriMesh<vector<MyVertex>,vector<MyFace> >{};

                               ===== classes introduced         [vcg::UsedType] : it is a class containing all the types that must be passed to the definition of Vertex, Face, Edge... This
class replaces the list of classes to pass as first templates and the need to specify the maximal simplicial. So

< MyVertex, MyEdge, MyFace,  beocmes  MyUsedTypes,
and
VertexSimp2 becomes Vertex

[vcg::Use] : an auxiliary class to give a simple way to specify the role of a type

Note 2: the order of templates parameters to vcg::UsedTypes is unimportant, e.g:

class MyUsedTypes: public vcg::UsedType <vcg::Use<MyVertex>::AsVertexType,
                                        vcg::Use<MyEdge>::AsEdgeType,
                                        vcg::Use<MyFace>::AsFaceType>{};

is the same as:
class MyUsedTypes: public vcg::UsedType <vcg::Use<MyFace>::AsFaceType,
                                        vcg::Use<MyEdge>::AsEdgeType,
                                        vcg::Use<MyVertex>::AsVertexType>{};

==== the Part II will be a tiny change to the class TriMesh it self.
2010-03-15 13:10:43 +00:00
ganovelli 01bb1ff921 [ Changes in definition of TriMesh: PART I ]
Note for the developers: the change to make to existing projects is very little 
but strictly necessary to compile. This change IS NOT backward compliant.


==== OLD ==== way to define a TriMesh:

// forward declarations
class MyVertex;
class MyEdge;
class MyFace;

class MyVertex: public VertexSimp2 < MyVertex, MyEdge, MyFace, vertex::Coord3f,...other components>{};
class MyFace: public FaceSimp2 < MyVertex, MyEdge, MyFace, face::VertexRef,...other components>{};
class MyMesh: public TriMesh<vector<MyVertex>,vector<MyFace> >{};


==== NEW ==== way to define a TriMesh:
// forward declarations
class MyVertex;
class MyEdge;
class MyFace;

// declaration of which types is used as VertexType, which type is used as FaceType and so on...
class MyUsedTypes: public vcg::UsedType < vcg::Use<MyVertex>::AsVertexType,
                                          vcg::Use<MyFace>::AsFaceType>{};

class MyVertex: public Vertex < MyUsedTypes, vertex::Coord3f,...other components>{};
class MyFace: public Face < MyUsedTypes, face::VertexRef,...other components>{};
class MyMesh: public TriMesh<vector<MyVertex>,vector<MyFace> >{};

                                 
===== classes introduced          
[vcg::UsedType] : it is a class containing all the types that must be passed to the definition of Vertex, Face, Edge... This
class replaces the list of typenames to pass as first templates and the need to specify the maximal simplicial. So 

<MyVertex, MyEdge, MyFace  becomes <MyUsedTypes<

and 

VertexSimp2 becomes Vertex

[vcg::Use] : an auxiliary class to give a simple way to specify the role of a type

Note 2: the order of templates parameters to vcg::UsedTypes is unimportant, e.g:

class MyUsedTypes: public vcg::UsedType <vcg::Use<MyVertex>::AsVertexType,
                                         vcg::Use<MyEdge>::AsEdgeType,
                                         vcg::Use<MyFace>::AsFaceType>{};

is the same as:
class MyUsedTypes: public vcg::UsedType <vcg::Use<MyFace>::AsFaceType,
                                         vcg::Use<MyEdge>::AsEdgeType,
                                         vcg::Use<MyVertex>::AsVertexType>{};

Note 3: you only need to specify the type  you use. If you do not have edges you do not need 
to include vcg::Use<MyEdge>::AsEdgeType in the template list of UsedTypes.
==== the Part II will be a tiny change to the class TriMesh it self.
2010-03-15 10:43:27 +00:00
ganovelli c40a6c3d97 [ Changes in definition of TriMesh: PART I ]
Note for the developers: the change to make to existing projects is very little 
but strictly necessary to compile. This change IS NOT backward compliant.


==== OLD ==== way to define a TriMesh:

// forward declarations
class MyVertex;
class MyEdge;
class MyFace;

class MyVertex: public VertexSimp2 < MyVertex, MyEdge, MyFace, vertex::Coord3f,...other components>{};
class MyFace: public FaceSimp2 < MyVertex, MyEdge, MyFace, face::VertexRef,...other components>{};
class MyMesh: public TriMesh<vector<MyVertex>,vector<MyFace> >{};


==== NEW ==== way to define a TriMesh:
// forward declarations
class MyVertex;
class MyEdge;
class MyFace;

// declaration of which types is used as VertexType, which type is used as FaceType and so on...
class MyUsedTypes: public vcg::UsedType < vcg::Use<MyVertex>::AsVertexType,
                                          vcg::Use<MyFace>::AsFaceType>{};

class MyVertex: public Vertex < MyUsedTypes, vertex::Coord3f,...other components>{};
class MyFace: public Face < MyUsedTypes, face::VertexRef,...other components>{};
class MyMesh: public TriMesh<vector<MyVertex>,vector<MyFace> >{};

                                 
===== classes introduced          
[vcg::UsedType] : it is a class containing all the types that must be passed to the definition of Vertex, Face, Edge... This
class replaces the list of typenames to pass as first templates and the need to specify the maximal simplicial. So 

<MyVertex, MyEdge, MyFace  becomes <MyUsedTypes<

and 

VertexSimp2 becomes Vertex

[vcg::Use] : an auxiliary class to give a simple way to specify the role of a type

Note 2: the order of templates parameters to vcg::UsedTypes is unimportant, e.g:

class MyUsedTypes: public vcg::UsedType <vcg::Use<MyVertex>::AsVertexType,
                                         vcg::Use<MyEdge>::AsEdgeType,
                                         vcg::Use<MyFace>::AsFaceType>{};

is the same as:
class MyUsedTypes: public vcg::UsedType <vcg::Use<MyFace>::AsFaceType,
                                         vcg::Use<MyEdge>::AsEdgeType,
                                         vcg::Use<MyVertex>::AsVertexType>{};

Note 3: you only need to specify the type  you use. If you do not have edges you do not need 
to include vcg::Use<MyEdge>::AsEdgeType in the template list of UsedTypes.
==== the Part II will be a tiny change to the class TriMesh it self.
2010-03-15 10:42:52 +00:00
Paolo Cignoni 2a18ebd5f5 Heavily restructured component of vertex simplex. Compacted all the emptyXXXX into a single EmptyCore class. Cleaned up the interface for the optional stuff now there is a standard static function that can say if a given component is enabled or not. 2010-03-04 13:34:38 +00:00
Paolo Cignoni 5e1f0ce521 Heavily restructured component of vertex simplex. Compacted all the emptyXXXX into a single EmptyCore class. Cleaned up the interface for the optional stuff now there is a standard static function that can say if a given component is enabled or not. 2010-03-03 16:01:39 +00:00
Paolo Cignoni 5ef6d30d37 Added a test to check in the point to face distance computation to manage the case of degenerated faces. Now correctly resort to distance point to segment. 2010-03-03 00:35:20 +00:00
Paolo Cignoni d340b8b92a removed harmless gcc warnings 2010-03-02 23:17:15 +00:00
Paolo Cignoni 355edd042e removed harmless warnings 2010-02-24 09:56:58 +00:00
Paolo Cignoni 9f8497013f removed harmless warnings 2010-02-24 09:55:28 +00:00
Paolo Cignoni fc6483307b added a missing cVFi() 2010-02-23 16:45:45 +00:00
Paolo Cignoni 18c92582d4 Cleaned up the CompactFaceVector and the CompactVertexVector, Now they correctly manage existing FV and FF topology by preserving them (if they are initialized to something meaningful). 2010-02-22 17:37:51 +00:00
Nico Pietroni 98eba3ef33 corrected minor compiling issues 2010-02-22 01:03:23 +00:00
Paolo Cignoni 446400f6fc Now the compactvertex and compactface funtions use the importlocal chain so we are sure that all the meaningful data is correctly copied (otherwise ocf stuff will not be copied) On the other hand when using ImportLocal we do not copy pointer based stuff like adjacency and *vertex pointers* that must be terefore copied by hand... 2010-02-19 00:21:26 +00:00
Paolo Cignoni 95e1b391c8 min in std limits is a function 2010-02-11 20:07:27 +00:00
Paolo Cignoni 41fda194bd Correctly defined int inside loop as per MSVC requirements, changed assert as to be more accurate 2010-02-11 20:06:14 +00:00
Paolo Cignoni 3b152298cc added runtime assert to prevent dangerous simplex to simplex assignment in the case of OCF optional attributes. 2010-02-11 00:14:35 +00:00
Luigi Malomo 8465fa432c Modified rasterization algorithm to generate samples from buffer areas outside (texture space) border edges 2010-02-09 19:10:22 +00:00
ganovelli 9fee205755 removed exceeding "default" in switch condition 2010-01-16 15:33:07 +00:00
Paolo Cignoni c72bfe6f63 Corrected a bug in the Distribution class and added useful access bin counting functions members to the Histogram class 2010-01-11 22:57:32 +00:00
Paolo Cignoni 3765096290 Added the possibility to wrap an existing coefficient vector 2010-01-08 10:36:09 +00:00
Paolo Cignoni 796c2f0b56 Implemented MakeTriEvenBySplit (still assume that the mesh is a single connected component), removed some face assigment with the (hopefully) safer ImportLocal. 2010-01-03 02:14:51 +00:00
Paolo Cignoni a26b0e34f9 Cleaned up Detach functions and added a special, simpler version of Detatch for 2Manifold cases 2010-01-03 02:01:45 +00:00
Paolo Cignoni 29e956d524 Corrected a small bug in CountNonManifoldVertexFFVF and changed the use of bit from selection to visit bit in the CountEdges 2010-01-03 01:59:32 +00:00
Paolo Cignoni 49bbc55cac removed harmless gcc warnings 2010-01-03 01:57:39 +00:00
Paolo Cignoni 137c239375 removed harmless gcc warnings 2010-01-03 01:31:26 +00:00
matteodelle 401abff90a Correction of IntersectionRayMesh functions, they did not compile. 2009-12-21 13:02:28 +00:00
Paolo Cignoni fbbf8fe436 Removed gcc4.4 warnings 2009-12-08 15:57:19 +00:00
Paolo Cignoni 39f12e9fdd added a function to permutate the vertex vector according to a given permutation. 2009-12-07 09:05:20 +00:00
Paolo Cignoni 7030dbb151 small change. The FFp<i> shortcuts seems no more used... 2009-12-07 08:31:01 +00:00
Paolo Cignoni d60fa01037 cleaning up include files 2009-12-07 08:23:02 +00:00
Paolo Cignoni 8a0c86c857 corrected the template in the normal<> function... again 2009-12-07 08:17:10 +00:00
Paolo Cignoni 760a767504 cleaning up include files 2009-12-07 08:15:59 +00:00
Paolo Cignoni 1c0ae1268c added a slightly faster version of the longest edge stratified subdivision sampling 2009-12-04 08:36:49 +00:00
Paolo Cignoni 6e3f10928e better comment to interpolationParameter2 2009-12-04 08:32:00 +00:00
Paolo Cignoni f7b9856d0d removed harmless warning 2009-12-04 08:22:33 +00:00
Paolo Cignoni 32619f1625 harmless gcc compiling issues 2009-12-03 23:17:46 +00:00
Paolo Cignoni 3e7b2267f0 added a missing const to the distance functor 2009-12-02 15:11:00 +00:00
Paolo Cignoni c749b3e143 Heavily restructured PoissonDisk resampling. Now there are two approaches, a pure pruning and a cell pruning approach 2009-12-02 15:10:12 +00:00
Paolo Cignoni 5a96ab4f8d a few optimization and correction to the hashed grid removal stuff 2009-12-02 15:08:49 +00:00
Marco Di Benedetto 939da657a9 added public: to TexCoord* Name(). 2009-12-01 17:36:27 +00:00
Marco Di Benedetto 5b076c064e added public: to WedgeColor* and Color Name(). 2009-12-01 17:35:42 +00:00
Paolo Cignoni 7c907e72ae Corrected a survived old style use of temporary data in smoothning of vertex normals 2009-12-01 08:37:27 +00:00
Paolo Cignoni 86d534ec95 added a missing std:: 2009-12-01 08:34:16 +00:00
Paolo Cignoni dc82ece647 Optimized version of poisson sampling 2009-11-30 15:53:23 +00:00
Paolo Cignoni 27c319a79c added a removeInSphere specialization and a removePunctual specialization. 2009-11-30 10:36:49 +00:00
Paolo Cignoni a89b2ace77 added some const and inline keywords 2009-11-30 10:32:37 +00:00
Paolo Cignoni a209a9b890 Refactoring of the Poisson Sampling algorithm. Hopefully faster 2009-11-25 15:50:36 +00:00
Paolo Cignoni 7e02dbb4f8 added methods for removing things from a hashed grids 2009-11-25 15:49:54 +00:00
Paolo Cignoni 302a7725fa removed harmless warnings 2009-11-17 23:34:46 +00:00
Marco Di Benedetto ebcbc5f98d fixed implicit cast warning. 2009-11-13 00:52:37 +00:00
Paolo Cignoni 70ae4d5c50 made public the self inspection member 'name' of the components. I do not know why it was not public in that case. 2009-11-05 22:35:56 +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
Paolo Cignoni 5ef3e2ca50 added a missing const cQ() for ocf face component 2009-11-01 09:51:53 +00:00
Paolo Cignoni 6051c1eeaa added a missing IsVFAdjacencyEnabled and a missing typename 2009-10-29 17:16:41 +00:00
Nico Pietroni fe6d3ca34d restored changes for a corrected use of default copy constructor 2009-10-27 10:48:52 +00:00
Marco Di Benedetto a80c4d25ef fixed in-place version. 2009-10-26 12:19:21 +00:00
Marco Di Benedetto e7cbe4f558 modified typedef due to GCC complaints. 2009-10-23 20:25:54 +00:00
Marco Di Benedetto d650013e60 first commit. 2009-10-23 10:04:51 +00:00
Paolo Cignoni 8dd2320a4d add missing std:: 2009-10-15 11:53:09 +00:00
Nico Pietroni 74bd57f2fa missing CurvatureType and CurvatureDirType inside EmptyCurvatureData 2009-10-14 17:19:56 +00:00
Nico Pietroni fdd33df567 minor changes 2009-10-14 16:15:50 +00:00
Paolo Cignoni 3705cb3cb9 Improved speed by using DynamicLegendre and precomputing Scaling Factors 2009-10-14 16:10:42 +00:00
Paolo Cignoni 8d8ed1efa8 Memoized version of Legendre computation called DynamicLegendre 2009-10-14 16:09:30 +00:00
Nico Pietroni 01f772d7f8 corrected order of operations of decrease-increase valencies 2009-10-14 15:15:32 +00:00
Nico Pietroni 8c67be5617 added interpolator class for refinement 2009-10-14 15:05:08 +00:00
mtarini 2f1c77c69a Added a flag to choose whether to use Length based criteria or Quality based ones. 2009-10-14 14:35:25 +00:00
mtarini 7c78d81cdc added importance weighting. 2009-10-14 14:32:55 +00:00
mtarini 1664791bf3 minor: local variable rename to avoid weird compilation problems. 2009-10-14 14:30:28 +00:00
Nico Pietroni c57e10951c corrected funtion Normal::ImportLocal 2009-10-14 14:25:59 +00:00
Nico Pietroni ea6553f1d5 corrected funtion NormalAbs::ImportLocal 2009-10-14 14:25:00 +00:00
Nico Pietroni a60c31845c added function HasConsistentEdges 2009-10-14 13:56:06 +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
ganovelli 5c0f228a4d added few missing Has*Ocf 2009-10-08 15:46:31 +00:00
ganovelli b902431bc1 extended support to dump attributes (see wrap/io_trimesh/[import | export]_VMI.h )
It was only for vertices, now it is also for faces and mesh attributes.
Compiled gcc and .net. Tested only on toy exmaples
2009-10-07 11:05:29 +00:00
Marco Di Benedetto b17d165d0c Added SquaredDistance and made the point-plane version redirect to the plane-point one. 2009-10-06 16:22:35 +00:00
Paolo Cignoni 06bda0acae corrected the use of default copy constructor with the more or less standard importLocal 2009-10-05 22:46:32 +00:00
Marco Di Benedetto e54e0a7124 Modified PlaneFittingPoints to return eighevalues and eigenvectors and added backward compatibility wrapper. 2009-10-05 22:43:14 +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
Paolo Cignoni a35120d9d9 added faux edge sampling management 2009-10-02 14:11:34 +00:00
mtarini 5acb759d8e Removed a rarely expressed bug on CollapseDiag 2009-09-24 16:12:57 +00:00
Paolo Cignoni d2edfc1f4d removed two dummy useless functions 2009-09-22 22:36:22 +00:00
Paolo Cignoni 022df4f59a Added ComputePerVertexQualityDistribution 2009-09-22 16:42:59 +00:00
Nico Pietroni 98e834c540 corrected 1 bug in PointDistance function 2009-09-18 09:16:17 +00:00
Paolo Cignoni 1b7adbe035 Hole filling now returns the number of closed holes 2009-09-12 05:20:32 +00:00
mtarini beb12f0b7c 2009-09-09 12:26:04 +00:00
Marco Callieri 0ccb9e8992 added support function (_substitute) to umproject 2D points + depth when the rotation matrix is not exactly rigid (such as the one calculated by Textailor, Tsai and Garcia) 2009-09-08 14:05:49 +00:00
mtarini 88ef8fa03b minor performance optimizations. 2009-09-07 17:54:39 +00:00
mtarini 7e3ad9eced 2009-09-07 16:44:01 +00:00
mtarini 15f6f89d06 Added a few convenience methods to Pos. 2009-09-07 15:53:28 +00:00
mtarini a2e777fd9a 2009-09-04 16:49:41 +00:00
Nico Pietroni 5846e9a86d added initial #define to avoid multiple inclusion 2009-09-04 15:52:21 +00:00
mtarini 2c3a92242b Added working valency in flags computations (and used to detect singlets/doublets quicker) 2009-09-03 22:35:28 +00:00
Marco Di Benedetto 6fb6cfbb24 added const to method. 2009-09-03 14:48:22 +00:00
Marco Di Benedetto ae09d558f0 added const to method. 2009-09-03 14:48:08 +00:00
mtarini b4b6e596eb 2009-09-02 17:25:17 +00:00
Nico Pietroni e43cfa5f43 corrected bugs in Iterator 2009-09-02 13:28:37 +00:00
Nico Pietroni c1daa656fe corrected bug in returning value of MarkSmallestEdgeOrDiag 2009-09-02 13:27:30 +00:00
Nico Pietroni 672cb554b1 added Initial #define to exclusive inclusion 2009-09-01 18:23:50 +00:00
mtarini 8f89da47ef Now collapse methods (diagonal, counter-diag, and edge) return bool success and take optional parameter of type Pos (around which to rotate to find all affected quads). Also added an iterator that goes around Pos that returns quads (only once per quad). 2009-09-01 17:14:35 +00:00
Nico Pietroni 37c11749f7 changed flags of vertices in case of modifications 2009-08-31 18:45:58 +00:00
mtarini d3232eb472 Added keep track Valency (in flags. For now, uses hard-wired flag interval 24-28.).
Valency used to detect Singlet, Doublets. Marks vertex flag V in affected Quads in all basic operations (method MarkFaceF)
2009-08-31 14:58:57 +00:00
Paolo Cignoni 415228fcd4 Added some missing importLocal functions 2009-08-30 13:54:06 +00:00
Nico Pietroni 733caf9478 changed TestEdgeRotation() and quadQuality() from private to public 2009-08-30 10:04:21 +00:00
Paolo Cignoni b14cd10824 Added management of per-vertex quality values during simplification to amplify initial quadric values 2009-08-30 09:35:36 +00:00
Marco Di Benedetto be1d887db6 Renamed LeftT to RightT, added some checks and fixed method name. 2009-08-28 15:26:40 +00:00
mtarini d231b9d021 Encapsulated everything in a static class. Also, templated with Interpolator "single-method static class" functor to make custom vertex interpolations during collapses. 2009-08-28 15:17:23 +00:00
Paolo Cignoni 9fc361301d Added missing Plane3::Import 2009-08-26 00:10:32 +00:00
Paolo Cignoni 077294b03e added the common TexCoord2f and TexCoord2d typenames that where strangely missing... 2009-08-25 22:32:20 +00:00
mtarini ecd1de4d94 added UpdateQualityAsBitQuadValency 2009-08-21 18:46:51 +00:00
mtarini 8e081cde43 Now BitQuadMarkVertexRotations rotates all profitable ones (not just the 1st) 2009-08-21 18:46:05 +00:00
mtarini 7f83000b93 fixed a nasty bug in Matrix44<T>::ToEulerAngles (but it still suffers from Gimbal Lock) 2009-08-21 12:42:16 +00:00
Paolo Cignoni b9ad0d4aa2 A function inside AddPointSet() was templated on CMeshO instead of the general type MeshType. This could lead to errors at compile time. CMeshO has been replaced with MeshType and now works fine. 2009-08-07 13:56:38 +00:00
Paolo Cignoni b54b74e103 changed doxigen comments. 2009-08-04 21:10:08 +00:00
Paolo Cignoni b507e2e8f7 added comments in doxygen style. 2009-08-02 21:43:13 +00:00
ganovelli fa287ce0ab added support for dump of attributes (see wrap/io_trimesh/[import | export]_VMI.h ) 2009-07-29 15:45:56 +00:00
ganovelli 286ac9162a added cr at the end 2009-07-29 12:48:30 +00:00
ganovelli f1b1220225 small changes to enable the mesh dumping on VMI file (see wrap/io_trimesh/[import | export]_VMI.h )
and HandlesWrapper renamed to PointerToAttribute
2009-07-29 12:46:46 +00:00
Paolo Cignoni 4e1b6897b1 class that provides an estimation of the overlap of two meshes. It works as follow: it samples N points in a normal equalized manner on the Mov mesh, then count how many points of the Fix mesh are in consensus with the sampled points. To be in consensus means: distance between points is <= param.consensusDistance AND the angle between points normals is <= param.normalAngle. This works for point clouds too. comments will be added in next commit. 2009-07-28 23:07:26 +00:00
Paolo Cignoni 44fd7bb2ba slightly changed the trivial sampler to make simpler to use all the sampling strategies to just get a coord vector. 2009-07-22 05:59:03 +00:00
Paolo Cignoni 9608ec798b compilation fixes with Eigen 2009-07-21 07:29:13 +00:00
Nico Pietroni 7aefe275b3 added #include<stdio> because of fprintf call on Histogram<ScalarType>::FileWrite function 2009-07-17 17:42:51 +00:00
granzuglia b41603d086 added missing #include file update/topology.h 2009-07-17 08:22:38 +00:00
Paolo Cignoni 7e5a7630f2 -added CountPointSet() to clustering
-ComputePerVertexQualityHistogram() modified; added a parameter to compute histogram taking into account just selected vertexes.
2009-07-16 10:16:39 +00:00
granzuglia b686bd1d31 changes in order to compile with gcc 3.x 2009-07-15 16:29:10 +00:00
granzuglia bb97c3a1ec changes in order to compile with gcc 3.x 2009-07-15 16:27:29 +00:00
granzuglia 79b3238e27 changes in order to compile with gcc 3.x 2009-07-15 16:26:14 +00:00
granzuglia 14eb3697ec changes in order to compile with gcc 3.x 2009-07-15 16:25:25 +00:00
Nico Pietroni 046558798a lien 242 added cast to ScalarType on "2.0" to avoid warning in case of float usage 2009-07-14 14:33:00 +00:00
Nico Pietroni 61d4d72c4c removed closests[i]->C()=Color4b::Green; form MergeCloseVertex function 2009-07-14 14:31:20 +00:00
Paolo Cignoni 15531646b5 better comment in assert of finding nan in histograms 2009-07-14 09:00:23 +00:00
Paolo Cignoni d71d110703 Heavily restructured clustering class to allow also a subsampling strategy that allow the fast extraction of a well spaced subset of vertices 2009-07-14 08:57:05 +00:00
Paolo Cignoni a5cb113561 added a method for getting the center of a grid cell 2009-07-14 08:55:20 +00:00
Paolo Cignoni 7a45bbe7eb Added Color4d type definition 2009-07-10 13:22:24 +00:00
Paolo Cignoni e6fbdfb9f6 Added static constuctor that imports from different Quaternion types (overrides same static contstructor of father's Point4 class) 2009-07-10 13:18:24 +00:00
Marco Di Benedetto a79d8f9bd8 changed field order in PointerUpdater to prevent constructor warning (in initialization list). 2009-07-08 16:12:46 +00:00
mtarini ec1c94cee2 Added a few seek-best-op (and-do-it) operations (MarkSmallestEdgeOrDiag... etc) 2009-07-07 15:25:13 +00:00
mtarini ef71c4ef04 Added new local operations (RotateBitQuadVertex, CollapseQuadEdge...). 2009-07-07 15:23:42 +00:00
mtarini 077e720428 Added PerBitQuadFaceNormalized 2009-07-07 15:22:28 +00:00
Marco Di Benedetto 3b15d3a8df added cast to unsigned char. 2009-06-30 19:01:22 +00:00
Marco Di Benedetto 85ccd7dc0b removed unused parameter warning. 2009-06-30 19:00:47 +00:00
Nico Pietroni 1fa445c9fb changed epsilon value in InterpolationParameters 2009-06-30 16:15:51 +00:00
Nico Pietroni 24cf3c430a Added ScalarType Length() const function 2009-06-30 16:13:19 +00:00
Nico Pietroni 7c6296c80d * Corrected SegmentSegmentIntersection function
* In LineLineIntersection substituted EPSILON with Eps
2009-06-30 16:11:10 +00:00
Nico Pietroni 10c5f72af2 Corrected 1 bug in DistancePoint2Box2 function 2009-06-30 16:07:13 +00:00
mtarini f4bc92f6f7 Bitquad_* first version. 2009-06-30 14:09:09 +00:00
Marco Di Benedetto 54f5418be2 removed reset to false of preventUpdateFlag in Clear(). 2009-06-29 16:13:26 +00:00
Marco Di Benedetto 015d94f736 fixed typo in normal and color (was ImporLocal()). 2009-06-29 05:46:43 +00:00
Marco Di Benedetto 460e6bd73a fixed initialization and resizing bugs on texcoords. 2009-06-29 03:33:56 +00:00
Marco Di Benedetto e5d07a7d62 added specializations for HasPerVertexNormal() and HasPerVertexColor(). 2009-06-28 22:41:05 +00:00
Marco Di Benedetto 24327b218c added HasColorOcf(). 2009-06-28 22:39:57 +00:00
Marco Di Benedetto 4dae9d3d97 added cN() and fixed assert in color. 2009-06-28 03:18:49 +00:00
Marco Di Benedetto 35189992a9 added WedgeNormalOcf and WedgeColorOcf. 2009-06-28 03:17:42 +00:00
Marco Di Benedetto 86c2311130 added HasWedgeRealNormal() (temporary name, now does not depend on vertex normal type) and added const in cWC(). 2009-06-28 03:16:35 +00:00
Marco Di Benedetto 29b9011026 added HasNormalOcf() and HasColorOcf(). 2009-06-28 03:14:48 +00:00
Marco Di Benedetto caa076ea1c fixed comment warning. 2009-06-28 03:13:56 +00:00
Marco Di Benedetto a437f80563 fixed comment warning. 2009-06-28 03:13:39 +00:00
Paolo Cignoni e8908f7742 Added CountBitLargePolygons (better name suggestion?) for counting the number of polygons in the case that there are vertexes surrounded by faux edges too (like in the case of dodecahedron of platonic.h) 2009-06-26 23:18:51 +00:00
mtarini 92e3bf554f Added ExtractPolygon quad support function 2009-06-26 13:05:52 +00:00
Paolo Cignoni c7320a32a3 added functions to remove connected components 2009-06-25 08:49:37 +00:00
Paolo Cignoni b2bc0d07ba small gcc compilation errors (typenames, missing std...) 2009-06-25 07:29:29 +00:00
Paolo Cignoni eae78a0251 completed the correct working of temporary data inside the refinement functions 2009-06-25 06:19:00 +00:00
Paolo Cignoni 2c3da1c3c9 changed the constructor of the MidPoint functor of the refine. Now it requires a Mesh as an argument to get reliable knowledge of the presence/absence of temporary data. 2009-06-24 20:31:57 +00:00
Paolo Cignoni ace6a183b3 added a missing HasPerVertexTexture() 2009-06-24 20:30:36 +00:00
Paolo Cignoni a88ee5b244 Added ocf management of per vertex texture coord 2009-06-23 20:45:44 +00:00
Paolo Cignoni c534298f2f removed harmless warning 2009-06-23 20:45:06 +00:00
Paolo Cignoni 60afe72ca8 added initialization of the mesh color to the standard opossum gray 2009-06-23 20:43:39 +00:00
Paolo Cignoni 168ea81ca8 Added PerlinColor function and ColorNoise function 2009-06-16 08:57:24 +00:00
Marco Di Benedetto 625497e788 fixed ImportLocal() in WedgeColor: iteration was missing. 2009-06-15 17:26:00 +00:00
Paolo Cignoni fde38e0612 added missing iteration control inthe hc laplacian smoothing 2009-06-11 23:56:06 +00:00
Paolo Cignoni 70d3ccfa23 Removed harmless warnings 2009-06-11 23:55:06 +00:00
Marco Di Benedetto 39156cafe4 completed support for WedgeColor. 2009-06-09 18:23:50 +00:00
Marco Callieri b066baa686 added cast in a SQRT (could not resolve overloading
(int)(sqrt((double)n_samples) +1.0);
2009-06-08 15:48:55 +00:00
Paolo Cignoni b05e5d1184 Made public the default constructor of PerVertexAttributeHandle, PerFaceAttributeHandle.
I hope that it was done private by mistake...
2009-06-07 08:55:44 +00:00
Federico Ponchio b39afe0c18 gcc complained about perVertexAttributeHandle missing template parameters... 2009-06-05 11:08:37 +00:00
Marco Di Benedetto 4e6b4a5b8f added Offset() method. 2009-06-05 09:32:47 +00:00
ganovelli f223914581 factorized a bit the attribute classes in TriMesh;
added to IsValidHandle the check that pointer to data is not null.
Explanation:
a handle may be not valid for two reasons:
1) the attribute has been destroyed with a DeletePer*Attribute
2) the handle has been declared but not initialized.
The change is to cover the case 2)
2009-06-04 16:13:21 +00:00
ganovelli 66ec7652dc factorized a bit the attribute classes in TriMesh;
added to IsValidHandle the check that pointer to data is not null.
Explanation:
a handle may be not valid for two reasons:
1) the attribute has been destroyed with a DeletePer*Attribute
2) the handle has been declared but not initialized.
The change is to cover the case 2)
2009-06-04 16:08:15 +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
Federico Ponchio e888ef1560 removed some useless consts 2009-06-03 12:23:20 +00:00
Paolo Cignoni b96d693960 bool ClearAllF() -> void ClearAllF() (no reason it is a bool returning function) 2009-05-26 22:35:57 +00:00
Paolo Cignoni b3e9a9e105 Changed a few geodesic function from void to bool to return possible failures (like for exmple asking for border distance on a mesh without border) 2009-05-26 22:31:58 +00:00
mtarini c0b0c7469c Added diagnostic and measurement methods for bit-polygonal meshes: IsBitQuadOnly, IsBitTriOnly, IsBitPolygonal, IsBitTriQuadOnly, CountBitQuads, CountBitTris, CountBitPolygons, HasConsistentPerFaceFauxFlag... 2009-05-26 18:19:17 +00:00
mtarini ac017fffb6 added few shortcuts to handle faux flags together: IsAnyF, ClearAllF (and a bit-mask FAUX012). 2009-05-26 17:57:24 +00:00
mtarini 0856e6a2eb added CosWedge which returns the cos of a wedge 2009-05-26 17:50:18 +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 0f4817d486 Correct a bug. 2009-05-23 20:14:53 +00:00
Paolo Cignoni 57a202111c Added the functor PointNormalDistanceFunctor used in the GetClosestFaceNormal. 2009-05-23 20:12:58 +00:00
Paolo Cignoni a0a965f17c Added the method GetClosestFaceNormal, that use the functor PointNormalDistanceFunctor. 2009-05-23 20:10:48 +00:00
Paolo Cignoni 291c2790af Removed harmless warnings 2009-05-22 07:54:42 +00:00
Paolo Cignoni e1e58a75cf added another shape to platonic, a camera. 2009-05-21 23:04:49 +00:00
Paolo Cignoni b441009e15 added an invalid method that says if a shot is "reasonable" or not. A shot is valid if its Intrinsics are valid. 2009-05-21 23:04:09 +00:00
Paolo Cignoni c5491807fd *** SIGNIFICANT CHANGE ***
The member 'camera' of the base trimesh class, is no more used since Dec 2006.His initial purpose was keeping intrinsics of the camera, but it is a long time that intrinsics have moved into the Shot class. 
The I/O procedure already comply this fact filling only the interal structure.
2009-05-21 23:02:48 +00:00
Paolo Cignoni f5126d7ffe renamed a EPSILON variabile to avoid name clash 2009-05-18 15:06:11 +00:00
Paolo Cignoni 143f9461dd moved (and renamed) trivial walker from apps/ to vcg/complex/trimesh/create 2009-05-18 14:19:12 +00:00
Paolo Cignoni 08ffe4b7a1 re-correct the assert that was causing a failure. The previous commit tho marching cubes.h (done by me!) was rather wrong. Sorry,. 2009-05-08 21:41:37 +00:00
ganovelli 0524e1ac62 corrected the implementation of IntersectionSegmentPlane (compiled .net only) 2009-04-29 09:37:42 +00:00
mtarini a7e5e51ddc added IsPolygonal, which tells you whether the mesh actually represents a polygonal mesh (false if triangle only) 2009-04-27 14:13:28 +00:00
Paolo Cignoni 1236df14c5 Added RemoveDuplicateFace Function 2009-04-23 21:21:21 +00:00
Nico Pietroni c73495b7ce added __VCG_DECIMATION_TRIFLIP to ensure unique inclusion 2009-04-22 15:13:41 +00:00
Paolo Cignoni 8bd0953add removed harmless warning 2009-04-22 10:31:33 +00:00
Paolo Cignoni cc0204e797 removed harmless warning 2009-04-22 10:30:04 +00:00
Paolo Cignoni 665fa05d1c Added RegularRecursiveOffset sampling function 2009-04-22 10:27:44 +00:00
Paolo Cignoni 312532aab3 added missing test on deleted faces 2009-04-21 15:42:18 +00:00
mtarini aeaec2ab4c All methods now set flags Faux (where appropriate) that identifies edges inside a polynomial face (quads & penta).
FaceGird now cuts closer aoround holes.
Rewritten Cilynder (too many errors in prev version)
2009-04-20 22:53:31 +00:00
mtarini 52de726be4 minor (commento) 2009-04-20 22:50:43 +00:00
mtarini 77f5129ac9 Aggiunto i flags Faux che identificano gli edge dentro una faccia poligonale. 2009-04-20 22:49:33 +00:00
Paolo Cignoni b399b4943f added two assert that checks that you have consistently prepared your mesh before feeding it into a grid for distance checking. 2009-04-19 21:20:08 +00:00
Paolo Cignoni fb261dc8bf added cleaning function to merge very close vertice (for the one who needs a unify duplicate vertices that unify also vertices that are not exactly the same 2009-04-19 21:13:36 +00:00
Paolo Cignoni 0c61619049 Solved bug about aliasing when resampling with signed distance thin and long triangles. 2009-04-10 15:05:49 +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
Paolo Cignoni 8be6f002a3 Significant rewrote of the ImportLocal framework. Now it can really manage differently typed meshes.
It still requires that for OCF meshes the user enable stuff as needed.
2009-04-05 23:33:04 +00:00
Paolo Cignoni 7f2d51828f added a missing cQ() constant member 2009-04-05 21:53:09 +00:00
Paolo Cignoni e702547041 added in the Append::Mesh function the possibility of copying also unreferenced vertices (indispensable for point sets!) 2009-04-04 16:58:21 +00:00
ganovelli dd468f9d5d compiled with gcc 2009-04-01 13:07:08 +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
Paolo Cignoni 12c61c4622 Added ByLine() method, which initializes the quadric as the squared distance from a given line.
This works with a vcg::Ray() too, but the caller should be aware that the distance "before" the ray origin is computed as if the ray were a line.
2009-03-31 09:17:39 +00:00
Paolo Cignoni 3447c82e88 Removed a few harmless warnings 2009-03-30 20:58:18 +00:00
Paolo Cignoni 066c2bdb8b Corrected ComputePoissonDiskRadius to Manage approximately the PointCloud Case, using area of the bbox as an approx of the surface area. 2009-03-27 15:09:14 +00:00
Paolo Cignoni 9a0b315fb0 Small change in poisson point sampling, we should call the sampler class with the input mesh 2009-03-26 10:51:44 +00:00
Paolo Cignoni 4420e5102b Strictly less than instead of less than equals in
RayTriangleIntersection
2009-03-25 08:27:58 +00:00
Paolo Cignoni cf028b728b Added parameter invertQuality to PoissonDiskSampling in order to invert
how quality influences density distribution
2009-03-25 08:22:03 +00:00
Paolo Cignoni 499822bc17 NO_QT defines to explicitly disable qt dependant behavior 2009-03-25 08:13:07 +00:00
Paolo Cignoni 2631ae5351 Added sph49f, disabled ImportLocal for a while 2009-03-25 07:51:28 +00:00
ganovelli 917343b0f5 removed the (useless) template parameter to Per[XXX]DeleteAttribute(mesh,name) 2009-03-20 10:22:16 +00:00
ganovelli 60c50bcf48 corrected vert:: to vertex:: 2009-03-20 07:15:20 +00:00
Paolo Cignoni e6fe311c6d Updated DepthSmooth to the recent library changes 2009-03-20 00:27:07 +00:00
Paolo Cignoni 42c90d1439 corrected two small compiling errors... 2009-03-19 22:11:35 +00:00
Paolo Cignoni 2ba11ecc4a Restructured a bit the stratified sampling approaches 2009-03-19 22:04:52 +00:00
Marco Di Benedetto 93dade9042 modified DistancePoint3Box3 for out-of-box distance. 2009-03-19 21:13:38 +00:00
Marco Di Benedetto 375e0cec74 added static member for vertex radius check (HasPerVertexRadius()). 2009-03-19 17:26:26 +00:00
Paolo Cignoni c955238597 Added a missing HasPerVertexRadius 2009-03-19 16:22:23 +00:00
Marco Di Benedetto 389cc089db Added non-const pointer accessor. 2009-03-19 11:13:17 +00:00
Marco Di Benedetto 0e2bc54b52 Added non-const pointer accessor. 2009-03-19 11:12:23 +00:00
Paolo Cignoni b8fc43e7c6 Added non optional per vertex radius component 2009-03-18 15:53:52 +00:00
Marco Di Benedetto 915a7b40a1 call IntersectionRayTriangle in Intersection_Segment_Triangle instead of generic Intersection (missing overload). 2009-03-17 18:59:20 +00:00
Marco Di Benedetto eeacaeff3b fixed WN and WT assignments (indices used). 2009-03-17 16:40:36 +00:00
Marco Di Benedetto a0e1593671 use const_iterator for input face container. 2009-03-17 16:39:23 +00:00
Paolo Cignoni c39498df1f Fixed CMeshO error 2009-03-12 15:56:31 +00:00
Paolo Cignoni 04e2464e3d Added RemoveTVertexByCollapse and RemoveTVertexByFlip methods 2009-03-11 16:43:16 +00:00
Nico Pietroni 6b781dc660 changed evaluation of AreaGlobal in InterpolationParameters function 2009-02-27 16:15:28 +00:00
Nico Pietroni d2bcd3dffa added in MidPoint inheritance of texture coordinates 2009-02-27 16:12:20 +00:00
Paolo Cignoni 17f0ac0431 added another grid building function. This one build up a possibly incomplete grid. 2009-02-16 00:59:24 +00:00
Paolo Cignoni 891aaef124 Corrected bug in the normalization of quality->radius of the poisson variable disk sampling 2009-02-11 09:38:41 +00:00
Paolo Cignoni 19ae359bf1 Added unified interface for open and close 0,1 intervals and
extern boxmuller gaussian generator.
2009-02-04 12:06:58 +00:00
ganovelli 573c151241 bug on search cycle corrected (it was looping forever with vertices and twice slower with other elements) 2009-01-29 11:27:32 +00:00
Paolo Cignoni b9949e8910 Added a custom macro to disable qt calls if not needed, just a temporary
solution
2009-01-29 11:12:57 +00:00
Paolo Cignoni 5b921d1159 max must begin with a capital M... 2009-01-29 10:49:34 +00:00
Paolo Cignoni 76f8093297 Namespace correction for max function 2009-01-29 10:46:39 +00:00
Paolo Cignoni d41a88bfe5 added handy constructor with the base mesh to vertex/face marker functors 2009-01-29 00:17:31 +00:00
Paolo Cignoni 92f9a2026b completed the refactoring of the variable disk sampling 2009-01-29 00:16:00 +00:00
Paolo Cignoni eaa4d2232b Refactored a bit the structure of the poisson sampling code to include the variable density sampling 2009-01-27 23:54:47 +00:00
Paolo Cignoni c9173c73fe corrected wrong invocation of istwomanifold check 2009-01-26 15:15:11 +00:00
ganovelli 79b2ad6eef added possibility to pass a functor to evaluate the distance between two vertices
other than the EuclideanDistance (which is the default value)
2009-01-23 17:15:43 +00:00
Paolo Cignoni 3d5ccb47f9 compilation fixes with eigen (norm2=>squaredNorm, a*b => a.dot(b)) 2009-01-23 16:58:47 +00:00
Paolo Cignoni f4ec24c552 Restored Ray-Triangle Intersection (as an extension of IntersectionLineTriangle) 2009-01-23 14:33:13 +00:00
Paolo Cignoni 9a47677ed2 compilation fixes with eigen 2009-01-22 23:10:24 +00:00
ganovelli f6b42772eb added IntersectionLineTriangle 2009-01-22 14:34:27 +00:00
granzuglia de75285ed0 added const qualifier to transpose function 2009-01-22 10:18:40 +00:00
Massimiliano Corsini 393ef8a41a add changing density 2009-01-21 17:39:40 +00:00
Paolo Cignoni ca1ac6323f add absolute distance resampling 2009-01-21 16:22:05 +00:00
Massimiliano Corsini ce6e4023c5 improve generatePoissonDisk performances 2009-01-21 15:40:16 +00:00
Massimiliano Corsini 226d111f9c modify generatePoissonDisk taking into account spatial hash properties 2009-01-20 11:06:12 +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 4f6cff78ed Yet another missing template keyword for gcc 2009-01-20 08:18:01 +00:00
Paolo Cignoni 92fd17590a Really really working poisson disk 2009-01-19 23:18:10 +00:00
Paolo Cignoni 713a6b6155 Passed const bbox parameter by reference in the getBBox 2009-01-19 23:12:11 +00:00
Paolo Cignoni 266ddc1a42 added a const operator to the spatial hashing iterator 2009-01-19 23:10:43 +00:00
ganovelli d6d380f09b corrected on operator = for the attributes (it was not assigning the _handle) 2009-01-19 12:57:47 +00:00
Paolo Cignoni 91968941c8 removed abs and sqrt ambiguities 2009-01-18 23:56:28 +00:00
Paolo Cignoni 0879d07401 Corrected a wrong template arg MyMesh into the right MeshType 2009-01-18 23:52:27 +00:00
Massimiliano Corsini 6be9fe3b03 fix typos 2009-01-18 19:33:50 +00:00
Massimiliano Corsini d0fcdcf5cd final version of the poissondisk sampling
(there is still a bug in GetInSphereVertex)
2009-01-17 17:37:06 +00:00
ganovelli af76e5fde8 added keyword "public" for deriving SpatialHashTable from SpatialIndex 2009-01-16 17:01:17 +00:00
Paolo Cignoni 4b1be10671 rewrote VertTmark to have a reasonable dummy behaviour (it is useless...) 2009-01-16 16:15:13 +00:00
Paolo Cignoni f1336a0085 still experimenting with the poisson sampling 2009-01-16 16:14:16 +00:00
Massimiliano Corsini 83350db29a poissondisk sampling finished... 2009-01-16 15:01:46 +00:00
Massimiliano Corsini 7bd8b4f19b poissondisk sampling completely restructure for performance 2009-01-16 11:30:19 +00:00
Massimiliano Corsini 87ed77aa88 fix return error on vertexattrib 2009-01-16 11:29:43 +00:00
matteodelle 1c65575000 Added faceface updatetopology in Sphere, otherwise it crashes! 2009-01-16 08:05:33 +00:00
Paolo Cignoni 07fd44359d Added Distribution Class, a more safe and slower class for managing distribution of scalar values that has the same interface of Histogram 2009-01-15 23:54:00 +00:00
Massimiliano Corsini dad1103184 poisson disk sampling (under construction...) 2009-01-15 22:38:37 +00:00
ganovelli 87b8c55144 added Allocator::IsValidHandle which returns true if an handle to an attribute is valid or if the attribute
has been removed. This modification affects timesh/allocate.h and trimesh/base.h
2009-01-15 17:41:59 +00:00
matteodelle 12e32feb59 Replaced forgotten CMeshO with MESH_TYPE in line 314 2009-01-15 17:31:23 +00:00
Massimiliano Corsini f5e4f86859 2009-01-15 17:03:08 +00:00
Paolo Cignoni 957fb711ed minor gcc compilation issues 2009-01-15 16:00:46 +00:00
Paolo Cignoni 0a287f7bce added missing function for setting flags on faces 2009-01-15 15:59:51 +00:00
Massimiliano Corsini 15ae5168f2 further step in poisson disk sampling development.. 2009-01-15 15:32:10 +00:00
Massimiliano Corsini b810569a61 use point<ScalarType> instead of Point3d in Grid(.) 2009-01-15 15:31:22 +00:00
Massimiliano Corsini a7c15f807d add index-to-box conversion 2009-01-15 15:30:07 +00:00
Federico Ponchio d0ad7cbacc fabs -> math::Abs 2009-01-15 14:29:05 +00:00
granzuglia 72eb2f753e added GetColumn3,GetColumn4,SetColumn 2009-01-15 13:42:30 +00:00
Paolo Cignoni ab8fe0462d added some missing typename for gcc compiling 2009-01-15 08:04:12 +00:00
Paolo Cignoni 0e037cabc1 added multisampling distance field evaluation 2009-01-15 01:31:09 +00:00
Paolo Cignoni f001af1c5c better comments and removed useless code 2009-01-15 01:25:15 +00:00
ganovelli 729cd02057 [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
2009-01-14 17:45:18 +00:00
Massimiliano Corsini fdaa2e88d1 poisson disk under development... (not working for now) 2009-01-14 17:12:12 +00:00
Paolo Cignoni 45ffbac554 added a forgot std:: 2009-01-14 16:22:40 +00:00
Paolo Cignoni 2497e3d286 Added Edge Uniform sampling function that takes samples uniformly only on the mesh edges by regularly subdividing them 2009-01-14 15:56:07 +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 d236258507 added silly stuff needed for the MS implementation of hash_multimap 2009-01-14 14:55:50 +00:00
Paolo Cignoni dec8245691 Corrected a missing underscore in a preprocessor define check 2009-01-14 13:33:33 +00:00
Paolo Cignoni 3f38ad70da Complete re-wrote of the refinement code. Now the predicate is called only once for each edge. no more std:maps are used but the new attributes to store temporary pointers inside newly subdivided faces. 2009-01-14 01:18:34 +00:00
Paolo Cignoni 9dc34faae4 added missing face flags clear/setting members 2009-01-14 01:16:11 +00:00
Paolo Cignoni 3cee0f23b5 commented out a addCell call that was undefined 2009-01-13 21:10:57 +00:00
Paolo Cignoni 9849e12bd1 removed nasty useless undefs 2009-01-13 15:52:27 +00:00
Paolo Cignoni fdf4e402f3 forgot a couple of std:: 2009-01-13 06:33:53 +00:00
Paolo Cignoni 017d27dc36 Better commnts and other minor beautifications 2009-01-13 06:27:01 +00:00
Paolo Cignoni a546c88a7c Heavy restructured the whole spatial hashing. Much shorter code. The dynamic part is now missing... 2009-01-12 22:46:00 +00:00
Massimiliano Corsini c4ca67e959 fix typo 2009-01-12 16:11:37 +00:00
Paolo Cignoni 417c52b7b0 Better comments clarifying the purpose of Samplers and Algorithms for sampling 2009-01-12 16:01:49 +00:00
Massimiliano Corsini 1a05696eb5 first sketch of the Poisson disk (projection-based) sampling 2009-01-12 14:22:03 +00:00
Massimiliano Corsini abbf0d60ce starting to implement PoissonDisk sampling 2009-01-11 15:43:58 +00:00
Massimiliano Corsini 44aa343da6 minor changes in poisson disk 2009-01-09 17:05:10 +00:00
Massimiliano Corsini 3586a13438 replace rand() with MarsenneTwister generator 2009-01-09 14:35:46 +00:00
Paolo Cignoni 51e1718626 added the possibility to decide the size of the grid with an optional parameter of the Set 2009-01-08 11:29:24 +00:00
Paolo Cignoni 28c4843567 Heavily restructured. Now more robust and allow also the creation of discretized surfaces 2009-01-08 11:26:49 +00:00
Paolo Cignoni 3e85ffd0ff New function for computing baric coords in a more robust way 2009-01-08 11:24:54 +00:00
Paolo Cignoni 20272bf7ac gcc compilation issues 2009-01-08 07:52:16 +00:00
ganovelli 8ae63ef1c3 - added optional parameter to return the closest vertex as a vertex attribute
- added a tolerance to check triangle inequality
2009-01-07 14:25:46 +00:00
ganovelli 2e7bde9f24 more clean up, unified single and multiple sources cases 2009-01-06 15:13:43 +00:00
Paolo Cignoni 0db413a1f4 fix compilation 2008-12-29 12:01:23 +00:00
ganovelli 818129d045 refactorized but Still to clean up;
It seems to work but "continuous" distance estimation cannot work with multiple sources.
In this case edge leght estimation is used.
2008-12-22 19:51:11 +00:00
Paolo Cignoni 56d93a02b6 Othography. Fartest -> Farthest 2008-12-21 07:44:29 +00:00
Paolo Cignoni 190e1612c7 added VVStarVF that computes the star of a given vertex exploiting VF adjacency 2008-12-21 01:41:07 +00:00
Paolo Cignoni eca304e5f5 mark of Vertex should not be named HasFaceMarkOcf!! 2008-12-21 01:39:46 +00:00
Paolo Cignoni 36c902097a put class in namespace tri, removed useless parameter from DistanceFromBorder() 2008-12-21 01:37:29 +00:00
ganovelli 157301b773 change to comply random generation 2008-12-19 10:40:31 +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 8a1fdbe37f [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:34:41 +00:00
ganovelli 045832c348 [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:34:17 +00:00
ganovelli d88ae15696 [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:33:51 +00:00
ganovelli 4f8ed978a7 [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:33:23 +00:00
ganovelli f9a1578c8d [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:33:01 +00:00
ganovelli 49b4970452 [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:32:32 +00:00
ganovelli c9b6f8f7c8 2008-12-19 10:31:56 +00:00
ganovelli 698f6cbd7e [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:30:51 +00:00
ganovelli d3682195ca replaced a "3" with a f->VN() 2008-12-18 17:53:42 +00:00
ganovelli db04989f13 added support for meshes with holes 2008-12-18 17:52:48 +00:00
Paolo Cignoni 20b46e3122 added the default use of a safe random generator for shuffling vectors (mingw rand seems really bad...) 2008-12-18 00:30:52 +00:00
Paolo Cignoni 0b15c9b4b4 added a few const, and a default value for the generate(int) call 2008-12-18 00:29:03 +00:00
Paolo Cignoni c2c940338e added a missing PerFaceFromCurrentVertexNormal mode 2008-12-18 00:27:47 +00:00
Marco Callieri 7548c5e2ac corrected a pow argument casting 2008-12-16 09:52:04 +00:00
Paolo Cignoni 0f0ac756e4 Polar Functor is now templatized 2008-12-15 13:16:00 +00:00
Paolo Cignoni a9a17a0713 Aligned with current implementation of RandomGenerator 2008-12-15 08:49:02 +00:00
ganovelli ca3f973398 added unsupported to deprecated in the warning 2008-12-12 18:11:42 +00:00
ganovelli 76eefc7fb8 added unsupported to deprecated in the warning 2008-12-12 18:10:36 +00:00
Paolo Cignoni 8ef495be20 added test to skip degenerate triangles in curvature computation 2008-12-12 15:08:36 +00:00
Paolo Cignoni 4e2808a64e added assert for avoiding to put trash into a histogram 2008-12-12 15:06:27 +00:00
Paolo Cignoni 46cc8c7327 Removed harmless warnings 2008-12-11 13:56:37 +00:00
Paolo Cignoni 85dc63a154 moved here from meshlab. Long time due. 2008-12-11 13:52:25 +00:00
Paolo Cignoni 3485b76d8f Added explicit casts 2008-12-09 11:36:34 +00:00
Paolo Cignoni 8f591655f3 added comment on the two critical asserts 2008-12-09 07:52:27 +00:00
Paolo Cignoni 2143a5138a corrected bug in PerVertexFromCurrentFaceNormal (wrong use of Construct() ) 2008-12-09 07:51:33 +00:00
Paolo Cignoni a37e44cff1 Made create:box working. Current version was plain wrong. Thanks to Lorenzo Marchi 2008-12-08 14:56:28 +00:00
Paolo Cignoni 0047c70cae Translated comments, added various notes, removed some dead code, changed a bit the interface of the default edgelen predicate 2008-12-05 22:57:20 +00:00
Paolo Cignoni 0e13472efb corrected a wrong assert in grid creation function 2008-12-05 22:55:36 +00:00
Paolo Cignoni e744ca1c0e added the missing HasPerVertexMark 2008-12-05 22:45:05 +00:00
Paolo Cignoni f6388be600 added VertexSet, the dual of UpdateFlags::VertexClear(bitmask); 2008-12-05 22:44:03 +00:00
Paolo Cignoni 007d6b94f5 added two const to the next and prev index returning functions 2008-12-05 22:42:55 +00:00
Paolo Cignoni cca3b3ad5f cleaned up a lot of typename gcc compilation issues 2008-12-02 10:04:16 +00:00
Paolo Cignoni 928c8dd997 Removed harmless warnings 2008-11-28 14:55:45 +00:00
Paolo Cignoni 62c3f721aa Added missing include trimesh/allocate.h 2008-11-28 13:45:39 +00:00
Paolo Cignoni 13e5060688 Re-added the original constructor with the seed. Very useful for using custom static generators. 2008-11-27 21:04:17 +00:00
ganovelli 3cbdda3232 added EmptyEEAdj to the type holder 2008-11-27 18:21:01 +00:00
ganovelli 1d263ec3ff added the possibility to include a container of edges as a third parameter.
This mod should be  fully backward compatible (tested .net 2005 and gcc 4.2.4)
2008-11-27 18:01:07 +00:00
Massimiliano Corsini b73fba8706 refactoring 2008-11-27 16:39:05 +00:00
Paolo Cignoni 46b3024de6 Changed as to include new Random methods 2008-11-27 15:05:36 +00:00
Massimiliano Corsini c13722fd54 minor changes 2008-11-27 11:49:17 +00:00
Massimiliano Corsini 67d185c384 other bugs fixed 2008-11-27 11:37:23 +00:00
Massimiliano Corsini 7b8d3a07f0 first fixes 2008-11-27 11:31:01 +00:00
Massimiliano Corsini 50a436594e re-styled and improved uniform random number generator 2008-11-27 11:27:54 +00:00
ganovelli 9d8e452e65 added Alloc to support polygon meshes 2008-11-26 17:58:15 +00:00
ganovelli 01750729b6 missing checks on deleted simplex added 2008-11-26 17:57:09 +00:00
ganovelli faeef173e8 added AddEdge and RemoveEdge (still much ongoing) 2008-11-26 17:56:00 +00:00
ganovelli 4cae6b5107 added the update of the pointers related to the AddEdges 2008-11-26 17:46:31 +00:00
ganovelli a00abdc73c added EmptyHEData in EdgeBase 2008-11-26 17:43:28 +00:00
ganovelli cb547de5ec removed a few bugs, added EmptyHEData class 2008-11-26 17:42:55 +00:00
ganovelli 327874865a removed a few bugs on calls to Alloc() 2008-11-26 17:41:47 +00:00
Massimiliano Corsini 992a808685 2008-11-20 17:00:30 +00:00
Paolo Cignoni 8e23847cab Distance functor is now a template parameter 2008-11-20 16:24:42 +00:00
Paolo Cignoni c7719d7d35 Corrected wrong max_band 2008-11-20 13:29:26 +00:00
Paolo Cignoni 5ee16ee977 Removed unused static field max_band 2008-11-20 13:27:50 +00:00
Paolo Cignoni 619f3f69ef Addedd missing include 2008-11-20 13:26:59 +00:00
Paolo Cignoni 42709146e6 Addedd missing std namespace befor make_pair 2008-11-20 13:26:26 +00:00
Massimiliano Corsini 99e6ea5dd6 add fake poisson-disk sampling 2008-11-17 12:52:17 +00:00
Paolo Cignoni 5c6c7cafd5 changed the interface of the texel sampling function. Now width and height of the sampling texture can be different 2008-11-14 15:12:02 +00:00
Paolo Cignoni 360da1dd58 small changes (this-> disambiguations) and a type hack to grant compilation on mac gcc 2008-11-13 09:44:46 +00:00
ganovelli 2dfa6976ac [EDGE_SUPPORT] first working draft. It contains a class with two static function to compute indexed data structure from half edges and viceversa 2008-11-12 17:09:26 +00:00
ganovelli f80c878644 [EDGE SUPPORT] Added template parameter to query function to comply mods in vcg/complex/trimesh/base.h 2008-11-12 16:21:30 +00:00
ganovelli 81a4a5b4f5 added missing cC() access to color 2008-11-12 16:20:53 +00:00
ganovelli 62ff8885c0 Added missing Prev and Next to PolyInfo
[EDGE SUPPORT] Added PFEAdj (pointer to edge)
2008-11-12 16:19:52 +00:00
ganovelli d3ba33039b [EDGE SUPPORT] Added template parameter to qyery function to comply mods in vcg/complex/trimesh/base.h 2008-11-12 16:18:28 +00:00
ganovelli 085d51edfa [EDGE SUPPORT] added FEAdj component 2008-11-12 16:17:07 +00:00
ganovelli 896e0edc04 minor - just identation 2008-11-12 16:15:52 +00:00
ganovelli be05277504 added the components to implement the half edge data structure:
HEOppAdj   : pointer to the opposite half edge
HEVAdj     : pointer to the vertex 
HENextAdj  : pointer to the next half edge
HEPrevAdj  : pointe to the previous half edge
EFAdj      : pointer to the face
HEdgeData  : groups all previous except (HEPrevAdj)
2008-11-12 16:14:13 +00:00
ganovelli b6f21780dc added workaround for std::vector<bool> bitwise implementation.
The workaround is a rough reimplementation of std::vector. 
If you can, use "char" as temporary data and cast it when you need.
2008-11-12 16:10:04 +00:00
ganovelli 274e20b3df changed m.HasFFTopology to HasFFTopology(m) 2008-11-12 16:06:59 +00:00
ganovelli 122f0412c8 made compliant to polygon_support 2008-11-12 16:03:24 +00:00
ganovelli c7e86ab57a remove unreferenced variable 2008-11-12 16:01:11 +00:00
ganovelli a5cbc8c7f8 added return to RemoveNonManifoldVertex 2008-11-12 16:00:27 +00:00
ganovelli e37cca54a3 [EDGE SUPPORT]
Added default template to TriMesh to include the edges.
Added peredge attributes.
These modification do not require any change to the code using TriMesh, but it allows
to specify a real type of edge in case you want to use it.
2008-11-12 15:51:01 +00:00
ganovelli 1aa88e635b added update of newEnd in AddFaces
Added [de]allocation of edges and per-edges attributes.
2008-11-12 15:46:16 +00:00
Paolo Cignoni d124cae6fb added a missing include 2008-11-07 15:37:46 +00:00
Paolo Cignoni 2e7c97e90e Corrected the update cycle in the AddFace. Thanks to Michele Vannoni for pointing out this bug! 2008-11-07 15:36:19 +00:00
Paolo Cignoni df84db769c Rewrote the function for the selection and counting of non manifold vertices. Now it does not require VF topology, just FF. 2008-11-07 10:12:39 +00:00
Federico Ponchio a9e5756eda Distortion parameter zeroed on creation! 2008-11-06 15:36:44 +00:00
Paolo Cignoni 0927eaf2fb sounds like I forgot to commit the addition of Transpose compatibility + fix related to recent Eigen change 2008-11-04 12:33:47 +00:00
Paolo Cignoni cb22994ef5 Restored TMARKER as a copied, not referenced, class 2008-11-03 16:21:52 +00:00
mtarini b3620bb320 implemented ToEulerAngles + minor changes and fixes. 2008-11-01 15:54:13 +00:00
Paolo Cignoni 336de84d19 Added an unbiased montecarlo and a revised (still to be improved) stratified sampling 2008-11-01 07:22:29 +00:00
Paolo Cignoni 4e46ff3be6 Added HasPerVertexRadius(mesh) 2008-10-31 12:27:37 +00:00
Paolo Cignoni dfc6417426 Changed IPToP calls into IPiToPf, Markers passed by reference 2008-10-31 10:40:06 +00:00
Paolo Cignoni dfc97ba1f2 fix Matrix44 infinite product, make glGetv not allocate temporary 2008-10-30 10:47:08 +00:00
Paolo Cignoni 49c72bc54e Disambiguated some grid utility names (IPtoTP into IPfToPf and IPiToPf) in order to avoid ambiguities (due to automatic cast?) 2008-10-30 09:01:03 +00:00
Paolo Cignoni 6627c21d43 added a missing dot() product for the conservative people still using deprecated stuff... 2008-10-30 07:39:33 +00:00
Paolo Cignoni 60eb470c6c of course fixing msvc breaked gcc... not anymore... spoke too fast gcc 4.0.1 had troubles 2008-10-29 15:52:07 +00:00
Paolo Cignoni e90fd9ca16 of course fixing msvc breaked gcc... not anymore 2008-10-29 15:36:08 +00:00
Paolo Cignoni 0414cbc2f3 Fixed includes, new interface to specify polar functions 2008-10-29 15:26:45 +00:00
Paolo Cignoni c8506daaff fixed a couple of MSVC issues, meshlab compile, the plugins soon... 2008-10-29 14:01:44 +00:00
Paolo Cignoni 7b075b3905 mvsc does not like #warning 2008-10-29 13:17:32 +00:00
Paolo Cignoni 69a82d6174 fix the is "inaccessible" issue with g++-4.0.1 - more fixes ;) 2008-10-29 11:29:57 +00:00
Paolo Cignoni 696f763c3d fix the is "inaccessible" issue with g++-4.0.1 2008-10-29 11:28:51 +00:00
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