Commit Graph

22 Commits

Author SHA1 Message Date
Paolo Cignoni 323362697a Changed to trisplit to make it c++ 01 compliant 2014-03-04 17:18:03 +00:00
Paolo Cignoni 69000a6af7 Yet another big cleaning pass to the samples 2012-10-09 08:43:35 +00:00
Paolo Cignoni dd520b4fc4 Cleaned up all a bit all the samples. Now they compile with the upcoming changes... 2012-10-09 07:12:31 +00:00
Paolo Cignoni ed9e9df701 updated to the recent changes (no more edge meshes and changes in the optimiz framework) 2011-10-16 22:14:33 +00:00
ganovelli 5909925947 Ongoing Rearrangement of filepath
replaced the path to comply the filepaths modification.
The replacements are as follows:

/complex/trimesh/base.h --> /complex/complex.h
/complex/trimesh/allocate.h --> /complex/allocate.h
/complex/trimesh/append.h --> /complex/append.h
/complex/trimesh/ --> /complex/algorithms/
/complex/local_optimization/ ---> /complex/algorithms/local_optimization/
/complex/local_optimization.h ---> /complex/algorithms/local_optimization.h
/complex/intersection.h ---> /complex/algorithms/intersection.h
/complex/boundary.h ---> /complex/algorithms/boundary.h
2011-04-01 17:07:57 +00:00
ganovelli d52126591c minor corrections for recompiling all the samples and removal of some warnings:
removed deprecated LIBPATH
2011-03-31 15:47:27 +00:00
ganovelli ae83ca17ed [ 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:44:40 +00:00
ganovelli 35d0e58149 [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:43:36 +00:00
ganovelli 32bb3561ef [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:37:41 +00:00
Paolo Cignoni 774ce56dea Solved small compilation issues. 2008-09-29 10:11:21 +00:00
Paolo Cignoni 48049d1e4b Added refinment. 2007-01-31 15:17:36 +00:00
Paolo Cignoni 33d860cbb9 Bug fix 2007-01-31 11:46:12 +00:00
Paolo Cignoni 680279143c *** empty log message *** 2007-01-18 11:18:28 +00:00
Paolo Cignoni a07b6e638a Added relaxation. 2007-01-15 12:46:25 +00:00
Paolo Cignoni 8e4a9f2011 Added flipping optimization, it compiles but does not work well... 2006-12-06 00:14:33 +00:00
Paolo Cignoni 14dc0c2a0f Cleaned up and added option on the size of the holes to be closed 2006-12-01 21:25:23 +00:00
Paolo Cignoni e3e88b010d Added Callback and consistency tests 2006-12-01 08:25:53 +00:00
Paolo Cignoni 7b0c0f6728 Added update normal per vertex. 2006-11-29 15:17:39 +00:00
Paolo Cignoni 2954c88fef Now compiles on gcc under linux. 2006-11-24 10:42:39 +00:00
Paolo Cignoni 2a84b52bc8 Bug-fix 2006-11-22 15:37:50 +00:00
Paolo Cignoni 4ca2f23a10 Clean useless code. 2006-11-22 14:38:16 +00:00
Paolo Cignoni 1baabf65de First working release 2006-11-22 13:42:06 +00:00