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
mtarini
54ca153009
mini-changes at various importer exporters, to maximize compatibility
2010-03-13 00:52:17 +00:00
ganovelli
9768533095
(involuntary commit reverted)
2010-03-12 14:58:02 +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
5e1f0ce521
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-03 16:01:39 +00:00
Paolo Cignoni
56bde62d80
removed old 'uber' access to component members
2010-03-03 15:57:58 +00:00
Paolo Cignoni
5ef6d30d37
Added a test to check in the point to face distance computation to manage the case of degenerated faces. Now correctly resort to distance point to segment.
2010-03-03 00:35:20 +00:00
Paolo Cignoni
d340b8b92a
removed harmless gcc warnings
2010-03-02 23:17:15 +00:00
Paolo Cignoni
c2456526fd
added vertex picking
2010-02-26 16:20:15 +00:00
Paolo Cignoni
96d770c828
corrected bug in the exporting of the texture file name (removed extra space) (thnx to anonymous bug submitter)
2010-02-26 16:14:20 +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
bb75099c5d
corrected a wrong bbox type (mismatched between a fixed box3f and the mesh bbox type)
2010-02-23 16:50:47 +00:00
Paolo Cignoni
319a87d5c0
Changed all the m.HasPerVertexXXX into the more safe HasPerVertexXXX(m) (it caused a bug in the saving of per-vertex tex coords)
2010-02-23 16:48:02 +00:00
Paolo Cignoni
fc6483307b
added a missing cVFi()
2010-02-23 16:45:45 +00:00
Paolo Cignoni
866abb0921
improved the support of per vertex texture data. Now it is correctly handled in OFF and PLY
2010-02-23 01:51:25 +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
Nico Pietroni
98eba3ef33
corrected minor compiling issues
2010-02-22 01:03:23 +00:00
Paolo Cignoni
de93d3d941
Yet another bunch of missing typenames; corrected a signature mismatch between LoadMask and GetHeader
2010-02-20 00:59:40 +00:00
ganovelli
9057e1dcd6
added bbox in the header, added missing typenames
2010-02-19 17:34:38 +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
Paolo Cignoni
87599e519f
added a minimal support for failing and reporting errors
2010-02-18 23:33:56 +00:00
ganovelli
898fedcfdf
ongoing
2010-02-14 10:23:28 +00:00
Paolo Cignoni
95e1b391c8
min in std limits is a function
2010-02-11 20:07:27 +00:00
Paolo Cignoni
41fda194bd
Correctly defined int inside loop as per MSVC requirements, changed assert as to be more accurate
2010-02-11 20:06:14 +00:00
Paolo Cignoni
3b152298cc
added runtime assert to prevent dangerous simplex to simplex assignment in the case of OCF optional attributes.
2010-02-11 00:14:35 +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
ganovelli
9fee205755
removed exceeding "default" in switch condition
2010-01-16 15:33:07 +00:00
Paolo Cignoni
14850843c6
Better triangulation of quad into two triangles.
2010-01-16 14:59:40 +00:00
Paolo Cignoni
c72bfe6f63
Corrected a bug in the Distribution class and added useful access bin counting functions members to the Histogram class
2010-01-11 22:57:32 +00:00
Paolo Cignoni
f017c8646e
removed "suggest parentheses around && within ||" warning
2010-01-11 09:30:44 +00:00
Paolo Cignoni
3765096290
Added the possibility to wrap an existing coefficient vector
2010-01-08 10:36:09 +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
a26b0e34f9
Cleaned up Detach functions and added a special, simpler version of Detatch for 2Manifold cases
2010-01-03 02:01:45 +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
73ed783085
Significant change. Now obj with non-convex polygonal faces are correctly managed (and faux edges are supported too). Warning it requires GLU because it relies on glu tessellation.
2009-12-17 17:49:51 +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
f4d71c746d
added simple printout in debug of degenerate faces when found.
2009-12-07 08:31:44 +00:00
Paolo Cignoni
7030dbb151
small change. The FFp<i> shortcuts seems no more used...
2009-12-07 08:31:01 +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
6e3f10928e
better comment to interpolationParameter2
2009-12-04 08:32:00 +00:00
Paolo Cignoni
f7b9856d0d
removed harmless warning
2009-12-04 08:22:33 +00:00
Paolo Cignoni
32619f1625
harmless gcc compiling issues
2009-12-03 23:17:46 +00:00