ganovelli
354b225e92
bug fixed: CompactFaceVector resized the attributes per face
...
to the number of "vertices" of the mesh
2010-10-08 15:58:32 +00:00
Paolo Cignoni
dbf4fa7311
removed harmless warning
2010-09-13 09:33:30 +00:00
ganovelli
d0d2efa454
removed the use of RTTI for checking the name of the attribute TYPE
...
in the Get*Attribute. Now the check is only on the size of the type.
2010-09-03 22:17:14 +00:00
ganovelli
101e46bc6b
bug corrected. attribute member "_padding" was not initialized in Add*Attribute
2010-09-01 17:16:43 +00:00
granzuglia
3d68cc75cf
from iterator to const_iterator
2010-07-01 09:13:08 +00:00
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
Paolo Cignoni
8ca2013615
removed harmless gcc warnings
2010-06-18 14:44:21 +00:00
ganovelli
0a64a31e6e
added typechecking and function to return the list of attributes of a given type
2010-06-16 15:17:42 +00:00
Paolo Cignoni
df4edbee23
corrected some bugs in halfedge allocation
2010-04-26 14:49:42 +00:00
Paolo Cignoni
0165f918f1
removed harmless gcc warnings
2010-03-26 09:43:45 +00:00
ganovelli
cf7563eff4
[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:50:10 +00:00
Paolo Cignoni
1fb9d1c555
added a few disambiguating 'template' keywords
2010-03-23 22:37:46 +00:00
ganovelli
fb9d702e08
nametypebound..corrected bugs, changed a name, regrouped functions.
...
Change useless NameOf in NamesWithType which returns all the names bound to a given type
2010-03-23 09:47:52 +00:00
ganovelli
bda10aba6e
NameTypeBound wsorking (still to refine)
2010-03-23 09:25:13 +00:00
Paolo Cignoni
80f825a428
removed harmless warnings
2010-03-16 14:25:30 +00:00
Paolo Cignoni
404831fc2f
added a missing 'template' keyword between class and metod name.
2010-03-16 11:06:32 +00:00
ganovelli
09b0fb5ef7
added a way to define a scope, i.e. a collection of bounds between name of the attributes
...
and their type, so that one can add an attribute without knowing its type. It is useful
when working with plugin.
example:
vcg::tri::NameTypeScope myScope;
AddNameTypeBound<int>(myScope,std::string("number");
AddNameTypeBound<float>(myScope,std::string("incoming_light"));
we have crated a scope myScope where "number" is bound a int and incoming_light is a float
In another part of code where I may not know the type of "number", I can still do:
AddPerVertexAttribute(myScope, mesh, "number");
and an int attibute name "number" will be added.
2010-03-15 15:17:20 +00:00
Paolo Cignoni
355edd042e
removed harmless warnings
2010-02-24 09:56:58 +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
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
39f12e9fdd
added a function to permutate the vertex vector according to a given permutation.
2009-12-07 09:05:20 +00:00
ganovelli
b902431bc1
extended support to dump attributes (see wrap/io_trimesh/[import | export]_VMI.h )
...
It was only for vertices, now it is also for faces and mesh attributes.
Compiled gcc and .net. Tested only on toy exmaples
2009-10-07 11:05:29 +00:00
ganovelli
f1b1220225
small changes to enable the mesh dumping on VMI file (see wrap/io_trimesh/[import | export]_VMI.h )
...
and HandlesWrapper renamed to PointerToAttribute
2009-07-29 12:46:46 +00:00
Marco Di Benedetto
a79d8f9bd8
changed field order in PointerUpdater to prevent constructor warning (in initialization list).
2009-07-08 16:12:46 +00:00
Marco Di Benedetto
54f5418be2
removed reset to false of preventUpdateFlag in Clear().
2009-06-29 16:13:26 +00:00
ganovelli
f223914581
factorized a bit the attribute classes in TriMesh;
...
added to IsValidHandle the check that pointer to data is not null.
Explanation:
a handle may be not valid for two reasons:
1) the attribute has been destroyed with a DeletePer*Attribute
2) the handle has been declared but not initialized.
The change is to cover the case 2)
2009-06-04 16:13:21 +00:00
ganovelli
917343b0f5
removed the (useless) template parameter to Per[XXX]DeleteAttribute(mesh,name)
2009-03-20 10:22:16 +00:00
ganovelli
87b8c55144
added Allocator::IsValidHandle which returns true if an handle to an attribute is valid or if the attribute
...
has been removed. This modification affects timesh/allocate.h and trimesh/base.h
2009-01-15 17:41:59 +00:00
ganovelli
4cae6b5107
added the update of the pointers related to the AddEdges
2008-11-26 17:46:31 +00:00
ganovelli
1aa88e635b
added update of newEnd in AddFaces
...
Added [de]allocation of edges and per-edges attributes.
2008-11-12 15:46:16 +00:00
Paolo Cignoni
2e7c97e90e
Corrected the update cycle in the AddFace. Thanks to Michele Vannoni for pointing out this bug!
2008-11-07 15:36:19 +00:00
ganovelli
0d4b3fbed0
[Polygon modification]
...
Added components to the face to handle generic polygons.
(compiled with .net and gcc)
This commit includes the following files:
vcg/complex/trimesh/base.h
Added deallocation of polygon data in the destructor
vcg/complex/trimesh/allocate.h
generalization from 3 to VN() vertices
vcg/complex/trimesh/update/topology.h
generalization from 3 to VN() vertices
vcg/complex/trimesh/update/flags.h
generalization from 3 to VN() vertices
vcg/simplex/face/pos.h
generalization from 3 to VN() vertices
vcg/simplex/faceplus/base.h
Added the method VN() to query the number of vertices
of the polygon (deafult 3) and methods Prev and Next
vcg/simplex/faceplus/component.h
added Alloc and Dealloc calls along the hierarchies
2008-10-08 09:10:53 +00:00
ganovelli
1a9220ce98
behaviour change: AddFaces and AddVertices return the vert.end() and face.end() if called with n==0.
...
Added AddVertices with local pointers to VertexPointer to update
2008-07-29 13:20:44 +00:00
Paolo Cignoni
1407af2537
removed harmless warnings
2008-07-09 10:31:55 +00:00
Paolo Cignoni
700b8cd26e
Removed annoying unsigned vs signed warnings.
...
Thanks to Alain Boyer for the kind bug submission!
2008-06-29 22:44:44 +00:00
ganovelli
db1c99cdf9
added PerMeshAttribute
2008-06-23 14:18:13 +00:00
Massimiliano Corsini
1059b3d24d
add missing include
2008-06-05 14:12:40 +00:00
ganovelli
666040bcf5
PerVertexAttribute and PerFaceAttribute added to Trimesh
2008-05-15 16:32:27 +00:00
Paolo Cignoni
820bfdd65e
fast return for compacting functions if no compacting is needed
2008-04-18 17:45:23 +00:00
Paolo Cignoni
fc917d5080
moved Index function from append to the allocate
2008-04-10 09:18:57 +00:00
Paolo Cignoni
9a31f6318d
template the reorder functions on the vector types (for ocf)
2008-04-03 22:47:10 +00:00
Paolo Cignoni
3d4222b231
Completed the garbage collecting functions CompactVertexVector and CompactFaceVector.
2008-03-11 09:22:07 +00:00
Paolo Cignoni
1f38a990b5
forgotten required std::
2007-12-11 20:18:55 +00:00
Paolo Cignoni
7d6a210e75
Added the CompactVertexVector garbage collecting function.
2007-12-11 11:36:03 +00:00
Paolo Cignoni
12c8c9f3ff
Added Allocator::DeleteFace and Allocator::DeleteVertex; Now the use of SetD() should be deprecated.
2007-10-16 16:46:53 +00:00
Paolo Cignoni
f4d3561502
Added test in AddVertices to do not update un-initalized vert references (for newly allocated faces)
2007-01-11 10:24:25 +00:00
Paolo Cignoni
5670460684
Added check with the new end and avoided dangerous updating of already updated pointers
2006-11-29 15:58:50 +00:00
Paolo Cignoni
d614e6baa5
Added default constructor with null initialization to adjacency members.
...
AddFaces and AddVertices NEED to know if the topology is correctly computed to update it.
2006-11-28 22:34:28 +00:00
Federico Ponchio
cc5d4df4e8
Removed a couple of useless assert.
2006-11-13 13:12:27 +00:00
ganovelli
841b424b5c
the calls to HasFFAdjacency e HasVFAdjacency have been changed to override them for the optional attributes (see vcg/complex/trimesh/base.h)
2006-10-27 11:06:29 +00:00