Paolo Cignoni
305ac24a23
Refactored Geodesic a bit to allow float/double independency
2014-08-23 01:33:53 +00:00
Paolo Cignoni
e032901b7f
updated voronoi processing stuff to manage float/double and to use the new kdtree
2014-08-23 01:32:50 +00:00
Paolo Cignoni
7285fadd53
updated the ball pivoting alg to the new kdtree
2014-08-23 01:31:16 +00:00
granzuglia
5e099ffd51
- SimpleVolume is now derived from BasicGrid<VOX_TYPE::Scalar> (change has been validated by Fabio Ganovelli)
2014-08-21 16:18:04 +00:00
Paolo Cignoni
211274ab04
Small change to the init of the simple volume class to include the correct initialization of the actual space occuped by the volume
2014-08-13 06:48:20 +00:00
Luigi Malomo
bb49f1c657
fixed types in OrientedDisk function
2014-08-09 17:10:19 +00:00
granzuglia
b5bfb0e438
complex/base.h:
...
- removed Visual Studio warnings
2014-08-09 10:01:15 +00:00
Paolo Cignoni
ce65164b58
harmless header clean up
2014-08-09 00:22:21 +00:00
Paolo Cignoni
7db065556a
Adapted the trivial walker of marching cube to float/double independence
2014-08-09 00:21:07 +00:00
Paolo Cignoni
03c2648af1
Strongly refactored in order to guarantee better independence between the resampled mesh an the original one
2014-08-09 00:19:48 +00:00
Paolo Cignoni
5fab3cefd1
Added namespaces, copyright and a bit of cleaning...
2014-08-09 00:15:52 +00:00
Paolo Cignoni
f456e8aca3
throw exception -> RequireXXXX refactoring
2014-08-09 00:14:42 +00:00
Paolo Cignoni
352d386a53
Just a few other size_t vs int clarifications
2014-08-09 00:02:52 +00:00
Paolo Cignoni
d89f934e3e
Removed unused local variable. (harmless gcc warning)
2014-08-08 22:06:12 +00:00
Luigi Malomo
2e5ac741a8
added closest face function which returns also barycentric coordinates and the interpolated normal for the closest point.
...
fixed Inside class for checking if a point is inside a mesh
minor fixes
2014-07-26 14:44:59 +00:00
Nico Pietroni
2a389bd83d
commented assert line 198 that works only for quadrilateral meshes
2014-07-26 08:41:21 +00:00
Paolo Cignoni
7b226f290c
corrected a few overloading error in the execute flipping members
2014-07-13 06:23:46 +00:00
Paolo Cignoni
8f35e48f43
harmless clang warning (size_t vs int)
2014-07-12 21:29:24 +00:00
Paolo Cignoni
88a648822a
a forgotten int to size_t conversion in append/remap
2014-07-12 21:08:15 +00:00
Paolo Cignoni
d879f84302
Converted the remap structure of the append class to keep indexes as size_t element instead of int
2014-07-12 11:43:01 +00:00
Paolo Cignoni
280a9e606b
Updates pointcloud normal and smooth to the thread safe changes to the kdtree.
2014-07-12 05:50:32 +00:00
Paolo Cignoni
65336cfe7b
Trying to solve int / size_t issues. Added a error guard to avoid inclusion of append.
2014-07-07 10:09:25 +00:00
granzuglia
30a9c6c2fb
- a lot of int variables converted into size_t ones
...
- vectors contained inside Remap class converted from std::vector<int> into std::vector<size_t>
2014-07-07 07:09:07 +00:00
granzuglia
991aa707d9
- added int cast in order to avoid annoying warnings
2014-07-07 06:58:08 +00:00
Nico Pietroni
bc45cfeef4
corrected 1 compilation issue with mesh passed as const
2014-07-05 14:20:00 +00:00
Nico Pietroni
c74af00fdf
minor modification
2014-07-04 13:29:24 +00:00
Paolo Cignoni
a743e93a70
Reasonable but harmless clang warning cleanup
2014-07-03 21:28:40 +00:00
Paolo Cignoni
afc802107a
Made uniform the use of size_t instead of int in the vast majority of the allocate.h functions
2014-07-03 20:57:26 +00:00
Nico Pietroni
6b106d97fb
first release version
2014-07-03 15:52:26 +00:00
Nico Pietroni
44f41b7c4c
first release version
2014-07-03 15:52:05 +00:00
Nico Pietroni
8b0db14e84
reformatted and erased some commented code
2014-07-03 15:39:36 +00:00
Paolo Cignoni
2c0fa9a323
Improved float/double consistency removing some wrong Point3f and substitued with MeshType::CoordType
2014-07-01 10:13:18 +00:00
Paolo Cignoni
15d9307584
Improved float/double consistency removing some wrong Point3f and substitued with MeshType::CoordType
2014-07-01 10:12:49 +00:00
Paolo Cignoni
c1d6d4e9bd
Improved float/double consistency removing some wrong Point3f and substitued with MeshType::CoordType.
...
Removed also the use of an additional mesh type called spheremesh to create sphere (the method require ff adj).
2014-07-01 10:11:23 +00:00
Paolo Cignoni
073e07a309
Reasonable but harmless clang warning cleanup
2014-07-01 10:07:36 +00:00
Paolo Cignoni
26e8652a24
Improved float/double consistency removing some wrong Point3f and substitued with MeshType::CoordType
2014-07-01 06:20:23 +00:00
Nico Pietroni
9a5b7bdbd3
generalized ComputePerFaceQualityMinMax to use template parameters
2014-06-30 15:47:58 +00:00
Nico Pietroni
af8ce3b7e2
corrected 1 bug in ImportFromPolyMesh
2014-06-30 15:47:23 +00:00
Paolo Cignoni
811ac9b940
Add managment of polygonal to tri conversion even for the case of two polygonal meshes...
2014-06-27 15:16:02 +00:00
Paolo Cignoni
87e2599d27
Added a missing ImportData in the polygon to tri converstion function in order to allow the copy of most of the data from the polygonal face to the splitted one.
2014-06-24 08:50:32 +00:00
Paolo Cignoni
babd813674
Improved float/double consistency removing some wrong Point3f and substitued with MeshType::CoordType
2014-06-24 08:49:09 +00:00
Paolo Cignoni
934e5d9e3e
Improved float/double consistency removing some wrong Point3f and substitued with MeshType::CoordType
2014-06-24 08:48:27 +00:00
Paolo Cignoni
eb642099f1
Corrected another typeclash in the curvature types (a CurVecType definition was missing in the emptycore component)
2014-06-24 08:41:41 +00:00
Nico Pietroni
c918b9097c
correct 1 bug in VertexBorderCorner function
2014-06-22 12:28:56 +00:00
Nico Pietroni
bcd4124282
minor compilation issues
2014-06-22 12:28:21 +00:00
Paolo Cignoni
5349e55fed
Improved float/double consistency removing some wrong Point3f and substitued with MeshType::CoordType
2014-06-19 15:01:54 +00:00
Paolo Cignoni
bc980f70cc
Improved float/double consistency removing some wrong Point3f and substitued with MeshType::CoordType
2014-06-19 11:45:00 +00:00
Paolo Cignoni
e29b18045c
Improved float/double consistency removing some wrong Point3f and substitued with MeshType::CoordType
2014-06-19 10:26:13 +00:00
Paolo Cignoni
3bc58b7018
Improved float/double consistency removing some wrong Point3f and substitued with MeshType::CoordType
...
and removed a small bug (in the initialization the first ball sphere could fail for approx errors)
2014-06-19 10:25:50 +00:00
Paolo Cignoni
59779347ab
Improved float/double consistency removing some wrong Point3f and substitued with MeshType::CoordType
2014-06-19 10:24:27 +00:00
Paolo Cignoni
c30978903d
Improved float/double consistency removing some wrong Point3f and substitued with MeshType::CoordType
2014-06-19 10:23:58 +00:00
Paolo Cignoni
4198a3bd7c
Cleaned up various type name clashes. There were some components that wrongly re-defined <ScalarType> covering the real <ScalarType> of the simplex. Renamed to something less ambiguous (like CurScalarType for denoting the scalar type used inside curvature types).
2014-06-19 08:31:51 +00:00
Paolo Cignoni
4fbbfe4f86
Small changes in the long long way to making meshlab and the vcglib really float/double independent
2014-06-18 17:30:02 +00:00
Paolo Cignoni
c5efcad9a2
Small changes in the long long way to making meshlab and the vcglib really float/double independent
2014-06-18 17:29:08 +00:00
Paolo Cignoni
0970bd18ca
Small changes in the long long way to making meshlab and the vcglib really float/double independent
...
TexCoordScalarType can be different from the mesh scalar type
2014-06-18 10:52:24 +00:00
Paolo Cignoni
3808c3dbd4
Small changes in the long long way to making meshlab and the vcglib really float/double independent
2014-06-18 10:39:43 +00:00
Paolo Cignoni
225af65457
Small changes in the long long way to making meshlab and the vcglib really float/double independent
2014-06-18 10:38:52 +00:00
Paolo Cignoni
4c30ba4672
Small changes in the long long way to making meshlab and the vcglib really float/double independent
2014-06-18 10:38:15 +00:00
Paolo Cignoni
b6c540f554
Small changes in the long long way to making meshlab and the vcglib really float/double independent
2014-06-18 10:37:48 +00:00
Paolo Cignoni
3edd987ef2
corrected small bug in the BuildVolumeSampling member of the voronoi volumetric sampling
2014-06-17 15:01:18 +00:00
Paolo Cignoni
a90b2a79ef
Wrong type cast
2014-06-17 14:48:39 +00:00
Paolo Cignoni
b389e3a314
removed a few point3f and changed into coordTypes
2014-06-17 13:42:10 +00:00
Paolo Cignoni
a2ba22e4fb
Added BuildPrismFaceShell to convert a mesh into a set of extruded prisms (one for each face...)
2014-06-17 13:20:42 +00:00
Paolo Cignoni
d3a7e225ee
added a AddEdge ( point - point) member to the Allocator Class
2014-06-17 13:05:46 +00:00
Paolo Cignoni
28d838ca49
Corrected a small bug in the poisson sampling exact number helper.
2014-05-23 15:05:16 +00:00
Paolo Cignoni
2916ad7207
Refactored CountEdges into CountEdgeNum (now it also reports non manifold edges)
2014-05-23 15:03:15 +00:00
Paolo Cignoni
b17fa09b37
Significant refactoring of the 4pcs class (uniform naming, clearer init etc)
2014-05-23 12:38:20 +00:00
Paolo Cignoni
34fb35c6c7
Again refactored and commented the ExtractPolygon
2014-05-21 13:35:54 +00:00
Paolo Cignoni
7c93452e94
Just refactored a bit the simple volume class used for example in the marching cube
2014-05-21 11:49:29 +00:00
Nico Pietroni
773e2bdb1e
corrected minor warnings
2014-05-21 02:01:06 +00:00
Paolo Cignoni
8ba0e6d6aa
Added method PerBitPolygonFaceNormalized for computing normals for polygonal meshes kept with fauxbit.
...
Added a few Require just for safety
2014-05-20 22:30:59 +00:00
Paolo Cignoni
44741d7f36
Added a few requirement of polygonal and triangular meshes to clarify usage
2014-05-20 22:29:25 +00:00
Paolo Cignoni
1baf0f3727
Added RequirePolygonalMesh invariant to the list of the exception throwing utility
2014-05-20 22:28:30 +00:00
Paolo Cignoni
d2131fd436
Corrected small bug in the ExtractPolygon function that collect all the tri of a polygonal face
2014-05-20 20:48:04 +00:00
giorgiomarcias
1803989930
Added two methods for computing normals of polygonal meshes.
2014-05-20 15:55:58 +00:00
Paolo Cignoni
2b3bb02be0
harmless gcc warning
2014-05-16 08:43:00 +00:00
Paolo Cignoni
48f9487eaa
First draft version of the volumetric version of voronoi sampling
2014-05-15 16:49:38 +00:00
Paolo Cignoni
b572187a63
added yet another wrapper for the Allocator Add face. it is quite useful to add faces just with indexes...
2014-05-15 16:31:39 +00:00
Paolo Cignoni
3b7753ef20
Many Changes to point sampling:
...
- Heavy refactoring (typename changes, declaration etc) for clarity and shortness
- add a reset() method to the sampler interface
- changed the way used to get a weight in the sampling process now the variance is used to map the 'metric' along 1 and <variance>; Made it uniform in poisson and montecarlo sampling.
- changed the way in which the weight is used/passed: now with attribute!
- added exact number poisson disk pruning.
- stats are always computed (no performance impact clearer code)
2014-05-15 10:35:08 +00:00
Paolo Cignoni
53dbae6626
Added the automatic fixing of the constrained vertices after the constrained relaxation.
2014-05-13 15:34:26 +00:00
Paolo Cignoni
5b4357f9bb
Refactored the ComputeFaceEdgeLengthDistribution function. Now it collects info about the edges also complying fauxedges and polygonal meshes.
2014-05-13 10:55:53 +00:00
Paolo Cignoni
5c7949d261
Corrected a bug in the faux edge creation for box/cube
2014-05-13 10:51:11 +00:00
Paolo Cignoni
4a449c8669
Added Spherical Cap primitive and functions to convert a mesh into a set of cylinders and balls to get a solid wireframe representation.
2014-05-13 09:54:48 +00:00
Paolo Cignoni
4e4775ac60
refactored for shortness and efficiency the heavily used FillEdgeVector that collect all the edges of a mesh
2014-05-13 09:52:17 +00:00
Paolo Cignoni
b79c323a77
Added relaxOnlyConstrainedFlag to the voronoi processing relax procedure that allow to relax only the vertexes that are constrainted (onto their domain) ignoring all the other samples (except the fixed one). It allows to get more even distributions on the constrains.
2014-05-09 21:50:28 +00:00
Paolo Cignoni
329057ea96
Corrected position of the vertexes on the border of the voronoi diagram (middle of edge and not middle of face!)
2014-05-07 14:41:44 +00:00
Paolo Cignoni
fc22d7d3a6
Added normal reorientation of the mesh (each reglon of was randomly oriented)
2014-05-07 14:28:14 +00:00
Paolo Cignoni
07ab76d93e
removed unused variables
2014-05-07 09:22:53 +00:00
Paolo Cignoni
7b18a903ec
removed a forgotten debug printf
2014-05-07 07:50:02 +00:00
Paolo Cignoni
3963786487
Complete rewrote of the function that convert a mesh with a set of seeds and geodesic distances computed from them into a voronoi diagram mesh. Now works also in strange cases (like almost degenerate regions)
2014-05-06 23:13:22 +00:00
Paolo Cignoni
9de6cde470
Improved polygonal support. Refactored convert tri to poly. Added support for face color and face quality
2014-05-05 23:23:19 +00:00
Nico Pietroni
f72e9a1481
corrected one bug to make the refine predicate do not refine when the edge is perfectly aligned with the distance function (and both or just one value is zero)
2014-05-04 23:33:31 +00:00
Nico Pietroni
e57b89945f
corrected some warnings relative to unreferenced variables
2014-05-04 23:32:33 +00:00
giorgiomarcias
8f72b462eb
Corrected a silly bug causing the polychord collapse process a strange behaviour (also some crash) when compiled with c++11. Changed also recursive types (forward declarations) avoiding pointers (by using vectors - rather than lists - and indices).
2014-05-04 18:53:31 +00:00
Nico Pietroni
b01f2c111e
changed some method to work with polygons
2014-04-24 16:08:33 +00:00
giorgiomarcias
cf1a476116
Corrected a bug arising when splitting a polychord with at least a 2-valence vertex (causing the polychord to blend and touch itself - wrong adjacency were computed before).
2014-04-22 10:26:15 +00:00
Paolo Cignoni
30a7ecf743
4pcs: Small optimization (preallocation of vector instead of pushback)
2014-04-18 13:39:52 +00:00
Paolo Cignoni
b01b731b75
Removed useless member variables, Exposed normal tolerance, added random seed control for safe testing. Added early rejection testing in IsTransfCongruent (40% speedup).
2014-04-18 08:33:25 +00:00
Paolo Cignoni
e532407ddc
Added the possibility to control the random generator seeding in the poisson pruning wrappers
2014-04-18 08:27:38 +00:00
Paolo Cignoni
245931d93d
Still refactoring. Now substituted montecarlo with poisson disk sampling
2014-04-18 06:04:18 +00:00
Paolo Cignoni
e353355f12
corrected a small syntax error introduced in the last commit
2014-04-17 13:53:55 +00:00
Paolo Cignoni
6e4edddcf5
Corrected a small syntax error in the last commit of point_sampling
2014-04-17 10:11:43 +00:00
Paolo Cignoni
d5e181b445
Heavily refactored 4PCS.
...
Some of the things done:
- better random generator
- small optimization (removed O(n) update bb
- exposed parameters
- renamed for uniformity variables.
2014-04-17 09:53:33 +00:00
Paolo Cignoni
4be7b59a80
Added TrivialPointerSampler to sample a mesh returning pointers to the chosen vertexes.
...
Added another poisson pruning wrapper to make even easier to choose a subset of vertexes from a mesh with good distribution.
2014-04-17 09:51:48 +00:00
Paolo Cignoni
dbe0d2b7f5
Wrapper to AddVertices() to add, with a single call, a single vertex with given coords and normal
2014-04-17 09:49:40 +00:00
Paolo Cignoni
309d1e3289
added a missing RequirePerFaceMark in the Marker Class
2014-04-17 08:51:53 +00:00
Paolo Cignoni
612fd0d226
Derived the volume class from the basicGrid class to have all the helpers for transforming coords from voxel space to the original space
2014-04-17 08:15:18 +00:00
ganovelli
5a4b97a559
cleaning am some tuning
2014-04-16 10:29:05 +00:00
Nico Pietroni
7bb5f1d041
resolved 1 bug in QualityEdgePredicate
2014-04-07 06:27:56 +00:00
Nico Pietroni
274a391b1a
resolved some compilation issues
2014-04-07 06:27:28 +00:00
granzuglia
8e321de2a8
- Paolo changed RequireTriangularMesh. I'm only committing the change
2014-04-01 15:09:25 +00:00
Paolo Cignoni
a3ad95f64e
Better management of placement of delaunay midpoint vertices when generating the delaunay triangulation and some constrained vertices are involved.
2014-03-27 16:48:32 +00:00
Paolo Cignoni
c3f7b86500
Some changes to the voronoi processing class. Now it performs Loyyd relaxation on constrained elements only keeping into account the constrained set. In other words sample on the boundary are relaxed only keeping into account of he other boundary vertexes This will result in much better distributions of samples on the boundaries.
...
Improved also boundary management in the refinement/spring relaxing.
Added a parameter for controlling the preprocessing refinment
2014-03-18 11:27:46 +00:00
Paolo Cignoni
185c0f7152
Converted to the use of the internal Index function to get the index of an element
2014-03-18 11:24:25 +00:00
giorgiomarcias
7a9b33fcc5
Corrected a bug which could happen because of memory not released.
2014-03-14 14:56:17 +00:00
giorgiomarcias
833cc12e38
Added a (useful) static method to split a given polychord into a number n>1 of polychords.
2014-03-11 15:06:07 +00:00
Nico Pietroni
4e4d5edeb7
some minor modification to give the possibility to specify the interpolation function for refinemenent
2014-03-07 16:32:06 +00:00
Nico Pietroni
9e2643a90d
corrected one bug during collapses.. have to check link conditions
2014-03-07 10:35:36 +00:00
Nico Pietroni
a6966b7ba0
first release version
2014-03-06 16:54:42 +00:00
Luigi Malomo
62ad64fdac
fixed bugs in the harmonic field computing algorithm
2014-03-05 13:14:48 +00:00
Paolo Cignoni
323362697a
Changed to trisplit to make it c++ 01 compliant
2014-03-04 17:18:03 +00:00
Paolo Cignoni
dc71da4424
removed useless print from voronoi parametrization
2014-03-04 00:53:39 +00:00
Paolo Cignoni
2254e98779
slightly improved comments and a missing requirement
2014-03-04 00:39:27 +00:00
Paolo Cignoni
a6cc8ccd56
Renamed voronoi_clustering -> voronoi_processing
2014-03-04 00:38:36 +00:00
Paolo Cignoni
5dcc53d63c
Heavyly restructured the voronoi processing class (to be renamed). See the new trimesh_voronoi sample how to use it in the correct way.
2014-03-04 00:37:01 +00:00
Paolo Cignoni
92d6da43d5
Added the possibility for the plain midpoint class to allow also the correct interpolation of userdefined data by providing, in the constructor, an interpolator functor that will be called for each new vertex to be created.
2014-03-04 00:35:44 +00:00
Paolo Cignoni
e042757e5a
Added another AddFace wrapper.
2014-03-04 00:31:49 +00:00
Paolo Cignoni
60c32eeeee
Better comment and renamed a template
2014-03-03 07:45:00 +00:00
Paolo Cignoni
62bd82e208
added one more control in AddFace
2014-03-03 07:44:03 +00:00
Paolo Cignoni
39f65b4d8f
Added some requireAttribute functions
2014-02-27 06:38:44 +00:00
Paolo Cignoni
e99ae117de
Harmless warning (unsigned vs signed int)
2014-02-25 17:40:36 +00:00
Paolo Cignoni
ce9c2c1661
Updated the use of eigen sparse matrix to the current official version (was using the old experimental branch)
2014-02-25 17:39:51 +00:00
Luigi Malomo
a472e201a3
added algorithm to compute harmonic fields.
2014-02-21 14:37:20 +00:00
Paolo Cignoni
7cfd407a2f
Refactored Smooth::FaceNormalLaplacianVF
2014-02-19 15:27:01 +00:00
Paolo Cignoni
2e18e0650a
Added a RequireTriangularMesh
2014-02-19 14:39:30 +00:00
Paolo Cignoni
18c0ac1681
Refactored selection face from vertices algorithms and added requiremnts for triangular mesh for the algorithm selecting vertices starting from face border flag
2014-02-19 14:38:54 +00:00
Paolo Cignoni
85c5274965
Harmless warning (unused parameter)
2014-02-19 13:21:31 +00:00
Paolo Cignoni
b2e97b9134
added RequireTriangularMesh guard and corresponding exception
2014-02-19 11:58:01 +00:00
giorgiomarcias
4cc8a7c919
Corrected a wrong behavior in case of a polychord having singularities on one side and a regular (ring) border on the other, which must not be collapsed.
2014-02-19 09:32:35 +00:00
Paolo Cignoni
6f7e2872af
Removed useless include
2014-02-18 20:18:13 +00:00
Paolo Cignoni
998312b65e
PolygonalMesh Debugging: corrected importFaceAdj bug
2014-02-18 20:17:28 +00:00
Paolo Cignoni
3d676586a7
callback is part of the default inclusion now.
2014-02-18 20:16:26 +00:00
Paolo Cignoni
6292a8a0af
Added IsEmpty member to base mesh
2014-02-18 20:16:03 +00:00
Paolo Cignoni
614f49c053
PolygonalMesh Debugging: Added another missing Alloc
2014-02-18 14:12:08 +00:00
Paolo Cignoni
d07b9b0c91
PolygonalMesh Debugging: corrected typo in the name of the polychord class
2014-02-18 11:03:42 +00:00
Paolo Cignoni
00d326ed76
Improved comments and harmless refactoring
2014-02-18 11:03:01 +00:00
Paolo Cignoni
f896e9bd3e
PolygonalMesh Debugging: corrected typo in the name of the polychord class
2014-02-18 11:01:15 +00:00
Paolo Cignoni
0d6c673a9b
PolygonalMesh Debugging: Improved Allocator robustness. Better allocation/deallocation of polyigonal elements
2014-02-18 10:56:16 +00:00
Nico Pietroni
30fb536c78
added initial Nrosy interpolation functions
2014-02-16 16:36:22 +00:00
giorgiomarcias
22a3e51d1a
Corrected some updating selection functions to manage polygonal faces instead of just triangular ones.
2014-02-15 20:56:36 +00:00
giorgiomarcias
628fc52a42
Removed debugging printings in polycoord collapse.
2014-02-15 17:10:56 +00:00
giorgiomarcias
b15e3285c2
Some bug fixes in case of meshes with borders.
2014-02-14 10:36:12 +00:00
Paolo Cignoni
f831ec8b77
small change to remove useless annoying warnings.
2014-02-13 17:31:43 +00:00
Paolo Cignoni
7600fc3ffb
removed a couple of forgotted debug ply exporting calls
2014-02-13 16:30:41 +00:00
Paolo Cignoni
6efdd91ecc
Many small changes to remove useless annoying warnings.
2014-02-13 15:52:17 +00:00
giorgiomarcias
7b1cdcdeb4
Implemented Polycoord Collapse for polygonal meshes (only strips of quads are effectively collapsed).
2014-02-12 12:43:02 +00:00
giorgiomarcias
4260535fa6
Corrected two wrong indexes on the access to the vertexes of a face while compacting the face vector: just a typo mistake.
2014-02-12 12:15:42 +00:00
Paolo Cignoni
7747e6097f
Corrected a few allocating and copyng functions to manage polygonal meshes instead of simple triangular ones.
2014-02-12 10:59:37 +00:00
Paolo Cignoni
d00d1b90e0
removed useless mesh parameter in FFLinkCondition
2014-02-12 10:58:38 +00:00
Paolo Cignoni
9e28c7b1e1
simple change of the template name from MESH_TYPE to MeshType to standardize
2014-02-10 10:57:12 +00:00
Nico Pietroni
3bd4213984
solved minor compilation issues
2014-02-07 11:06:49 +00:00
Marco Callieri
0ba814697c
Poisson sampling was ignoring the DELETED flag, so when a part of a mesh was deleted but still in memory, would sample it. added a couple of if(!(*vi).IsD()) tests in [InitSpatialHashTable], [ComputePoissonSampleRadii] and [PoissonDiskPruning].
...
Seems to work, but please test it.
Beware: there could be more places where this is needed; I only checked poisson.
2014-01-21 14:59:45 +00:00
Marco Callieri
17ed6bdac4
in the function used to compute normals for pointclouds, added a check during consensus propagation to avoid flipping normals backface w.r.t. the specified wiewposition.
...
It does seem redundant, but it may happen, by mere chance, that the starting point used for consensus propagation, forces other points to flip even if the resulting flip places them backface w.r.t. the specified wiewposition
--to be tested--
2014-01-10 13:00:09 +00:00
Paolo Cignoni
e4311e9d5a
Added comment to voronoi parameter
2013-12-20 11:46:50 +00:00
Paolo Cignoni
2df9b39d16
Further clean up of the voronoi relaxation framework. changed the old VoronoiClustering to ConvertToDelaunayTriangulation (for coherence with the other function) and rewrote its code.
2013-12-20 11:44:18 +00:00
Paolo Cignoni
ab5869f6c3
Added the possibility of constraining the movement of some seeds onto a specific domain. Now during relaxation you can for example fix some seeds and constrain some other seeds over linear features defined as subset of vertices.
2013-12-20 02:33:36 +00:00
Paolo Cignoni
d1a5d53a89
added VertexBorder sampling algorithm that simply collect all the vertexes on the boundary.
2013-12-20 02:27:09 +00:00
Paolo Cignoni
2acd02f102
Added RequireCompactness to the basic exception throwing requirements that you can write at the beginning of an algorithm
2013-12-20 02:24:22 +00:00
Paolo Cignoni
4897d75026
Added MissingCompactnessException to the basic vcg exceptions
2013-12-20 02:23:24 +00:00
Nico Pietroni
45c93e47f0
corrected 1 warning
2013-12-16 12:07:54 +00:00
Nico Pietroni
c1403e2fef
- added FaceSaturate function
...
- corrected vertex from face quality copy
2013-12-16 12:07:26 +00:00
Paolo Cignoni
43b738796d
Significantly improved documentation. Refactored a bit some of the Add* for better readability
2013-12-12 20:35:27 +00:00
Paolo Cignoni
6c883d3cf3
Added a few assert to prevent the spread to trash data during voronoi relaxation
2013-12-05 22:35:25 +00:00
Gianpaolo Palma
89039d6658
Inverted face orientation for the Box
2013-12-05 17:43:36 +00:00
Paolo Cignoni
85ac0b3c4b
removed a spurious debug exportply
2013-12-04 17:37:41 +00:00
Paolo Cignoni
fd09d6fee2
Added standard heading comment to the newly added file.
2013-11-28 23:39:45 +00:00
Paolo Cignoni
6762cdbacb
First version of the cylinder clipping procedure.
...
Now it cut the mesh (the cap part is still lacking...
See the app/trimesh_cylclip example
2013-11-28 23:30:35 +00:00
Paolo Cignoni
993a9a2c5b
Tricky Change to the refine interface. Now the edge and midpoint predicate are passed as reference so if you need you can make predicate with state. This is useful when the edge and midpoint predicate share a lot of common information and you want exploit the computation done in the edge predicate (e.g. sometimes when you decide if an edge has to be split you already know where the vertex should be placed).
2013-11-28 23:29:06 +00:00
Paolo Cignoni
74749469e1
Added distance based relaxation option instead of the standard geodesic relaxation
2013-11-27 17:24:04 +00:00
Paolo Cignoni
1c20f47552
added OrientedCylinder to primitive creating functions
2013-11-26 11:49:47 +00:00
Paolo Cignoni
bc218b8201
Include header cleaning and reordering.
2013-11-25 12:47:20 +00:00
Paolo Cignoni
51424a7896
committed a small change to the Geodesic::Visit
...
Now it can start from a set of seeds that are not at zero distance.
2013-11-25 12:46:30 +00:00
Paolo Cignoni
cbc36cf147
Include header cleaning and reordering.
2013-11-25 10:40:33 +00:00
Paolo Cignoni
ae18013dd2
Updated to a change of interface of VoronoiProcessing<VoroMesh>::VoronoiColoring
2013-11-25 10:39:48 +00:00
Paolo Cignoni
54b288611a
Include header cleaning and reordering.
2013-11-25 10:38:17 +00:00
Paolo Cignoni
85ae6fe034
Updated to the change of interface of VFOrderedStarFF
2013-11-25 10:37:42 +00:00
Paolo Cignoni
7c0f42c4d7
Include header cleaning and reordering.
2013-11-25 10:35:39 +00:00
Paolo Cignoni
cc72b3e3e1
Include header cleaning and reordering.
2013-11-25 10:32:41 +00:00
Paolo Cignoni
84c80a1972
Include header cleaning and reordering.
2013-11-25 10:01:24 +00:00
Paolo Cignoni
25e6561f60
Changed the access to a segment endpoint according to the recent change P(x) -> Lerp(x) in the segment3 interface
2013-11-07 22:35:32 +00:00
granzuglia
d4cbf8b65d
- fixed heap bug
2013-10-18 15:32:04 +00:00
granzuglia
d59e519e8f
- added missing "#include"
2013-10-16 08:36:05 +00:00
Paolo Cignoni
a1471cea44
Cleaned up a bit naming and comments and some interfaces of some bitquad functions
2013-10-10 16:02:27 +00:00
Paolo Cignoni
b8769bd3e6
updated the voronoi atlas parametrization to the new geodesic api
2013-10-10 10:36:39 +00:00
Paolo Cignoni
afec01ce96
corrected order of include files (face/topology.h must go after complex.h)
2013-10-09 09:18:08 +00:00
Paolo Cignoni
4cf6f3d6e8
Added edge collapse of short edges and triangulation of voronoi regions
2013-10-09 08:49:13 +00:00
Paolo Cignoni
2a552f8976
Corrected a wrong call to GetAreaAndFrontier that I forgot to update after the api change...
2013-10-07 08:07:16 +00:00
Paolo Cignoni
97a8cb9238
Removed the missing face bug and the wrong orientation bug.
2013-10-03 21:09:28 +00:00
Paolo Cignoni
bf17b1b9f8
Heavylly change. Rewrote the voronoi to mesh converter. Added option for locking vertices
2013-10-03 14:32:53 +00:00
Paolo Cignoni
607e048265
added a few assert in the newly added AddFace shortcut
2013-10-03 14:32:01 +00:00
Paolo Cignoni
41bced16bd
Added VertexBorderCorner sampling function (that returns all the vertices over the boundary and that are corners...
2013-10-03 10:00:53 +00:00
Paolo Cignoni
97f8b30adf
changed a type of the Build wrapper to override a weird compiler error (form int[3] to point3i)
2013-10-03 09:59:11 +00:00
Paolo Cignoni
ad17f61dc0
added a simple wrapper to add a single vertex to a mesh given its coords
2013-10-03 09:57:45 +00:00
Nico Pietroni
97d14f173f
added clear V flag at the beginning of ImportFromTriMesh function
2013-10-03 08:21:08 +00:00
Nico Pietroni
7c08094a50
corrected AnisotropicDistance
2013-09-21 00:54:21 +00:00
Nico Pietroni
affa165543
added explicit cast to ScalarType , line 286
2013-09-21 00:53:36 +00:00
Nico Pietroni
afef24633f
added #include <vcg/container/simple_temporary_data.h>
2013-09-21 00:52:24 +00:00
Paolo Cignoni
58471132ba
Cleaned up a bit for better handling of point clouds
2013-09-11 11:11:10 +00:00
Paolo Cignoni
80467d1f41
minor changes (component check in the sampler class)
2013-09-11 11:09:29 +00:00
Paolo Cignoni
0263e6df9d
Small changes in comments
2013-09-10 14:21:48 +00:00
Paolo Cignoni
d974bf2770
Further tuning of poisson disk sampling pruning. Now we check also if the Spatial Hash Index is not over filled,
2013-09-10 13:41:16 +00:00
Paolo Cignoni
46dc55fb3c
Refactored code to use the AddFace of the Allocator that add and fill a face with three vertex pointers.
2013-09-10 10:51:15 +00:00
Paolo Cignoni
4fdfb1d62b
Parameter Tuning for the PoissonDisk sampling using the getBestPrecomputedMontecarloSample heuristic. Now there is a better default and another param exposed.
2013-09-10 10:50:10 +00:00
Paolo Cignoni
b849524274
Added Requirements. Refactored some funcs and uniformed naming of functions...
2013-09-10 10:49:01 +00:00
Paolo Cignoni
b49b2ce1e8
Added PerVertexBasicRadialCrossField for the creation of sample cross field
2013-07-26 12:21:40 +00:00
Paolo Cignoni
05d262ba9b
Added conversion to polygonal mesh and to edge mesh of the generated voronoi diagram.
...
Improved behavior for biased distance diagrams
2013-07-26 12:20:40 +00:00
Paolo Cignoni
a2b05e1f66
Added isotropic distance and anisotropic distance functor for biasing the geodesic computation.
2013-07-26 12:13:45 +00:00
Paolo Cignoni
c5549f607a
Cleaned up the edge allocator and added two small wrapper for adding and initializing a single face or edge with the vertex pointers
2013-07-26 09:34:41 +00:00
Paolo Cignoni
f85ce4e334
Removed all references to the useless old vcg::math::Swap
2013-07-26 07:35:02 +00:00
Paolo Cignoni
f9db54196b
Significant Change.
...
Removed old quality from geodesic function. Use the Geodesic class that has a singleCall wrapper doing the same in a eventually better way.
Added a number of RequireXXX at the beginning. To be completed...
2013-07-24 12:00:47 +00:00
Nico Pietroni
f22b8bef25
uncommented some code to find which vertex fix on poisson solving
2013-07-23 11:22:06 +00:00
Nico Pietroni
fe7565ad2a
commented the part that set as border the non manifold vertex
2013-07-23 11:20:44 +00:00
Paolo Cignoni
c5fcfd94c1
Added a MeshSampler Class to the framework as a simple example of the sampling procedure
...
Added another wrapper for montecarlo sampling of points
Improved the basic wrapper of poisson disk sampling to include variable disk radius sampling
2013-07-23 07:32:12 +00:00
Paolo Cignoni
99440c4e62
#ifndef NO_QT -> #ifdef QT_VERSION
2013-07-16 15:44:52 +00:00
Paolo Cignoni
42da29417b
cleaned up a bit the interface and formatting of the code of the voronoiclustering alg
2013-07-05 14:46:48 +00:00
Paolo Cignoni
7b8f21ba7a
Excluded from the computation of the mass intergrals the faces with an area that is <= std num limits <scalar>::min()
2013-07-03 21:44:39 +00:00
Paolo Cignoni
1655f806df
removed M_PI_2 constant. (not more supported by vs2010 on)
2013-07-03 21:12:08 +00:00
Paolo Cignoni
29b3c4e1ec
Added VertexCrease, EdgeMontecarlo sampling methdo
...
Improved PoissondDisk sampling algorithm with the bestSampleChoiceFlag parameter
2013-06-24 10:51:53 +00:00
Paolo Cignoni
98e49178ba
Added IsCoherentlyOrientedMesh and cleaned up a bit the self intersection
2013-06-24 10:50:14 +00:00
Paolo Cignoni
9acdf598a1
removed harmless gcc warning
2013-06-24 09:36:46 +00:00
Paolo Cignoni
388435d15a
Added a default value to the optional cb parameter in the pointcloud normal generation function
2013-06-24 08:36:08 +00:00
Paolo Cignoni
49d759af2a
Added EdgeBarycentricToFaceBarycentric to convert an edge position into a face barycentric position
2013-06-24 07:31:11 +00:00
Paolo Cignoni
5049407069
Added FaceFauxSignedCrease that Marks feature edges according to two signed dihedral angles.
2013-06-24 06:56:15 +00:00
Paolo Cignoni
efe6379b4b
Added updating of the bbox for generic mesh build
...
Added build for point clouds
Added Clear at the beginning of the Build(m)
2013-06-24 06:49:51 +00:00
Nico Pietroni
5f59f1fa5a
corrected some non templated type on SplitNonManifoldVertex function
2013-05-08 09:05:58 +00:00
Nico Pietroni
a52a4d0ad3
added ClearCreases function..
...
corrected setting B for non manifold in VertexBorderFromNone
2013-04-24 14:22:43 +00:00
Nico Pietroni
04bca27a7e
erased first assert of RemoveDuplicateEdge function
2013-04-20 15:13:49 +00:00
Paolo Cignoni
cbba83d17c
added Annulus and OrientedAnnulus to mesh creation helpers
2013-04-15 20:14:27 +00:00
Paolo Cignoni
371ff46282
added a missing RequireVFAdjacency and corrected a bug into the RequireXX for a couple of other adjacency...
2013-04-12 09:16:49 +00:00
Paolo Cignoni
eeddfe6a90
Updated to include better control of the voronoi parametrization. Changed packer (warning it requires qt...)
2013-04-03 10:07:29 +00:00
Paolo Cignoni
135f5f9ecb
added Outline2VecBBox method
2013-04-03 10:02:19 +00:00
Nico Pietroni
01c0681291
added #include <vcg/complex/exception.h>
2013-03-30 15:31:57 +00:00
Nico Pietroni
8454fb5fc9
removed some commented part and changed FixDefaultVertices
2013-03-30 15:30:18 +00:00
Paolo Cignoni
9bd9f9fdc7
Further cleaning up and factorization of the stuff for the raster outline packer
2013-03-26 11:25:47 +00:00
Paolo Cignoni
4fa516b8d7
Added first version of the outlinesupport.h to manage various interaction between meshes, borders and outlines
2013-03-25 13:09:15 +00:00
Paolo Cignoni
668bf05a1d
Refactored a bit CountConnectedComponents (added requiremens)
2013-03-25 10:33:22 +00:00
granzuglia
5bcce6a3d5
//static_cast<VertexPointer>(NULL) has been introduced just to avoid an error in the MSVS2010's compiler confusing pointer with int. You could use nullptr to avoid it, but it's not supported by all compilers.
...
//The error should have been removed from MSVS2012
std::pair<float,VertexPointer> zz(0.0f,static_cast<VertexPointer>(NULL));
2013-03-24 16:33:50 +00:00
Paolo Cignoni
1fef63b1da
improved a bit the basic step of the voronoi clustering
2013-03-22 17:07:55 +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
3a9a72c098
removed a useless template specialization to a few std::make_pair
2013-03-22 16:53:42 +00:00
Paolo Cignoni
12543d68a2
Removed also from this file the deprecated dependencies from linalg. NOW EVERY PIECE OF THE VCG relies on eigen for linalgebra.
2013-03-20 08:32:53 +00:00
Paolo Cignoni
72d67f4a11
Added parenthesis to clearly disambiguate if/then/else
2013-03-20 08:28:30 +00:00
Paolo Cignoni
5aaa6f4720
harmless small refactoring
2013-03-13 14:59:34 +00:00
Paolo Cignoni
f62e07ee66
Corrected the behavoiour of the allocate::Compact when managing uninitialized and null element in adjacency
2013-03-13 14:33:09 +00:00
Paolo Cignoni
6950be4594
Improved comment/documentation. Changed throws in require
2013-03-13 14:00:29 +00:00
Paolo Cignoni
8446dbc168
corrected a wrong interface to poisson pruning (left after recent changes)
2013-03-13 00:16:51 +00:00
Paolo Cignoni
8f45cb352e
Added a simpler CompactEveryVector to allocate to compact face edge and vertices...
2013-03-13 00:15:13 +00:00
ganovelli
4253c2f3b6
corrected bug on appending perFace and perEdge attributes
...
(thanks to Minghua Nie for pointing it out).
2013-03-11 11:53:26 +00:00
Paolo Cignoni
d61c5c24a1
Slight change of the PoissonDiskPruning interface. Removed a useless parameter (the original surface mesh)
2013-03-01 08:34:33 +00:00
Paolo Cignoni
0f34456c92
further cleaning up and commenting
2013-02-28 15:51:38 +00:00
Paolo Cignoni
391e376be7
Cleaned up a bit. Only a bit.
2013-02-28 07:02:20 +00:00
Paolo Cignoni
26392a560b
Corrected a small bug in the Poisson disk sampling: as an unwanted side effect invoking the sampling will change the size of the bbox of the mesh. Mostly harmless but weird.
2013-02-23 05:50:27 +00:00
Nico Pietroni
4799f4c4bc
minor changes
2013-02-19 13:54:14 +00:00
Nico Pietroni
1f91e92f9a
changed the strategy to find point to fix in an automatic way, and some minor changes in comments
2013-02-19 13:53:33 +00:00
Paolo Cignoni
0839617d99
Corrected a small bug in the simpler wrapper for the generation of a poisson disk distribution over a mesh
2013-01-31 10:50:19 +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
ganovelli
512da45bf7
updated to new GetPer*Attribute
2013-01-30 17:14:47 +00:00
Paolo Cignoni
2b9a9f2be2
removed a useless loop in the update cycle of the heap of the edges to be collapesed. Stupid bug pointed out by Enrico (thanks!)
2013-01-28 15:42:24 +00:00
Paolo Cignoni
69ca459335
Restructured Extrude.h in order to allow the easy separation of the side and top/bottom components
2013-01-23 08:35:23 +00:00
Nico Pietroni
e633317b58
added include matrix44.h
2013-01-22 10:51:56 +00:00
Nico Pietroni
37e8a2118b
changed tri::RequirePerEdgeFlags to RequirePerEdgeFlags
2013-01-22 10:50:40 +00:00
Nico Pietroni
cb13855328
corrected 1 compilation error SetVertCrossVectorFromFace
2013-01-22 09:58:20 +00:00
Paolo Cignoni
c3dc8316bb
added a missing RequireEEAdjacency
2013-01-02 09:56:21 +00:00
Paolo Cignoni
fba830b353
removed harmless gcc warning
2013-01-02 09:24:22 +00:00
Paolo Cignoni
1991e2e74f
Changed a bunch of assert(hasXXX) into requireXXXX
2013-01-02 09:22:47 +00:00
Nico Pietroni
e1481b34ac
corrected bug on FollowDirection
2012-12-31 16:20:23 +00:00
Nico Pietroni
a3a542edf2
added stop on target vertex for VertexDijkstra propagation
2012-12-31 16:19:36 +00:00
Nico Pietroni
ec693dd06a
added Target Faces to possibly stop the PerFaceDijsktraCompute
...
added selected vertex to avoid passing trought in PerVertexDijsktraCompute
2012-12-26 18:47:55 +00:00
Paolo Cignoni
0e61819cb7
Added PerFaceDijsktraCompute and PerVertexDijsktraCompute that compute straighforwar robust face-face and vertex-vertex geodesic shortest path tree
2012-12-21 15:36:52 +00:00
Paolo Cignoni
dcda89eac1
added a correct import data for managing the data of the newly refined faces.
2012-12-17 15:31:28 +00:00
Nico Pietroni
98a28f8b46
added function static int FollowDirection
2012-12-12 16:03:08 +00:00
Luigi Malomo
8165152573
added UpdateFlags::EdgeSet function
2012-12-11 12:15:16 +00:00
Nico Pietroni
f1233c24f3
changed IntersectionPlaneMesh to deal with different ScalarType rather then just floats
2012-12-10 17:15:55 +00:00
Paolo Cignoni
fd54ab7183
Disambiguated the names of VertexFromGaussianCurvature for case when you have the full curvatures or just the HK values
2012-12-10 09:41:53 +00:00
Paolo Cignoni
e9a0913eee
Added edge selection management in edge selection stack
2012-12-10 09:39:44 +00:00
Paolo Cignoni
c0d0599781
reformatted for allowing a breakpoint in the exception
2012-12-10 09:10:19 +00:00
Nico Pietroni
bf3837e4d2
added function FollowLineDirection
2012-12-09 16:08:35 +00:00
Paolo Cignoni
d29c7489ec
mismatch syntax error in a require VF vs FF
2012-12-06 16:36:38 +00:00
Paolo Cignoni
7f789119a8
Forgot one due change face::HasFaceColor() -> face::HasColor()
...
(uniform to vertex)
2012-12-06 11:06:01 +00:00
Paolo Cignoni
63e5ef9763
changed to the new RequireXXXX syntax for type reflections
2012-12-06 11:00:37 +00:00
Paolo Cignoni
c5d8479003
Refactored the complex.h file into a include manager and a base.h file
...
Due to a inclusion conflict order between pieces of old complex h and append/allocate
2012-12-06 10:59:18 +00:00
Paolo Cignoni
3b466514b3
Added Standard exception throwing functions to claim requirements in the mesh algorithmic functions (Te Deum!)
...
for example, now at the beginning of a function requiring FFAdjacency you should just write:
RequireFFAdjacency(mesh);
No more assert please.
2012-12-06 10:34:08 +00:00
Marco Di Benedetto
b9406fad93
call to qDebug() commented out (it assumed the qt framework).
2012-12-05 17:43:27 +00:00
Paolo Cignoni
7a205ecad6
removed harmless warnings
2012-12-02 15:07:17 +00:00
Paolo Cignoni
e04a37bf60
removed harmless warnings
2012-12-02 14:57:08 +00:00
Paolo Cignoni
d946a6c390
Changed the intersection plane quality to use an attribute. Renamed to cover the old unstable function and renamed the old one with an OLD suffix
2012-12-02 14:51:34 +00:00
Paolo Cignoni
75ca1eabfc
Uniformed the rarely used per mesh color to the const/reference notation standard of the components
2012-11-28 11:13:46 +00:00
Paolo Cignoni
bf3ee42337
corrected use of point matching
2012-11-27 23:31:09 +00:00
Paolo Cignoni
a7fb3e540b
Added another topological check to the ear capping procedure of hole filling
2012-11-27 12:22:18 +00:00
Paolo Cignoni
387b0fb857
refactored a small piece of code (the update of even vertex in refine during a debug session)
2012-11-27 12:19:09 +00:00