Commit Graph

1991 Commits

Author SHA1 Message Date
Paolo Cignoni 828dc5f404 Added a resize() method to the basic attribute handle class to allow the definition of templated functions that can indifferently take an attribute or a vector as a parameter (like the ones in MeshToMatrix) 2014-11-14 22:03:58 +00:00
Paolo Cignoni 1d79254dbc Added PerVertexArea and PerFaceArea to collect vectors of areas from a mesh 2014-11-13 22:50:39 +00:00
Nico Pietroni 137e34a44f first release version 2014-11-12 15:37:21 +00:00
Nico Pietroni b4150e3e5c 2014-11-12 15:22:09 +00:00
Nico Pietroni 5f4726ca08 2014-11-12 15:21:27 +00:00
Paolo Cignoni 6458dd30ad Added some practical typedefs for simpler use of attributes 2014-11-12 00:19:18 +00:00
Paolo Cignoni 9d89004760 Updated to reflect the Normal() -> TriangleNormal() change
Updated to reflect the changes to the UpdateFlags (new function names ::VertexBorderFromFaceAdj ::VertexBorderFromFaceBorder)
2014-11-12 00:14:23 +00:00
Paolo Cignoni 4b0e72293f Added ComputeValence function 2014-11-12 00:13:05 +00:00
Paolo Cignoni 6f4d33519b Updated to reflect the changes to the UpdateFlags:
new function names ::VertexBorderFromFaceAdj ::VertexBorderFromFaceBorder
2014-11-12 00:12:32 +00:00
Paolo Cignoni d6e5ff4512 Updated to reflect the changes to the UpdateFlags:
new function names ::VertexBorderFromFaceAdj ::VertexBorderFromFaceBorder
2014-11-12 00:12:10 +00:00
Paolo Cignoni 18d91de047 Updated to reflect the Normal() -> TriangleNormal() change
And added function to compute normals per polygonal faces
2014-11-12 00:09:58 +00:00
Paolo Cignoni 884795203c Added VertexBorderFromFaceAdj function (needed for managing polymesh that do not have per face border bit) 2014-11-12 00:08:59 +00:00
giorgiomarcias 1f369bbf09 Added the option for selecting polychord loops only. 2014-11-07 15:38:00 +00:00
Nico Pietroni 8c93868ca7 major modification to works with constraints 2014-11-07 12:02:24 +00:00
Nico Pietroni 06bc9ba660 generalized to polygonal faces 2014-11-07 11:42:10 +00:00
Nico Pietroni d93bfe908f changed reference to vertex function in order to compile with polygonal faces 2014-11-07 11:41:41 +00:00
Paolo Cignoni 177cf43069 Added two other meshAssert tests (quads and tris) 2014-11-06 15:10:00 +00:00
giorgiomarcias e1027dedb5 Added method to find all polychords on a mesh (returns the list of Pos's, one for each polychord start edge). 2014-11-06 11:04:19 +00:00
Nico Pietroni 66bd26ed70 minor warning corrected 2014-11-05 19:25:57 +00:00
Nico Pietroni 505fa04c73 Changed per vertex nomal computation to works with polygons 2014-11-05 19:24:46 +00:00
Nico Pietroni f115db004c major changes in UpdateSingularByCross, used the additional parameter to set if a vertex is singular or not 2014-11-05 19:23:42 +00:00
Paolo Cignoni e29b6f4a46 More refactoring of implicit smooting class 2014-11-05 17:23:13 +00:00
Paolo Cignoni eb2b5e7fa5 refactoring to remove quality 2014-11-05 16:22:06 +00:00
Paolo Cignoni d03a5a97d2 First version of the implicit smoother 2014-11-05 15:48:34 +00:00
Paolo Cignoni db53a1ff06 Cleaned up harmonic.h (added standard header, needed meshassert) 2014-11-03 15:00:06 +00:00
Paolo Cignoni e1a327e556 added a missing include callback.h 2014-11-03 14:59:07 +00:00
Paolo Cignoni b328a5f94a Added the new mechanism for run time checking of mesh adequacy to a given algorithm.
While the many RequireXXX functions allow to check the static correctness of a mesh and
have a O(1) complexity, in many cases we need to run more complex checks to be sure that
the subsequent algorithm can run without issues.
Typical cases are the fact that there are no unreferenced vertices (NoUnreferencedVertex)
or a given adjacency is correctly initialized (and not only statically present as a type component).
2014-11-03 14:50:37 +00:00
Paolo Cignoni df6865a6de Changed many explicit exception throwing for missing components into the shorthand RequireXXXX 2014-11-03 14:38:05 +00:00
Paolo Cignoni 5565647e82 Added two functions VertexFromAttributeHandle and FaceFromAttributeHandle to map a pervertex/perface scalar handle into the quality 2014-11-03 14:36:58 +00:00
Paolo Cignoni b278f29129 Changed many explicit exception throwing for missing components into the shorthand RequireXXXX 2014-11-03 14:34:35 +00:00
Paolo Cignoni 6830b4aea4 Changed many explicit exception throwing for missing components into the shorthand RequireXXXX 2014-11-03 14:33:45 +00:00
giorgiomarcias af0f42fedf "public"-ized some previously "private" static method which are useful also outside. Added a "PC_OTHER" result code for user-defined purposes. 2014-10-17 08:54:34 +00:00
giorgiomarcias bc1975ad43 Added "const" keyword to IsEmpty(). 2014-10-16 09:42:48 +00:00
ganovelli 46031c54ca added GetClosestEdgeBase from space/index/index2/closest_2d.h which is going to be removed 2014-10-09 12:53:40 +00:00
granzuglia 9f647f2460 - added missing cast causing compiler error 2014-09-25 17:11:45 +00:00
Paolo Cignoni 03fb236a82 Improved EdgeMeshUniform to sample also closed loops of edges correctly 2014-09-19 17:07:02 +00:00
Luigi Malomo 70154e50bb face border computation from FF adjacency fixed for polygon meshes 2014-09-19 10:57:05 +00:00
granzuglia 42e1ae0cfb - fixed a compatibility problem with MeshLab single precision version 2014-09-17 14:13:45 +00:00
Nico Pietroni e9ba519fa4 small change to do not insert and cycle to find polygons of size 0 2014-09-14 01:02:42 +00:00
Nico Pietroni 0a91defac8 templated the function VertexClamp wrt input scalar type 2014-09-11 20:42:30 +00:00
Luigi Malomo e5ca4bf8c7 added option to copy adjacency for mesh copy function 2014-09-10 00:50:10 +00:00
Paolo Cignoni 053b649ed2 Added perturbation to the voronoi seed relaxing 2014-09-07 21:36:30 +00:00
Paolo Cignoni d8293c0c05 Updated RestrictedVoronoiRelaxing to use area weighted sum of nearest vertexes to compute barycenter 2014-08-30 07:50:22 +00:00
Nico Pietroni 6d042e5200 added FaceFauxBorder function 2014-08-29 15:10:06 +00:00
Paolo Cignoni 0e15b05070 Added more control on the initialization of the random generator in the poisson sampling 2014-08-29 13:21:27 +00:00
Nico Pietroni feff81dd01 solved minor error with templated scalar type 2014-08-28 09:46:49 +00:00
Nico Pietroni ae18d9b445 added VectorFromCoord function 2014-08-28 09:46:16 +00:00
Paolo Cignoni 0337582896 Added managment of fixed vertices in the restricted voronoi relaxing 2014-08-28 09:28:39 +00:00
Paolo Cignoni 636cf7bf8a Added possibility of specifying approximation tolerance in the posson disk sampling by number 2014-08-28 09:28:14 +00:00
Paolo Cignoni c08ca27367 harmless warning 2014-08-28 01:56:28 +00:00
Paolo Cignoni fdf0b5b2ec minor aestetical changes and added edge size checking to the IsSizeConsistent function 2014-08-28 01:55:43 +00:00
Paolo Cignoni 875a7d1aac Added RestrictedVoronoiRelaxing mode to the voronoi framework 2014-08-28 01:54:32 +00:00
Paolo Cignoni b452c7a305 Changed the wrapper for poisson disk sampling to use the exact pruning option if radius is not specified.
Corrected bug in the exact pruning that failed to return radius in some cases
2014-08-28 01:53:58 +00:00
Paolo Cignoni 60ca2f2d72 Updated 4pcs to float/double independnece 2014-08-26 08:45:04 +00:00
Paolo Cignoni 967f61b2be Added EdgeMeshUniform method that generate samples over the edges of a polyline in a uniform way. 2014-08-26 01:43:04 +00:00
Paolo Cignoni c6e5015090 Added SplitSelectedVertexOnEdgeMesh that split an edge mesh along the selected vertices. Useful to decompose an edgemesh into simple manifold polylines. 2014-08-26 01:42:09 +00:00
Paolo Cignoni a9202ed7db Added method BuildFromNonFaux to build an edgemesh composed by the "non faux edges". 2014-08-26 01:40:46 +00:00
Paolo Cignoni 9682fcd27d Added to the UpdateFlags::FaceFauxSignedCrease the option to mark as non faux also the boundary edges. 2014-08-26 01:39:18 +00:00
Paolo Cignoni 331021191e cleaned up the field smoohter (includes, headers etc) 2014-08-23 01:37:18 +00:00
Paolo Cignoni 855280fc08 better comments 2014-08-23 01:36:16 +00:00
Paolo Cignoni 6ba1493e3e Small changes for float/double independence 2014-08-23 01:35:52 +00:00
Paolo Cignoni 9b519cb2b8 Added ValidCell check to manage invalid cell in the trivial_walker.
Corrected compiling error due to the derivation from a templated base class (a few "this->" required)
2014-08-23 01:35:15 +00:00
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