Commit Graph

2270 Commits

Author SHA1 Message Date
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 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 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 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 7977e270c5 added the possibility of customizing the histogram bucket size 2010-09-13 09:47:23 +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 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
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
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 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 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 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
Nico Pietroni 066bc0b7cf changed calls to the new InterpolationParameters function 2010-05-25 14:54:50 +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
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 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
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
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 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 956f343087 added missing typenames to new rayspherical fucntion 2010-04-21 21:08:08 +00:00
Nico Pietroni 7c89077eb7 Added function RaySpherical 2010-04-21 17:21:43 +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
granzuglia 9cd42be265 removed illegal *m.vert.end() 2010-04-12 12:45:06 +00:00
Marco Di Benedetto 38a4636b51 added generic functors to attribute seam. 2010-03-29 16:27:41 +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 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 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 3b770c935a added updateQuality Vertex Clamp 2010-03-18 14:20:29 +00:00
Paolo Cignoni 3976724c18 removed harmless warnings and improved Cone generator 2010-03-18 10:07:39 +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 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 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 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 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
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
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
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 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 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 32619f1625 harmless gcc compiling issues 2009-12-03 23:17:46 +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 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 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 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
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 fdd33df567 minor changes 2009-10-14 16:15:50 +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
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 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
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
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
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
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
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
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
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
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
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 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
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 bb97c3a1ec changes in order to compile with gcc 3.x 2009-07-15 16:27:29 +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
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
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
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 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
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 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
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 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
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 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 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 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
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
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 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 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 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
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 2ba11ecc4a Restructured a bit the stratified sampling approaches 2009-03-19 22:04:52 +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 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 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 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
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
ganovelli d6d380f09b corrected on operator = for the attributes (it was not assigning the _handle) 2009-01-19 12:57:47 +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
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
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
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
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 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
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 28c4843567 Heavily restructured. Now more robust and allow also the creation of discretized surfaces 2009-01-08 11:26:49 +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
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 36c902097a put class in namespace tri, removed useless parameter from DistanceFromBorder() 2008-12-21 01:37:29 +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 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 c2c940338e added a missing PerFaceFromCurrentVertexNormal mode 2008-12-18 00:27:47 +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 cca3b3ad5f cleaned up a lot of typename gcc compilation issues 2008-12-02 10:04:16 +00:00
Paolo Cignoni 62c3f721aa Added missing include trimesh/allocate.h 2008-11-28 13:45:39 +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
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
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 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 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
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 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 e587581275 add transposeInPlace and duplicate V(int) 2008-10-29 11:17:11 +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 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 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
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
Paolo Cignoni 64fcbc961a compilation fix for 64bits systems 2008-10-24 12:41:50 +00:00
ganovelli 4783ac9a62 added an assertion 2008-10-24 10:26:28 +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
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
Paolo Cignoni 413001c79b The fr parameter is now declared as const in local function ImportFace 2008-10-08 14:44:56 +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
Paolo Cignoni b58cabc1b6 better comment at the begininning explaing a bit the Refine templated mechanism. 2008-10-07 07:02:01 +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 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 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 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
Paolo Cignoni 8143b27315 added missing include callback.h 2008-09-29 10:12:38 +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 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 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
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
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
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 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
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 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
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 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 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 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 a880db7489 modified white balance filter to use a custom color to correct white. 2008-07-23 15:29:14 +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
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 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 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 a6f9f33a62 removed references to the meshlab code (qdebug and leaked mesh types) 2008-07-03 21:39: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
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
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
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 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 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
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 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 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
ganovelli 1f929ed8f4 added Trimesh destructor to purge unremoved PerVertex[PerFace]Attribute 2008-05-16 10:07:36 +00:00
Paolo Cignoni 92b267eaa8 added VertexFromQualityRange selection 2008-05-16 04:22:52 +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 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
Paolo Cignoni 4b43ac4de8 First working Version 2008-04-11 10:14:43 +00:00
Paolo Cignoni fc917d5080 moved Index function from append to the allocate 2008-04-10 09:18:57 +00:00
Paolo Cignoni a68e2a247e New version of PlanarEdgeFlip::UpdateHeap method 2008-04-08 14:06:31 +00:00
Paolo Cignoni f240adbf08 Fixed bug in PlanarEdgeFlip::UpdateHeap method. 2008-04-08 13:53:15 +00:00
Paolo Cignoni c5a92fd4c0 added missing std:: 2008-04-08 09:51:15 +00:00
Paolo Cignoni a8e1f18844 Added TopoEdgeFlip class. Some refactoring. 2008-04-07 13:48:35 +00:00
Paolo Cignoni 598cb77fb6 Changed the edge split predicate, now it takes a pos instead of two pnts
Added quality interpolation
2008-04-07 12:58:48 +00:00
Paolo Cignoni 65933201d7 Added texture topology computation 2008-04-07 08:20:26 +00:00
Paolo Cignoni 8b7d16f29d added methods for computing various kind of curvatures indicator from the HK values 2008-04-04 13:13:55 +00:00
Paolo Cignoni 9799717a58 minor changes to the topology correctness checks 2008-04-04 10:27:34 +00:00
Paolo Cignoni 46096f6b64 Cleaned up names, now Kg() gives back Gaussian Curvature (k1*k2), while Kh() gives back Mean Curvature 1/2(k1+k2) 2008-04-04 10:26:12 +00:00
Paolo Cignoni 9a31f6318d template the reorder functions on the vector types (for ocf) 2008-04-03 22:47:10 +00:00
Paolo Cignoni 9f5f1f9fd3 Added templated parameter in PlanarEdgeFlip to set quality function for triangles. 2008-04-02 19:32:26 +00:00
Paolo Cignoni 82976a2001 f->P(i) instead of f->V(i)->P() 2008-03-29 12:05:59 +00:00
Paolo Cignoni dfa921ff88 Refactoring in the code written to retrieve four vertexes around the edge to flip 2008-03-26 15:01:44 +00:00
ganovelli 929c3d3276 fixed bugs sign of principal direction and mean curvature value 2008-03-25 11:00:56 +00:00
Paolo Cignoni 3e090a41ff Added a test to avoid degenerative flip which produce two identical overlapping faces.
Little code refactoring.
The planar swap now try to improve the average quality of faces, instead of improving the quality of the worst face.
2008-03-20 15:45:54 +00:00
Paolo Cignoni c2bec8758d Added safer way of computing the quality histogram, robust in the case the mesh contains some outlier value (very high or very low) that makes the choice of the beginning interval wrong 2008-03-19 05:24:39 +00:00
Paolo Cignoni d014eae1bc added color interpolation to butterfly 2008-03-18 10:31:47 +00:00
ganovelli 8a265c9d32 taubin and desbrun estimates added (-> see vcg/simplex/vertexplus/component.h [component_ocf.h|component_occ.h ] 2008-03-17 11:29:59 +00:00
Paolo Cignoni 7c37f033e1 Added check on deleted faces in RemoveDegenerateFace 2008-03-11 14:16:40 +00:00
Paolo Cignoni 3d4222b231 Completed the garbage collecting functions CompactVertexVector and CompactFaceVector. 2008-03-11 09:22:07 +00:00
Paolo Cignoni d78ce1aee8 Minor changes. 2008-03-08 12:43:26 +00:00
Paolo Cignoni 378008bc5e added HasConsistentPerWedgeTexCoord 2008-03-06 08:37:16 +00:00
Paolo Cignoni 2aac6ba625 TriEdgeFlip::ComputPriority now use vcg::CircumCenter(triangle) to compute circumcenter coordinates 2008-03-02 11:00:10 +00:00
Paolo Cignoni 9841c8db32 _pos.V(i) become _pos.F()->V(i); TriEdgeFlip now access members of parent class with this->... 2008-03-01 11:16:30 +00:00
Paolo Cignoni 9703ced0df Added HasPerVertexColor static function 2008-02-21 17:27:06 +00:00
ganovelli 0b3e46c93c added Cylinder(..). the filename platonic.h is lesser and lesser significant... 2008-02-15 14:38:32 +00:00
ganovelli 9751b6fc2c changes to use vcg::vert::ImportLocal 2008-02-15 12:51:59 +00:00
Paolo Cignoni 73757c1177 added missing include matrix33 2008-02-15 08:08:59 +00:00
Paolo Cignoni b8f1e0f612 added a missing IsD() check 2008-02-07 10:24:51 +00:00
Paolo Cignoni fcf54790ea added hasPerWedgeColor and HasPerWedgeNormal 2008-01-28 14:46:03 +00:00
Paolo Cignoni eab6ea2400 added HasPerFaceNormal and HasPerVertexNormal 2008-01-28 08:42:07 +00:00
Paolo Cignoni 58482cfd03 added management of normals 2008-01-28 08:39:56 +00:00
Paolo Cignoni 5e52fd038c corrected small bug in RemoveDuplicateVertex 2008-01-24 11:52:05 +00:00
ganovelli f7e63772a2 include added 2008-01-19 17:43:49 +00:00
ganovelli 7051654171 more appropriate function names, licence updated, comment added 2008-01-12 19:41:46 +00:00
ganovelli c919dca603 Recompiled from previous out of date version. Still to revise but working 2008-01-12 19:07:05 +00:00
Paolo Cignoni 5519491d1f changed radius from percentage based to absolute and reverted the sign of the default walking 2007-12-18 17:30:04 +00:00
Paolo Cignoni 8b69adbfbd removed harmless gcc warnings 2007-12-13 17:57:33 +00:00
Paolo Cignoni 1f38a990b5 forgotten required std:: 2007-12-11 20:18:55 +00:00
Paolo Cignoni 7d6a210e75 Added the CompactVertexVector garbage collecting function. 2007-12-11 11:36:03 +00:00
Paolo Cignoni 200add7664 disambiguated pow call (again) 2007-11-23 17:02:47 +00:00
Paolo Cignoni 5de12ccbf3 disambiguated pow call 2007-11-23 15:42:11 +00:00
ganovelli 743e4f7a9e compilation with gcc 2007-11-20 09:50:32 +00:00
ganovelli a5d00b1c71 added missing newline at the end of file 2007-11-20 09:49:53 +00:00
ganovelli 79067524eb added updating of vertex and face normals 2007-11-14 11:56:23 +00:00
Federico Ponchio 3bb9c7cbc6 Addded check for no color in mesh 2007-11-06 16:12:24 +00:00
Paolo Cignoni b50e3f7760 added selection to the pasodoble smoothing 2007-11-05 23:47:20 +00:00
Paolo Cignoni c2f8cdac1f removed past end access in an assert 2007-11-05 23:46:43 +00:00
Paolo Cignoni 573ff87db2 Added a missing IsD() test 2007-10-29 11:32:46 +00:00
Paolo Cignoni d063cb7493 bug in FaceBorderFromNone corrected (same as in Topology.h) Ganovelli 2007-10-22 14:55:07 +00:00
Paolo Cignoni 6144006bfd Re-Wrote basic build function 2007-10-19 22:29:36 +00:00
Paolo Cignoni 12c8c9f3ff Added Allocator::DeleteFace and Allocator::DeleteVertex; Now the use of SetD() should be deprecated. 2007-10-16 16:46:53 +00:00
Massimiliano Corsini 1e6b800880 remove signed/unsigned warning 2007-10-09 12:04:06 +00:00
Paolo Cignoni 6cee7ca8cd Overloaded Intersection function to compute trimesh-plane intersection,it return the set of faces that are contained into intersected cells. 2007-09-19 12:16:31 +00:00
Paolo Cignoni c704229b67 corrected computation of Barycenter 2007-08-20 21:06:29 +00:00
ganovelli be681204b5 added 2007-07-31 12:31:34 +00:00
Paolo Cignoni 3019fb9177 Added remove degenerate vertex to manage vertex with NAN coords 2007-07-24 07:09:49 +00:00
Paolo Cignoni 91cbd0047f added the missing PerVertexNormalizedPerFaceNormalized 2007-07-12 23:11:35 +00:00
ganovelli 66c083f919 added return type 2007-07-05 16:32:04 +00:00
Federico Ponchio ec52ffd973 *** empty log message *** 2007-06-15 15:04:43 +00:00
Federico Ponchio acc11c1df4 *** empty log message *** 2007-06-11 15:26:30 +00:00
Paolo Cignoni f25f034dcb Minor changes. 2007-06-07 15:34:11 +00:00
Paolo Cignoni 7c12dca79d Minor changes : replaced TVp and TVi calls with VTp and VTi respectively. 2007-06-07 10:20:29 +00:00
Paolo Cignoni 080ec71ca5 Use the barycenter function from triangle3.h instead of
the one in face\base.h.
2007-06-06 15:38:57 +00:00
Nico Pietroni ac2edcede5 compiling error resolved 2007-06-06 14:26:51 +00:00
Paolo Cignoni 90217d66c4 Replaced call to old StarSize method with NumberOfIncidentFaces 2007-06-04 06:45:05 +00:00
Federico Ponchio 511f4053c9 *** empty log message *** 2007-06-01 09:07:23 +00:00
Federico Ponchio 7823c5dba1 FIxed off-by-one error on FaceBorderFromNone. 2007-05-31 15:24:50 +00:00
Paolo Cignoni e4aa42118a Small gcc compiling issues 2007-05-31 10:08:16 +00:00
Paolo Cignoni f354a9f445 Small gcc compiling issues 2007-05-31 09:39:56 +00:00
Federico Ponchio 007d53b7e0 *** empty log message *** 2007-05-30 15:09:58 +00:00
Federico Ponchio 73d01b5408 *** empty log message *** 2007-05-30 14:03:49 +00:00
Federico Ponchio 35d53d62c3 VFi++ -> ++VFi 2007-05-29 00:07:06 +00:00
Paolo Cignoni a9ed51c145 Added some comments, and cleared startup a little 2007-05-22 15:25:14 +00:00
Paolo Cignoni dd6a5552dc Added VertexClear 2007-05-22 15:19:42 +00:00
Paolo Cignoni 97d7baf66c Corrected gcc compiling issues 2007-05-21 13:22:40 +00:00
Paolo Cignoni 7ec9437835 Corrected gcc compiling issues 2007-05-21 11:12:10 +00:00
ganovelli 45bd389107 changes to comply "plus" types 2007-05-04 16:34:31 +00:00
Paolo Cignoni 7a36b9fadd only use typename when necessary 2007-05-02 13:25:45 +00:00
Nico Pietroni 176c70e7d7 *** empty log message *** 2007-04-24 09:44:48 +00:00
Paolo Cignoni 3b9bf21738 Corrected bug in selectionVertexFromFaceStrict 2007-04-20 10:11:51 +00:00
Nico Pietroni 058eed2f38 - line 152 changed call intersection to IntersectionPlaneTriangle because changing in function's name 2007-04-10 22:46:57 +00:00
Paolo Cignoni e7cf8d9203 Changed use of selected to visited flags. Improved variable namings and comments 2007-03-27 09:40:47 +00:00
Paolo Cignoni 81bfbcaed8 corrected managment of selected flag when refining the whole mesh flipmesh 2007-03-27 09:25:14 +00:00
Paolo Cignoni f0eec0788b added honoring of selected flag for flipmesh 2007-03-27 09:23:32 +00:00
Paolo Cignoni ae9d8a8535 Solved an issue related to different casting double-float between gcc 3 and gcc 4 2007-03-22 11:07:16 +00:00
Paolo Cignoni 8f6e26f281 Substituted std::max with vcg::math::Max 2007-03-16 10:51:46 +00:00
mtarini 84946de883 Texture coord name change! "TCoord" and "Texture" are BAD. "TexCoord" is GOOD. 2007-03-12 15:42:11 +00:00
mtarini 22fd220c6f Texture coord name change! "TCoord" and "Texture" are BAD. "TexCoord" is GOOD. 2007-03-12 15:37:19 +00:00
Paolo Cignoni 16ca848580 Added missing include and changed the call to jacobi 2007-03-08 22:48:17 +00:00
Paolo Cignoni 0ee9210dd2 std::numeric_limits<ScalarType>::max() -> (std::numeric_limits<ScalarType>::max)()
to avoid annoying misunderstaindings on msvc8
2007-02-27 15:17:17 +00:00
Paolo Cignoni 02beca15e3 Added Rad to the NormalThr Option and removed a bug in multiple exectuion of non optimal simplification (missing an isD check) 2007-02-25 09:20:10 +00:00
Paolo Cignoni 5ec1f9b0d3 Added guards on msvc pragmas 2007-02-22 09:18:41 +00:00
ganovelli 17560a65c0 Added HasPerVertexFlag 2007-02-14 15:31:41 +00:00
mtarini 28eb5780f0 added parameter theta (from conformal to equiareal) to AreaPresTextureOptimizer.
Improved feature lists (comments).
2007-02-02 04:11:00 +00:00
mtarini 436c9ae56c added three general-utility global functions for texture coordinates: SmoothTextureCoords, IsFoldFree, MarkFolds (see descriptions) 2007-02-02 01:39:58 +00:00
mtarini cea2074e7d added a few general comments on AreaPreserving optimizer, recapping optimizer features. 2007-02-02 01:23:47 +00:00
mtarini 5a341ba1f4 First version: general virtual class for texture optimizers. A subclass for area preservation. 2007-02-02 01:18:15 +00:00
mtarini 4b0950bf11 First version: general virtual class for texture optimizers. A subclass for area preservation. 2007-02-02 01:16:27 +00:00
mtarini d1f3afae97 First version: general virtual class for texture optimizers. A subclass for area preservation. 2007-02-02 00:55:35 +00:00
Paolo Cignoni cc7146cc86 Added small comment to grid function 2007-02-01 06:38:27 +00:00
Paolo Cignoni 5c9ed4eb3b Added FaceFromBorder 2007-02-01 06:37:05 +00:00
Paolo Cignoni a2439416b2 Remove some usless code in Minimum Weight Triangulation. 2007-01-31 15:25:49 +00:00
Paolo Cignoni 9cf8cbd534 Bugfix the init function. 2007-01-31 15:24:30 +00:00
Paolo Cignoni 33d860cbb9 Bug fix 2007-01-31 11:46:12 +00:00
mtarini 5b54eecefa aggiunta la VertexBorderFromNone (flag bordo per vertici senza richiedere nulla) 2007-01-30 18:49:23 +00:00
Paolo Cignoni ef3acb4fc8 Removed unuseful CoordType test 2007-01-27 13:14:34 +00:00
Paolo Cignoni 2797b41cd5 Corrected ClearHeap Bug (thanks to pirosu) 2007-01-26 21:27:05 +00:00
Paolo Cignoni 9732b0f8b8 Added Finalize() method to the interface, corrected minor bugs on border preserving and postsimplification cleanup
Avoided double make_heap (it is done only in the local_optimization init)
2007-01-19 09:13:14 +00:00
Paolo Cignoni f991e164a1 Added Finalize() method to the interface 2007-01-19 09:13:09 +00:00
Paolo Cignoni a707c1d217 added missing typenames 2007-01-18 18:15:14 +00:00
Paolo Cignoni 090e33d162 The minimum weight algorithm keep the topology consistent. 2007-01-18 11:17:43 +00:00
Paolo Cignoni fdaddf0e79 Added TrSplit function. 2007-01-17 14:31:47 +00:00
Paolo Cignoni 2226163daf First working release. 2007-01-15 11:41:09 +00:00
ganovelli d60eb7127a currMetric inizialied to heap.front() (it was heap.back()- wrong) 2007-01-11 11:48:33 +00:00
Paolo Cignoni f4d3561502 Added test in AddVertices to do not update un-initalized vert references (for newly allocated faces) 2007-01-11 10:24:25 +00:00
Paolo Cignoni 349a05f6f1 Removed useless and conflicting inclusion of face.h 2007-01-11 10:12:19 +00:00
matteodelle cd277247cc *** empty log message *** 2007-01-10 17:25:18 +00:00
Paolo Cignoni 0c8a863586 Bugfixed ComputeDihedralAngle function 2007-01-10 12:07:54 +00:00
Nico Pietroni 60958ee0e1 added initial define and included missing files 2007-01-03 15:51:28 +00:00
Paolo Cignoni 2581b0015e Bug fix on ComputeDihedralAngle function 2006-12-27 15:09:52 +00:00
Paolo Cignoni 8547f05f14 Commented some variant of the quality measure of weighted ears 2006-12-12 11:14:51 +00:00
ganovelli 466ab5840c added missing initialization of currMetric 2006-12-11 14:09:44 +00:00
Paolo Cignoni f57a022c06 Added many this-> for gcc compiling 2006-12-07 00:40:18 +00:00
Paolo Cignoni 38e3e600a9 Corrected bugs on selfintersection 2006-12-06 13:03:59 +00:00
Nico Pietroni d391c5f9f6 added max distance to rayIterator 2006-12-06 12:59:13 +00:00
Paolo Cignoni b9be8bd5fd Heavily restructured and corrected. Now a single Close ear function
Corrected Hole search function, and management of double non manifold vertex in a hole
Changed priority strategy in the heap, now a mix of quality and dihedral angle.
Changed but still untested IntersectionEar
2006-12-06 00:12:53 +00:00
ganovelli b2bfe8dc1b *** empty log message *** 2006-12-03 14:56:30 +00:00
ganovelli aa74eaa4e3 created 2006-12-03 14:55:44 +00:00
Paolo Cignoni 1680347626 Corrected bug in the IsFFAdjacencyConsistent the Topology checking function. 2006-12-01 21:26:14 +00:00
Paolo Cignoni 02456f0505 Corrected bug in the search of holes. Removed output prints 2006-12-01 21:24:16 +00:00
Paolo Cignoni 9c5b7ce5a1 Corrected pop_heap vs pop_back issue in heap usage 2006-12-01 08:53:55 +00:00
Paolo Cignoni d946007a70 Added a function for FF topology consistency check 2006-12-01 08:12:30 +00:00
Paolo Cignoni 2fc96f2682 Added Callback, Corrected some spelling errors (adiacense -> adjacency).
Added Validity Check function for hole loops
2006-12-01 00:11:17 +00:00
Paolo Cignoni fcc1187856 Corrected IsOrientedMesh. After the templating of the swapedge it did not worked any more....
Added Texture management to the FlipMesh
2006-12-01 00:00:56 +00:00
Paolo Cignoni 638be12fdc small gcc compiling issues 2006-11-30 11:49:20 +00:00
Paolo Cignoni 70c16f01ef Made static exposed funtions of the class 2006-11-29 16:21:45 +00:00
Paolo Cignoni 5670460684 Added check with the new end and avoided dangerous updating of already updated pointers 2006-11-29 15:58:50 +00:00
Paolo Cignoni ef0a22c229 Removed limit. 2006-11-29 15:25:22 +00:00
Paolo Cignoni 4110ebe3aa Code refactory and bugfix. 2006-11-29 15:18:49 +00:00
Federico Ponchio eb0ae58b64 removede int<->pointer conversions. 2006-11-29 14:20:10 +00:00
Paolo Cignoni 2f592ca2f8 Added Consistency check in the HasVFAdj static function 2006-11-28 22:35:29 +00:00
Paolo Cignoni d614e6baa5 Added default constructor with null initialization to adjacency members.
AddFaces and AddVertices NEED to know if the topology is correctly computed to update it.
2006-11-28 22:34:28 +00:00
Paolo Cignoni b50b9a7d8b Added IsSizeConsistent 2006-11-27 10:36:35 +00:00
Paolo Cignoni 2954c88fef Now compiles on gcc under linux. 2006-11-24 10:42:39 +00:00
Paolo Cignoni d74b87b91e Code refactory and added minimum weight triangolation. 2006-11-22 13:43:28 +00:00
Federico Ponchio bfdae426b8 passing VDistFunct() to functions wanting a reference, not a value
(why a reference btw?)
2006-11-21 16:06:54 +00:00
Federico Ponchio 4687fa762f Added usual typename. 2006-11-13 13:13:49 +00:00
Federico Ponchio cc5d4df4e8 Removed a couple of useless assert. 2006-11-13 13:12:27 +00:00
Paolo Cignoni 73985fe506 Clear some useless code 2006-11-13 10:11:38 +00:00
Nico Pietroni 94d7ced114 added normalization of normal in DoRay functions 2006-11-12 02:41:03 +00:00
Nico Pietroni fc770bdd96 added DoRayFuntion that return interpolated normal 2006-11-10 11:41:49 +00:00
Paolo Cignoni d2cdb34aa2 Corrected RemoveNonManifoldFace 2006-11-09 17:26:24 +00:00
Paolo Cignoni e2733d55df Necessary changes for compilation with gcc 3.4.6. Especially the hash function is a problem 2006-11-07 15:13:57 +00:00
Paolo Cignoni 06047a697d gcc compiling issues 2006-11-07 11:47:14 +00:00
Paolo Cignoni 865bb26e54 Corrected some errors in the reflections Has*** functions 2006-11-07 11:29:24 +00:00
Paolo Cignoni 62244759fc Added Quality weighted laplacian smoothing 2006-11-07 11:28:02 +00:00
Paolo Cignoni 0146bedd72 Added missing std:: 2006-11-07 07:56:43 +00:00
Paolo Cignoni 1c8f2d9055 Leipa ear now compute max dihedral angle. 2006-11-06 16:12:29 +00:00
ganovelli 05090aaee1 changed access throught iterator with static call to comply 2005 compiler 2006-10-31 11:30:41 +00:00
ganovelli cd438cf489 changed &*vert.end() to !vert.empty() -> &vert.back() to comply vs2005 compiler 2006-10-27 13:26:49 +00:00
ganovelli 30fac27e73 added override to HasFFAdjacency , HasVFAdjacency for the optional attributes (see also complex/trimesh/allocate.h) 2006-10-27 11:08:18 +00:00
ganovelli 841b424b5c the calls to HasFFAdjacency e HasVFAdjacency have been changed to override them for the optional attributes (see vcg/complex/trimesh/base.h) 2006-10-27 11:06:29 +00:00
ganovelli 73cf33acac added history in the file 2006-10-23 12:06:36 +00:00
Paolo Cignoni 4c66ab97d9 Added missing std:: 2006-10-20 07:44:45 +00:00
Federico Ponchio 7d06710d46 I nuovi seed ora devono essere ad almeno radius dalla mesh. 2006-10-19 10:11:01 +00:00
Paolo Cignoni 98d9d02773 Corrected Laplacian, Added selection to HCSmooth 2006-10-19 07:33:03 +00:00
Federico Ponchio 8fd20ba5aa *** empty log message *** 2006-10-18 21:26:39 +00:00
Federico Ponchio 50a6a8b79b *** empty log message *** 2006-10-18 21:22:15 +00:00
Federico Ponchio 2d6cd78082 *** empty log message *** 2006-10-18 15:40:04 +00:00
Paolo Cignoni 8af861d31d New policy for compute quality in TrivialEar.
Bugfixed LeipaEar.
Added new algorithm "selfintersection" with test for self intersection.
2006-10-18 15:06:47 +00:00
Federico Ponchio 310fcc2947 *** empty log message *** 2006-10-18 14:52:24 +00:00
Federico Ponchio 4e29f4f87e *** empty log message *** 2006-10-18 14:22:17 +00:00
Federico Ponchio 7047f4d4a7 using existing faces. 2006-10-18 14:08:50 +00:00
Federico Ponchio e4a4dd72bb Fixed a few bugs, added a few tricks. 2006-10-18 13:15:30 +00:00
Federico Ponchio 36db742b83 working backup 2006-10-18 10:08:15 +00:00
Paolo Cignoni 804c4aaf1c Added #include <assert.h> 2006-10-17 06:54:14 +00:00
Federico Ponchio 947b27d691 Added callback 2006-10-16 14:28:25 +00:00
Paolo Cignoni 570929bc45 First Working Version 2006-10-16 08:50:58 +00:00
Paolo Cignoni 7be5d031b9 typenames and qualifiers for gcc compliance 2006-10-15 07:31:22 +00:00
Federico Ponchio eb691cb768 *** empty log message *** 2006-10-14 16:20:06 +00:00
Federico Ponchio 568dbaf75f Rimossa (temporaneamente) la parte che cerca le altre componenti connesse. 2006-10-14 12:03:55 +00:00
Federico Ponchio 4a9d5af123 *** empty log message *** 2006-10-14 10:46:40 +00:00
Paolo Cignoni 736ef2bc24 Decreased vn when deleting a vertex 2006-10-14 00:39:52 +00:00
Paolo Cignoni b7d931e7dc Removed the class name Pivot before the methods of the class (gcc tolerated this!) 2006-10-14 00:15:21 +00:00
Federico Ponchio b0a192b60c First version somewhat stable. 2006-10-13 02:51:24 +00:00
Federico Ponchio 711e5ad192 *** empty log message *** 2006-10-13 02:11:35 +00:00
Paolo Cignoni 6e09ed9458 Bugfix and added a new type of ear (Liepa like) 2006-10-10 09:12:02 +00:00
Paolo Cignoni 6295f96fbd Heavyly restructured for meshlab inclusion. Now the access to the quadric elements are mediated by a static helper class. 2006-10-09 20:12:55 +00:00
Paolo Cignoni 2896499a4b Changed some access to VertexFaceIterator to reflect the shorter new operators. 2006-10-09 20:09:40 +00:00
Paolo Cignoni 59d52a10e9 Added Remove NonManifoldFace 2006-10-09 20:06:46 +00:00
Paolo Cignoni d644daee6b Optimized version of "EAR HOLE FILLING", the Ear is selected according to its dihedral angle. 2006-10-09 10:07:07 +00:00
Paolo Cignoni c2fb20c70b Updated to the new style face->Normal() becomes Normal(face) 2006-10-07 17:20:25 +00:00
Paolo Cignoni 2c722372aa removed a useless include 2006-10-07 15:04:25 +00:00
Paolo Cignoni 2daa4cdd9b first working implementationof "EAR HOLE FILLING". 2006-10-06 15:28:14 +00:00
Paolo Cignoni 1ada6a63ce BugFix 2006-10-02 12:06:40 +00:00
Federico Ponchio b5f612153c usual typename missing 2006-10-02 09:31:47 +00:00
Paolo Cignoni 655ae0ce8b Fixed a few bug. 2006-09-29 15:11:41 +00:00
Paolo Cignoni aabba26c14 Removed a useless, wrong version of AddFaces 2006-09-29 14:40:22 +00:00
Paolo Cignoni adfa71e1e0 It close one simple hole . . . 2006-09-27 15:33:32 +00:00
Paolo Cignoni b6c4ae457c Frist working release whit a few bugs.
It almost fills the hole ...
2006-09-27 09:29:53 +00:00
Paolo Cignoni d59c8cdc49 Added new version of pasodoble smoothing 2006-09-25 09:41:41 +00:00
Paolo Cignoni fb23c731ab First Non working Version 2006-09-25 09:17:44 +00:00
Paolo Cignoni ac4efc84ef initial commit 2006-09-21 18:10:05 +00:00
Federico Ponchio eb6d41150e VDistFunct() at line 292 was passed as a temporary.
Invalid under g++. Fixed.
2006-09-20 17:18:26 +00:00
Paolo Cignoni 11d1545f5f corrected bounds of a vector scan 2006-08-31 13:11:12 +00:00
Paolo Cignoni 4b9e281294 Added missing std:: to swap 2006-08-30 12:59:49 +00:00
Paolo Cignoni 63924b6ba0 Reverted to version 1.13. Version 1.14 was done on outdated version. 2006-08-30 06:50:07 +00:00
Paolo Cignoni 0004ccb15a added typedef VertContainer VertexContainer to avoid inconsistency with pre-existing methods 2006-08-23 16:49:25 +00:00
Paolo Cignoni 47b31587ba added bbox of the mesh
vn int->size_t
2006-08-23 15:32:24 +00:00
Paolo Cignoni 4c34a7674c *** empty log message *** 2006-08-23 15:29:44 +00:00
Paolo Cignoni 3cd4a11422 removed types FaceType, FacePointer, FaceIterator 2006-08-23 15:28:04 +00:00
Nico Pietroni 184edbcc3f first release version 2006-07-26 08:09:09 +00:00
Paolo Cignoni 10eb316ac5 Little improvement 2006-07-24 13:39:39 +00:00
Paolo Cignoni 7752f015eb Added default argument for compilation on linux 2006-07-17 09:25:28 +00:00
Paolo Cignoni 38e60efb30 Minor. Added a disambiguating this at the constructor of trimesh 2006-07-10 14:26:22 +00:00
ganovelli 9374d88dbe misleading comment removed 2006-07-06 12:30:32 +00:00
ganovelli 29b18eb3c0 Aggiunta superclasse UpdateTopology templated sui container e con funzioni sui container 2006-06-29 13:07:33 +00:00
ganovelli fe085b09ef Initial commit 2006-06-29 13:03:41 +00:00
ganovelli a8d6bb38ed agiunta UpdateBoundingBase, superclasse di UpdateBounding, templated sul container di vertici. 2006-06-29 13:02:38 +00:00
Paolo Cignoni f7dce1ceef Added missing IsD tests 2006-06-18 20:49:30 +00:00
Paolo Cignoni 6cfcd4eca0 removed wrong fn setting 2006-06-18 20:42:01 +00:00
Marco Di Benedetto ee1b991e25 Corrected ClearHeap(): iterator "hi" not decrementable if it was the first of the container. 2006-06-09 07:28:43 +00:00
Paolo Cignoni 5f423b1e96 Added ColorPreserving Cellbase template. 2006-06-08 13:55:16 +00:00
Paolo Cignoni 8bfbf1111d Changes for compilation on linux AMD64. Some remarks: Linux filenames are case-sensitive. _fileno and _filelength do not exist on linux 2006-06-06 14:35:32 +00:00
Paolo Cignoni 6ffc992641 Re-adapted to ms compilers 2006-05-26 10:18:11 +00:00
Paolo Cignoni 0102ac5f9f missing std and other gcc detected syntax errors 2006-05-25 09:41:09 +00:00
Paolo Cignoni 18458e04a2 Many changes for the different interpretation of hash_set between gcc and .net. Probably to be completed. 2006-05-25 09:37:14 +00:00
Paolo Cignoni 8be82261cf Updated HasPerFaceColor/Quality to the new style with mesh param. 2006-05-25 04:40:57 +00:00
Marco Di Benedetto 9ced8993e3 Corrected bbox inflation amount in case of _cellsize != 0 2006-05-24 16:42:22 +00:00
Paolo Cignoni 31d29d1f32 better comment to the init parameters 2006-05-24 15:16:01 +00:00
Paolo Cignoni a21b630e88 Added missing std:: to swap 2006-05-24 08:54:04 +00:00
Paolo Cignoni f641f1cd17 Removed not working Equalized color (use funcs in stat.h) 2006-05-21 07:00:01 +00:00
Paolo Cignoni b830d98941 Initial Commit 2006-05-21 06:59:13 +00:00
Paolo Cignoni 83a8f5efa3 Added DoubleFace management 2006-05-21 06:40:31 +00:00
Marco Di Benedetto f001cdf2e2 Added check for empty generated mesh (prevent call to mesh allocator with zero vertices or faces). 2006-05-19 20:49:03 +00:00
Marco Di Benedetto acf23d578f added check for deleted faces and modified/added std namespace qualifier. 2006-05-18 22:20:53 +00:00
Paolo Cignoni b24b496f50 Some minor optimizations 2006-05-18 13:59:20 +00:00
Paolo Cignoni c3833c0aa7 First working Version 2006-05-16 21:56:06 +00:00
Paolo Cignoni b9cb941529 Redesigned the function for the removal of faces according to their area and edge lenght 2006-05-16 21:51:07 +00:00
Paolo Cignoni 740b84c8c6 Removed unused box function and rewrote initial comment. 2006-05-16 21:36:54 +00:00
Nico Pietroni 413995409c Updating of edge values id divided into 2 functions ( the first one update only a face...) added also resetting of edges flags.. (see first line of Set function) 2006-05-15 13:12:36 +00:00
Paolo Cignoni dc06357cfa HasPerWedgeTexture -> HasPerWedgeTexture(m) 2006-05-03 21:42:10 +00:00
Paolo Cignoni 6ce9535dc3 Changed HasMark to HasPerFaceMark(m) and commented some unused internal vars of the class 2006-05-03 21:40:27 +00:00
Paolo Cignoni 3cb1b4442d Added new style HasPerFaceColor(m) and HasPerFaceMark(m) 2006-05-03 21:35:31 +00:00
Paolo Cignoni 9ce4c88f2a Corrected IsDeleted -> isD 2006-05-03 21:23:25 +00:00
Marco Di Benedetto e3a1490ec0 First Commit. 2006-05-02 14:17:36 +00:00
Paolo Cignoni 4ae1cb2a64 added a ; how could this ever compile? 2006-04-18 07:01:22 +00:00
Paolo Cignoni 2bf25202a4 Added ConnectedIterator (should be moved somewhere else)
Cleaned ConnectedComponents
2006-04-12 15:08:51 +00:00
Paolo Cignoni 5e451b6435 commented out one function which does not compile on linux with gcc 3.4.5 2006-04-11 13:51:21 +00:00
Paolo Cignoni 29822d8362 changes necessary for gcc 3.4.5 on linux 64bit 2006-04-11 08:08:28 +00:00
Massimiliano Corsini 5358e40f63 Add cast to avoid warning 2006-03-29 10:12:08 +00:00
Paolo Cignoni 47443e5bb5 Double->Scalar in dodecahedron 2006-03-27 04:18:35 +00:00
Federico Ponchio 5b39ff496a HACK: MaxVal(0.0f) not defined in vcg/math/base.h as it should be,
changing it to 1e36 (pretty close :P)
2006-03-01 10:29:55 +00:00
Federico Ponchio 6faf120b1f Added typename 2006-02-28 16:51:29 +00:00
Paolo Cignoni a16d494cd5 fix bug end iterator++ 2006-02-28 12:22:48 +00:00
Paolo Cignoni baad6db4b9 fix bug end iterator++ 2006-02-28 12:13:49 +00:00
Paolo Cignoni d1bdc88911 minor bug in Face-Face topology loop fixed 2006-02-27 19:26:14 +00:00
Federico Ponchio ec70371a78 Area -> doublearea/2
added some typename
2006-02-27 18:02:57 +00:00
Paolo Cignoni 5fb0b4acc2 minor bug in Face-Face topology loop fixed 2006-02-27 11:56:48 +00:00
Nico Pietroni ce453edfb1 sintax error corrected 2006-02-09 08:38:04 +00:00
Nico Pietroni 1ea84f2954 commented one GetClosestFace function ... the code is the same then getClosest that return barycentric coordinates 2006-02-08 17:02:41 +00:00
Paolo Cignoni 9e5788c078 Added missing typenames 2006-02-06 10:45:47 +00:00
Paolo Cignoni 001fd1c573 Added IsD() test in SelfIntersection 2006-02-01 15:27:00 +00:00
Paolo Cignoni 2857c3bafb Corrected use of HasPerWedgeTexture 2006-01-30 09:00:40 +00:00
Paolo Cignoni 558c52d8cb Corrected Grid 2006-01-30 08:09:05 +00:00
Paolo Cignoni e61203f1ba Added missing typenames 2006-01-30 08:03:45 +00:00
Massimiliano Corsini 3b049ec0e4 fix signed/unsigned mismatch 2006-01-27 09:58:47 +00:00
Nico Pietroni 29c6470b0b used template types instead of point3f and float inside function calls 2006-01-24 13:23:22 +00:00
Paolo Cignoni 527e4042b5 Some changes in class Facet ( constructor and operator < ) 2006-01-24 09:58:11 +00:00
Paolo Cignoni 1e427593b7 Added a missing vcg:: 2006-01-23 13:33:54 +00:00
Paolo Cignoni 02f1e55b83 Added Grid function (to build range map meshes...) 2006-01-22 17:10:15 +00:00
Paolo Cignoni de85929aee Bug due to wrong compuation of size of auxiliary vector (vn instead of vert.size() ) 2006-01-22 17:08:50 +00:00
Paolo Cignoni a5f755bf9f vi/fi mismatch in ClipWithBox 2006-01-22 17:06:27 +00:00
Paolo Cignoni f5a5f77728 Corrected use of Area with the unambiguous DoubleArea
Added ClipWithBox function
2006-01-22 10:07:42 +00:00
Nico Pietroni f3d28fb710 erased extended marching cube method call. 2006-01-20 16:37:23 +00:00
Paolo Cignoni f8400e07c4 fix bug end iterator++ 2006-01-19 14:18:08 +00:00
Paolo Cignoni 56dbb91da2 add std:: namespace... 2006-01-19 14:06:37 +00:00
Paolo Cignoni 8e4764e73d Initial Release 2006-01-11 15:45:21 +00:00
Paolo Cignoni 35b967720e Added RemoveDegenerateFace and added its automatic invocation at the end of RemoveDuplicateVertex 2006-01-11 15:40:14 +00:00
Nico Pietroni 4bc0fa600a correct pass of variable closest_pt by reference in getclosestFace function 2006-01-10 13:31:54 +00:00
Paolo Cignoni 9f49fb189a Added ndim namespace to generic Matrix 2006-01-03 15:29:49 +00:00
Nico Pietroni d84e14fc2f minor changes 2006-01-03 11:12:14 +00:00
Paolo Cignoni 1c29faf575 Added some missing std:: 2006-01-02 09:49:36 +00:00
Paolo Cignoni ac8493bbad Splitted IsComplexManifold in IsTwoManifoldFace and IsTwoManifoldVertex 2005-12-29 12:27:37 +00:00
Paolo Cignoni 6de3303285 removed div by zero bug in callback of refine (tnx to Mario Latronico) 2005-12-22 11:24:09 +00:00
Massimiliano Corsini 3aa5e5f037 Remove printf 2005-12-21 14:15:03 +00:00
Massimiliano Corsini ebf668b881 Modify genus computation 2005-12-21 13:09:03 +00:00
Paolo Cignoni 738d1e1401 Better comment and a parameter more for UpdateColor::VertexBorderFlag 2005-12-19 16:47:42 +00:00
Massimiliano Corsini 34acf11b61 Fix IsOrientedMesh 2005-12-19 15:13:06 +00:00
Paolo Cignoni 94853880bb Reimplemented SelfIntersection 2005-12-16 13:13:44 +00:00
Massimiliano Corsini 54f4709e35 Reimplement isOrientedMesh 2005-12-16 10:54:59 +00:00
Massimiliano Corsini 8acb41e2a6 Take account for deletion in isComplexManifold 2005-12-16 10:53:39 +00:00
Massimiliano Corsini 4dc5c85023 Take account for deletion in isRegularMesh 2005-12-16 10:51:43 +00:00
Massimiliano Corsini ba6382f984 Reimplement isComplexManifold
Reimplement isRegular
2005-12-15 13:53:13 +00:00
Nico Pietroni ad86fd52a2 added assert on deleted flag condition 2005-12-14 17:14:13 +00:00
Massimiliano Corsini 00d3854048 Fix genus computation 2005-12-14 14:04:35 +00:00
ganovelli 546c392fc4 first importing from old version. NOT optimized! It works with VertexFace Adjacency even over non manifolds 2005-12-13 17:17:19 +00:00
Paolo Cignoni 9b82d2e334 Added Callback in refine 2005-12-13 11:01:01 +00:00
Paolo Cignoni 1885e99e9d Removed unuseful detectunreferenced 2005-12-12 12:11:40 +00:00
Paolo Cignoni b6f13e7eb1 First working version 2005-12-12 12:08:30 +00:00
ganovelli f73fa19346 modifications to compile with gcc 2005-12-12 11:15:26 +00:00
Nico Pietroni 94ef801ecb changed FaceType::ComputeNormal and FaceType::ComputeNormalizedNormal
with face::ComputeNormal and face::ComputeNormalizedNormal
2005-12-06 18:22:31 +00:00
Nico Pietroni af9fdd3d34 new version of index structure used 2005-12-06 18:04:01 +00:00
Nico Pietroni 1485e93b2b 1 bug corrected 2005-12-06 17:55:16 +00:00
Federico Ponchio e87fff3997 added #include triangle3.h for Normal(...)
added a few FaceType:: instead of face::
2005-12-06 15:30:45 +00:00
Paolo Cignoni 68993c3bf1 Changed DegeneratedFaces -> RemoveZeroAreaFaces 2005-12-04 00:25:00 +00:00
Paolo Cignoni a35e0d7ecd Added missing include and sdt:: (tnx to Mario Latronico) 2005-12-03 22:34:25 +00:00
Nico Pietroni 14d586206a corrected 1 bug in Cross Prod Gradient 2005-12-02 16:24:56 +00:00
Paolo Cignoni 0e5890dd55 Removed some pointer vs iterator issues that prevented gcc compilation 2005-12-02 00:14:43 +00:00
Paolo Cignoni 97f3e98cd2 Added and removed typenames for gcc compiling.
removed also some template arguments specifcation that gcc disliked...
commented out GetInSphereFace and SetMesh that are probably never used and i didnt succeed in compile
2005-12-02 00:13:34 +00:00
Paolo Cignoni f7cdd877ef Added assert(HasFlags) everywhere.. 2005-12-02 00:09:12 +00:00
Paolo Cignoni aaa04175d3 commented out an old TRACE 2005-12-02 00:06:37 +00:00
Paolo Cignoni cf80db3c13 Added HasFlags and a couple of missing include files 2005-12-02 00:05:34 +00:00
Paolo Cignoni 86e2eae135 add:
GetClosestVertex,
GetKClosestVertex,
GetInSphereVertex,
GetInBoxVertex,
ClosestIterator
2005-12-01 15:01:17 +00:00
Nico Pietroni 29b3da5541 New version of spatial structures used 2005-11-29 16:21:18 +00:00
Paolo Cignoni 40dc547110 added HasPerWedgeTexture taking mesh as input. (needed for optional components) 2005-11-26 00:16:03 +00:00
Nico Pietroni e463843198 corrected CrossProdGradient( ) 2005-11-23 16:24:44 +00:00
Paolo Cignoni dbc5a559c4 Moved ComputeNormal and ComputeNormalizedNormal out of the face class (no more a member function!) 2005-11-22 15:47:35 +00:00
Paolo Cignoni 88662e6045 Completed and tested self-intersection routine 2005-11-22 14:04:10 +00:00
Nico Pietroni 7d8f6cfd5c last version of index spacing used 2005-11-22 12:50:57 +00:00
Paolo Cignoni 0d97fa92f5 Moved ComputeNormal and ComputeNormalizedNormal out of the face class (no more a member function!) 2005-11-21 21:44:47 +00:00
Paolo Cignoni 25d8f00263 First Release (not working!) 2005-11-21 15:58:12 +00:00
Paolo Cignoni c86e0478f1 Removed Initialize use updateflags::Clear() instead. 2005-11-17 00:41:07 +00:00
Paolo Cignoni 896703158a Added missing includes (color and assert)
Added texture name members
2005-11-16 22:35:47 +00:00
Paolo Cignoni 4f523817c1 Changed ComputeSelfintersection 2005-11-16 16:33:23 +00:00
Paolo Cignoni 85109504ef Changed DegeneratedFaces, sets the D flags for each faces
that is found to be degenerated.
CounEdges and ConnectedComponents check now if a face IsD()
else for degenerated faces many asserts fail.
2005-11-15 12:16:34 +00:00
Paolo Cignoni f32fb12d03 Changed Volume Routine, before was returning negative values 2005-11-15 12:09:17 +00:00
Paolo Cignoni f5d1b6c337 changed access to face functions (border, area)
removed some typecast warnings
2005-11-14 09:28:18 +00:00
Paolo Cignoni 73ca69b0b7 Added casts to remove warnings 2005-11-10 15:38:46 +00:00
Paolo Cignoni e58bf0d711 Removed flags clearing (now it should be in the constructor of face and vertex) 2005-11-10 15:37:58 +00:00
Paolo Cignoni 4f73a93dd0 Added clarifying comment in an assert 2005-11-10 15:36:42 +00:00
Paolo Cignoni 8f621b53ef correct IsBorder 2005-10-25 09:17:41 +00:00
Paolo Cignoni dee2e4f284 Re-inserted the cFFp and cVFp access. If only the const version of the member function exists, the compiler will call it
when a non-const object invokes that function
2005-10-13 09:32:11 +00:00
Paolo Cignoni 029aa3cdec removed the access to the face member function normal and substituted with vcg::normal(*f); 2005-10-13 08:38:00 +00:00
Federico Ponchio 1723bbf895 cFFp doesn not exist -> FFp (there is the const version...)
same for cVFp.
2005-10-12 17:26:19 +00:00
Paolo Cignoni ead8780772 Removed clearing of flags of added faces. Now the flag component has a constructor that clear it.
FF and VF adjacency are updated only if they are present and consistent (e.g. only if VFp(k) != 0 or FFp(k)!=0)
2005-10-12 10:47:21 +00:00
Paolo Cignoni 6b14910e5f Now creation of new edge use Ordered() constructor to comply the fact that the basic collapse is simmetric. 2005-10-12 10:44:01 +00:00
Paolo Cignoni c12401a795 Removed unused local type Edge. Now it use the standard simplex edge. 2005-10-12 10:36:26 +00:00
Paolo Cignoni d8e79083e0 Added new functions belonging to triMeshInfo
Started the Self-Intersection routine
2005-10-11 16:03:40 +00:00
Nico Pietroni b61d0de3b6 corrected bugs on GEtKClosestVert and GetInSphereVert 2005-10-05 17:02:52 +00:00
Paolo Cignoni 5182d24c7f fixed some bugs 2005-10-03 16:19:07 +00:00
Paolo Cignoni ecdb5c6ad4 add template parameter for spatialindexing struction 2005-10-03 16:18:15 +00:00
Paolo Cignoni f851e3d3d8 used new version of grid query 2005-10-03 16:16:54 +00:00
Paolo Cignoni c37db42415 Minor changes 2005-10-03 16:00:08 +00:00
Paolo Cignoni 11a25b6957 Alligned with TriMeshInfo Code 2005-10-03 15:57:53 +00:00
Nico Pietroni 805b84bf43 added GetInSphere and GetInBox functions
rensmed Functions respectively with Face suffix or Vertex suffix for query on vertex or faces
2005-10-03 13:59:39 +00:00
Paolo Cignoni a7b6938a1e Changed the sense of the < operator for heap: it is reversed according to the stl where highest score elements must float in the heap
Completed TimeBudget Termination condition.
Parametrized the ClearHeap procedure now there is a HeapSimplexRatio param. Removed dirty printf.
2005-10-02 23:23:52 +00:00
Paolo Cignoni 2ef5b676b5 Changed the sign of the priority of a collapse. Now it is its the error as it should (and not -error) 2005-10-02 23:19:36 +00:00
Nico Pietroni e58a99de93 used functor defined in face/distance.h for distance point-face
used functor defined in intersection3.h for ray-triangle intersection
added GetKClosest and DoRay Functions
2005-09-30 13:10:37 +00:00
Paolo Cignoni 0fa8212a49 changed name of include, removed use of an undefined type (scalar instead of Scalar)
removed unused code portions (the old closest code)
2005-09-28 08:30:48 +00:00
Nico Pietroni a9c5d8fd42 Added RayIterators.
Added ClosestIterators on Triangles and Vertices.
Added Closest Functions on triangles and Vertices.
2005-09-21 09:24:30 +00:00
Nico Pietroni e469fef8bd Modified MArk function parameter form ConstVertexPointer to VertexPointer 2005-09-20 13:58:55 +00:00
Nico Pietroni f569a25540 added ray iterator of faces 2005-09-19 13:36:24 +00:00
Paolo Cignoni b4e997ae7a fixed bugs 2005-09-19 13:10:12 +00:00
Paolo Cignoni c2e01165d6 Small gcc compliling issues 2005-09-16 11:53:51 +00:00
Paolo Cignoni e6739a6a71 fixed bugs 2005-09-15 13:16:42 +00:00
Nico Pietroni 417bf69fc3 minor changes 2005-09-15 11:15:00 +00:00
Paolo Cignoni 744b1a2bbb used new version of Grid_ptr 2005-09-14 14:34:41 +00:00
Paolo Cignoni aef362e62d ConstVertexPointer --> VertexPointer
ConstEdgePointer --> EdgePointer
2005-09-14 14:09:16 +00:00
Nico Pietroni 3e89d13fea used closest function from grid 2005-09-14 12:56:47 +00:00
Paolo Cignoni f82f32c6a7 changed typedef A2UGridLink da 'GridStaticPtr<MESH::FaceContainer,double>::Link' a typedef 'GRID::Link' 2005-08-26 09:12:48 +00:00
ganovelli 831d12d4f6 added math:: namespace before min and max 2005-08-08 10:28:13 +00:00
Nico Pietroni 47af92e51f renamed typedef VertexContainer into VertContainer (like trimesh) 2005-08-02 11:37:29 +00:00
Paolo Cignoni 287c4a1eaa Removed updating of normal when computing 'C' vertex: it should not be done here and could be dangerours if vertex type has not the normal. 2005-07-26 06:10:28 +00:00
Paolo Cignoni 44eb40324f small gcc-related compiling issues (typenames,ending cr, initialization order) 2005-07-11 13:16:34 +00:00
ganovelli 000b01a4ed set VertexBorderFromFace as static 2005-07-06 08:16:34 +00:00
Paolo Cignoni 57c08ade0f Initial commit 2005-07-06 08:02:27 +00:00
Paolo Cignoni 24a1c6f2eb Corrected for the fourth time line a cast to Facetype at line 341.
Read the notes there before changing it again
2005-07-01 11:22:00 +00:00
Paolo Cignoni 6bd92a9a1e Added option of passing a base mesh to Sphere for spherifying it 2005-07-01 11:17:06 +00:00
Marco Callieri 0d219f91b7 deleted a wrong declaration "typename typename" 2005-06-29 15:25:41 +00:00
ganovelli 21929c1bf4 DetachTTTopology 2005-06-28 12:00:13 +00:00
Paolo Cignoni 53da9a97e1 Added missing Sphere function 2005-06-17 00:49:29 +00:00
Paolo Cignoni 0434c2512d Corrected the type name of wedge tex coords WedgeInterp in RefineE 2005-06-17 00:48:27 +00:00
Paolo Cignoni 3fce89c4c9 Added a PerVertexNormalizedPerFace (vertex are face/area weighted AND normalized) 2005-06-17 00:46:09 +00:00
Paolo Cignoni d09e9e039d Completed FaceBorderFromNone (and added a missing helper class) 2005-06-10 15:07:23 +00:00
ganovelli e865911042 two warnings on type cast 2005-06-09 14:14:29 +00:00
Paolo Cignoni 536ba5ab48 vertexIterator sostituito con VertexIterator 2005-05-30 09:43:41 +00:00
Paolo Cignoni ffc3b5e909 std::std::vector<PVertex> sostituito con std::vector<PVertex> 2005-05-30 09:42:05 +00:00
ganovelli 9f3b8ed8c9 error in include 2005-05-30 09:13:08 +00:00
ganovelli 89569deca1 header added, error in include 2005-05-30 09:11:20 +00:00
ganovelli 973c48fb76 some std::and typename missing (CRS4) 2005-05-17 21:19:37 +00:00
ganovelli 145b8a757c some typecast (crs4) 2005-05-17 21:14:56 +00:00
ganovelli f81c3c76de typenmaes added, using namespace std deleted 2005-05-17 21:10:27 +00:00
Paolo Cignoni 542425bb80 ho commentato una var che produceva un warning del tipo unreferenced formal parameter. 2005-05-09 11:30:31 +00:00
Marco Callieri a0b3813df9 in addfaces, added casting for face* returned from vertex.VFp() [borland] 2005-04-27 16:08:39 +00:00
Nico Pietroni dbb88409e3 added size of sampling parameter 2005-04-20 15:23:31 +00:00
Federico Ponchio 2328e5b1e4 *** empty log message *** 2005-04-14 11:35:09 +00:00
Paolo Cignoni 16b0bd16c6 Minor changes 2005-04-01 13:04:55 +00:00
Paolo Cignoni 825c3b9a0c minor changes to comply gcc compiler 2005-03-30 17:18:13 +00:00
Paolo Cignoni 594087a963 minor changes 2005-03-23 13:49:04 +00:00
Paolo Cignoni 22ba690fda Wrong left parenthesis removed. 2005-03-23 13:22:57 +00:00
ganovelli c00bed83e6 cast int->iterator corrected 2005-03-23 11:29:49 +00:00
Paolo Cignoni 9d106c50c1 Minor changes 2005-03-18 16:38:36 +00:00
Paolo Cignoni b6b04faabc removed small gcc compiling issues 2005-03-17 16:16:08 +00:00
Paolo Cignoni eb117f8394 aggiunta funzione PasoDobleSmooth e relative:
- FitMesh
- FaceErrorGrad
- CrossProdGradient
- TriAreaGradient
- NormalSmooth

e le classi:

- PDVertInfo
- PDFaceInfo

necessarie per utilizzare SimpleTempData
2005-03-16 16:14:12 +00:00
Paolo Cignoni 9ca228b8fa Added missing include assert and improved comments and requirements of geodesic quality 2005-03-15 11:48:50 +00:00
ganovelli e050ef0c2e creation 2005-03-09 13:22:55 +00:00
ganovelli 14a538a731 added vcg header 2005-03-08 14:42:22 +00:00
Nico Pietroni 0467ee0a6f Fixed bug in Square 2005-02-25 11:41:08 +00:00
Nico Pietroni 8225d40cbb added #include<vcg/complex/trimesh/update/topology.h> use of update topology in refineE 2005-02-25 10:28:04 +00:00
ganovelli 05d89ee903 created. This version writes the gaussian curvature on the Q() member of
the vertex
2005-02-22 16:40:29 +00:00
Federico Ponchio cce86d42f8 reverted tarini mod 2005-02-19 10:43:11 +00:00
Paolo Cignoni 099bae2d71 added IntersectionRayMesh 2005-02-15 15:00:26 +00:00
Nico Pietroni 0ebd1f6f91 optimized ( distance map are calculated 1 time each point) 2005-02-08 17:50:41 +00:00
Nico Pietroni 06adb386ad added if (!l->Elem()->IsD()) test on each element 2005-02-08 17:49:38 +00:00
mtarini 56609abbb0 aggiunto un typecast a (FaceType*) per farlo compilare under Mingw comp 2005-02-08 17:14:28 +00:00
Paolo Cignoni 3c7c3b4653 Warnings Correction 2005-02-08 14:38:05 +00:00
Nico Pietroni 91ce4200d3 1 warning corrected 2005-02-02 16:01:13 +00:00
Nico Pietroni 7057ec7352 first version tested with marching cubes 2005-02-02 10:01:29 +00:00
Nico Pietroni be92b1fd23 changed HasVFTopology function... control if both vertex and face define the vf topology 2005-01-28 17:56:57 +00:00
Paolo Cignoni 5b984e817d small gcc compiling issues for namespaces 2005-01-28 12:00:33 +00:00
Paolo Cignoni 1bc21300da Add std:: to stl containers 2005-01-28 11:59:35 +00:00
Paolo Cignoni 0af38855a4 LookUp table static data moved into static class functions 2005-01-25 16:55:30 +00:00
Paolo Cignoni 2380e1d9a1 Now used also by the official Metro
Removed using namespace (NEVER IN HEADERS!)
Made  the computation of barycentric coords only when necessary
Renamed Mindistpoint to Closest
2005-01-24 11:47:23 +00:00
Paolo Cignoni a23f621635 Initial commit 2005-01-24 09:49:16 +00:00
Nico Pietroni cc767faf90 included distance.h changed Dist to vcg::face::PointDistance 2005-01-21 17:13:09 +00:00
Paolo Cignoni 52b224d897 Moved from vcg/complex/trimesh to vcg/complex/trimesh/create 2005-01-19 15:43:16 +00:00
Paolo Cignoni e820e88dfe Initial commit 2005-01-19 15:40:44 +00:00
Paolo Cignoni 1509a9b434 Better management of symmetric/asymmetric edge collapses 2005-01-19 10:35:28 +00:00
Paolo Cignoni 4224284dc4 Improved ClearHeap management 2005-01-19 10:33:50 +00:00
ganovelli 280f94069f added inclusion of tetra3.h 2005-01-12 11:10:34 +00:00
ganovelli 017714531b added InitVertexIMark 2005-01-12 11:06:54 +00:00
ganovelli 3edef6bc60 first partial porting: compiled gcc,intel and msvc 2004-12-11 14:53:19 +00:00
Paolo Cignoni 8ca248762a Moved param classes inside; added support for optimal placement and symmetric; added update heap also here (not only in the base class) 2004-12-10 01:07:15 +00:00
Paolo Cignoni a68494587c better comments 2004-12-10 01:04:42 +00:00
Paolo Cignoni 953c594401 better comments and removed logging 2004-12-10 01:03:53 +00:00
Paolo Cignoni 1380ee7712 added an inline and removed loggng 2004-12-10 01:03:15 +00:00
Federico Ponchio 0d7e92e11f Fixed memory leak... 2004-12-03 21:14:39 +00:00
Paolo Cignoni 96d8ae7ec0 Added a member with a cached copy of the floating Priority() value inside the HeapElem to optimize operator< in heap updating operator 2004-11-23 10:37:17 +00:00
Paolo Cignoni da6bf044f0 passed parameters by reference in many funcs and gcc cleaning 2004-11-23 10:34:45 +00:00
Paolo Cignoni 191168cc47 aggiunto vettore delle face sel, per poi ripulirle.... 2004-11-19 16:12:57 +00:00
Paolo Cignoni 1189399728 Added ModifierType::TriEdgeFlipOp 2004-11-05 10:03:47 +00:00
Paolo Cignoni 86f9e28e07 Initial commit 2004-11-05 09:57:18 +00:00
Paolo Cignoni 5bd4d8b2b1 Better Doxygen documentation 2004-10-28 00:56:44 +00:00
ganovelli 4337bba265 fftopology update branch commented (to finish) 2004-10-27 09:26:26 +00:00
ganovelli e3380d3702 pos to edge 2004-10-25 16:28:32 +00:00
ganovelli d9ed23f145 CHanged the PosTYpe into EdgeTYpe 2004-10-25 08:08:30 +00:00
ganovelli 4359486afc A vcg.::Pos was used to implement the collapse type. CHanged
to vcg::Edge
2004-10-25 07:07:56 +00:00
ganovelli 4d02036998 some inline function, logs on file (precompiler directive) 2004-10-25 07:02:56 +00:00
Paolo Cignoni f456dc361c removed FaceBorderFlags (already present in update/flags.h) 2004-10-20 07:33:10 +00:00
ganovelli 7903dc12a1 added ::FaceBorderFLags 2004-10-18 17:10:22 +00:00
Nico Pietroni 818428b69a added i#nclude <vector> 2004-10-14 15:08:04 +00:00
ganovelli 047ce8854e a VFDetach was missing 2004-10-12 15:43:26 +00:00
ganovelli 9e35226e77 first working version 2004-10-12 15:42:29 +00:00
ganovelli 2945a6bc0f added include of color4 2004-10-11 17:44:07 +00:00
ganovelli de4734d245 added camera and shot 2004-10-07 14:25:38 +00:00
ganovelli 2c7e862e83 moved from metro core 2004-10-04 15:32:16 +00:00
ganovelli f480f01a3f first working release 2004-10-01 18:54:22 +00:00
Federico Ponchio 560a0fd53b Added include <vector> 2004-10-01 15:58:00 +00:00
ganovelli 41a67b6db7 changed > to < in heapelem comparison 2004-09-29 17:08:39 +00:00
ganovelli 215aaa2e84 corrected error in -error (see localoptimization) 2004-09-29 17:08:16 +00:00
Paolo Cignoni 2bf024cfb7 Better Doxygen docs 2004-09-28 09:58:47 +00:00
Paolo Cignoni cad0037214 Corrected bug in cone 2004-09-24 10:14:38 +00:00
Paolo Cignoni 4d994bb786 Corrected bug in hexahedron 2004-09-22 15:12:38 +00:00
Paolo Cignoni 78f6f33bf2 Better Doxygen docs 2004-09-20 09:30:03 +00:00
Paolo Cignoni cca63f6527 Better Doxygen docs 2004-09-20 08:37:57 +00:00
ganovelli de4b5c1d43 changed P() to cP() 2004-09-15 11:20:15 +00:00
Federico Ponchio 4fede6a301 typedef LocalOptimization HeapType -> public: 2004-09-15 10:40:20 +00:00
ganovelli 26c2861e7a creation 2004-09-15 10:25:20 +00:00
ganovelli 90baf9fa1a first compilation version 2004-09-14 19:49:43 +00:00
Federico Ponchio fd22c90658 Typename changes for linux 2004-09-09 14:35:14 +00:00
Federico Ponchio 882e9a9b16 Header guards typo 2004-09-09 13:23:01 +00:00
Federico Ponchio 8d978173ef Linux compatible path in #include 2004-09-09 13:02:12 +00:00
ganovelli f6a162db55 changes for gcc 2004-09-08 15:15:05 +00:00
ganovelli 650e2a1314 changes for gc 2004-09-08 15:13:29 +00:00
ganovelli 9125ab4501 *** empty log message *** 2004-09-08 15:13:03 +00:00
ganovelli 4f63f0e95c *** empty log message *** 2004-09-08 14:33:31 +00:00
Nico Pietroni 6a8c2e29b0 in function do_collapse:
- set FF topology if exist
- corrected assignement of point p to vertex that remain after collapse
2004-09-07 15:41:57 +00:00
Nico Pietroni 9d9191918b added template parameter reference to himself type (used for extend it) 2004-09-07 15:40:04 +00:00
Paolo Cignoni 8c18db4e51 Replaced some typename definitions 2004-09-07 07:36:32 +00:00
Nico Pietroni 3367585465 defined mytype and used on updateheap and init functions to extend tri_edge_collapse 2004-09-02 10:06:18 +00:00
Nico Pietroni 638dfc64fb files moved to tetra_mesh path 2004-09-01 13:16:34 +00:00
Nico Pietroni cf20e1d0c1 minor changes to comply gcc compiler (typename's ) 2004-09-01 12:22:04 +00:00
Nico Pietroni c1b220e756 minor changes to comply gcc compiler (typename's ) 2004-08-31 15:18:54 +00:00
Nico Pietroni 60ac1e367b minor changes 2004-08-26 15:04:39 +00:00
Nico Pietroni fbdd47a6f5 corrected some errors and optimized... 2004-08-26 13:10:40 +00:00
ganovelli 0bbd5bb33b minor changes to comply gcc compiler (typename's and stuff) 2004-08-25 15:15:27 +00:00
Nico Pietroni 609e54082e changes private members (_Imark(), pos, priority) to derive and override is IsFeasible , Init and constructor functions, that can be used to define different kind of collapse (ex: to do not collapses on specified vertices) 2004-08-10 16:33:58 +00:00
Nico Pietroni cdcb34c3ee solved errors on AddFaces relative to VFp pointers of faces 2004-08-07 17:38:00 +00:00
Nico Pietroni a50d56742e addet testFFTopology and testVFTopology functions used to test the rispective topology.... 2004-08-07 16:18:20 +00:00
Nico Pietroni 6bb92793a6 corrected errors in AddFaces ( must be updated pointers to chain of faces of VFTopology) 2004-08-07 16:16:32 +00:00
Nico Pietroni 7f0b7037ac added addafaces funtion with local values 2004-08-05 16:44:06 +00:00
Paolo Cignoni 3cbbebedb7 First working version of the LocalOptimization/Simplification Framework 2004-07-27 09:46:15 +00:00
Paolo Cignoni ae8e3c0ce7 added a missing return value to Priority 2004-07-18 10:10:56 +00:00
Paolo Cignoni e0762e5b5e NewUserBit -> NewBitFlag 2004-07-18 06:55:37 +00:00
ganovelli c15f2fb66c minor changes 2004-07-15 12:04:14 +00:00
ganovelli 361126dcf7 access to imark added 2004-07-15 12:03:50 +00:00
ganovelli b2013c8ed6 VFb to VFp 2004-07-15 11:40:34 +00:00
ganovelli 6b76ff4570 IsDeleted to IsD 2004-07-15 11:39:24 +00:00
ganovelli 858b87d98b first working draft (trivial collapse) 2004-07-15 11:36:13 +00:00
ganovelli b5a8c54cb2 Vfb to VFp 2004-07-15 11:35:08 +00:00
Nico Pietroni 0f8de64388 correct use of tetra3 to map entities call funtions (ex Tetra3::VofE in Tetra::VofE) 2004-07-15 10:11:50 +00:00
ganovelli 21ddeb28cc *** empty log message *** 2004-07-15 10:01:44 +00:00
ganovelli e75eca830b moved 2004-07-15 09:57:52 +00:00
ganovelli b6e059a47b created 2004-07-15 09:52:07 +00:00
Paolo Cignoni d011d644dd Better doxigen documentation 2004-07-15 00:16:37 +00:00
mtarini 556364c751 Added an include (<algorithm>) 2004-07-09 15:48:37 +00:00
mtarini 1706a1a0b5 Dodecahedron added! (and doxigened a little bit) 2004-07-09 15:34:29 +00:00
ganovelli ba4965a409 changed to static class 2004-07-09 10:32:46 +00:00
ganovelli 90ef0ba4e7 major changes. Reorganized to be a wrapper for the edge_collapse to be used in the LocalOpimization routine 2004-07-09 10:28:57 +00:00
ganovelli cd84a47864 made it as a static class 2004-07-09 10:24:06 +00:00
ganovelli 44daf54e0f working draft 2004-07-09 10:22:56 +00:00
ganovelli 985d986623 addtetra corrected 2004-07-09 10:20:21 +00:00
ganovelli 336a9145bb added access functions to vn and tn 2004-07-09 10:18:49 +00:00
ganovelli bc3714ccf9 added access functions to vn and fn 2004-07-09 10:18:19 +00:00
Nico Pietroni cc537cd0dc deleted some function used to see aspect ratio media tetrahedrons collapsed 2004-07-08 08:39:56 +00:00
ganovelli 4676d87413 first draft 2004-07-08 08:25:15 +00:00
Paolo Cignoni 29b8f8ab5f removed assumption of a using namespace std and added a missing include 2004-07-06 06:29:53 +00:00
Paolo Cignoni 1dd0f30375 Added FaceBorderFromVF 2004-07-06 06:27:02 +00:00
Nico Pietroni b4765fb09e derived form abstract operator class for edge collapse 2004-06-25 11:33:13 +00:00
Nico Pietroni e03613d6cd define of abstract class of mofier operator for decimation 2004-06-25 11:31:49 +00:00
Nico Pietroni b19307fbf0 decimation and optimizator of tetrahedral mesh 2004-06-25 11:30:25 +00:00
Nico Pietroni e3e32237aa erased some error evalutation parameters function (added to deimation) 2004-06-25 11:29:21 +00:00
Nico Pietroni 8f3f11432f added function to access temporary mark for decimation 2004-06-25 11:27:21 +00:00
Nico Pietroni dff2dfb828 changrd update for a vertex normal functions void PerVertex(VertexType *v) 2004-06-25 11:25:07 +00:00
Paolo Cignoni f73edd3adb Better Doxygen documentation 2004-06-24 15:15:12 +00:00
Paolo Cignoni 4333c2177d Initial Release 2004-06-24 08:03:59 +00:00
Paolo Cignoni f7c2dae086 now use std::numeric_limits instead of old max val() 2004-06-24 07:56:54 +00:00
Nico Pietroni 5334ca63b7 *** empty log message *** 2004-06-18 11:49:47 +00:00
Nico Pietroni 831a570d0b modified some errors 2004-06-15 16:15:18 +00:00
Nico Pietroni 7fd10bfcef modified the conversion funtion to take submesh (containers of tetrahedrons) 2004-06-15 16:13:59 +00:00
Nico Pietroni 841b0966bb added funtion to see if an edge is exter or not 2004-06-15 16:12:56 +00:00
Nico Pietroni e33cfa2cab added functions to update local vertices normal 2004-06-15 16:01:26 +00:00
Nico Pietroni 06125c7f29 first version of edge collapse 2004-06-15 16:00:21 +00:00
Nico Pietroni 0584d7df57 *** empty log message *** 2004-06-15 15:58:53 +00:00
Nico Pietroni 68a6f52588 first realease only link conditions control are implemented 2004-06-08 15:24:58 +00:00
ganovelli ea756467ea typename for gcc compilation 2004-06-02 16:42:44 +00:00
ganovelli 5b4b14ca0e minor changes (swap =>> math::Swap) 2004-06-02 16:28:22 +00:00
ganovelli 20f49352f1 pragma once removed ,
load ts removed to be put in io_tetramesh
CLear() added
2004-06-01 17:17:29 +00:00
ganovelli c1ec82f5ab addVertices corrected (two copies instead of specializing te call)
and put static (also addTetra) * g++  compliant *
2004-06-01 17:12:46 +00:00
Nico Pietroni 3f2d58a60e first release edge split 2004-06-01 09:45:29 +00:00
Nico Pietroni 146626fbe3 added TestExternalVertex function 2004-06-01 09:44:18 +00:00
Nico Pietroni 57294c89e0 modified test topology funtion and added function to test VT topology 2004-05-31 16:03:14 +00:00
Nico Pietroni f682054c6d added function addtetra 2004-05-31 16:01:56 +00:00
Paolo Cignoni 60935b36b6 Changed : Use Of vector In Use Of std::vector. 2004-05-26 11:59:09 +00:00
Nico Pietroni f2bb31568f modified face declaration 2004-05-26 11:53:17 +00:00
Paolo Cignoni 4f4fac482d Changed : include Path. 2004-05-26 11:48:53 +00:00
Nico Pietroni ad2b56bad6 modified setExternalVertices 2004-05-20 13:25:39 +00:00
Paolo Cignoni bc793e067a Changed : Parameters Order As In vcg::tetra::SubSet. 2004-05-17 08:26:28 +00:00
Paolo Cignoni 2c83cc632c Minor Changes and Now Use STLContainer of Tetrahedron Pointers. 2004-05-17 08:22:45 +00:00
Paolo Cignoni 0ccf940115 Minor Changes To Compile Even Without using namespace std. 2004-05-17 07:58:16 +00:00
Paolo Cignoni e69bb80e2f Adjusted VCG Style 2004-05-14 15:51:47 +00:00
Paolo Cignoni d54a0e189c Initial Commit 2004-05-14 15:43:41 +00:00
Paolo Cignoni 23796d2e2b Added $Log: allocate.h,v $ for CVS History Log 2004-05-14 15:14:34 +00:00
Paolo Cignoni d09e65a2dc Changed mesh ClearFlag call. 2004-05-14 11:43:17 +00:00
Paolo Cignoni b717573d47 Conformed C++ syntax to GCC requirements 2004-05-13 21:08:00 +00:00
ganovelli e8b3080c93 function Clear added 2004-05-13 16:00:31 +00:00
ganovelli ad7b82955c changed from UpdateClearFlags to UpdateFlags 2004-05-13 15:56:02 +00:00
Paolo Cignoni 3f828fa279 Initial Commit 2004-05-13 15:51:40 +00:00
Nico Pietroni 48160d1a85 first version... add vertex to mesh 2004-05-13 12:16:12 +00:00
Paolo Cignoni e9ce5ba039 Added typedef typename in InsertedV 2004-05-13 09:59:20 +00:00
Nico Pietroni e2cac43714 first version... add vertex to mesh 2004-05-13 08:46:16 +00:00
Paolo Cignoni 1bf422be2b Chenged #include <space\\box3.h> in #include <vcg\\space\\box3.h> 2004-05-13 07:41:47 +00:00
ganovelli da7d87bb75 removed call to ComputeRT and put its body here 2004-05-12 18:52:35 +00:00
Nico Pietroni 51d795b795 *** empty log message *** 2004-05-12 13:52:11 +00:00
ganovelli e826bde7c3 created 2004-05-12 10:39:45 +00:00
ganovelli 2f4f632fc7 general comment: minor modifications to compile with g++. Almost all
insertions of "typename" keyword and new line at the end of file
2004-05-11 14:12:13 +00:00
Paolo Cignoni a05cc7fc6e Changed a FV -> VF in VertexFace topology computation 2004-05-10 15:23:43 +00:00
ganovelli 8394de63b0 nimor changes 2004-05-10 14:42:17 +00:00
ganovelli 930864929a mionr changes 2004-05-10 14:42:01 +00:00
ganovelli b8463d106f name of adhacency function updated 2004-05-10 14:41:45 +00:00
Paolo Cignoni c80fbfd59c Added use of VFIterator in VertexGeodesicFromBorder 2004-05-10 13:43:00 +00:00
Paolo Cignoni 95f6c410d7 Updated names of adj functions and added ending newline 2004-05-10 13:24:21 +00:00
Paolo Cignoni c38be34a40 include Plane3 removed. 2004-05-07 10:06:46 +00:00
Paolo Cignoni 9e6c17c72b Added History Info 2004-05-07 09:35:09 +00:00
Paolo Cignoni 832bc72b74 Added Copyright Info 2004-05-07 09:29:50 +00:00
Paolo Cignoni d47ee966a2 Initial Commit 2004-05-07 09:27:07 +00:00
Nico Pietroni 62528938e1 changed names to topology functions 2004-05-06 15:24:38 +00:00
Nico Pietroni d0f8ae3c23 changed neme to topology functions 2004-05-06 10:58:57 +00:00
Nico Pietroni ea5dd6b1ad first commit: update bounding box of tetrahedral mesh 2004-05-06 10:58:30 +00:00
Nico Pietroni da21c985f6 changed names to topology functions 2004-05-06 10:57:49 +00:00
ganovelli 9614b44161 removed Const from ConstFacePointer and ConstVertexPointer in the arguement function Mark, which are meant to be changed 2004-05-04 02:29:54 +00:00
Nico Pietroni f5976ee86f Added subSet function. 2004-04-29 12:37:00 +00:00
ganovelli 91205e6346 created 2004-04-29 01:00:07 +00:00
ganovelli f8b9c845de created 2004-04-29 00:02:38 +00:00
ganovelli 43b0f7f922 created 2004-04-28 23:33:24 +00:00
Nico Pietroni f154f17acd *** empty log message *** 2004-04-28 11:37:15 +00:00
Nico Pietroni 6d04f844de *** empty log message *** 2004-04-28 11:37:14 +00:00
ganovelli 13035f61d2 created 2004-04-26 19:10:04 +00:00
Nico Pietroni adeca3e96f *** empty log message *** 2004-04-26 09:40:15 +00:00
ganovelli 5903e60ec7 #ifndef added 2004-04-21 14:06:10 +00:00
Nico Pietroni 7980702bd2 *** empty log message *** 2004-04-20 12:42:51 +00:00
Paolo Cignoni 711c2a00d9 First working version! 2004-04-05 11:56:14 +00:00
Paolo Cignoni 2c95c0cd3a minor changes 2004-04-03 14:12:48 +00:00
Paolo Cignoni 03b335b154 minor changes 2004-04-03 14:10:31 +00:00
Paolo Cignoni e75f79b6ed First working version! 2004-03-31 14:59:14 +00:00
Paolo Cignoni 49691db569 Added Vertex-Face Topology 2004-03-31 14:44:43 +00:00
Paolo Cignoni a6269df8cd bug in update of VF adj 2004-03-31 14:43:56 +00:00
Paolo Cignoni 9c4727960d First working version! 2004-03-29 14:26:57 +00:00
Paolo Cignoni ad431fccd3 minor changes 2004-03-18 16:00:10 +00:00
Paolo Cignoni 1a4283c2af Completed Octahedron and Icosahedron 2004-03-18 15:29:07 +00:00
Paolo Cignoni 1416372b32 Corrected bug on the return of a wrong iterator 2004-03-12 15:25:29 +00:00
Paolo Cignoni a341239296 Written some documentation and added to the trimes doxygen module 2004-03-12 15:22:28 +00:00
mtarini 5156f16cf4 prova 2004-03-11 18:14:19 +00:00
Paolo Cignoni 2fb492d90a minor changes 2004-03-10 01:00:21 +00:00
Paolo Cignoni 78e4cccaba changed to the face::IsBorder() style 2004-03-10 00:48:06 +00:00
Paolo Cignoni 68beee8a27 Added gcc required typenames to tetrahedron and octaehedron 2004-03-10 00:37:31 +00:00
Paolo Cignoni 5cc5474ad2 some more reflection functions 2004-03-07 21:54:56 +00:00
Paolo Cignoni c11adb316e First working version for face face 2004-03-05 21:49:21 +00:00
Paolo Cignoni 7ba68001eb Changed name from plural to singular (normals->normal) 2004-03-05 15:56:17 +00:00
Paolo Cignoni 0267a76a42 Changed name from plural to singular (normals->normal) 2004-03-05 11:26:40 +00:00
Paolo Cignoni 5c0b925ef8 Changed name from plural to singular (normals->normal) 2004-03-05 10:59:24 +00:00
Paolo Cignoni 807aec3803 Initial commit 2004-03-04 00:53:24 +00:00
Paolo Cignoni 2181539c6b First working version! 2004-03-04 00:37:56 +00:00
Paolo Cignoni 36829a099d First working version! 2004-03-04 00:29:45 +00:00
Paolo Cignoni d52cbb2602 First working version! 2004-03-04 00:08:15 +00:00
Paolo Cignoni f657ab9c6c First working version (tetrahedron!) 2004-03-03 16:11:46 +00:00
Paolo Cignoni 0556b33b65 Yet another cr lf mismatch 2004-03-03 15:35:53 +00:00
Paolo Cignoni f61873646f grouped documentation, changed typenames and reflection mechanism 2004-02-24 21:36:42 +00:00
Paolo Cignoni 2c061402f5 Initial commit 2004-02-19 13:11:06 +00:00