Commit Graph

1302 Commits

Author SHA1 Message Date
ganovelli c2e3d66d19 added template parameter in function call 2011-12-21 16:10:30 +00:00
Paolo Cignoni 95e69075e4 Yet another removal of the usage of the faceprojection flags 2011-12-19 00:51:49 +00:00
Paolo Cignoni 0fe6fdaedc Yet another removal of the usage of the faceprojection flags 2011-12-19 00:51:03 +00:00
Paolo Cignoni 11fa2ba58a Added ComputeEdgeHistogram to Stat functions 2011-12-18 22:33:27 +00:00
Paolo Cignoni 9af315bb18 Two significant changes
1) the name of the supposedly non changed mesh is done explicit in the template name 
2) If the the selection of the vertexes is not consistent with the face selection the append could build faces referencing non existent vertices so it is mandatory that the selection of the vertices reflects the loose selection from edges and faces (e.g. if a face is selected all its vertices must be selected
2011-12-15 07:52:51 +00:00
Paolo Cignoni 3b61972116 Implemented the correct management of per edge attribute. It was half done... 2011-12-15 07:23:51 +00:00
Paolo Cignoni 412ef1aa65 Added UpdateSelection::VertexFromEdgeLoose
added parameter for preserving the old selection to the UpdateSelection::VertexFromFaceLoose
2011-12-14 08:54:54 +00:00
Paolo Cignoni ae58754015 Significant change of names to the UpdateSelection Class.
now follows the standard VertexClear instead of ClearVertex.
Updated all the other files of vcg using it...

(added also selection stuff for edges..)
2011-12-13 10:07:00 +00:00
Paolo Cignoni 5ec7fc1e4a added missing const to the Index function 2011-12-12 23:29:16 +00:00
Paolo Cignoni c038b3584e Corrected blatant bugs in the updateTopology--VertexEdge 2011-12-12 23:28:25 +00:00
ganovelli ab373e50cd missing include added 2011-11-21 16:12:48 +00:00
Paolo Cignoni 3d6857a0b0 re-added the empty constructor to marker face... 2011-11-21 14:04:23 +00:00
Paolo Cignoni 5bcb52529b harmless gcc warning 2011-11-21 09:38:00 +00:00
Paolo Cignoni b09619c1ea harmless gcc warning 2011-11-21 09:37:18 +00:00
Paolo Cignoni 5af75e6dac Removed bug in the ImportEdgeAdj, ImportFaceAdj, ImportHEdgeAdj. All of the same kind...
for(unsigned int vi = 0; vi < 2; ++vi)
 {
   size_t i = Index(mr,er.cEEp(vi));
   el.EEp(i) = (i>ml.edge.size())? 0 : &ml.edge[remap.edge[i]];
   el.EEi(i) = er.cEEi(i);
 }

 el.EEp(i)  should be  el.EEp(vi) !!!!
2011-11-21 09:36:21 +00:00
Paolo Cignoni 0e76a8e0ce Removed the useless faceprojection flag update function. No more needed! 2011-11-21 09:10:52 +00:00
Paolo Cignoni 285d78d293 removed the default empty constructor to avoid the use of the object without a mesh.... 2011-11-21 09:07:36 +00:00
Paolo Cignoni 342f182ee0 Added RemoveDuplicateEdge and CountNonManifoldEdgeEdge 2011-11-15 11:20:12 +00:00
Paolo Cignoni f9a7860f5e Added a much more robust IntersectionPlaneMeshQuality function to compute the intersection between a mesh and a plane that exploit quality for storing the distance from the plane and to make consistent decision about the cutting of the plane... 2011-11-15 11:19:08 +00:00
Paolo Cignoni e0055f8b5c added a missing const... 2011-11-15 11:15:24 +00:00
Paolo Cignoni 2ab3b3ab5b Changed the semantic and the return value of the generic DeleteAttribute (e.g. the one that does not take a type)
** It must not crash if you try to delete a non existing attribute, 
because you do not have a way of asking for a handle of an attribute for which you do not know the type.
2011-11-15 11:05:35 +00:00
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
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 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
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 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
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 05ba578f8e added missing std prefix 2011-06-07 13:48:49 +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 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
Paolo Cignoni 7324e75142 mismatch between the edge.EVp(i) versus edge.V(i) usage. 2011-05-31 08:46:38 +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 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 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
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 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 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 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
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 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
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
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
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 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 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 2e6bc99646 harmless gcc warnings 2011-02-17 11:39:21 +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