Commit Graph

3562 Commits

Author SHA1 Message Date
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 e768943f3e Small changes in the long long way to making meshlab and the vcglib really float/double independent 2014-06-18 17:29:34 +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 e6e7999c6c Added an implementation of the Dave Rusin’s Disco Ball algorithm for the generation of regular points on a sphere. 2014-06-17 14:51:20 +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
giorgiomarcias c1f34b6517 Initialize data members in default constructors (e.g. Pos<FaceType> pos; pos.IsNull() now can't be false). 2014-06-15 21:29:45 +00:00
Luigi Malomo 6ac9919471 added static member Zero() to point3 2014-05-28 22:44:08 +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 db0a706384 Added methods to Histogram and Distribution to get back the number of inserted samples and their total sum 2014-05-13 10:54:42 +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
Paolo Cignoni 8825048e46 BUG corrected: missing initialization of optional per face color data. 2014-04-28 12:01:56 +00:00
Paolo Cignoni 81ab17c28a commented out unused local variable 2014-04-25 09:21:41 +00:00
Nico Pietroni b01f2c111e changed some method to work with polygons 2014-04-24 16:08:33 +00:00
Nico Pietroni 2f871fc16e corrected one bug in Add to insert the value in last bin since upper bound is +inf 2014-04-24 16:07:13 +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 03206b6bc4 Added a VectorConstDataWrapper to simply create a kdtree from a vector of point3f 2014-04-17 09:50:21 +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 c280fd8e23 removed a leftover "solve" method. Use eigen... 2014-04-17 08:28:20 +00:00
Paolo Cignoni 7dbcb078e5 Standardized the generate method of the marsenne twister random generator in order to get also a unsigned capped random generation (like all the other generate() of the other random generators) 2014-04-17 08:19:06 +00:00
Paolo Cignoni c085b7d6ba Added a IPtoPfMatrix method to the grid class Returns the matrix that applied to a point in grid space transforms it in the original space. 2014-04-17 08:17:08 +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
Paolo Cignoni bf1e2977d0 Corrected a wrong usage of IntersectionSegmentTriangle (could not compile...) 2014-04-07 14:48:16 +00:00
Nico Pietroni b87832a022 added PlanePointSquaredDistance function 2014-04-07 06:30:30 +00:00
Nico Pietroni b400ca4b75 added Mirror function 2014-04-07 06:29:32 +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 335354fdca corrected one wrong assert on FFlinkConditions 2014-03-07 10:36:12 +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 e8d745dd10 PolygonalMesh Debugging: forgot a debugging prntf 2014-02-18 20:15:16 +00:00
Paolo Cignoni 614f49c053 PolygonalMesh Debugging: Added another missing Alloc 2014-02-18 14:12:08 +00:00
Paolo Cignoni df29c81227 Removed hideous, nasty, damned bug in polygon component. The ImportData was silently cleaning the vertex references in polygonal faces 2014-02-18 14:08:28 +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 1a4c5ef80d PolygonalMesh Debugging: renamed the SetVN function to __SetVN (it is internal and should not never be called by the users) 2014-02-18 10:58:12 +00:00
Paolo Cignoni 0d6c673a9b PolygonalMesh Debugging: Improved Allocator robustness. Better allocation/deallocation of polyigonal elements 2014-02-18 10:56:16 +00:00
Paolo Cignoni eb233462ba PolygonalMesh Debugging: removed the SetVN from the base class (it is internal) 2014-02-18 10:55:12 +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 bbae89aa94 Many small changes to remove useless annoying warnings. 2014-02-13 16:29:51 +00:00
Paolo Cignoni e829dff8af added a const to a parameter passed by reference. 2014-02-13 16:29:21 +00:00
Paolo Cignoni 6efdd91ecc Many small changes to remove useless annoying warnings. 2014-02-13 15:52:17 +00:00
Paolo Cignoni 15bec03c89 Corrected the FHp member of the polygon. 2014-02-13 13:16:09 +00:00
Federico Ponchio 57880ef231 Replaced Eigen::Vector3f p; with Eigen::Matrix<S,3,1> p; (support for double precision). 2014-02-12 15:07:19 +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
Massimiliano Corsini 171510a59b fix name of hash functor to avoid conflict with the 3D spatial hash 2014-02-11 13:48:52 +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 c5d79ea704 commented out a wrong assert in FFlip function 2014-02-07 11:07:36 +00:00
Nico Pietroni 3bd4213984 solved minor compilation issues 2014-02-07 11:06:49 +00:00
Nico Pietroni 677295f1a3 added include <set> 2014-02-07 11:06:12 +00:00
Massimiliano Corsini 0950b97775 invalid output range - fixed 2014-02-04 16:09:36 +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 91946b7847 Added basic link condition for FF adjacency and VVOrderedStarFF 2013-12-20 11:42:27 +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
Federico Ponchio 030d966b4a added #include <string.h> for memcpy 2013-12-11 14:20:17 +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 6bd3faae14 removed a wrongly surviving duplicate copy of the space/point_matching.h. It was moved one years ago but for some strange svn reasons it was still around...
Killed.
2013-12-01 22:54:33 +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
Gianpaolo Palma eeaabe684c Compiling errors fixed in the function ClosestPoint2Box2 2013-11-28 16:34:20 +00:00
granzuglia fa8a11fd32 - added missing include 2013-11-28 12:55:58 +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 f2bbdb787a Include header cleaning and reordering. 2013-11-25 10:31:30 +00:00
Paolo Cignoni fba7d7873e removed spurious printf 2013-11-25 10:31:01 +00:00
Paolo Cignoni 3d150e9aea changed an assert condition in FlipF that could lead to a failure in the case of quad mesh navigation over polygonal faces. 2013-11-25 10:15:54 +00:00
Paolo Cignoni a29df708da Removed warning. Changed a surely verified if condition into an assert.
(chosing the min between 3 elems we had a if-else chain where the last if was useless unless you have NAN )
2013-11-25 10:14:27 +00:00
Paolo Cignoni 1c1e3f778a Include header cleaning and reordering. 2013-11-25 10:12:01 +00:00
Paolo Cignoni 84c80a1972 Include header cleaning and reordering. 2013-11-25 10:01:24 +00:00
Paolo Cignoni 6ec2689383 Corrected weird error in pos assignement operator. 2013-11-11 13:32:33 +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
Paolo Cignoni 3bdf666e86 Changed the interface of the interpolating function of a segment (2D and 3D) from the ambiguous P(float) to Lerp(float). Note that with the previous interface it could happen that seg.P(1) != seg.P0() just becouse seg.P(1) was the result of a lerp. 2013-11-06 16:06:57 +00:00
Nico Pietroni a445902e56 corrected 2 warnings on castings 2013-10-23 16:57:28 +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 93eb66356b removed a survived debug printf... 2013-10-09 09:18:56 +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 dc842fd034 Corrected a Bug in the VFOrderedStarFF (it could return twice the same face in when asked on boundary faces)
Added FFCollapseEdge 
Added managment of faux edges in swapedges
2013-10-09 08:48:10 +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
Luigi Malomo dd7e419215 corrected visibility classification for leaf BVs in frustum culling. 2013-09-26 17:26:47 +00:00
Luigi Malomo cf4844f4a4 fixed a bug in frustum culling.
objects that are not in the halfspace determined by the plane direction will be culled.
2013-09-26 11:16:26 +00:00
Paolo Cignoni df97ef0c36 Added zero initialization to quality component. (and corrected a small bug in the ocf quality component) 2013-09-24 13:55:23 +00:00
Nico Pietroni e3a8a50bc5 added #include <assert.h> 2013-09-21 00:54:53 +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 344de42c2e removed the return type from the ++ operator of the vfi iterator 2013-09-10 10:54:40 +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
Luigi Malomo e65be2aa17 added Empty() and Clear() members to AABBBinaryTreeIndex. 2013-08-30 11:44:54 +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 04268b170f Removed all references to the useless old vcg::math::Swap 2013-07-26 07:01:21 +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 90bb95a971 Refactorized to a uniform naming and parameters the various templated functions for generating random points
GenerateBarycentricUniform
GeneratePointInBox3Uniform
GeneratePointOnUnitSphereUniform
GeneratePointInUnitBallUniform
2013-06-24 08:34:53 +00:00
Paolo Cignoni be3e74ca6a Refactored CountInSphere / RemoveInSphere for the PoissonDisk sampling optimizations (now you can just count the element inside a given sphere without removing them. 2013-06-24 07:57:18 +00:00
Paolo Cignoni 9ad68bc573 Added DihedralAngleRad that computes the signed dihedral angle between the normals of two adjacent faces 2013-06-24 07:55:54 +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
mtarini 90cdbb6214 (just fixed a warning-producing redundant assert) 2013-06-05 11:08:55 +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 4ab12a165f uniformed syntax of the name of the parameters of the rect packer 2013-04-15 20:57:15 +00:00
Paolo Cignoni a1c03d2e61 uniformed syntax of the name of the parameters of the rect packer 2013-04-15 20:56:40 +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 84b8170401 Changed the default of the param and added the automatic reverse of flipped outlines 2013-03-26 23:02:23 +00:00
Paolo Cignoni c73b9a7727 Added first version of the rasterized outline packer written by Andrea Bernabei 2013-03-26 11:30:59 +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 ea5c88be1a corrected harmless bug (misleading j/i scopes in nested for's) 2013-03-25 13:10:40 +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 246345bf19 removed a weird "#define static_assert assert" that was surviving since 2004... 2013-03-22 16:43:59 +00:00
Paolo Cignoni f3337dcb7c updated polygon component to the cP/P behavior for access to elements 2013-03-20 08:56:20 +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 ba58ef9c1e corrected stupid error did in the conversion process (inverse was not returning anything...) 2013-03-19 22:04:35 +00:00
Paolo Cignoni 837329d98c Renaming to settle the old attempt of integrally using eigen matrix for matrix44 and matrix33 2013-03-19 21:53:52 +00:00
Paolo Cignoni e1dda51e85 Renaming to settle the old attempt of integrally using eigen matrix for matrix44 and matrix33 2013-03-19 21:52:39 +00:00
Paolo Cignoni 94a9b9a0f9 Renaming to settle the old attempt of integrally using eigen matrix for matrix44 and matrix33 2013-03-19 21:51:13 +00:00
Paolo Cignoni 2b47dcbb3d renamed the unused old lin_algebra and Matrix. just to be sure that NOBODY use them. 2013-03-19 17:05:56 +00:00
Paolo Cignoni 33c341b464 harmless change: added a missing vcg:: 2013-03-19 17:04:07 +00:00
Paolo Cignoni 2e65cae10e HEAVY CHANGE. Further cleaning of the matrix classes of VCG.
Get rid of all the unused stuff. 
internally use Eigen for computing Inverse. 
Removed the stupid incomprehensible method Invert() that changed the matrix itself. 
Nobody was using it in a reasonable way.
2013-03-19 16:59:45 +00:00
Paolo Cignoni f156a5a82c Updated version of the oldpolyrect packer. Reasonably extended to multiple domain. To be tested/replaced 2013-03-13 19:09:50 +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 4665f36e40 Improved component documentation. Added IsVFInitialized, VFClear function for VF component. Clarified the difference between null and uninitialized for a VF component. 2013-03-13 14:02:03 +00:00
Paolo Cignoni 6950be4594 Improved comment/documentation. Changed throws in require 2013-03-13 14:00:29 +00:00
ganovelli 9e45730d93 DIstance to SignedDistance 2013-03-13 09:40:55 +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
Paolo Cignoni 888b89f834 Added reading and wrinting of polygon to simple ascii files 2013-03-13 00:14:21 +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
Federico Ponchio 383c16acd4 changed P() to something less ugly. 2013-03-04 20:35:03 +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 d3d50e6858 Added two functions to generate point inside a box and over the surface of a sphere. 2013-02-23 06:15:23 +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 e5ed268b6a added function cVFi 2013-02-19 13:56:37 +00:00
Nico Pietroni 60bca978f7 added function VVExtendedStarVF 2013-02-19 13:55:15 +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 8111bcda24 Corrected a very nasty bug introduced in Revision 4782 that reorganized ocf face component and added a standard interface for query the availabiilty of data:
bool FaceType::IsXXXAvaialble() ,must be defined in the XXX ocf type and not in the info type otherwise it would be defined also for non ocf components.
2013-02-06 11:22:11 +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
Paolo Cignoni 32423ca043 Improved comment on the order of the returned elements in a kdtree 2013-01-31 10:44:44 +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