Commit Graph

248 Commits

Author SHA1 Message Date
Paolo Cignoni 1c4e43955b Added new sample for voronoiclustering 2013-07-05 14:21:48 +00:00
Paolo Cignoni de332065d1 Added the feature aware poisson disk sampling example 2013-07-01 14:09:40 +00:00
Paolo Cignoni 880e617233 First Sample to use the voronoi based paramterizer 2013-04-16 15:20:05 +00:00
Paolo Cignoni de7b61b7e5 Corrected a EnableWedgeTex into EnableWedgeTexCoord 2013-04-16 15:15:33 +00:00
Paolo Cignoni 5928ca28b6 Updated the generic packing sample and added a sample that (partially) repack textures of a mesh using the new packer 2013-03-26 11:33:17 +00:00
Paolo Cignoni fce6ab1138 Added a sample to show the techniques to repack parametrizations 2013-03-25 13:19:22 +00:00
Paolo Cignoni c4fde3e879 Updated the spacepacker sample to the new interfaces for dumping, creating random outlines etc 2013-03-25 13:13:28 +00:00
Paolo Cignoni e94cfb5a43 Refactored a bit the extended marching cube core. Cleaned up a bit the trivial walker to be used by both of them. Updated the sample for marching cube. 2013-03-22 17:06:41 +00:00
Paolo Cignoni f156a5a82c Updated version of the oldpolyrect packer. Reasonably extended to multiple domain. To be tested/replaced 2013-03-13 19:09:50 +00:00
ganovelli 5c7608030f updated 2013-03-08 09:07:25 +00:00
ganovelli 8c998ccd11 vcg::tri::Allocate<MESH>::Get*Attribute(m,name);
has CHANGED!

Before it was returning a valid handle to the attribute
IF it existed, otherwise the handle was invalid.
 
Now it always returns a valid handle to the attribute,
by creating the attribute name if it did not exist or returning
the handle to it if it was already there.

ALl the code using Get*Attribute  has been changed accordingly.
2013-01-30 17:18:55 +00:00
Paolo Cignoni 794f2f27a7 Small Change of the Trackball apply interface. It does no more require a bool to specify if the trackball icon has to be drawn because it is always wrong to draw the trackball at the apply time (two reasons, antialiasing and transparency and zbuffer preservation) So now the standard call is just Apply() without the useless bool parameters.
Updated also all the vcg samples using the trackball
2013-01-28 15:15:14 +00:00
Paolo Cignoni 6990ec48d3 Added sample for point matching 2012-11-22 23:30:42 +00:00
Paolo Cignoni 7a8aba311b harmless gcc warnings in the samples 2012-11-10 16:57:26 +00:00
Paolo Cignoni 302e8130b0 Added Geodesic Sample 2012-11-07 01:16:21 +00:00
Paolo Cignoni c72396e6f7 Cleaned up the pro of two sample 2012-11-05 10:10:33 +00:00
Paolo Cignoni b6d198362c Small changes to the compactVector (added a check on empty vectors) and improved the sample on allocation. 2012-10-31 06:58:08 +00:00
Paolo Cignoni fe95eeca43 Improving Documentation: removed a ton of doxygen warnings. Cleared a bit the groups structure, added a few comments to allocator 2012-10-26 06:16:15 +00:00
Paolo Cignoni 6c3d86d448 Still Improving the documentation. 2012-10-25 23:52:48 +00:00
Paolo Cignoni a90b24dca5 Improved documentation... 2012-10-25 23:40:51 +00:00
Paolo Cignoni fc5a0216ac Improved documentation about allocation. Added sample on allocation. 2012-10-25 22:53:33 +00:00
Paolo Cignoni bf7511c68b removed useless include from some samples 2012-10-25 21:18:49 +00:00
Paolo Cignoni b50b1e88c3 Still improving documentation 2012-10-25 07:20:06 +00:00
Paolo Cignoni 5adb83c8c9 Added kdtree sample and updated a bit the comments of the other samples 2012-10-24 09:40:15 +00:00
Paolo Cignoni c87cd495de Rewrote of the Fitting to plane functions. Added Weighted version and sample 2012-10-22 18:27:30 +00:00
Paolo Cignoni 75122cd193 Improved comments and interface of perlin noise color 2012-10-19 12:32:05 +00:00
Paolo Cignoni d81d14189c Still improving doxygen base docs and samples... 2012-10-19 11:48:33 +00:00
Paolo Cignoni c83fd4d7bb Renamed as standard the sample file names 2012-10-17 05:15:58 +00:00
Paolo Cignoni 9ae5490a8b Still improving the documentation of the samples 2012-10-16 09:08:19 +00:00
Paolo Cignoni bebfa3eb8b Removed using namespace vcg from samples 2012-10-15 14:09:24 +00:00
Paolo Cignoni c40c1b7f6b Changed all vn,fn into VN(),FN() in all the samples.
Shortened the curvature example
Cleaned the attribute Example comments
2012-10-15 07:52:40 +00:00
Paolo Cignoni 6760de8bdd added per mesh attribute example to the trimesh_attribute sample 2012-10-13 21:35:42 +00:00
Paolo Cignoni 3778d69fd4 Removed useless include 2012-10-12 06:14:04 +00:00
Paolo Cignoni cd3af281cc Added a few more samples (normals, inertia, sampling) 2012-10-12 06:07:06 +00:00
Paolo Cignoni 6750b5d80a Cleaning and updating all the samples... 2012-10-11 10:40:07 +00:00
Paolo Cignoni 75c7ac1873 Improving documentation tags in the sample 2012-10-10 08:42:59 +00:00
Paolo Cignoni 699164ea11 removed useless example snippet 2012-10-10 08:14:24 +00:00
Paolo Cignoni 89d3fa3c43 Added a sample for curvature 2012-10-09 10:25:00 +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 c22ebbf304 Yet another iteration in the quest of a portable qt+antttweakbar example... 2012-10-08 05:52:54 +00:00
Paolo Cignoni 8e1176d803 Yet another iteration in the quest of a portable qt+antttweakbar example... 2012-10-08 05:51:28 +00:00
Paolo Cignoni a2f65f19ca Corrected errors for gcc-4.6 under ubuntu (conflicts between glew and qt :( ) 2012-10-07 17:33:19 +00:00
Paolo Cignoni 9bac133933 Cleaned the first sample 2012-10-04 11:11:27 +00:00
Nico Pietroni 7bb3900d3b added support for primitive subdivision into cells 2012-08-27 12:46:31 +00:00
Nico Pietroni 143169d28c first release version 2012-08-27 12:45:30 +00:00
mtarini de84cc1081 2012-07-18 22:10:11 +00:00
Paolo Cignoni 5380a6f7f6 updated to the latest changed to the closest and grid changes 2012-07-12 08:03:22 +00:00
Paolo Cignoni 118eb65a9f Better testing of the point to mesh distance functions. 2012-07-06 09:07:38 +00:00
Paolo Cignoni f314e050a4 Added Sample for testing of the framework for searching the closest point on a mesh 2012-07-06 05:12:19 +00:00
Paolo Cignoni 4356ed9833 simple reorganization of the testing code 2012-07-04 13:52:32 +00:00
Nico Pietroni aee1bedb59 resolved 1 bug in getBBox function 2012-06-25 16:14:57 +00:00
Nico Pietroni 670799b8fe first release version 2012-06-22 14:32:48 +00:00
Paolo Cignoni 1267bc080b Added qt svg and opengl package to the space_packer sample 2012-05-29 13:48:00 +00:00
Paolo Cignoni 615b4867d4 better pro for improved compatibilty when you move the sample to another folder... 2012-04-18 21:13:14 +00:00
Paolo Cignoni 93b4573910 Moved the trimesh_copy sample to the apps/sample folder 2012-04-03 10:52:51 +00:00
Paolo Cignoni 858e4c575f Improved the anttweakbar sample now has zoom with doubleclick... 2012-03-04 16:26:15 +00:00
Paolo Cignoni 0464c9f822 removed a surviving UpdateFlags::FaceProjection that should have been deleted a few month ago... 2012-02-13 23:03:38 +00:00
Nico Pietroni 6bf2eda3b6 2012-02-09 13:58:22 +00:00
Nico Pietroni c9f9effef6 added stuff for windows compilation 2012-02-03 14:06:09 +00:00
Nico Pietroni 6bed834958 added several cast and include time.h 2012-02-03 14:05:29 +00:00
Paolo Cignoni a12597eeac Better factorization of the qt mouse handler for the sample qt+anttweakbar example. Now there is a separated file under wrap/qt with the mouse and keyboard event handler 2012-02-02 06:48:40 +00:00
Paolo Cignoni ecddd5b76a Added sample to use AntTweakBar with meshes and QT 2012-02-01 10:16:12 +00:00
Paolo Cignoni 2621f5777e updated the sample to the new polydumper 2012-01-30 15:25:23 +00:00
Paolo Cignoni b338a57f67 Added sample for polygon packers 2011-11-15 11:01:05 +00:00
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 ee5473c279 cleaned up a bit the quad simplifier 2011-05-19 13:51:41 +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 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 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 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 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
Marco Di Benedetto d3243585c5 first commit. 2009-10-23 20:26:38 +00:00