Commit Graph

2732 Commits

Author SHA1 Message Date
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