Commit Graph

640 Commits

Author SHA1 Message Date
Paolo Cignoni d155a34740 Cleaned up the example of the mesh slicing. Now the sample take a mesh, split it along a random plane and saves two meshes, one with the filled triangulated slice and one with the two pieces of the mesh moved apart to reveal the cut. 2011-10-24 12:19:05 +00:00
Paolo Cignoni 6bd8470965 Small harmless changes. Mostly cleaning up. 2011-10-24 11:23:49 +00:00
Paolo Cignoni 98cc5ee028 Added minimal example of disk parametrization. 2011-10-18 00:02:12 +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
Paolo Cignoni 2fe129645b Rolled back 2011-10-05 15:04:40 +00:00
Paolo Cignoni c17b10bf63 fixed cross-platform math usage 2011-06-15 12:33:28 +00:00
Paolo Cignoni 62a5d3856d Small changes to the texdeci sample (better depend path and corrected saving) 2011-06-06 15:14:10 +00:00
Paolo Cignoni 0941ea0474 Updated the tridecimator sample to the new localoptimimization framework 2011-06-06 00:13:51 +00:00
Paolo Cignoni 8f17d6b9bd Mini sample with texture aware edge collapse based quadric simplification 2011-06-06 00:11:18 +00:00
Massimiliano Corsini d6400c816c add further test about vcg::Shot::ApplySimilarity 2011-05-25 06:55:54 +00:00
Massimiliano Corsini ad6866f1a3 fix test9 about roto-translation
add test10 abut similarity transformation
2011-05-24 21:11:21 +00:00
Massimiliano Corsini 8dd6bd85b4 shot roto-translation test fixed 2011-05-24 09:20:56 +00:00
Massimiliano Corsini 6dda092689 2011-05-23 16:29:06 +00:00
Massimiliano Corsini 779e6d2dc5 2011-05-23 14:08:48 +00:00
Massimiliano Corsini e99b67e72a add other tests 2011-05-19 16:27:32 +00:00
Paolo Cignoni ee5473c279 cleaned up a bit the quad simplifier 2011-05-19 13:51:41 +00:00
Massimiliano Corsini 8f8f4fdfc9 2011-05-18 11:33:06 +00:00
Paolo Cignoni 8d77ac39e3 updated the slicing/capping/edgemesh sample 2011-05-11 10:07:27 +00:00
Paolo Cignoni 6b7e9fb37d Added sample on edge mesh (intersection of a mesh with a plane 2011-05-11 06:06:50 +00:00
ganovelli 95713e5723 updated to current version of the library 2011-04-15 14:02:55 +00:00
ganovelli d967184dee Basic app with AntTweakBar and freeglut.
Added. Still to fix pro file to use freeglut and AntTweakBar
2011-04-06 15:10:44 +00:00
ganovelli c018a60762 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:09:03 +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
Paolo Cignoni cc5645ca46 Added removals of degenerate configurations 2011-02-04 17:12:20 +00:00
Paolo Cignoni 764b2779cb Added quad simplification sample 2011-01-31 17:05:24 +00:00
ganovelli 7f5f09b492 obsolete: removed. Use qmake (.pro files) 2010-12-07 13:46:01 +00:00
ganovelli 49cb3744b5 uypdated to the new definition of vcg mesh 2010-12-07 13:03:36 +00:00
ganovelli 732a1437bc added 2010-11-06 16:09:32 +00:00
Paolo Cignoni 1b8ae49999 Moved old SDL stuff out of the sample folder into the more junky test folder 2010-10-15 08:43:41 +00:00
Paolo Cignoni ee675f4f01 start to cleaning up the sample folder 2010-10-15 08:42:22 +00:00
Paolo Cignoni fc27271fc9 added edge class as required by the new declaration style 2010-09-02 21:42:07 +00:00
Paolo Cignoni 6b28cb9501 changed to the new mesh clipping framework 2010-07-05 10:27:38 +00:00
Paolo Cignoni 5e3b15b690 added missing include 2010-07-05 10:15:59 +00:00
Paolo Cignoni 572170bfdd minimal formatting changes 2010-07-05 10:15:30 +00:00
Paolo Cignoni b10bfc04e2 Better comment and printing 2010-05-04 15:17:52 +00:00
Paolo Cignoni ee38039e83 Add simple example that compute Shape Diameter Function using ray tracing and exploiting VCG library indexing structure 2010-05-04 08:17:13 +00:00
Paolo Cignoni 7e2e81bdc9 cleaned up to new interfaces 2010-04-30 09:56:37 +00:00
ganovelli 38dcf9bc00 updated to changes in clean.h 2010-04-30 09:42:52 +00:00
mtarini fc29465c4a Cleaned + added one-quad-per-edge schema to it. 2010-04-29 15:08:18 +00:00
Paolo Cignoni d8cfbc5e51 Modified mark/unmark of mesh elements to the new static function style 2010-04-28 07:50:30 +00:00
Paolo Cignoni 493553c5f1 cleaned up and added all the refinement strategies including catmull clark (that now crash...) 2010-04-27 14:59:12 +00:00
ganovelli 6aa09931c4 updated to comply with:
[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:47:03 +00:00
ganovelli 3256d9517c updated to the new definition of mesh type [with UsedTypes] 2010-03-18 13:25:20 +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 cdfed059d3 [ 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:03 +00:00
ganovelli 9768533095 (involuntary commit reverted) 2010-03-12 14:58:02 +00:00
ganovelli 898fedcfdf ongoing 2010-02-14 10:23:28 +00:00
Paolo Cignoni 092211c82c cleaned up a bit 2009-10-27 21:43:01 +00:00
Marco Di Benedetto 58f3af4c82 2009-10-26 12:19:48 +00:00