Paolo Cignoni
3d5ccb47f9
compilation fixes with eigen (norm2=>squaredNorm, a*b => a.dot(b))
2009-01-23 16:58:47 +00:00
Massimiliano Corsini
393ef8a41a
add changing density
2009-01-21 17:39:40 +00:00
Paolo Cignoni
ca1ac6323f
add absolute distance resampling
2009-01-21 16:22:05 +00:00
Massimiliano Corsini
ce6e4023c5
improve generatePoissonDisk performances
2009-01-21 15:40:16 +00:00
Massimiliano Corsini
226d111f9c
modify generatePoissonDisk taking into account spatial hash properties
2009-01-20 11:06:12 +00:00
ganovelli
f1ef838535
corrected bug in MeanAndGaussian, computation for the obtuse case (thanks Bo Jang)
2009-01-20 10:26:05 +00:00
Paolo Cignoni
4f6cff78ed
Yet another missing template keyword for gcc
2009-01-20 08:18:01 +00:00
Paolo Cignoni
92fd17590a
Really really working poisson disk
2009-01-19 23:18:10 +00:00
ganovelli
d6d380f09b
corrected on operator = for the attributes (it was not assigning the _handle)
2009-01-19 12:57:47 +00:00
Paolo Cignoni
0879d07401
Corrected a wrong template arg MyMesh into the right MeshType
2009-01-18 23:52:27 +00:00
Massimiliano Corsini
6be9fe3b03
fix typos
2009-01-18 19:33:50 +00:00
Massimiliano Corsini
d0fcdcf5cd
final version of the poissondisk sampling
...
(there is still a bug in GetInSphereVertex)
2009-01-17 17:37:06 +00:00
Paolo Cignoni
4b1be10671
rewrote VertTmark to have a reasonable dummy behaviour (it is useless...)
2009-01-16 16:15:13 +00:00
Paolo Cignoni
f1336a0085
still experimenting with the poisson sampling
2009-01-16 16:14:16 +00:00
Massimiliano Corsini
83350db29a
poissondisk sampling finished...
2009-01-16 15:01:46 +00:00
Massimiliano Corsini
7bd8b4f19b
poissondisk sampling completely restructure for performance
2009-01-16 11:30:19 +00:00
Massimiliano Corsini
87ed77aa88
fix return error on vertexattrib
2009-01-16 11:29:43 +00:00
matteodelle
1c65575000
Added faceface updatetopology in Sphere, otherwise it crashes!
2009-01-16 08:05:33 +00:00
Massimiliano Corsini
dad1103184
poisson disk sampling (under construction...)
2009-01-15 22:38:37 +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
matteodelle
12e32feb59
Replaced forgotten CMeshO with MESH_TYPE in line 314
2009-01-15 17:31:23 +00:00
Massimiliano Corsini
f5e4f86859
2009-01-15 17:03:08 +00:00
Paolo Cignoni
957fb711ed
minor gcc compilation issues
2009-01-15 16:00:46 +00:00
Paolo Cignoni
0a287f7bce
added missing function for setting flags on faces
2009-01-15 15:59:51 +00:00
Massimiliano Corsini
15ae5168f2
further step in poisson disk sampling development..
2009-01-15 15:32:10 +00:00
Paolo Cignoni
ab8fe0462d
added some missing typename for gcc compiling
2009-01-15 08:04:12 +00:00
Paolo Cignoni
0e037cabc1
added multisampling distance field evaluation
2009-01-15 01:31:09 +00:00
Paolo Cignoni
f001af1c5c
better comments and removed useless code
2009-01-15 01:25:15 +00:00
Massimiliano Corsini
fdaa2e88d1
poisson disk under development... (not working for now)
2009-01-14 17:12:12 +00:00
Paolo Cignoni
45ffbac554
added a forgot std::
2009-01-14 16:22:40 +00:00
Paolo Cignoni
2497e3d286
Added Edge Uniform sampling function that takes samples uniformly only on the mesh edges by regularly subdividing them
2009-01-14 15:56:07 +00:00
Paolo Cignoni
1f992d7929
Added helper function to returning a list of all the unique edges of a mesh
2009-01-14 15:54:50 +00:00
Paolo Cignoni
3f38ad70da
Complete re-wrote of the refinement code. Now the predicate is called only once for each edge. no more std:maps are used but the new attributes to store temporary pointers inside newly subdivided faces.
2009-01-14 01:18:34 +00:00
Paolo Cignoni
9dc34faae4
added missing face flags clear/setting members
2009-01-14 01:16:11 +00:00
Paolo Cignoni
3cee0f23b5
commented out a addCell call that was undefined
2009-01-13 21:10:57 +00:00
Massimiliano Corsini
c4ca67e959
fix typo
2009-01-12 16:11:37 +00:00
Paolo Cignoni
417c52b7b0
Better comments clarifying the purpose of Samplers and Algorithms for sampling
2009-01-12 16:01:49 +00:00
Massimiliano Corsini
1a05696eb5
first sketch of the Poisson disk (projection-based) sampling
2009-01-12 14:22:03 +00:00
Massimiliano Corsini
abbf0d60ce
starting to implement PoissonDisk sampling
2009-01-11 15:43:58 +00:00
Massimiliano Corsini
44aa343da6
minor changes in poisson disk
2009-01-09 17:05:10 +00:00
Massimiliano Corsini
3586a13438
replace rand() with MarsenneTwister generator
2009-01-09 14:35:46 +00:00
Paolo Cignoni
28c4843567
Heavily restructured. Now more robust and allow also the creation of discretized surfaces
2009-01-08 11:26:49 +00:00
Paolo Cignoni
20272bf7ac
gcc compilation issues
2009-01-08 07:52:16 +00:00
ganovelli
8ae63ef1c3
- added optional parameter to return the closest vertex as a vertex attribute
...
- added a tolerance to check triangle inequality
2009-01-07 14:25:46 +00:00
ganovelli
2e7bde9f24
more clean up, unified single and multiple sources cases
2009-01-06 15:13:43 +00:00
ganovelli
818129d045
refactorized but Still to clean up;
...
It seems to work but "continuous" distance estimation cannot work with multiple sources.
In this case edge leght estimation is used.
2008-12-22 19:51:11 +00:00
Paolo Cignoni
56d93a02b6
Othography. Fartest -> Farthest
2008-12-21 07:44:29 +00:00
Paolo Cignoni
36c902097a
put class in namespace tri, removed useless parameter from DistanceFromBorder()
2008-12-21 01:37:29 +00:00
ganovelli
39ffa7cd3d
[SIMPLEXplus promotion]
...
This modification removes the old way to define simplexes (already deprecated and unsupported).
In the following SIMPLEX = [vertex|edge|face|tetrahedron]
All the stuff that was in vcg/simplex/SIMPLEXplus/ has now been promoted to vcg/simplex/
Details:
- the folder vcg/simplex/SIMPLEX/with has been removed
- the file vcg/simplex/SIMPLEX/base.h has been renamed into vcg/simplex/SIMPLEX/base_old.h
- the content of vcg/simplex/SIMPLEXplus/ has been moved into vcg/simplex/SIMPLEX/
- the folder vcg/simplex/SIMPLEXplus/ has been removed
Actions the update the code using vcglib:
replace <vcg/simplex/SIMPLEXplus/*> with <vcg/simplex/SIMPLEX/*> in every include
for MESHLAB users: already done along with this commit
2008-12-19 10:39:32 +00:00
ganovelli
d3682195ca
replaced a "3" with a f->VN()
2008-12-18 17:53:42 +00:00
ganovelli
db04989f13
added support for meshes with holes
2008-12-18 17:52:48 +00:00
Paolo Cignoni
20b46e3122
added the default use of a safe random generator for shuffling vectors (mingw rand seems really bad...)
2008-12-18 00:30:52 +00:00
Paolo Cignoni
c2c940338e
added a missing PerFaceFromCurrentVertexNormal mode
2008-12-18 00:27:47 +00:00
Paolo Cignoni
8ef495be20
added test to skip degenerate triangles in curvature computation
2008-12-12 15:08:36 +00:00
Paolo Cignoni
4e2808a64e
added assert for avoiding to put trash into a histogram
2008-12-12 15:06:27 +00:00
Paolo Cignoni
46cc8c7327
Removed harmless warnings
2008-12-11 13:56:37 +00:00
Paolo Cignoni
85dc63a154
moved here from meshlab. Long time due.
2008-12-11 13:52:25 +00:00
Paolo Cignoni
3485b76d8f
Added explicit casts
2008-12-09 11:36:34 +00:00
Paolo Cignoni
8f591655f3
added comment on the two critical asserts
2008-12-09 07:52:27 +00:00
Paolo Cignoni
2143a5138a
corrected bug in PerVertexFromCurrentFaceNormal (wrong use of Construct() )
2008-12-09 07:51:33 +00:00
Paolo Cignoni
a37e44cff1
Made create:box working. Current version was plain wrong. Thanks to Lorenzo Marchi
2008-12-08 14:56:28 +00:00
Paolo Cignoni
0047c70cae
Translated comments, added various notes, removed some dead code, changed a bit the interface of the default edgelen predicate
2008-12-05 22:57:20 +00:00
Paolo Cignoni
0e13472efb
corrected a wrong assert in grid creation function
2008-12-05 22:55:36 +00:00
Paolo Cignoni
e744ca1c0e
added the missing HasPerVertexMark
2008-12-05 22:45:05 +00:00
Paolo Cignoni
f6388be600
added VertexSet, the dual of UpdateFlags::VertexClear(bitmask);
2008-12-05 22:44:03 +00:00
Paolo Cignoni
cca3b3ad5f
cleaned up a lot of typename gcc compilation issues
2008-12-02 10:04:16 +00:00
Paolo Cignoni
62c3f721aa
Added missing include trimesh/allocate.h
2008-11-28 13:45:39 +00:00
ganovelli
1d263ec3ff
added the possibility to include a container of edges as a third parameter.
...
This mod should be fully backward compatible (tested .net 2005 and gcc 4.2.4)
2008-11-27 18:01:07 +00:00
ganovelli
9d8e452e65
added Alloc to support polygon meshes
2008-11-26 17:58:15 +00:00
ganovelli
01750729b6
missing checks on deleted simplex added
2008-11-26 17:57:09 +00:00
ganovelli
faeef173e8
added AddEdge and RemoveEdge (still much ongoing)
2008-11-26 17:56:00 +00:00
ganovelli
4cae6b5107
added the update of the pointers related to the AddEdges
2008-11-26 17:46:31 +00:00
Massimiliano Corsini
992a808685
2008-11-20 17:00:30 +00:00
Paolo Cignoni
8e23847cab
Distance functor is now a template parameter
2008-11-20 16:24:42 +00:00
Paolo Cignoni
619f3f69ef
Addedd missing include
2008-11-20 13:26:59 +00:00
Paolo Cignoni
42709146e6
Addedd missing std namespace befor make_pair
2008-11-20 13:26:26 +00:00
Massimiliano Corsini
99e6ea5dd6
add fake poisson-disk sampling
2008-11-17 12:52:17 +00:00
Paolo Cignoni
5c6c7cafd5
changed the interface of the texel sampling function. Now width and height of the sampling texture can be different
2008-11-14 15:12:02 +00:00
Paolo Cignoni
360da1dd58
small changes (this-> disambiguations) and a type hack to grant compilation on mac gcc
2008-11-13 09:44:46 +00:00
ganovelli
2dfa6976ac
[EDGE_SUPPORT] first working draft. It contains a class with two static function to compute indexed data structure from half edges and viceversa
2008-11-12 17:09:26 +00:00
ganovelli
274e20b3df
changed m.HasFFTopology to HasFFTopology(m)
2008-11-12 16:06:59 +00:00
ganovelli
122f0412c8
made compliant to polygon_support
2008-11-12 16:03:24 +00:00
ganovelli
c7e86ab57a
remove unreferenced variable
2008-11-12 16:01:11 +00:00
ganovelli
a5cbc8c7f8
added return to RemoveNonManifoldVertex
2008-11-12 16:00:27 +00:00
ganovelli
e37cca54a3
[EDGE SUPPORT]
...
Added default template to TriMesh to include the edges.
Added peredge attributes.
These modification do not require any change to the code using TriMesh, but it allows
to specify a real type of edge in case you want to use it.
2008-11-12 15:51:01 +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
d124cae6fb
added a missing include
2008-11-07 15:37:46 +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
Paolo Cignoni
df84db769c
Rewrote the function for the selection and counting of non manifold vertices. Now it does not require VF topology, just FF.
2008-11-07 10:12:39 +00:00
Paolo Cignoni
336de84d19
Added an unbiased montecarlo and a revised (still to be improved) stratified sampling
2008-11-01 07:22:29 +00:00
Paolo Cignoni
49c72bc54e
Disambiguated some grid utility names (IPtoTP into IPfToPf and IPiToPf) in order to avoid ambiguities (due to automatic cast?)
2008-10-30 09:01:03 +00:00
Paolo Cignoni
e587581275
add transposeInPlace and duplicate V(int)
2008-10-29 11:17:11 +00:00
Paolo Cignoni
c1551eddfd
make Point derive Eigen's Matrix and some cleanning
2008-10-28 11:47:37 +00:00
ganovelli
949637c795
added private copy constructor and assignment operator to prevent people from doing those things
...
added empty constructors to attribute handles
2008-10-28 11:00:30 +00:00
Paolo Cignoni
7befff7bec
make point2 derived Eigen's Matrix, and a set of minimal fixes to make meshlab compile
...
with both old and new version. The fixes include:
- dot product: vec0 * vec1 => vec0.dot(vec1) (I added .dot() to the old Point classes too)
- Transpose: Transpose is an Eigen type, so we cannot keep it if Eigen is used. Therefore
I added a .tranpose() to old matrix classes, and modified most of the Transpose() to transpose()
both in vcg and meshlab. In fact, transpose() are free with Eigen, it simply returns a transpose
expression without copies. On the other be carefull: m = m.transpose() won't work as expected,
here me must evaluate to a temporary: m = m.transpose().eval(); However, this operation in very
rarely needed: you transpose at the same sime you set m, or you use m.transpose() directly.
- the last issue is Normalize which both modifies *this and return a ref to it. This behavior
don't make sense anymore when using expression template, e.g., in (a+b).Normalize(), the type
of a+b if not a Point (or whatever Vector types), it an expression of the addition of 2 points,
so we cannot modify the value of *this, since there is no value. Therefore I've already changed
all those .Normalize() of expressions to the Eigen's version .normalized().
- Finally I've changed the Zero to SetZero in the old Point classes too.
2008-10-28 00:59:46 +00:00
Paolo Cignoni
ab200fc950
Port to eigen2: state of the mess:
...
* curently nothing change if you don't define VCG_USE_EIGEN
* make Matrix*, Point3 and Point4 derive Eigen::Matrix (still ugly)
* now catching all the dot products to replace them by .dot()
note that most of meshlab already compile
2008-10-27 19:35:17 +00:00
ganovelli
69ebba04b9
Created.
...
PolygonSupport provides the functions to import a trimesh from a polygonal mesh and viceversa.
2008-10-27 16:54:32 +00:00
Paolo Cignoni
4db69febbe
big replacement .Zero => .SetZero, and start of Eigen's compatibilities (currently disabled by default)
2008-10-27 14:48:14 +00:00
Paolo Cignoni
64fcbc961a
compilation fix for 64bits systems
2008-10-24 12:41:50 +00:00
ganovelli
4783ac9a62
added an assertion
2008-10-24 10:26:28 +00:00