Commit Graph

45 Commits

Author SHA1 Message Date
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 585f0462e8 ImportLocal to ImportData. Adjacencies are no more handle by ImportData, but
by speficic functions in append.h (ImportPerxxxAdj(..))
2010-06-16 16:24:26 +00:00
ganovelli de851eb29e inclusion of alltypes.h 2010-05-19 17:16:58 +00:00
ganovelli 9fc476b130 added type traits to support the mod below:
[ 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:18:00 +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 2a18ebd5f5 Heavily restructured component of vertex simplex. Compacted all the emptyXXXX into a single EmptyCore class. Cleaned up the interface for the optional stuff now there is a standard static function that can say if a given component is enabled or not. 2010-03-04 13:34:38 +00:00
Paolo Cignoni 302a7725fa removed harmless warnings 2009-11-17 23:34:46 +00:00
Federico Ponchio e888ef1560 removed some useless consts 2009-06-03 12:23:20 +00:00
Paolo Cignoni 8be6f002a3 Significant rewrote of the ImportLocal framework. Now it can really manage differently typed meshes.
It still requires that for OCF meshes the user enable stuff as needed.
2009-04-05 23:33:04 +00:00
ganovelli c9b6f8f7c8 2008-12-19 10:31:56 +00:00
ganovelli ca3f973398 added unsupported to deprecated in the warning 2008-12-12 18:11:42 +00:00
ganovelli 7021c9af38 added warning for deprecation 2008-09-30 10:35:44 +00:00
ganovelli b5bca977a7 added pragma message to deprecate this way to define the simplex 2008-09-28 14:30:09 +00:00
Paolo Cignoni 559161beda 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:34:01 +00:00
mtarini 84946de883 Texture coord name change! "TCoord" and "Texture" are BAD. "TexCoord" is GOOD. 2007-03-12 15:42:11 +00:00
Paolo Cignoni b7ab2cfe56 VTb moved to VTp 2007-02-26 14:21:44 +00:00
ganovelli 01a81c63de added QualityType to comply vertexplus type 2007-02-20 14:08:34 +00:00
Paolo Cignoni 7810ccc68e added minimal comments 2006-08-23 15:34:20 +00:00
ganovelli 19a6e60812 cambiato VTb in VTp 2006-07-10 17:04:41 +00:00
Paolo Cignoni f8e4bf2c94 Added HasFlags and initialization of flags at construction. 2005-11-12 18:41:14 +00:00
Paolo Cignoni 9d764b3a8c Added cVFp member 2005-10-14 13:25:50 +00:00
Nico Pietroni dae0988085 added getBBox method 2005-10-06 14:26:39 +00:00
Paolo Cignoni 9d106c50c1 Minor changes 2005-03-18 16:38:36 +00:00
Paolo Cignoni b4b7f45041 Removed NormalizedNormalV (out of standard and wrong) and
added the member functions Normal and NormalizedNormal() (just like for faces)
2005-03-18 00:13:45 +00:00
Paolo Cignoni 5bd4d8b2b1 Better Doxygen documentation 2004-10-28 00:56:44 +00:00
ganovelli f10b76771b added template on corrdinate type (default Point3) 2004-10-11 17:45:05 +00:00
Paolo Cignoni db05ba4282 DUMMY classes definition moved into vcg namespace 2004-09-28 15:24:56 +00:00
ganovelli 0bbd5bb33b minor changes to comply gcc compiler (typename's and stuff) 2004-08-25 15:15:27 +00:00
Nico Pietroni 2ce9499498 corrected NormalizedNormalV function... 2004-07-20 15:24:53 +00:00
ganovelli 16e27ee1e8 VFb moved to VFp, userbit to bitflag,setV, inclusion of pos.h 2004-07-15 11:25:01 +00:00
Nico Pietroni 9b76dfbd2b adde NormalizedNormalV funtion to compute the normal on a vertex 2004-07-15 10:13:48 +00:00
ganovelli ba71d8f492 syntax error (typo) 2004-05-13 22:44:40 +00:00
ganovelli ccce11f1e0 default template parameters 2004-05-13 22:40:02 +00:00
Nico Pietroni 54aaa60259 no default template parameters... each one must be specified 2004-05-13 12:49:22 +00:00
ganovelli 0a09df39f8 function for edge adjacency added 2004-05-10 13:31:13 +00:00
Paolo Cignoni 30cac403d3 added void to Convert, corrected return object in VFb 2004-05-10 13:13:17 +00:00
Nico Pietroni 4bc6a6ff7b changed names to VF topology function (was missed) 2004-05-06 15:28:10 +00:00
Nico Pietroni e605dc6d74 changed name to topology functions 2004-05-05 17:03:25 +00:00
Nico Pietroni f154f17acd *** empty log message *** 2004-04-28 11:37:15 +00:00
Nico Pietroni adeca3e96f *** empty log message *** 2004-04-26 09:40:15 +00:00
Paolo Cignoni 2fb492d90a minor changes 2004-03-10 01:00:21 +00:00
Paolo Cignoni 3b155f73e2 Yet another cr lf mismatch 2004-03-03 16:07:57 +00:00
Paolo Cignoni f61873646f grouped documentation, changed typenames and reflection mechanism 2004-02-24 21:36:42 +00:00
Paolo Cignoni afb966c8d8 First working release, with doxygen comment structure 2004-02-13 02:09:39 +00:00
Paolo Cignoni 24cd6edda1 Initial commit 2004-02-09 01:28:24 +00:00