Commit Graph

3780 Commits

Author SHA1 Message Date
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
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 b48b0e568c added initialization of mark component to zero. So all the element it is sure that are unitialized after the first unmarkall. 2012-12-21 15:33:18 +00:00
Paolo Cignoni 8476a1ff20 Reorganized ocf vertex component and added a standard interface for query the availability of data:
now we have 
static bool vertextype::HasXXX() // statically says if a certain type is present
bool vertextype::IsXXXAvaialble() // NON STATIC (always true for non ocf objects)
So now ImportData correctly works for both sides of vertex ocf component.
2012-12-17 22:54:48 +00:00
Paolo Cignoni 5dcf1aec47 forgot a IsCurvatureDirEnabled() 2012-12-17 15:58:16 +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
Paolo Cignoni 08aeee8716 Reorganized ocf face component and added a standard interface for query the availabiilty of data:
now we have 
static bool FaceType::HasXXX() // statically says if a certain type is present
bool FaceType::IsXXXAvaialble() // NON STATIC (always true for non ocf objects)
So now ImportData works for face ocf component.
2012-12-17 15:02:34 +00:00
Paolo Cignoni 4d0450d521 added better comment to edge pos implicit ordering 2012-12-17 14:59:29 +00:00
Nico Pietroni fb9a9bbac6 added function FFExtendedStarFF 2012-12-12 16:04:26 +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 9a1704379f Improved documentation to include stars 2012-12-10 12:40:21 +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
ganovelli 357ef4e8f9 reverted last committ (done by mistake :) ) 2012-12-05 11:37:19 +00:00
ganovelli 6bc53d8376 minor 2012-12-05 11:23:30 +00:00
ganovelli 755eb7dda7 added HasNormal to EmptyCore 2012-12-03 17:47:15 +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 dc44ff8265 Added ComputeSimilarityMatchMatrix (and removed useless printout...) 2012-11-27 22:49:21 +00:00
Paolo Cignoni ab49388781 Added a VFDetach for face. 2012-11-27 14:03:24 +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
Paolo Cignoni 3fb4e6d061 re-Added to all the data members of vertex the const access member 2012-11-27 12:16:16 +00:00
Paolo Cignoni fca284d27c corrected box assignment between different types in append::MeshCopy 2012-11-27 11:52:17 +00:00
Paolo Cignoni 2cbd4b7964 Added support for the color support in STL files (both the SolidView and the Magics 'standard'). 2012-11-27 07:05:38 +00:00
Paolo Cignoni 049fae96c0 Improved comments with notes on what version of the intersection plane mesh should be used 2012-11-26 09:18:04 +00:00
Paolo Cignoni 9a47f8db4c removed unused var... 2012-11-22 23:32:35 +00:00
Paolo Cignoni 039bc9bafa Added the new version of the point matching code. Now it is under space and no more under math 2012-11-22 23:29:43 +00:00
Paolo Cignoni 26fc41faf5 Added a small wrapper for montecarlo sampling of a mesh surface 2012-11-22 23:28:40 +00:00
Federico Ponchio 2832d2e76d added a const 2012-11-21 11:38:51 +00:00
Nico Pietroni a95eb5af08 added function EdgeSetV 2012-11-18 18:05:39 +00:00
Paolo Cignoni 8f079de515 Added a bunch of 'c' to component members to clarify constant access 2012-11-15 19:14:29 +00:00
Paolo Cignoni 8b4d04be7a Added a bunch of 'c' to component members to clarify constant access 2012-11-15 19:11:28 +00:00
Paolo Cignoni 51fe0fb938 Added a bunch of 'c' to component members to clarify constant access 2012-11-15 19:07:34 +00:00
Paolo Cignoni 5c266a7ccb HEAVY CHANGE:
The vertex and face component (natural and optional) have been cleaned and reordered.
Particular care has been devoted to have common behaviour in the import, const access, and so. 
If you get compilation errors probably it is due to the fact that if you really need constant access to a member you have to use the "c" prefixed member (e.g. if you access to normal of a constant vertex you should use the cN() member.
2012-11-15 19:04:08 +00:00
Paolo Cignoni 41e7a19fd1 Substituted grid with kdtree in the ballpivoting... 2012-11-14 12:48:35 +00:00
Paolo Cignoni f2be4a4d95 mismatch in the VertexVectorHasVFAdjacency and FaceVectorHasVFAdjacency names 2012-11-14 12:37:18 +00:00
Paolo Cignoni eaf97c0bf3 Great speed improvement of ball pivoting (40x on a 100k vert mesh) 2012-11-14 08:28:42 +00:00
Paolo Cignoni e268e69ad3 Commenting and cleaning up the ball pivoting/ advancing front framework 2012-11-14 06:17:15 +00:00
Nico Pietroni 3864a934da corrected 1 call of VFStarVF 2012-11-12 12:59:50 +00:00
Luigi Malomo 5aa4e3a489 warnings removed fo CrossField::IsSingularByCross() function 2012-11-12 12:40:56 +00:00
Luigi Malomo 8dc138cf27 fixed CrossField::IsSingularByCross() function 2012-11-12 12:38:20 +00:00
Paolo Cignoni ed6042e502 Committed temporary version of the cleaned up curvature computation files 2012-11-12 11:15:21 +00:00
Paolo Cignoni feb77d945a Significant changes of interface of VFOrderedStarFF (that substitute two very similar VFOrderedStarFF_VF)
Added EFStarFF
2012-11-10 16:53:10 +00:00
Paolo Cignoni 9cea19e537 Cleaned up the UpdateFlags class. Assert into throw... 2012-11-10 16:33:38 +00:00
Paolo Cignoni 586d800c66 added missing edge reflection functions (HasEdgeXXXX etc) 2012-11-10 14:57:53 +00:00
Paolo Cignoni 9900cfd4cc Added comments and requirements (exception throwing) 2012-11-10 14:41:35 +00:00
Paolo Cignoni 2a21d5fb8e simple comments and re-indentation for better reading 2012-11-10 14:36:54 +00:00
Paolo Cignoni a1e4341c98 assert->trhow and first version of the allocateEdge 2012-11-10 06:45:58 +00:00
Paolo Cignoni 1a8c1dafe2 VFlip() and FFlip are const members but there is no need of returning a pointer to a Const element 2012-11-09 11:11:50 +00:00
Paolo Cignoni 6b48acfa9f Added all the missing component exceptions for colors 2012-11-09 10:52:35 +00:00
Paolo Cignoni d4cf2019bf Disambiguated a ComputeNormal() 2012-11-08 18:44:35 +00:00
Paolo Cignoni e1fb5617ff assert -> throw exception 2012-11-08 18:37:10 +00:00
Paolo Cignoni 3170472174 added a IMark()->cIMark() 2012-11-08 18:35:38 +00:00
Paolo Cignoni c367bf93fa Improved the VertexNormalPointCloud smoothing algorithm (it can re use a kdtree) 2012-11-08 18:33:55 +00:00
Paolo Cignoni 1d092cf736 Added a couple of missing Flags->cFlags 2012-11-08 18:31:13 +00:00
Paolo Cignoni 0d95c87141 Removed the old normal extrapolation 2012-11-08 17:20:31 +00:00
Paolo Cignoni 51a65af2c0 Added new version of algorithm for computing normals for point clouds. Approx 8 times faster and works for clouds of a few millions of points... 2012-11-08 15:33:32 +00:00
Paolo Cignoni 26ee5e5246 const access to flags -> cFlags() 2012-11-07 22:53:41 +00:00
Paolo Cignoni a97119dde3 Name Cleanup VertexVectorHasPerFaceVFAdjacency -> VertexVectorHasVFAdjacency 2012-11-07 22:51:16 +00:00
Paolo Cignoni e88379c8c6 Added VertexNormalPointCloud to smooth the normals of a point cloud by using the kdtree instead of the octree... 2012-11-07 22:49:46 +00:00
Paolo Cignoni 8e9430889c simple orthographic errors in comments 2012-11-07 17:56:07 +00:00
Paolo Cignoni 9f39a0c7cb added cflags to the emtpycore face component 2012-11-07 15:51:51 +00:00
Paolo Cignoni 5e6d0fe221 corrected use of constant flags method 2012-11-07 15:43:38 +00:00
Paolo Cignoni 1046deb107 Corrected bug recently introduced due to small difference in the signature of the flags functions... 2012-11-07 15:42:14 +00:00
Paolo Cignoni 7bc4277fcd Cleaned up documentation of components (new doxygroup for them, written something for most of them...).
Cleaned Edge components (Added adjacency stuff, implemented the single emptycore)
2012-11-07 01:24:45 +00:00
Paolo Cignoni bb4f118a03 Small bug in the time computation of Poisson sampling 2012-11-07 01:14:27 +00:00
Paolo Cignoni 4e6a97770b Significant changes to the Geodesic computation class
- Cleaned: removed useless wrapper
- Documented
- Removed the automatic computation of the farthest vertex NOBODY never ever used it in all our basecode (but every one declared a useless var for that...)
- Changed the name of the class to something meaningful (Geodesic::Compute instead of Geo::FarthestVertex)
2012-11-07 01:07:08 +00:00
Paolo Cignoni 2523982d4d harmless gcc warning (comment in comment) 2012-10-31 21:04:58 +00:00
Paolo Cignoni b6d198362c Small changes to the compactVector (added a check on empty vectors) and improved the sample on allocation. 2012-10-31 06:58:08 +00:00
Paolo Cignoni 578ea5ae6b Added control in the creation of a pos that you pass a consistent triple 2012-10-26 12:39:58 +00:00
Nico Pietroni 8e8f537321 corrected order of functions call in NextE() 2012-10-26 12:28:17 +00:00
Paolo Cignoni ed4500a156 Improving Documentation: removed doxygen warnings. 2012-10-26 07:08:18 +00:00
Paolo Cignoni fe95eeca43 Improving Documentation: removed a ton of doxygen warnings. Cleared a bit the groups structure, added a few comments to allocator 2012-10-26 06:16:15 +00:00
Paolo Cignoni 6c3d86d448 Still Improving the documentation. 2012-10-25 23:52:48 +00:00
Paolo Cignoni 7e5ebe06f4 removed useless append.h and a spurious uber still floating around... 2012-10-25 23:39:31 +00:00
Paolo Cignoni d59ea952ed Added append to the set of files always included by complex.h 2012-10-25 23:37:25 +00:00
Paolo Cignoni fc5a0216ac Improved documentation about allocation. Added sample on allocation. 2012-10-25 22:53:33 +00:00
Paolo Cignoni d784bebe07 Added guards to avoid useless (and sometime dangerous) inclusion of internal file of the vcglib 2012-10-25 21:29:10 +00:00
Paolo Cignoni 671af109a9 improved vertex component documentation 2012-10-25 21:20:10 +00:00
Paolo Cignoni 2c32f546ef Added a VertexConstDataWrapper to the kdtree helper classes for a simpler use of a kdtree to index the vertexes of a mesh 2012-10-25 16:55:52 +00:00
Paolo Cignoni 9658740974 Improving documentation. Reordered groups and started documenting main components 2012-10-25 13:47:31 +00:00
Paolo Cignoni 4c0acdbb7c Removed all the UberXXX members from the various components. No more needed since many years. Still there just because we are quite lazy... 2012-10-25 13:46:08 +00:00
Paolo Cignoni 049c996846 Removed all the UberXXX members from the various components. No more needed since many years. Still there just because we are quite lazy... 2012-10-25 13:16:03 +00:00
Paolo Cignoni cfda5a3eca Removed all the UberXXX members from the various components. No more needed since many years. Still there just because we are quite lazy... 2012-10-25 13:07:25 +00:00
Paolo Cignoni b045c9b992 Removed old useless files. Why do we kept them? 2012-10-25 13:01:34 +00:00
Paolo Cignoni 84b9387264 Removed inclusion of subset.h 2012-10-23 23:41:41 +00:00
Paolo Cignoni 864f9cb9d7 Removed two now useless files, boundary (that involved conversion between tetrahedral and tri meshes) and subset (duplicate functionalities wrt append.h) 2012-10-23 11:12:41 +00:00
Paolo Cignoni 027da6f0a8 Just changed the default number of rotation attempt for packing OO polygons 2012-10-23 08:48:26 +00:00
Paolo Cignoni b26b406f8f Added a ToEigenVector method 2012-10-22 18:43:24 +00:00
Paolo Cignoni ecd88fcb28 Added a default parameter to the sampling class and a few utility sampling classes for taking point on faces. 2012-10-22 18:42:11 +00:00
Paolo Cignoni c980267cd8 Corrected refine, Now instead of using a dangerous vector of vertex type (that could cause issues with ocf types) it use just a vector of pair<position,normal> 2012-10-22 18:37:51 +00:00
Paolo Cignoni c932c5d60a Removed Covariance computing function from Matrix Class, moved into fitting 2012-10-22 18:34:08 +00:00
Paolo Cignoni c87cd495de Rewrote of the Fitting to plane functions. Added Weighted version and sample 2012-10-22 18:27:30 +00:00
granzuglia 3a6031554b - updated file according to new vcglib syntax 2012-10-22 12:11:49 +00:00
granzuglia 1151b88b54 - updated file according to new vcglib syntax 2012-10-22 12:06:43 +00:00
ganovelli 60be67113d removed 2012-10-19 15:08:14 +00:00
Paolo Cignoni 75122cd193 Improved comments and interface of perlin noise color 2012-10-19 12:32:05 +00:00
Paolo Cignoni 1918c53a09 Cleaning of names and reordering of Color functions 2012-10-19 11:52:57 +00:00
Paolo Cignoni b1a1b36260 Re added the empty component. It can be useful sometimes... 2012-10-19 11:45:51 +00:00
Paolo Cignoni f96cbbe7e4 Made the member with the distfunctor no more a reference but a copy. To avoid issues when passing temporary dist functors... 2012-10-18 09:01:51 +00:00
Paolo Cignoni d3d85dd0c0 corrected small bug in the gridclosest scanning function that caused rescan of the inner box when the search region in the uniform grid was growing. 2012-10-18 08:44:11 +00:00
Nico Pietroni f4ef1e09d5 removed import/export functions and added to wrap/io_trimesh/import_field.h and wrap/io_trimesh/export_field.h 2012-10-16 10:07:58 +00:00
Paolo Cignoni ac9b6b16f2 Improved documentation of inertia and slightly changed the interface (added a constructor) 2012-10-16 07:36:35 +00:00
Paolo Cignoni 036aeae1c9 corrected a bug in torus creation 2012-10-15 12:49:17 +00:00
Paolo Cignoni ec0c145454 corrected the order or the parameter of the torus 2012-10-15 09:58:01 +00:00
Paolo Cignoni 372ee1ed99 Corrected a small (!) bug in the IntersectionSegmentTriangle. (the line triangle intersection function returns a **signed** distance...) 2012-10-15 09:42:05 +00:00
Paolo Cignoni 1331ead487 Corrected a small bug in TestFaceFaceIntersection
the case of two faces sharing an edge was not managed correctly in the case the two faces had the two edges opposite to the shared vertex lying on the same plane.
2012-10-15 09:26:15 +00:00
Paolo Cignoni fb60087ee4 component_ocf are now part of the standard inclusion sequence of complex.h
No more need of including them.
It was needed to avoid the issue of wrong inclusion order that could trigger a failure in the partial specialization of the reflection functions that should say if a component is present or not...
2012-10-15 09:17:48 +00:00
Paolo Cignoni 42252b04b4 Improved documentation of Attribute mechanims 2012-10-15 08:17:26 +00:00
Nico Pietroni 8d4bdc467e added function VFExtendedStarVF 2012-10-14 09:24:49 +00:00
Nico Pietroni 210b348626 corrected UpdateNormal calls 2012-10-14 07:41:58 +00:00
Nico Pietroni a8e4104559 removed missmatch initialization in SelectSingularByCross function 2012-10-14 07:40:26 +00:00
Paolo Cignoni 980b463a41 Added Torus primitive creation 2012-10-11 22:45:21 +00:00
Paolo Cignoni a40bb0ff93 minimal change (useless passing by reference of const intended parameters) 2012-10-11 11:19:37 +00:00
Paolo Cignoni 6739455da9 Updated to reflect the naming changes in updateNormals 2012-10-11 11:11:33 +00:00
Paolo Cignoni 41060feef9 Updated to reflect the naming changes in updateNormals 2012-10-11 11:09:30 +00:00
Paolo Cignoni df87b9710e Updated to reflect the naming changes in updateNormals 2012-10-11 11:08:38 +00:00
Paolo Cignoni bf13a8ee8f Changed a bit the interface of the exception throwing. Updated normals and other to follow this changes 2012-10-11 11:04:37 +00:00
Paolo Cignoni 36c12730d9 Substituted old deprecated LinAlg with Eigen stuff 2012-10-11 11:02:52 +00:00
Paolo Cignoni 19675a4e33 Deprecating the use of old dangerous linear algebra code. Please use Eigen!
Now attempting to include lin_algebra will block your compilation...
2012-10-11 10:48:55 +00:00
Paolo Cignoni 44b9b56c42 Updated to reflect the naming changes in updateNormals 2012-10-09 08:51:15 +00:00
Paolo Cignoni ba4a51e02d Updated to reflect the naming changes in updateNormals 2012-10-09 08:00:25 +00:00
Paolo Cignoni f9b2088e12 Cleaned up and moved into the tri namespace all the refine class 2012-10-09 07:56:47 +00:00
Paolo Cignoni 34f4e6c98c **** SIGNIFICANT CHANGE ****
Name uniformation NO MORE PLURALS IN NAMES
From UpdateNormals to UpdateNormal
2012-10-09 07:55:30 +00:00
Paolo Cignoni 905e1a7209 Cleaned up a bit 2012-10-09 07:53:55 +00:00
Paolo Cignoni bc3952ccc1 Updated to reflect the naming changes in updateNormals 2012-10-09 07:48:22 +00:00
Paolo Cignoni fc75c0c62d Harmless gcc warnings 2012-10-09 07:05:45 +00:00
Paolo Cignoni 707577cbf9 Removed unnecessary include files: 2012-10-08 12:07:14 +00:00
Nico Pietroni c4b53d16cc edded 2 includes:
* component.h 	 for per face Normal calculation function
* exception.h	 for excepion handling
2012-10-08 11:51:35 +00:00
Paolo Cignoni f53f93d553 Updated to reflect the naming changes in updateNormals 2012-10-08 10:27:19 +00:00
Paolo Cignoni feeec9f979 Updated to reflect the naming changes in updateNormals 2012-10-08 09:12:21 +00:00
Paolo Cignoni bd171b714f Orthography lenght -> length 2012-10-08 09:10:03 +00:00
Paolo Cignoni 1ba693c4f7 Orthography lenght -> length 2012-10-08 09:07:50 +00:00
Paolo Cignoni b974b6987d Updated to reflect the naming changes in updateNormals 2012-10-08 09:06:50 +00:00
Paolo Cignoni c059114300 Orthography lenght -> length 2012-10-08 09:05:11 +00:00
Paolo Cignoni dfc9192715 Orthography lenght -> length 2012-10-08 09:03:25 +00:00
Paolo Cignoni 33e1231056 Heavily reformatted and cleaned for documentation. Hopefully no semantic changes involved... 2012-10-08 09:01:24 +00:00
Paolo Cignoni 6f7db152b2 updated to the new eigen folder structure (something moved out from unsupported folder...) 2012-10-05 17:01:22 +00:00
Paolo Cignoni ab76074ccc removed useless ; 2012-10-04 20:41:28 +00:00
Paolo Cignoni cbf99ac69a updated to the change update/edge -> update/component_ep 2012-10-04 20:40:40 +00:00
Paolo Cignoni 18e2f6dd7c Updated to the new exception based strategy (no more assert for missing components) 2012-10-04 20:37:49 +00:00
Paolo Cignoni f62ca270b7 Better naming for the EdgePlane face component for fast closest query 2012-10-04 16:22:08 +00:00
Paolo Cignoni 2b0dbf2d20 Better naming for the EdgePlane face component for fast closest query 2012-10-04 16:19:03 +00:00
Paolo Cignoni a7dc9a853e Better naming for the EdgePlane face component for fast closest query 2012-10-04 16:17:31 +00:00
Paolo Cignoni d97f08e23e Better naming for the EdgePlane face component for fast closest query 2012-10-04 16:15:24 +00:00
Paolo Cignoni 2577210a54 **** SIGNIFICANT CHANGES *****
- Cleaned up include order: Now you only need to include <vcg/complex/complex.h> (no more vertex/base.h etc) 
- Added official VN() EN() FN() const members for knowing number of vertexes etc...
- Added exceptions (at last!)
    Now instead of:
       assert(HasPerVertexNormal(m)) 
    you should write:
      if(!HasPerFaceNormal(m)) throw vcg::MissingComponentException();
2012-10-04 11:10:25 +00:00
Nico Pietroni 1aecce2033 added IsCCW function 2012-10-03 16:39:29 +00:00
Nico Pietroni 7ffcc407c9 corrected some warning and added support for read/write rosy format 2012-10-03 16:38:23 +00:00
Paolo Cignoni 14cffd1f6e Removed template default parameter. Now if you use the distortion class you have to specify if you want per vertex or per wedge tex coords. 2012-10-02 13:42:33 +00:00
Nico Pietroni dcb0d036ff added FindSharedFaces and VFOrderedStarVF functions 2012-09-22 12:54:30 +00:00
Massimiliano Corsini 47adc093b2 add the possibility to specify the cell size 2012-09-19 09:05:40 +00:00
Nico Pietroni a95c0efa2e added GradientToCross and ExporttoRosy format see Interactive Visualization of Rotational Symmetry Fields on Surfaces
Jonathan Palacios and Eugene Zhang
2012-09-18 15:31:40 +00:00
Nico Pietroni e2e948dbd6 added cast to float lines 308 309 2012-09-18 15:18:33 +00:00
Nico Pietroni 0cde611654 added function SetQasDistorsion and minor changes 2012-09-18 15:14:12 +00:00
Nico Pietroni 3658530bde corrected some warning 2012-09-05 23:25:55 +00:00
Nico Pietroni be2d3613b9 added one more call of VFStarVF that returns also the indexes of vertices as seen from the faces 2012-09-03 15:57:52 +00:00
Nico Pietroni d9a95aaffc added Function FaceClearS 2012-09-03 15:56:24 +00:00
Nico Pietroni 10e827b071 added include <wrap/callback.h> 2012-09-03 15:55:41 +00:00
Nico Pietroni b297040835 added MakeDirectionFaceCoherent
solved gcc compiling issues
2012-09-03 15:54:25 +00:00
Massimiliano Corsini dec783bcf0 add SetByPointers to deal with containers of pointers instead of containers of elements 2012-09-03 13:50:42 +00:00
Federico Ponchio 0ac7034397 added method to get Projection matrix given near and far. 2012-08-29 13:21:22 +00:00
Massimiliano Corsini f16b821dc0 minor fix 2012-08-27 15:50:55 +00:00
Nico Pietroni fc97ed0e1c added support for primitive subdivision into cells 2012-08-27 12:47:12 +00:00
Nico Pietroni 461c8e1552 added support for primitive subdivision into cells 2012-08-27 12:46:50 +00:00
Marco Di Benedetto c209a384a0 fixed Color4bOcf interface (missing "public" section). 2012-08-22 18:36:59 +00:00
Paolo Cignoni cfba5001fd Disambiguate function name PerVertexWeighted -> PerVertexNelsonMaxWeighted 2012-07-31 09:15:20 +00:00
Paolo Cignoni f3ef64cc0c Heavily changed the whole hole filling class, now much shorter, more readable and hopefully more robust.
Still to better balance shape vs diedral angle quality measure.
2012-07-31 09:13:48 +00:00
granzuglia 0edde01197 - removed compiler time error from TestIntersection to TestFaceFaceIntersection 2012-07-27 17:48:17 +00:00
Paolo Cignoni 2aa57698ad better uniform naming for detach attach functions (now there is FFAttach, FFAttachManifold, FFDetach, etc)
changed SharedVertex into FindSharedVertex
added FindSharedEdge
2012-07-27 12:59:27 +00:00
Paolo Cignoni 500a478e14 Improved the SplitNonManifoldVertex function. Now it is able to also move the split vertexes apart 2012-07-27 12:57:34 +00:00
mtarini 3adc453f53 Now zonohedra construction robust to basically *any* input, no matter how degenerate. 2012-07-24 01:48:21 +00:00
granzuglia 0448e15f5b - removed compile time errors 2012-07-23 12:16:17 +00:00
mtarini 15665c15ef added a few testing methods (IsTriOnly, IsQuadOnly, IsTriQuadOnly) 2012-07-20 13:50:08 +00:00
Massimiliano Corsini a5bec5b623 Fix Remove method (replace 3d box with 2d box) 2012-07-20 11:07:04 +00:00
Paolo Cignoni f1d6d5d32a Changed the GetInfo of the hole stuff. Now it require the userbit specified 2012-07-19 08:09:28 +00:00
mtarini a70fd3daa5 Better comments 2012-07-18 22:18:14 +00:00
mtarini 8e4a8e9b6e first version 2012-07-18 22:02:36 +00:00
mtarini 240b88a582 added method MergeFlatFaces (does what it says). Plus clean-ups. 2012-07-18 21:46:12 +00:00
Paolo Cignoni 45b0deb7eb Important Change: ** LastBitFlag ** now is named ** FirstUnusedBitFlag **
Corrected the name of the function allocating a user bit among the flags of the simplexes. 
Changed in ALL the simplexes (vertex, edge, face, etc) and updating functions. 
Note that the LastBitFlag should never be used by common users...
2012-07-18 09:37:32 +00:00
mtarini 36d9030955 added SplitNonFlatQuads method 2012-07-17 19:21:46 +00:00
ganovelli d9132e6cbc corrected assertion 2012-07-09 15:14:36 +00:00
ganovelli 924cf9a4ec changed a comment 2012-07-09 15:12:56 +00:00
Paolo Cignoni 7ffb878913 SIGNIFICANT CHANGE
About the point to mesh distance functionalities
Now the two different 'path' for this distance computation (with or without the precomputation of planes and edges for triangular faces) are well distinct and with different names:
PointDistanceEP and PointDistanceBase

See the sample/trimesh_closest sample for more details
2012-07-06 15:24:04 +00:00
Paolo Cignoni 58eced0506 Changed one of the init overload Set(), the one that allowed to specify the cell radius but ACTUALLY it did not use it...
now has a new name : SetWithRadius
2012-07-06 09:40:09 +00:00
Paolo Cignoni 87d01da58f Yet some other changes to the stat collecting functions for computing the average edge lenght on a mesh. 2012-07-06 09:06:43 +00:00
Paolo Cignoni 3d956d8b48 Changed ComputeFaceEdgeHistogram into ComputeFaceEdgeDistribution. It was plainly wrong... :( 2012-07-06 08:08:24 +00:00
Paolo Cignoni 38b8ab1f15 Corrected a bug in GridStaticPointer: The hint about the number of cell to be used was ignored and used only to compute the expansion offset. 2012-07-06 06:58:17 +00:00
Paolo Cignoni 81a4cd4765 Corrected two wrong (unused) return types in stat collecting functions for trimesh 2012-07-06 05:38:05 +00:00
Paolo Cignoni 24110c34b2 added an Empty Component for the edgePlane component. 2012-07-06 05:07:25 +00:00
granzuglia 398f906bb6 added missing cmath include 2012-07-05 14:46:16 +00:00
Paolo Cignoni b77fa00b5e removed a few unused commented out funcs 2012-07-04 15:27:17 +00:00
Paolo Cignoni cd1ae00082 Added tri::UpdateFlags<MESH_TYPE>::FaceBorderFromFF(m); to the basic refine call.
In order to move these per face flags in less places as possible...
2012-07-04 15:25:21 +00:00
Paolo Cignoni b2e2bfe2df added Cotangent weighting to the basic laplacian smoothing. 2012-07-04 15:23:59 +00:00
granzuglia db57bd4e19 added missing public keyword on the static Name function of some ocf components. 2012-07-03 11:12:21 +00:00
Paolo Cignoni bfc10096f0 small improvemnt in stat collection for voronoi atlas 2012-07-03 10:21:41 +00:00
Paolo Cignoni 7e4e023266 Removed a dubious unused normalize method... 2012-07-03 09:29:48 +00:00
Paolo Cignoni f036874693 better comments 2012-07-03 09:14:17 +00:00
Paolo Cignoni e362d54a25 Timing functions and stat collecting for voronoi atlas 2012-07-03 09:13:07 +00:00
Paolo Cignoni b08fda7641 Corrected SegmentPointSquaredDistance to do not use anymore a hardcoded EPSilon value... 2012-07-02 16:45:49 +00:00
Paolo Cignoni 776fbe45a0 First Version of the Voronoi Atlas parametrizator. 2012-07-02 16:41:28 +00:00
Paolo Cignoni 539de75614 Cleaned up a bit the printint stuff. Now it should collect stats in a more clean way 2012-07-02 16:31:52 +00:00
ganovelli 0f99bd505e changes and minor fix to enable input/output with VMI on memory 2012-07-02 14:38:10 +00:00
Paolo Cignoni 487b6c7bd5 Corrected a bug in search for the best edge to be fixed in the FindFarthestVert when setting up the system for the poisson solver... 2012-07-02 09:38:42 +00:00
Paolo Cignoni 7cc19a31c6 Added two stupid wrapper to ComputePerFaceQualityMinMax and ComputePerVertexQualityMinMax 2012-07-02 08:30:17 +00:00
Paolo Cignoni 52fed4c451 Added a PerWedgeMakeUnitaryUV to normalize for packing 2012-07-02 08:29:11 +00:00
Paolo Cignoni ad9a7a237d updated to match the Distorsion->Distortion name change 2012-07-02 08:19:06 +00:00
Paolo Cignoni d900752b52 Renamed to correct the spelling error (distorsion -> distortion) 2012-07-02 08:15:24 +00:00
Paolo Cignoni d6ff9f01de Heavily modified. Corrected Spelling of distorsion->distortion
Completed a few measures and added difference between angle distortion in cos or rad space
2012-07-02 08:13:50 +00:00
Paolo Cignoni 28f3e120f0 Corrected naming for the unreference vertices function now the func that just count the unref vert is called CountUnreferencedVertex 2012-06-28 17:21:20 +00:00
Paolo Cignoni 9ed6314d10 removed harmless gcc warnings 2012-06-28 09:09:08 +00:00
Nico Pietroni 066f46c20b first release version 2012-06-22 14:27:33 +00:00
Nico Pietroni 614a5fec16 first release version 2012-06-22 14:25:35 +00:00
Nico Pietroni 0e3d2abcfd corrected return value of closest point 2012-06-22 14:23:33 +00:00
Paolo Cignoni af15a07c0f corrected small bug in RemoveDuplicateFace involving the unsafe subtracting 1 from an unsigned int that could be zero... 2012-06-14 13:48:25 +00:00
Federico Ponchio cb639a12d7 renamed from max/min to hi/low 2012-06-14 09:40:26 +00:00
Paolo Cignoni 36905c5d93 Added extrude.h file for the creation of extruded meshes from profiles 2012-06-06 06:25:56 +00:00
Paolo Cignoni 75ebfa9d5a Rewrote and commented the function that given a face pointer it follows the chain of non-faux edges. Now it supports the case of meshes with face with ALL edges faux (isolated faces in a polygon). 2012-05-28 11:30:37 +00:00
Nico Pietroni 894ebb26f6 added RemoveHugeConnectedComponentsDiameter function 2012-05-25 13:33:36 +00:00
Nico Pietroni d4ad0bd6f6 added check if length of segment is zero then function SegmentPointDistance still works 2012-05-25 13:32:48 +00:00
Nico Pietroni 5445d99402 several major modifications 2012-05-25 13:21:11 +00:00
Nico Pietroni c1e19b4b55 added assert(0) for cVFi function if does not exixts the component 2012-05-25 13:19:03 +00:00
Paolo Cignoni cb3fc0dbe2 corrected harmless gcc warnings 2012-05-06 16:01:14 +00:00
Paolo Cignoni 0c16045423 corrected harmless gcc warnings 2012-05-06 15:36:02 +00:00
Paolo Cignoni 64d7f31279 corrected bug in the face laplacian normal smoothing 2012-05-06 15:31:07 +00:00
Paolo Cignoni 37759ffcb0 sligthly better comments 2012-05-06 14:42:04 +00:00
Paolo Cignoni 05195b6201 in the functions for creating meshes: corrected bug in the OrientedRect and changed the interface of the grid to allow the creation of a flag grid 2012-05-06 14:22:29 +00:00
Paolo Cignoni 0cad100f9d corrected harmless gcc warnings 2012-05-06 14:20:34 +00:00
Paolo Cignoni 486475d4a3 added another assert to histogram to avoid trash result... 2012-05-05 14:55:50 +00:00
Paolo Cignoni 7537b20933 Added a NormalizedDirection method 2012-05-05 14:54:45 +00:00
Paolo Cignoni e532ec9751 Added VVStarVE and VEStarVE functions (to get stars of vertexes and edges when working with edge meshes) to edge topology. 2012-04-27 09:23:01 +00:00
Paolo Cignoni 4c44513d4f corrected bug in the UpdateTopology::EdgeEdge function: it touched a vector element beyond .end() 2012-04-22 09:01:04 +00:00
Paolo Cignoni 39df21640a Updated to reflect the change from ColorRamp -> SetColorRamp 2012-04-18 21:19:11 +00:00
Paolo Cignoni 8eb94a7f9d Changed ColorRamp non static method into a static one (that constructs a Color4b object) and added a more uniform SetColorRamp method. 2012-04-18 21:17:04 +00:00
Paolo Cignoni 5f22a3f7b5 added a very simple function wrapper to get a poisson disk distribution over a mesh with just function call 2012-04-18 21:12:12 +00:00
Paolo Cignoni 508c733bd4 added a missing updateQuality::FaceFromVertex 2012-04-18 21:09:56 +00:00
Paolo Cignoni ba507529c8 Modified intersectionPlaneQuality so that it also compute the per vertex normal according to the mesh... 2012-04-18 21:09:08 +00:00
Paolo Cignoni ffdc2f2b28 Geodesic: Added possibility of saving also the implict tree of the shortest path. For each vertex you can give an attribute where the function will save the 'parent' e.g. the previous vertex in the shortest path to the closest source. 2012-04-12 23:54:23 +00:00
Marco Di Benedetto 1c5f2c2264 added static capability query function for ocf vertex texcoord (VertexVectorHasPerVertexTexCoord()) (not having it caused false positives). 2012-04-10 16:47:15 +00:00
Marco Di Benedetto a82ac9639f added constant accessors without the infamous "c" prefix for color (C()) and texcoord (T()). 2012-04-10 15:46:20 +00:00
granzuglia 1548d6415a added missing functions in Empty:
- static bool HasCurvatureDir() { return false; }
- static bool IsCurvatureEnabled(const typename TT::VertexType *)  { return false; }
2012-04-06 08:10:32 +00:00
Paolo Cignoni 5aed57a364 Heavy restructuring of the append function. Now it is hopefully must more efficient.
Added a parameter for requesting the copy of the non trivial topology. (e.g. all the adjacency relations beyond FV and EV).
2012-04-04 10:11:46 +00:00
Paolo Cignoni b0d7d5c52e removed harmless gcc warnings 2012-04-04 10:05:35 +00:00
Paolo Cignoni ea701b39b3 Restructured Face component in order to follow the unique emptycore approach that avoid an endless derivation chain in the type definition 2012-04-04 10:04:46 +00:00
Paolo Cignoni 3811efacd8 removed useless include 2012-04-04 09:59:42 +00:00
Paolo Cignoni 059a2f220b added EdgeCount method for counting selected edges 2012-04-04 09:59:10 +00:00
Paolo Cignoni 06d481f5de standardized function names e used area function of vcg lib 2012-04-04 09:57:46 +00:00
Paolo Cignoni 783aef369b added hn initialization in the trimesh constructor 2012-04-04 09:53:54 +00:00
msabbadin 7c3687b8db corrected an assert in PrincipalDirections static method:
from assert(m.HasVFAdjency());
to assert(tri::HasPerFaceVFAdjacency(m) && tri::HasPerVertexVFAdjacency(m));
2012-04-02 14:42:56 +00:00
Paolo Cignoni 8a631d48c1 Corrected a significant bug in the reflection types for ocf components.
Changed the basic reflection mechanism: Instead of having a function templates over all the four containers now we template over Trimesh and we rely on a second function templated on face/vert that wants a vector<face> ; this second function only is eventually overloaded by another function that needs a vector_ocf of faces. 

That is Before we had:
- in complex.h

template < class  CType0, class CType1, class CType2 , class CType3>
bool HasPerFaceVFAdjacency   (const TriMesh < CType0, CType1, CType2, CType3> & /*m*/) {return TriMesh < CType0 , CType1, CType2, CType3>::FaceContainer::value_type::HasVFAdjacency();}

- in the component_ocf.h

template < class VertContainerType, class FaceType, class Container1, class Container2  >
		bool HasPerFaceVFAdjacency (const TriMesh < VertContainerType , face::vector_ocf< FaceType >, Container1, Container2 > & m)
	{
	  if(FaceType::HasVFAdjacencyOcf()) return m.face.IsVFAdjacencyEnabled();
	  else return FaceType::FaceType::HasVFAdjacency();
	}


While now we have:
- in complex.h

template < class FaceType  > bool   FaceVectorHasPerFaceVFAdjacency     (const std::vector<FaceType  > &) {  return FaceType::HasVFAdjacency(); }
template < class TriMeshType> bool   HasPerFaceVFAdjacency     (const TriMeshType &m) { return tri::FaceVectorHasPerFaceVFAdjacency  (m.vert); }

- and in component_ocf.h

template < class FaceType >
  bool FaceVectorHasPerFaceVFAdjacency(const face::vector_ocf<FaceType> &fv)
  {
    if(FaceType::HasVFAdjacencyOcf()) return fv.IsVFAdjacencyEnabled();
    else return FaceType::HasVFAdjacency();
  }
2012-03-31 01:16:58 +00:00
Paolo Cignoni b43fffd46f added a few security assert on deletion of simplexes that you are actually deleting objects that belongs to the given mesh 2012-03-30 23:43:04 +00:00
Paolo Cignoni e3d0a6d0cb added method for generating a random point into a triangle (it generate three random barycentric coords) 2012-03-30 23:42:04 +00:00
Nico Pietroni a53447ab1c added VFOrderedStarVF_FF function 2012-03-29 16:36:01 +00:00
Nico Pietroni fe71126700 added TransformationMatrix function 2012-03-29 16:34:31 +00:00
Nico Pietroni d5e7d551ba clean up the code and used new per face component 2012-03-29 16:33:33 +00:00
ganovelli bbcfbfabc2 added CurvatureDir to Face 2012-03-28 12:39:22 +00:00
ganovelli 749f67c3b6 added curvature direction 2012-03-28 11:56:10 +00:00
Nico Pietroni 4f166fbd95 added Crease Flag access functions 2012-03-16 13:49:04 +00:00
Nico Pietroni d4275a3597 added several functions 2012-03-16 13:48:18 +00:00
Nico Pietroni d941439fbb corrected several bugs and done several changes 2012-03-16 13:47:42 +00:00
Paolo Cignoni 57bd611892 added assert in the VFIterator to handle uninitialized topology. 2012-03-14 16:02:30 +00:00
Paolo Cignoni c4e116a42a Corrected a bug in the RemoveUnreferencedVertex. It considered only faces and removed vertices referenced by edges 2012-03-14 16:01:30 +00:00
Paolo Cignoni f58551601a CHANGE to the VERY USED PointDistanceBase, the basic functor used to find the closest point to a face in all the grids.
It has a bug that could return a nan in some degnerate case where an almost null face has different vertices but the squared distance between them could be zero. 
Now it should handle also these cases.
2012-03-14 15:59:42 +00:00
Paolo Cignoni b57a747441 rewriting of the SegmentPointSquaredDistance, now it is much much much shorter. 2012-03-14 15:57:37 +00:00
Nico Pietroni ad417602bd added default constructor 2012-03-09 11:01:25 +00:00
Nico Pietroni 5e7f95f94a major changes 2012-03-08 18:09:31 +00:00
Nico Pietroni f97f54a89b erased vertex manifold as prerequisite 2012-03-08 18:09:09 +00:00
Nico Pietroni 1aed2f16da first release version.. need to be tested in several functions 2012-03-08 18:08:35 +00:00
Paolo Cignoni add25e7bf0 added a missing std:: 2012-02-27 07:06:26 +00:00
Paolo Cignoni 29fdad2622 Added constructor with seed to the Mersenne rnd generator 2012-02-27 06:58:17 +00:00
Paolo Cignoni 6983d4f6e9 Added a few comments... 2012-02-25 14:40:23 +00:00
Paolo Cignoni bc57fc36b4 Moved here and cleaned the kdtree for points implemented by Gael 2012-02-22 16:57:44 +00:00
Luigi Malomo 01453b8b0e Fixed a call to InterpolationParameters. A Point3 reference must be provided for barycentric coordinates output, instead of 3 separate scalars. 2012-02-14 12:13:38 +00:00
Luigi Malomo f358db54fd Added a quick check for callback presence (avoid crash if cb function is not provided) 2012-02-14 12:02:43 +00:00
Paolo Cignoni 1def190868 harmless gcc warnings 2012-02-09 17:55:41 +00:00
Paolo Cignoni 159f9d0c0f added an assertion to block the use of VEiterators in case of unitialized VEadjacency 2012-02-09 17:54:25 +00:00
Paolo Cignoni c8e202738c added initialization of VE adjacency components to something that allows to discriminate between the uninitializated adjacency and a vertex with no edges 2012-02-09 17:53:08 +00:00
Paolo Cignoni d331cf7f60 Added OrientedDisk creation method. and a missing "clear()" 2012-02-09 17:50:38 +00:00
Paolo Cignoni 790cf5d7ef Added a second function to compute the distance between a point and a box, according to the fact that you need the distance between the surface of a box or the distance from the filled box (e.g. the distance is 0 inside the box) 2012-02-09 17:30:54 +00:00
Paolo Cignoni 86f636b64b Added function to add a point with radius to a bbox. 2012-02-09 17:24:23 +00:00
Nico Pietroni 69508353bb resolved minor compilation issues 2012-02-09 14:02:34 +00:00
Paolo Cignoni c90b11ca80 Changed all the MeshType::HasSomething() into the now standard tri::HasSomething(MeshType &m)
This changed implied the fact that you need different functor constructor (you have to keep the mesh inside it to know at runtime if some attribute are present or not)
2012-01-25 10:23:22 +00:00
Nico Pietroni fc7983d3fd added HasPolyInfo function, line 538 2012-01-24 13:34:46 +00:00
Nico Pietroni 5ad96544bb added several functions... 2012-01-23 13:09:38 +00:00
Paolo Cignoni b10ed11bc0 Added two functions to build disk, rectangles and squares (oriented in space).
Changed the reflection functions as usual
2012-01-23 07:07:19 +00:00
Paolo Cignoni c32db09276 Changed the name of the Distance from point to plane
from DistancePointPlane
to     SignedDistancePointPlane
to underline the fact that it is SIGNED!!!
2012-01-23 06:47:31 +00:00
Paolo Cignoni 48e607f884 Changed all the MeshType::HasSomething() into the now standard tri::HasSomething(MeshType &m) 2012-01-23 06:38:32 +00:00
Paolo Cignoni 4bdf843589 Changed all the MeshType::HasSomething() into the now standard tri::HasSomething(MeshType &m) 2012-01-20 08:03:25 +00:00
Paolo Cignoni 6094438b4b Changed all the MeshType::HasSomething() into the now standard tri::HasSomething(MeshType &m) 2012-01-20 07:58:43 +00:00
Paolo Cignoni 58042fda3e Changed all the MeshType::HasSomething() into the now standard tri::HasSomething(MeshType &m) 2012-01-20 07:52:22 +00:00
Paolo Cignoni 7fb6c417da Missing Include 2012-01-20 07:51:49 +00:00
Paolo Cignoni e9d476e93c Changed all the MeshType::HasSomething() into the now standard tri::HasSomething(MeshType &m) 2012-01-20 07:49:26 +00:00
Paolo Cignoni a53887e893 added operator [] and function Direction() 2012-01-18 16:45:50 +00:00
Paolo Cignoni a61f6db8ac corrected return value bug 2012-01-18 16:43:40 +00:00
Paolo Cignoni 5bb5c1a1eb Correct a function name to match attribute order
IntersectionPlaneLine(line,plane) -> IntersectionPlaneLine(plane,line)
2012-01-18 16:41:34 +00:00
Paolo Cignoni f4cf3b9221 Changed the name of the Distance from point to plane
from DistancePointPlane
to     SignedDistancePointPlane
to underline the fact that it is SIGNED!!!
2012-01-18 11:44:42 +00:00
Paolo Cignoni 86617dd872 Changed the name of Clean::IsOrientedMesh() -> Clean::OrientCoherentlyMesh()
It is a mesh changing method!
2012-01-18 11:42:08 +00:00
Paolo Cignoni 57e4689e1b corrected bug in the ImportVertexAdj Topology must be copied only if meaningful. 2012-01-18 11:27:07 +00:00
Paolo Cignoni ac3107cdb4 added comments to the color Scatter function (I never remember the meaning of the params) 2012-01-18 11:24:33 +00:00
Paolo Cignoni 048b884a3e Added tri:UpdatePosition::Scale(mesh) 2012-01-18 11:22:40 +00:00
Nico Pietroni 75aca76eb7 Added PointInsidePolygon function 2012-01-12 00:53:37 +00:00
Nico Pietroni bb7fbdcc88 line 193 corrected composition of transformations 2012-01-12 00:52:04 +00:00
ganovelli d256abfaaf added PointScaledDistanceFunctor 2011-12-21 16:15:32 +00:00
ganovelli c097e6edd5 added GetClosestVertexScale 2011-12-21 16:13:07 +00:00
ganovelli c2e3d66d19 added template parameter in function call 2011-12-21 16:10:30 +00:00
Paolo Cignoni 95e69075e4 Yet another removal of the usage of the faceprojection flags 2011-12-19 00:51:49 +00:00
Paolo Cignoni 0fe6fdaedc Yet another removal of the usage of the faceprojection flags 2011-12-19 00:51:03 +00:00
Paolo Cignoni 11fa2ba58a Added ComputeEdgeHistogram to Stat functions 2011-12-18 22:33:27 +00:00
Paolo Cignoni 9af315bb18 Two significant changes
1) the name of the supposedly non changed mesh is done explicit in the template name 
2) If the the selection of the vertexes is not consistent with the face selection the append could build faces referencing non existent vertices so it is mandatory that the selection of the vertices reflects the loose selection from edges and faces (e.g. if a face is selected all its vertices must be selected
2011-12-15 07:52:51 +00:00
Paolo Cignoni 3b61972116 Implemented the correct management of per edge attribute. It was half done... 2011-12-15 07:23:51 +00:00
Paolo Cignoni 412ef1aa65 Added UpdateSelection::VertexFromEdgeLoose
added parameter for preserving the old selection to the UpdateSelection::VertexFromFaceLoose
2011-12-14 08:54:54 +00:00
Paolo Cignoni ae58754015 Significant change of names to the UpdateSelection Class.
now follows the standard VertexClear instead of ClearVertex.
Updated all the other files of vcg using it...

(added also selection stuff for edges..)
2011-12-13 10:07:00 +00:00
Paolo Cignoni 5ec7fc1e4a added missing const to the Index function 2011-12-12 23:29:16 +00:00
Paolo Cignoni c038b3584e Corrected blatant bugs in the updateTopology--VertexEdge 2011-12-12 23:28:25 +00:00
Paolo Cignoni c8fecaecf3 added Class VEIterator for traversing all the edges over a single vertex 2011-12-12 23:27:26 +00:00
Paolo Cignoni e8971a7ee7 corrected bug in vertexEdge adjacency relations 2011-12-12 23:26:25 +00:00
ganovelli f4010f0dce corrected setOrtho 2011-12-07 13:15:28 +00:00
Paolo Cignoni e4b114ea55 Added CheckFlipEdgeNormal that check if a flip modify the involved normals more than a given threshold. 2011-11-30 18:04:53 +00:00
ganovelli 27e6c3eb39 *= fixed 2011-11-21 16:47:13 +00:00
ganovelli ab373e50cd missing include added 2011-11-21 16:12:48 +00:00
Paolo Cignoni 3d6857a0b0 re-added the empty constructor to marker face... 2011-11-21 14:04:23 +00:00
Marco Callieri 7616955d64 changed function call from Distance to DistancePlanePoint 2011-11-21 13:20:45 +00:00
Paolo Cignoni 5bcb52529b harmless gcc warning 2011-11-21 09:38:00 +00:00
Paolo Cignoni b09619c1ea harmless gcc warning 2011-11-21 09:37:18 +00:00
Paolo Cignoni 5af75e6dac Removed bug in the ImportEdgeAdj, ImportFaceAdj, ImportHEdgeAdj. All of the same kind...
for(unsigned int vi = 0; vi < 2; ++vi)
 {
   size_t i = Index(mr,er.cEEp(vi));
   el.EEp(i) = (i>ml.edge.size())? 0 : &ml.edge[remap.edge[i]];
   el.EEi(i) = er.cEEi(i);
 }

 el.EEp(i)  should be  el.EEp(vi) !!!!
2011-11-21 09:36:21 +00:00
Paolo Cignoni 0e76a8e0ce Removed the useless faceprojection flag update function. No more needed! 2011-11-21 09:10:52 +00:00
Paolo Cignoni e340e6d1c0 removed old lib svd and substituted with eigen.
Anyway is someone really using this file?
2011-11-21 09:09:58 +00:00
Paolo Cignoni 285d78d293 removed the default empty constructor to avoid the use of the object without a mesh.... 2011-11-21 09:07:36 +00:00
Paolo Cignoni 8f7aab147d changed BASIC VERSION of the Point-face distance that does not require the EdgePlane Additional data.
now it does not require any more the dreaded face bit flags...
2011-11-21 08:56:52 +00:00
Paolo Cignoni 4c4d505b6f added assert for discouraging inconsistent triangleplane intersection 2011-11-21 08:54:35 +00:00
Paolo Cignoni 20ec79715b Improved comments to the interpolation function that requires a preferential axis 2011-11-21 08:02:31 +00:00
Paolo Cignoni 62167e43bf removed useless reference return in const int imark() 2011-11-21 07:25:31 +00:00
Paolo Cignoni 66b2f8539f removed useless reference return in const int imark() 2011-11-21 07:22:00 +00:00
granzuglia 59b789818e renamed ILLUMINANT_* with VCG_ILLUMINANT_* in order to avoid conflicts with the visual studio defines. 2011-11-18 10:42:19 +00:00
Paolo Cignoni c9fbf25362 Cleaned up
- gcc warnings 
- useless printf...
2011-11-15 18:03:58 +00:00
Paolo Cignoni 342f182ee0 Added RemoveDuplicateEdge and CountNonManifoldEdgeEdge 2011-11-15 11:20:12 +00:00
Paolo Cignoni f9a7860f5e Added a much more robust IntersectionPlaneMeshQuality function to compute the intersection between a mesh and a plane that exploit quality for storing the distance from the plane and to make consistent decision about the cutting of the plane... 2011-11-15 11:19:08 +00:00
Paolo Cignoni e0055f8b5c added a missing const... 2011-11-15 11:15:24 +00:00
Paolo Cignoni 0a80e1e8ca Cleaning up Plane3...
- comments (the sign of the offset please!!!)
- name of the Distance function -> DistancePointPlane(...)
- a missing normalization in the Init (!)
2011-11-15 11:11:12 +00:00
Paolo Cignoni f631d88c90 changed the comment of the function Convert from polar coordinates to cartesian coordinates ** it uses RADIANS and not degree...** 2011-11-15 11:07:49 +00:00
Paolo Cignoni 2ab3b3ab5b Changed the semantic and the return value of the generic DeleteAttribute (e.g. the one that does not take a type)
** It must not crash if you try to delete a non existing attribute, 
because you do not have a way of asking for a handle of an attribute for which you do not know the type.
2011-11-15 11:05:35 +00:00
Paolo Cignoni 89635131a7 added in the comment a biblio ref to a very similar approach 2011-11-07 16:09:35 +00:00
Paolo Cignoni 34921eb3ba corrected small nasty bug in the rarely used compact edge vector... 2011-11-07 15:41:59 +00:00
Nico Pietroni 5fee62fbb1 changed several calls of CrossVector function 2011-11-01 18:41:54 +00:00
Nico Pietroni 4af26f2df2 line 565 changed "if (numholes!=1) return false;" to "if (numholes==0) return false;" it may be even have multiple holes 2011-11-01 18:40:55 +00:00
Paolo Cignoni dee3de3cc8 Added correct overloading of ImportData for per vertex curvature component. 2011-11-01 18:33:52 +00:00
ganovelli 99a41cf446 corrected ApplyRigidTransformation (zeroed last row of rot) 2011-10-28 14:20:27 +00:00
ganovelli cedf5fb284 bug fixing:
- mixup of nomes Edge and Face on the components.
- possibly use of empty vector in import_obj.h
Thanks to nagaokagetora for showing them
2011-10-25 10:03:10 +00:00
Paolo Cignoni 3b7609a7e8 Added algorithms for packing into a square rectangles and polygons 2011-10-20 22:29:20 +00:00
Paolo Cignoni e886684842 moved voronoi_clustering here from meshlab... 2011-10-20 22:26:46 +00:00
Nico Pietroni 2d8c6222cd added DifferenceCrossField, commented some non used function 2011-10-19 09:02:27 +00:00
Paolo Cignoni 16c39dfe24 removed other harmless gcc warnings... 2011-10-17 23:57:27 +00:00
Paolo Cignoni 7c6956fd4d Corrected some gcc compilation errors, Changed the IsFeasible function (now it tests that there is exactly one hole... 2011-10-17 23:35:30 +00:00
Paolo Cignoni 486795fcfb Better Comments on the Genus. 2011-10-17 23:33:48 +00:00
ganovelli f20ecb9db7 corrected a bug in ApplySimilarity (the translation was not zeroed when
transforming the rotational part)
2011-10-11 15:41:54 +00:00
Nico Pietroni f4a0b8bce4 added Coord3DtoUV function 2011-10-05 16:33:22 +00:00
Nico Pietroni a7c702c81d first release version 2011-10-05 16:17:40 +00:00
Paolo Cignoni 2fe129645b Rolled back 2011-10-05 15:04:40 +00:00
ganovelli 68fc8ae865 removed Neigh functions 2011-06-15 13:02:20 +00:00
Paolo Cignoni 7bb11892bb fixed ApplySimilarity when a scaling factor is present 2011-06-15 12:32:19 +00:00
ganovelli 09e0ccc62c added variational shape approximation partition of the mesh both
for triangle meshes and for vertex meshes
2011-06-14 17:10:57 +00:00
ganovelli a815890b15 minimal addition to support neighboorhood relation between vertices
and between faces
2011-06-14 16:18:34 +00:00
Marco Di Benedetto ddb4e72887 moved PointerToAttribute outside mesh definition to avoid type mismatches in append with two different mesh types. 2011-06-14 14:52:38 +00:00
granzuglia 129d4edbaf added several missing include file 2011-06-08 08:46:02 +00:00
granzuglia f58b646616 added several missing include file 2011-06-07 14:37:27 +00:00
granzuglia 1318e29cb0 added several missing include file 2011-06-07 14:36:33 +00:00
granzuglia 05ba578f8e added missing std prefix 2011-06-07 13:48:49 +00:00
Paolo Cignoni bd8f86bff5 Removed other dependencies from the meshlab basecode... 2011-06-06 00:13:10 +00:00
Paolo Cignoni 6de8b3f890 Added tri_edge_collapse_quadric_tex.h. The specialization of edge collapse for tex and geometry. It should be cleanded a little... 2011-06-05 23:39:31 +00:00
Paolo Cignoni 23d9ad9684 added BasicVertexPair templated class to store as less as possible of an edge... 2011-06-05 23:37:43 +00:00
Paolo Cignoni a7e4270ddb Moved here from meshlab. Very specialized class to perform texture quadric simplification using a 5dim quadric that simultaneously optimize texure and positions. 2011-06-04 21:54:39 +00:00
Paolo Cignoni 3fc9b9ef1f Added MeshCopy(dst,src), with the same syntax of memcopy 2011-06-03 14:37:50 +00:00
Paolo Cignoni 3d4ae1b506 Added UpdatePosition::Translate 2011-06-03 08:32:27 +00:00
Paolo Cignoni 477767ab77 Added QualityMidPointFunctor and QualityEdgePredicate; Two classes (functor and the predicate) that you need for using the refine framework to cut a mesh along a linear interpolation of the quality. This can be used for example to slice a mesh with a plane. 2011-06-02 21:31:30 +00:00
Paolo Cignoni 27d9cfd6cb Added VertexFromPlane that put into quality the distance from a plane 2011-06-02 21:28:50 +00:00
ganovelli 11adfa2aff Changes for supporting copying of PerVertex,PerEdge and PerFace attributes in the vcg::tri::Append (append.h)
- useless template paramtere in SimpleTempData_Base removed (simple_temporary_data.h)
- Attribute is now derived by SimpleTempData_Base
- SimpleTempData_Base defines a void * At(unsigned int i) function that returns a pointer to the i-th element of the vector withouth knowing the type
- removed the useless member _typeid from the PointerToAttribute. It was used to store the rtti, useless itself.

NOTE: the copy of attributes is done with a memcpy! This means that if you defined a operator = in your attribute this WILL NOT be used in the append.
2011-06-01 13:39:31 +00:00
ganovelli 7a86b3fd25 added EmptyVertexRef to the default type 2011-06-01 13:31:28 +00:00
Paolo Cignoni 7324e75142 mismatch between the edge.EVp(i) versus edge.V(i) usage. 2011-05-31 08:46:38 +00:00
Paolo Cignoni 08e072aeb1 added empty VE reference to the base class of edges 2011-05-31 08:45:41 +00:00
Paolo Cignoni 5c358c02a4 Cleaned up small bug in the vertex clustering alg (crashed on empty sets and on non compacted meshes 2011-05-31 08:37:13 +00:00
Paolo Cignoni 5b6f8055f2 Corrected bug in the computation of VE topology 2011-05-31 08:35:50 +00:00
Paolo Cignoni 7f12ed85d7 Cleaned up a bit the duplicated EV and VertexRef relations. Added VE component for keeping the list of edges incident on vertex 2011-05-31 08:33:41 +00:00
Paolo Cignoni 4f761caf15 Added missing HasEdgeXXXX for checking the components avalability in meshes 2011-05-31 08:32:01 +00:00
Paolo Cignoni 55068f366b Added CompactEdgeVector functions for removing unused edges 2011-05-31 08:28:40 +00:00
Paolo Cignoni 9b2574b767 fixed a funcrion parameter name that was equal to the template argument 2011-05-27 09:26:52 +00:00
Nico Pietroni 052e774fbc added Quality3 component 2011-05-25 16:28:18 +00:00
Massimiliano Corsini f0a1d1d567 ApplySimilarity finished and tested 2011-05-25 06:58:39 +00:00
Massimiliano Corsini 2a450c7c46 add ApplySimilarity - version with vcg::Similarity is unfinished 2011-05-24 21:13:05 +00:00
Massimiliano Corsini f35731d425 ApplyRigidTransformation fixed 2011-05-24 12:13:21 +00:00
Paolo Cignoni e2d800f89f Cleaned up a few things for edge topology management. Added isborder for edges... 2011-05-24 09:39:37 +00:00
Massimiliano Corsini 86b12c5fc7 ApplyRigidTransformation has been modified but not fixed yet
a new method to convert focal in px in focal in mm has been added
2011-05-23 16:30:34 +00:00
ganovelli b61d049408 ongoing testing 2011-05-23 15:09:21 +00:00
Massimiliano Corsini b31fc9ddec 2011-05-23 14:09:16 +00:00
Paolo Cignoni 894ffdbdfe Added trivial WedgeTexFromVertexTex 2011-05-20 23:20:33 +00:00
Paolo Cignoni a9e5d6d957 added WedgeTexFromPlane function to create simple planar parametrizations 2011-05-20 15:15:44 +00:00
Paolo Cignoni d7af2e62b3 Significant changes to the simplification/optimization framework:
* TriEdgeCollapse is no more multiply derived but it get its "work on two vertex" behavior from a template parameter called VertexPair.
* EdgeCollapse is no more a class devoted to the simplification but it has been renamed as EdgeCollapser and it is a static class templates over a generic <VertexPair> that offer methods to perform Edge Collapses.
* cleaned up the parameter passing method for local optimization classes (and added a baseParameterClass from which every local optimization method must subclass its own parameters)
2011-05-20 15:12:09 +00:00
Massimiliano Corsini eec4f43178 add a method to roto-translate the camera frame
add a service method to adjust the camera-shot when the World coordinates are scaled
2011-05-19 16:28:51 +00:00
Massimiliano Corsini 9349591548 fix some comments about the assumption made by the Shot 2011-05-19 08:46:38 +00:00
ganovelli c35b1c84ff DoubleArea vs Area discrepancy fixed 2011-05-18 11:38:42 +00:00
ganovelli 46790e61cd added FaceArea 2011-05-18 11:37:18 +00:00
Paolo Cignoni 122cc50798 added missing Abs(Point2) 2011-05-12 09:52:34 +00:00
Paolo Cignoni 1a92eddf4c removed three no more useful files of the old edgemesh. Ported useful sutff in the right places (topology.h and clean.h) 2011-05-11 10:00:15 +00:00
Paolo Cignoni 0c606a5cf5 added EdgeEdge topology computation function 2011-05-11 09:57:08 +00:00
Paolo Cignoni db5320cc64 Modified IntersectionPlaneSegment so that it returns always the same intersection independently from the segment orientation
Return false if segment is parallel with the plane.
2011-05-11 09:56:23 +00:00
Paolo Cignoni 3bb7e7bdd9 Corrected again the constructor of the base trimesh. Now it simply call the clear (just to enforce same behaviour) 2011-05-11 09:54:05 +00:00
Paolo Cignoni f7abd17dfe added RemoveDegenerateEdge and modifyed RemoveDuplicatedVertex to support edgemesh 2011-05-11 07:36:19 +00:00
Paolo Cignoni 6d27dabf19 Added Initialization of en to ZERO !!!! 2011-05-11 06:18:01 +00:00
Paolo Cignoni 577416408f Added functions for clearing flags on edges 2011-05-11 06:13:38 +00:00
Paolo Cignoni 589cb681e5 Added parenthesis to remove gcc warnings 2011-05-11 06:11:21 +00:00
Paolo Cignoni 580ec94ab3 Index functions (that given a simplex return its position in the vector) are const 2011-05-11 06:09:14 +00:00
Paolo Cignoni 2eec2e0d55 missing const in edge adj access 2011-05-10 21:56:15 +00:00
Paolo Cignoni 2c15159659 fixed multmatrix when a scaling factor is present 2011-05-03 15:19:04 +00:00
Paolo Cignoni e878e7ae88 Cleaned up a bit the geodesic interfaces. Removed useless parameters to avoid ambiguity. Could require updating the existing code using it 2011-04-22 11:09:30 +00:00
ganovelli e87fe74584 retry 2011-04-22 10:18:43 +00:00
ganovelli b5359da0a1 added missing std:: 2011-04-21 16:49:59 +00:00
ganovelli 3789370e24 updated to vcg version (HasEETopology to HasEEAdjacency) 2011-04-21 16:24:46 +00:00
ganovelli 099149e990 corrected bug in EEAdj constructor 2011-04-21 15:51:03 +00:00
Nico Pietroni c4cc235b52 - added call of FarthestVertex with returning vertices within a specified interval
- added initial #define to avoid multiple inclusion
2011-04-19 09:40:04 +00:00
ganovelli 017323e803 IptoP changed into IPfToPf 2011-04-13 16:15:13 +00:00
ganovelli dbd3bd1a70 rewritten wrong planeboxintersection 2011-04-13 16:07:35 +00:00
ganovelli 6b3c096e44 removed cvs old comments 2011-04-13 16:06:19 +00:00
granzuglia 451e3ec084 added missing include file 2011-04-13 13:02:41 +00:00
granzuglia 6d1e0fca7d from f.N() = -> f.N().Import in order to avoid compile errors when the defined mesh-type presents different scalar types for vertex-coordinates and vertex-normal 2011-04-12 08:26:15 +00:00
Paolo Cignoni f310574e04 - Shot::MultMatrix(Matrix44) now accepts matrices with scaling. Corrected the rotation multiplication. 2011-04-11 09:39:20 +00:00
ganovelli a5fc2fae6a bug corrected: . to -> in VertexAreaUniform 2011-04-08 14:28:00 +00:00
Paolo Cignoni affd9ee469 Corrected bug. Assert called when a no internal vertex was present. 2011-04-08 09:26:57 +00:00
Paolo Cignoni 5233b20f12 Added a function Flip a mesh so that its normals are orented outside.
Just for safety it uses a voting scheme.
It assumes that
* mesh has already has coherent normals.
* mesh is watertight and single component.
2011-04-07 22:28:28 +00:00
Paolo Cignoni f8eb8a41dd Cleaned up a bit triangle3. Removed some weird interpolation wrappers (that ended to be misused) and updated the rest of the lib to comply with this changes 2011-04-05 21:53:12 +00:00
Paolo Cignoni 57cfc71a34 heavily restructured. Still need a lot of work. Name changed. Some stuff using it could not work anymore... 2011-04-05 08:57:23 +00:00
Paolo Cignoni 214904b312 Ongoing corrections of include paths to comply the new folder arrangement 2011-04-03 22:50:59 +00:00
ganovelli 25b5f39dad Ongoing Rearrangement of filepath
delete old trimesh content
2011-04-01 17:18:15 +00:00
ganovelli 6c0c32ecfe Ongoing Rearrangement of filepath
delete old trimesh content
2011-04-01 17:17:42 +00:00
ganovelli 3c7efa7bff Ongoing Rearrangement of filepath
delete old trimesh content
2011-04-01 17:17:15 +00:00
ganovelli f4a5512500 Ongoing Rearrangement of filepath
delete old trimesh content
2011-04-01 17:16:29 +00:00
ganovelli 2506364fc4 Ongoing Rearrangement of filpath 2011-04-01 17:15:34 +00:00
ganovelli 1fc83af05c Ongoing Rearrangement of filepath
replaced the path to comply the filepaths modification.
The replacements are as follows:

/complex/trimesh/base.h --> /complex/complex.h
/complex/trimesh/allocate.h --> /complex/allocate.h
/complex/trimesh/append.h --> /complex/append.h
/complex/trimesh/ --> /complex/algorithms/
/complex/local_optimization/ ---> /complex/algorithms/local_optimization/
/complex/local_optimization.h ---> /complex/algorithms/local_optimization.h
/complex/intersection.h ---> /complex/algorithms/intersection.h
/complex/boundary.h ---> /complex/algorithms/boundary.h
2011-04-01 17:06:52 +00:00
ganovelli 9ff0ad3f1e Ongoing Rearrangement of filepath
replaced the path to comply the filepaths modification.
The replacements are as follows:

/complex/trimesh/base.h --> /complex/complex.h
/complex/trimesh/allocate.h --> /complex/allocate.h
/complex/trimesh/append.h --> /complex/append.h
/complex/trimesh/ --> /complex/algorithms/
/complex/local_optimization/ ---> /complex/algorithms/local_optimization/
/complex/local_optimization.h ---> /complex/algorithms/local_optimization.h
/complex/intersection.h ---> /complex/algorithms/intersection.h
/complex/boundary.h ---> /complex/algorithms/boundary.h
2011-04-01 17:06:03 +00:00
ganovelli fea1228701 adding complex.h 2011-04-01 17:00:18 +00:00
ganovelli 0cc7ff76b9 Ongoing Rearrangement of filpath
deleting base.h
2011-04-01 16:59:40 +00:00
ganovelli 882896dd8d Ongoing Rearrangement of filpath
renaming of complex/base.h to complex/complex.h
2011-04-01 16:45:05 +00:00
ganovelli 1ad23912db 2011-04-01 16:25:49 +00:00
ganovelli 3262c530c8 Ongoing Rearrangement of filpath
ACTION 3
2011-04-01 16:22:18 +00:00
ganovelli 562ddb5397 Ongoing Rearrangement of filpath
ACTION 2
2011-04-01 16:20:53 +00:00
ganovelli 830a3402c2 Ongoing Rearrangement of filpath
ACTION 1
2011-04-01 16:19:48 +00:00
Nico Pietroni ed6221e993 Added TriangleTriangleIntersect2D function 2011-04-01 16:13:34 +00:00
Paolo Cignoni cf619d282b Corrected various c++ errors. 2011-04-01 06:26:31 +00:00
ganovelli d84b39382a correction to NameBound mechanism to compile with gcc. 2011-03-31 16:19:34 +00:00
granzuglia d09c937697 added missing included file 2011-03-25 11:04:01 +00:00
Gianpaolo Palma 7816e73d74 Changed "int lenght" to "ScalarType lenght" in ClosestPoint function. 2011-03-22 18:17:52 +00:00
Paolo Cignoni 605b0fdefc Added functions for removing in a smarter way non manifoldness :
SplitNonManifoldVertex
RemoveNonManifoldFace
2011-03-22 11:57:33 +00:00
Paolo Cignoni 2d218e768a commented some code 2011-03-22 11:53:48 +00:00
Paolo Cignoni 90ee3c4a71 added NumberOfFacesOnEdge function on a pos 2011-03-22 11:52:19 +00:00
Gianpaolo Palma e3d8489f0f Bug fixed in the ClosestPoint2Box2 function 2011-03-21 17:03:34 +00:00
Gianpaolo Palma e90c417d2b Minor changes in ClosestPoint function 2011-03-21 17:02:02 +00:00
Paolo Cignoni daa0030db1 Changed MeshType::HasFFTopology() -> HasFFAdjacency (m ) 2011-03-21 14:47:01 +00:00
Paolo Cignoni 6807df8ea1 added SelectionStack utility class. 2011-03-21 14:45:38 +00:00
Paolo Cignoni e66769545e added cutoff distance to geodesic computations 2011-03-14 15:23:37 +00:00
Paolo Cignoni 4447fab921 Added FaceRandomConnectedComponent to colorize faces according connected components 2011-03-14 09:34:22 +00:00
Paolo Cignoni 127caef1a6 removed a harmless gcc warning 2011-03-11 10:28:21 +00:00
Paolo Cignoni 6a876e1fc9 removed warnings due to deprecated hash map usage 2011-02-17 16:40:56 +00:00
Paolo Cignoni 4c1a6502b2 harmless gcc warnings (ambiguous boolean expressions) 2011-02-17 16:39:38 +00:00
Paolo Cignoni 463c31e27a removed harmless and useless const in return values 2011-02-17 16:25:55 +00:00
Paolo Cignoni 7eaece45af harmless gcc warnings 2011-02-17 11:41:21 +00:00
Paolo Cignoni 8fd11ae657 harmless gcc warnings 2011-02-17 11:40:22 +00:00
Paolo Cignoni ec825ed246 harmless gcc warnings 2011-02-17 11:39:57 +00:00
Paolo Cignoni 2e6bc99646 harmless gcc warnings 2011-02-17 11:39:21 +00:00
Paolo Cignoni 88107edef1 Added Shot::GetViewDir() method 2011-02-17 09:58:16 +00:00
Paolo Cignoni 4a26c71e63 added a safety check for the feature point to be in the cell (could jump outside for numerical errors...) 2011-02-14 10:53:33 +00:00
Paolo Cignoni 59e89dfc73 Fixed parameter order on method compute_fitmap;
Added parameter to set number of smoothing iterations;
2011-02-10 16:02:47 +00:00
Paolo Cignoni 326fa280ce added missing include 2011-02-10 09:51:43 +00:00
Marco Callieri 6395138b1f added function for laplacian smoothing of normals on unstructured point clouds 2011-02-09 14:42:30 +00:00
Paolo Cignoni 4107c587d0 Modified check for diagonal collapses 2011-02-04 17:14:47 +00:00
Paolo Cignoni c68b61391f Added a missing include 2011-02-04 09:31:47 +00:00
Paolo Cignoni 9ddbd14616 Fixed wrong function calls 2011-02-01 12:59:57 +00:00
Paolo Cignoni 6583f81c3f Removed wrong file inclusion 2011-02-01 12:58:02 +00:00
Paolo Cignoni 99950cc5f4 Modified computation of EH and HE relations in method FromIndexed;
Removed assertions and added checks about EH and HE relations;
2011-02-01 10:55:06 +00:00
Paolo Cignoni e49dfa63bb Corrected bug about mesh attributes 2011-01-31 16:59:46 +00:00
Paolo Cignoni a3fab7ebf2 Removed wrong assertions 2011-01-31 16:58:27 +00:00
Paolo Cignoni 7037098822 Added to BitQuad Support a Generic quad triangulation function and used in OFF importer.
It takes in input 4 vertex pointrs and rotate them so that a simple fan triangulation is Ok.
  It uses geometric criteria for avoiding bad shaped triangles, and folds
  and it use an internal set of already created diagonal to avoid the creation of non manifold situations.
2011-01-27 15:49:21 +00:00
Paolo Cignoni fb836dcf17 Added classes for quad meshes simplification 2011-01-27 15:41:05 +00:00
Paolo Cignoni 183f106f23 Added class HalfedgeQuadClean 2011-01-27 15:39:39 +00:00
Paolo Cignoni 2984bda3c8 Added suffix "_quad" to all methods only for quads 2011-01-27 14:22:48 +00:00
Paolo Cignoni feafb246da Removed class Garbage 2011-01-27 12:19:40 +00:00
Paolo Cignoni 3777d7925d Edge pointers substituted with hedge pointers;
Made EH and HE adjs optional;
Re-written method to check if a diagonal is collapsible;
2011-01-27 12:03:44 +00:00
Paolo Cignoni 7e611ef038 Removed and assert in the quality computation (if one side is zero for numerical rounding it should return zero as quality) 2011-01-27 10:49:23 +00:00
Paolo Cignoni 94235fc548 commented useless parameter to avoid warning 2010-12-21 15:06:09 +00:00
Paolo Cignoni 6ca76c16b1 added useful he functions 2010-12-15 22:38:36 +00:00
Nico Pietroni b89a689a15 triangle3 InterpolationParameters calls now calls InterpolationParameters2 which correctly refers to the unique implementation of triangle2d evaluation of barycentric coordinates in triangle2.h 2010-12-13 00:01:13 +00:00
Nico Pietroni 542bfc8a91 corrected InterpolationParameters funtion in order to evaluate correctly barycentric coordinates even for points wich falls outside the triangle. 2010-12-12 23:59:55 +00:00
Nico Pietroni 387c62414a added constructor with Min and Max 2010-12-12 23:57:39 +00:00
Luigi Malomo 9d1e54a140 fixed bug to prevent deleted faces rasterization 2010-12-05 18:22:45 +00:00
Federico Ponchio ef57d3e7e5 interpolate -> Interpolate. 2010-11-15 00:16:40 +00:00
ganovelli d505581af9 bug fixing in vector_ocf::reserve for the case of empty vector 2010-11-11 09:33:35 +00:00
Paolo Cignoni 5a21c7cd76 Removed the ReorderVert function used for permutating the accessory attributes of OCF components. IT should not be used. 2010-11-09 08:27:44 +00:00
Paolo Cignoni 8446d9f566 added method to know if a spatial indexing structure is empty or not 2010-11-09 08:15:14 +00:00
Paolo Cignoni 070c47b0a5 added method to know if a spatial ubdexing structure is empty or not 2010-11-09 08:12:58 +00:00
ganovelli 3bd7cbe5ea added cQ() to QualityOcf 2010-11-06 16:38:15 +00:00
Nico Pietroni c818969366 added method P to return bounding box points as in Box3 2010-11-05 16:18:51 +00:00
Paolo Cignoni 343493ef11 Moved the ORTHO, PERSPECTIVE enums from the vcg namespace to the camera class namespace. 2010-10-31 13:19:09 +00:00
Paolo Cignoni 80a8c29144 Added function to normalize face/vertex quality value into a given range (usually 0..1) 2010-10-31 13:03:36 +00:00
Nico Pietroni 969f556691 added if(vp<oldBase || vp>oldEnd) return; test in PointerUpdater::Update function, so that entities that doesn't need to be updated has no problems 2010-10-27 17:46:46 +00:00
ganovelli 766b1b3f89 CompactFaceVector and CompactVertexVector now may return a PointerUpdater 2010-10-22 16:01:58 +00:00
Paolo Cignoni a9db0be12d shotf and shotd are TYPEDEF not SUBCLASS !!! 2010-10-21 13:41:29 +00:00
Paolo Cignoni 696afea0a9 removed harmless warnings 2010-10-20 08:57:59 +00:00
Paolo Cignoni 999e110d01 renamed EPSILON into loc_EPSILON to avoid collsions with some defines. 2010-10-15 21:46:16 +00:00
Paolo Cignoni 9939b0c51b Harmless warning: commented unused parameter 2010-10-15 21:18:01 +00:00
Paolo Cignoni 98d61f03a2 removed an extra typename detected by gcc... 2010-10-15 21:15:39 +00:00
Nico Pietroni e74d22e0e5 corrected the call to new IntersectionSegmentTriangle function (after a bug fixing in the function) 2010-10-15 15:23:37 +00:00
Nico Pietroni f1a446558f - removed virtual to ComputerPriority Function
- getPos and GetMark become const
2010-10-15 15:20:37 +00:00
Nico Pietroni 7332494ee2 line 331 called the correct distance function between segment-point in distance3.h 2010-10-15 15:19:12 +00:00
Nico Pietroni 6d34aec94b TrianglePointDistance moved to distance.h 2010-10-15 15:17:57 +00:00
Nico Pietroni e690807441 Distance functions moved to distance3.h 2010-10-15 15:17:15 +00:00
Nico Pietroni 793cf46180 - SquaredDistance moved to distance3.h
- Lenght and SquaredLength changed to const functions
2010-10-15 15:16:32 +00:00
Nico Pietroni 6ad59d0756 corrected IntersectionSegmentTriangle calls, the value dist was not updated coherently 2010-10-15 15:15:27 +00:00
Nico Pietroni efadeb21f1 DistancePoint3Box3 calls moved and renamed in distance3.h 2010-10-15 15:14:06 +00:00
Nico Pietroni 6134c11fbd first release version of the collection of minimum distance functions between geometric entities in 3D 2010-10-15 15:13:22 +00:00
ganovelli 123a51b774 replaced ImportLocal with ImportData (it was left behind) 2010-10-15 09:25:52 +00:00
ganovelli d10a9822d3 replaced ImportLocal with ImportData (it was left behind) 2010-10-15 09:25:27 +00:00
ganovelli 3bcc518722 replaced ImportLocal with ImportData (it was left behind) 2010-10-15 09:24:51 +00:00
Paolo Cignoni 628f22f3c9 removed one useless parameter from the FastFit function of the paso-doble smoothing function. 2010-10-15 09:23:09 +00:00
Paolo Cignoni 445dad8458 removed harmless warnings 2010-10-15 09:15:11 +00:00
Paolo Cignoni 2bdd323387 removed harmless warnings 2010-10-15 09:14:35 +00:00
Paolo Cignoni 2e9d5c0936 removed some old surviving math:Max and changed to std::max 2010-10-15 09:13:58 +00:00
Paolo Cignoni ac9f0d1452 removed a couple of CMeshO types that surfaced when moving stuff from meshlab to vcg 2010-10-15 09:12:54 +00:00
ganovelli da757efdd3 bug fixed (final): CompactFaceVector resized the attributes per face
to the number of "vertices" of the mesh
2010-10-08 16:51:45 +00:00
ganovelli 354b225e92 bug fixed: CompactFaceVector resized the attributes per face
to the number of "vertices" of the mesh
2010-10-08 15:58:32 +00:00
granzuglia de3371806e added #include<algorithm> 2010-10-08 12:08:24 +00:00
granzuglia b3d63c7c64 moved InterpolationParameters function after the Normal function definition 2010-10-06 12:58:09 +00:00
granzuglia e2b56e9023 removed int32_t 2010-10-06 09:17:29 +00:00
granzuglia a003c5ce73 added progress bar support to PrincipalDirectionsPCA 2010-10-04 08:47:33 +00:00
Paolo Cignoni 9df46522b2 a comment 2010-10-01 21:37:55 +00:00
Paolo Cignoni c77aeae697 Cleaned up a bit the Final flipping stage of EMC. Now it is a bit more robust. 2010-10-01 21:36:49 +00:00
Paolo Cignoni f83dc8b993 rewrote checkflip edge. 2010-10-01 20:27:30 +00:00
Nico Pietroni 8370978230 Added a new call of InterpolationParameters with infers the Normal by the Triangle itself 2010-10-01 13:47:16 +00:00
Paolo Cignoni d4786a1702 added maxElem minElem functions that returns values of the added elements and that can be outside the minmax range of the histogram 2010-10-01 08:59:25 +00:00
Paolo Cignoni 92bbd33394 Added function to compute the barycenter of the thin shell surface model. E.g. the barycenter of the mesh as if all the mass was concentrated over the surface of the mesh. Useful for computing barycenter of planar figures. 2010-09-30 23:30:22 +00:00
ganovelli 087e28ddc4 handled offsset for wedgetexcoord (to redo better) 2010-09-27 14:40:24 +00:00
Paolo Cignoni 30f6267da1 Corrected the unneeded resetting of un referenced normals when computing per vertex normals starting from faces. 2010-09-24 11:21:15 +00:00
ganovelli 09c8ff302a added ClusterVertex (like MergeCloseVertex but without removing the copies) 2010-09-23 16:47:25 +00:00
Paolo Cignoni af5e0eb46b small changes to the histogram interface to allow the use of weighted histograms 2010-09-21 22:33:37 +00:00
Paolo Cignoni 349e9869cf Updated many vcg files to do not use anymore the vcg::Max(a,b) and vcg::Min(a,b). Use the std version instead. 2010-09-21 22:09:13 +00:00
Paolo Cignoni 47138fce2f WARNING: important change. Removed the useless vcg::math::Max(a,b) that mimicked the std::max, and changed into a three argument Max(a,b,c) (quite useful in a lot of context and missing in std::. 2010-09-21 22:00:39 +00:00
Paolo Cignoni 7977e270c5 added the possibility of customizing the histogram bucket size 2010-09-13 09:47:23 +00:00
Paolo Cignoni d263446d0e small changed needed for allowing derivation of extended classes 2010-09-13 09:42:25 +00:00
Paolo Cignoni 56fe9a828b BUG! In IntersectionRayMesh the IntersectionLineTriangle had a parameter swapped...
Thanks to Bo Jiang & Meng Luan for the kind bug submission
2010-09-13 09:35:24 +00:00
Paolo Cignoni dbf4fa7311 removed harmless warning 2010-09-13 09:33:30 +00:00
Paolo Cignoni 2bfd589613 disambiguated a pow call 2010-09-07 22:14:20 +00:00
Paolo Cignoni f7e2f7d539 removed harmless warning 2010-09-07 10:31:04 +00:00
Paolo Cignoni 271ac17c95 Added a missing UpdateSelection :: FaceFromQualityRange 2010-09-07 10:28:45 +00:00
Paolo Cignoni 4a84e2035e added function to compute montecarlo distribution with an approximate number of samples exploiting the poisson distribution 2010-09-06 22:11:11 +00:00
Paolo Cignoni 275b0e55d9 corrected small bug in the make_even_by split procedure for making meshes always with an even number of faces (useful prerequisite for tri-to-quad conversion) 2010-09-06 22:09:18 +00:00
ganovelli d0d2efa454 removed the use of RTTI for checking the name of the attribute TYPE
in the Get*Attribute. Now the check is only on the size of the type.
2010-09-03 22:17:14 +00:00
Paolo Cignoni f55d7a0048 removed a small bug in the link condition 2010-09-02 22:23:10 +00:00
Paolo Cignoni 7627f2e9f4 added a few missing include 2010-09-02 21:40:30 +00:00
Paolo Cignoni 149ae8ec5b Significant improvment in correctness and robustness of Loop subdivision surfaces (BIG thanks to Simon Boye' for submitting the patches) 2010-09-02 06:21:07 +00:00
ganovelli 101e46bc6b bug corrected. attribute member "_padding" was not initialized in Add*Attribute 2010-09-01 17:16:43 +00:00
Paolo Cignoni 885bf05702 Added methods to get the 1-ring;
Added comments;
Removed useless methods;
2010-09-01 15:10:30 +00:00
ganovelli 396e54b566 new mod to support partial selection (possibly to revise):
NOTE on how to use Append::MEsh with selected elements:

If we want to append only the  selected faces of the mesh and call the Append::Mesh
with selected parameter = true, we must ensure that also the cofaces of inferior
order are selected (vertices and edges). 
Otherwise what happen is that the vertices are NOT appended and then the appended
(selected) faces cannot be built.
On the other ahnd Append::Mesh will NOT change the selected flag of the input mesh, it must be done
before calling it. (check  tri::UpdateSelection<CMeshO>::VertexFromFaceLoose(currentMesh->cm); ) 

The same problem for the adjacencies with higher order simplexes. In this cases they are simply not updated . For example, if only a few vertices are selected, and they have, say, VFAdj, it is ignored.
2010-08-11 15:54:37 +00:00
ganovelli b9765da147 missing condition on D flag added. It caused deleted elements to be added and
counter to increment, with consequent failure of vn=mesh.vert.size()- #{deleted}
2010-08-11 14:43:16 +00:00
ganovelli 2d35671e51 replaced SetS with SetV and IsS with IsV. 2010-08-09 19:59:30 +00:00
Paolo Cignoni 0f7ec1f8d2 added fitmaps 2010-08-05 14:24:09 +00:00
Paolo Cignoni 9093cce622 removed harmless gcc warnings 2010-08-05 14:20:43 +00:00
Paolo Cignoni 10106736c2 added operation types for quads 2010-08-05 13:18:33 +00:00
ganovelli b25f303ce3 replaced "if" on a condition that has to be always true with assertions 2010-07-27 14:20:12 +00:00
mtarini 4dcb3be0b3 minor: removed superfluous "typename" 2010-07-25 13:31:57 +00:00
mtarini 2cc56a6651 Cleaned up! Translated several comments, removed old history, Added GlobalToLocal and LocalToGlobal and MakeSquare, cleaned up types, etc. 2010-07-24 15:29:20 +00:00
Paolo Cignoni 1140ca5a32 Added multiscale curvature computation (UpdateCurvatureLocal) 2010-07-23 15:48:45 +00:00
Paolo Cignoni c3d20c9b87 added a smoothing algorithm for quad meshes with half-edge topology 2010-07-23 14:11:36 +00:00
Paolo Cignoni e081be0c6f Never write a 'using namespace" inside a .h file. Removed 2010-07-23 06:09:52 +00:00
Paolo Cignoni 59442fff3f optimized halfedge operations 2010-07-22 13:14:55 +00:00
Paolo Cignoni 1d8a4c8e64 added nring class that efficiently extracts the n-ring of a vertex 2010-07-22 12:32:31 +00:00
matteodelle 3064a869cc Michele Sottile: added GetFovFromFocal 2010-07-21 15:54:31 +00:00
Federico Ponchio 1017656a61 returned closest point was wrong. 2010-07-15 19:37:59 +00:00
Paolo Cignoni 8451875482 slight change in the PointDistance. Now it checks with an assert in the ifthenelse chain that it chooses the best projection direction and removed a warning. 2010-07-14 08:09:28 +00:00
Paolo Cignoni 882d039da6 removed mostly harmless gcc warnings (unused/uninitialized vars) 2010-07-14 08:00:16 +00:00
Paolo Cignoni b543ff311e fixed gcc compatibility issue 2010-07-12 13:21:12 +00:00
Paolo Cignoni 0f6cfeb1c0 removed harmless gcc warnings (unsigned vs signed int) 2010-07-01 09:21:56 +00:00
granzuglia 3d68cc75cf from iterator to const_iterator 2010-07-01 09:13:08 +00:00
granzuglia 937a004f80 changed include file 2010-07-01 08:51:06 +00:00
ganovelli f890ce75ee added HasPerVertexVFAdjacency and HasPerFaceVFAdjacency. Removed
generic HasVFAdjacency which made the logical AND of the two and updated the 
relative calls.
2010-06-24 18:48:40 +00:00
ganovelli eb3f1a97fc added HasPerVertexVFAdjacency and HasPerFaceVFAdjacency. Removed
generic HasVFAdjacency which made the logical AND of the two and updated the 
relative calls.
2010-06-24 12:35:37 +00:00
ganovelli a42f07b445 added missing include 2010-06-24 12:30:48 +00:00
Paolo Cignoni f7efa76f35 added a missing std:: to max() 2010-06-23 14:25:08 +00:00
Paolo Cignoni 04694569cf corrected un-initialized variable in RGBtoHSV 2010-06-23 14:23:32 +00:00
ganovelli ad0a3daf01 version that should work with synamic linked libraries (to be tested) 2010-06-21 15:52:18 +00:00
ganovelli 9026213628 removed unused classes for allocation of temporary data 2010-06-19 15:39:06 +00:00
Paolo Cignoni 8ca2013615 removed harmless gcc warnings 2010-06-18 14:44:21 +00:00
Paolo Cignoni 74f1f69132 a few changes to remove ambiguous variable naming and a few warnings 2010-06-18 14:40:36 +00:00
Paolo Cignoni 799914a0d8 commented unused argument of base ImportData to remove gcc warning 2010-06-18 14:32:50 +00:00
Paolo Cignoni 02e0b3409a removed a meaningless import of an uninitailzed var. 2010-06-18 14:31:58 +00:00
Paolo Cignoni 830fb74a0f Complete re-wrote of the link condition test for topology preserving edge collapse. Now it is much slower but really correct. Hopefully. 2010-06-18 11:47:04 +00:00
ganovelli a8ee1c9143 importlocal--> importdata 2010-06-18 08:01:14 +00:00
ganovelli 19755ed9b7 definition of USedTypes changed to ensure that MeshType::FaceType is the same as VertexType::FaceType (begin Vertex and Face any type among Vertex,Face,Edge,HEdge).
Compiles with gcc 4.4, .net 2005
2010-06-18 07:53:21 +00:00
ganovelli f3b67673fc new Append<> beta version 2010-06-16 17:28:18 +00:00
ganovelli 7c35161210 ImportLocal to ImportData. Adjacencies are no more handle by ImportData, but
by speficic functions in append.h (ImportPerxxxAdj(..))
2010-06-16 16:31:17 +00:00
ganovelli 4750b7c666 rewritten including handling of all adjacencies.
Still incomplete treatment of non uptade but existing adjacencies...
2010-06-16 16:30:24 +00:00
ganovelli e92adc2095 ImportLocal to ImportData. Adjacencies are no more handle by ImportData, but
by speficic functions in append.h (ImportPerxxxAdj(..))
2010-06-16 16:29:07 +00:00
ganovelli d0bdf4665f ImportLocal to ImportData. Adjacencies are no more handle by ImportData, but
by speficic functions in append.h (ImportPerxxxAdj(..))
2010-06-16 16:25:02 +00:00
ganovelli 585f0462e8 ImportLocal to ImportData. Adjacencies are no more handle by ImportData, but
by speficic functions in append.h (ImportPerxxxAdj(..))
2010-06-16 16:24:26 +00:00
ganovelli e8d3020714 added typename to PointerToAttribute to dynamically check the GetPer[]Attribute 2010-06-16 15:18:39 +00:00
ganovelli 0a64a31e6e added typechecking and function to return the list of attributes of a given type 2010-06-16 15:17:42 +00:00
Paolo Cignoni 2bbf1c86ef Added first version of vertex quality saturation function (to be thorougly tested) 2010-06-16 13:23:59 +00:00
Paolo Cignoni beb996e9c9 Renamed a symbol that caused ambiguity (VertexInfo -> vertexClipInfo) added functor and function for box clipping 2010-06-16 13:23:07 +00:00
Paolo Cignoni 79783ac1bb Moved the removal of faces with edges outside a given range to a selection function into UpdateSelection<>:: 2010-06-16 11:40:14 +00:00
Paolo Cignoni 044412a099 Added initialization of tex index in the constructor of texcoord 2010-06-16 10:27:38 +00:00
Paolo Cignoni 12d257c3ab Debugged:
method Point2::SquaredDistance() invoked Norm2 method, which does not exist. Invocation replaced with (*this-p).SquaredNorm()
2010-05-31 12:13:47 +00:00
Nico Pietroni cf60111b79 changed call to InterpolationParameters... 2010-05-31 10:12:31 +00:00
Nico Pietroni 066bc0b7cf changed calls to the new InterpolationParameters function 2010-05-25 14:54:50 +00:00
Paolo Cignoni 157ba4ccfb added class prototype for segment (needed for box intersection) 2010-05-24 08:25:26 +00:00
Marco Di Benedetto 0fc8a49a51 2010-05-22 19:47:43 +00:00
Gianpaolo Palma 13f0066cfa Fixed bug in the rasterization function to generate correct samples outside triangles which have a texture space border edge. 2010-05-21 16:43:58 +00:00
Nico Pietroni 44618a036a Added ClosestPoint2Box2 function 2010-05-20 13:58:08 +00:00
ganovelli 4b45045c18 added inlusion of alltypes.h 2010-05-19 17:18:19 +00:00
ganovelli de851eb29e inclusion of alltypes.h 2010-05-19 17:16:58 +00:00
ganovelli f12433c258 uncommented fourth template parameter in declaration of trimesh 2010-05-19 17:06:18 +00:00
ganovelli 6b807efa9c separated alltypes from usedtypes. The dummy types for simplex where char, now are derived by
their proper type (eg. the dummy type for Vertex is a simple derivation of vcg::Vertex)
2010-05-19 17:05:29 +00:00
Nico Pietroni 3ab37342c6 corrected 1 bug in CountEdges function 2010-05-19 15:09:59 +00:00
Paolo Cignoni 7473b2177a Added ComputePerFaceQualityHistogram (provided by Andrea Tagliasacchi) 2010-05-05 12:30:58 +00:00
Paolo Cignoni b6d2c330f2 added a wrapper for the getkclosest that does not need the edgeplane additional data structure
and corrected a bug in the function that shot a bunch ofrays
2010-05-04 08:19:51 +00:00
Paolo Cignoni c41e4d2e04 IMPORTANT CHANGE;
the rarely used frompolar and topolar returns angles in RADIANTS
changed the function names to clarify, avoid stupid bugs, and to adequate to the standard
2010-05-04 08:07:18 +00:00
Paolo Cignoni b2d20dd837 Removed printf and added the standard callback approach 2010-04-30 09:55:34 +00:00
Paolo Cignoni c7f479c580 Cleaned up a bit the generic updateheap function of the generic tri_edge_collapse that was incorrect in case of generic non symmetric collapses 2010-04-30 09:54:00 +00:00
Paolo Cignoni cc92e014cc added RemoveFaceFoldByFlip that Search and remove by flipping small single triangle folds:
- a face has normal opposite to all other faces
 - choose the edge that brings to the face f1 containing the vertex opposite to that edge.
2010-04-30 09:43:42 +00:00
Paolo Cignoni 77a846fe90 added a wrapper to the robust InterpolationParameters that uses a normal to choose the interpolation orientation 2010-04-30 09:42:10 +00:00
mtarini ddcd4c0bf9 Fixed catmull clark subdivision schema. 2010-04-29 15:07:41 +00:00
Paolo Cignoni 05151acef5 added ComputePerFaceQualityDistribution 2010-04-29 14:54:07 +00:00
granzuglia 43592cc07e updated code in order to improve compatibility with g++ compiler. 2010-04-29 10:39:07 +00:00
granzuglia 904f0d9d3a updated callback function for ball pivoting. 2010-04-29 09:33:05 +00:00
granzuglia bc14f81543 patched many bugs in advancing front basic algorithm.
updated ball pivoting to new interface.
2010-04-29 09:19:49 +00:00
Paolo Cignoni 75bada1828 added class HalfEdgeTopology 2010-04-29 07:02:37 +00:00
Paolo Cignoni ad1a95fb7c added a new class Pos based on halfedge 2010-04-29 07:00:46 +00:00
Nico Pietroni aeff903128 added normal vector return on the RaySpherical function 2010-04-28 13:11:26 +00:00
Paolo Cignoni e271f9adb8 added missing function HasEHAdjacency 2010-04-26 15:11:52 +00:00
Paolo Cignoni 4a4039f138 fixed wrong pointer type in EHAdj class 2010-04-26 15:02:04 +00:00
Paolo Cignoni 7bd30d3ca0 fixed wrong pointer type in FHAdj class 2010-04-26 14:54:44 +00:00
Paolo Cignoni df4edbee23 corrected some bugs in halfedge allocation 2010-04-26 14:49:42 +00:00
Paolo Cignoni 5c9ee5cdff added allocation and conversion of edges in function FromIndexed
added new tests in function CheckConsistency
2010-04-26 14:33:55 +00:00
Paolo Cignoni 01a0a4b93c Added HEadj class to store adjacency between halfehdges and edges 2010-04-26 14:08:33 +00:00
Federico Ponchio 8331ee9981 added IsIn for sphere 2010-04-22 19:05:24 +00:00
Paolo Cignoni cb73c0bb80 added a missing vcg::math:: namespace qualifier 2010-04-21 21:09:57 +00:00
Paolo Cignoni 956f343087 added missing typenames to new rayspherical fucntion 2010-04-21 21:08:08 +00:00
Nico Pietroni ac4a79bc8f corrected call to new function Name IntersectionRayBox 2010-04-21 17:22:39 +00:00
Nico Pietroni 7c89077eb7 Added function RaySpherical 2010-04-21 17:21:43 +00:00
Paolo Cignoni bdc74ae3b4 uniformed to the new intersection naming schemas 2010-04-20 00:59:38 +00:00
Paolo Cignoni 8a47aaf62f removed a double init of a member of vector ocf and reordered members 2010-04-20 00:57:25 +00:00
Paolo Cignoni 3ee9667060 added two helper functions used for the self intersection tests 2010-04-20 00:56:08 +00:00
Paolo Cignoni 8c0d44a430 Refactored and uniformed the naming of functions for testing manifoldness. Now they are named CountNonManifoldEdgeFF and CountNonManifoldVertexFF and eventually they can select the non manifold components 2010-04-20 00:45:12 +00:00
Paolo Cignoni 3291bb2889 Made uniform the naming of the intersection functions, added some comment and improved a bit the robustness of the triangle triangle intersection test in a mesh 2010-04-20 00:41:45 +00:00
Paolo Cignoni 84a6e15c84 added missing std:: qualifier 2010-04-20 00:34:21 +00:00
Paolo Cignoni 9f7776f96f added selection to FaceQualityRamp colorization 2010-04-14 10:42:19 +00:00
Paolo Cignoni db53730ae7 better comments for intersectionLineTriangle 2010-04-14 09:16:13 +00:00
granzuglia 9cd42be265 removed illegal *m.vert.end() 2010-04-12 12:45:06 +00:00
matteodelle 155cfe6845 New coords conversion function 2010-03-30 19:58:35 +00:00
Marco Di Benedetto 38a4636b51 added generic functors to attribute seam. 2010-03-29 16:27:41 +00:00
matteodelle 8b293069af Corrected an error in the template def. of TriMesh 2010-03-29 08:07:22 +00:00
Paolo Cignoni b2e4c6cf80 corrected an ugly bug in the testfaceface
(note that it still assert for non 2manif meshes...)
2010-03-26 22:53:31 +00:00
Paolo Cignoni 0165f918f1 removed harmless gcc warnings 2010-03-26 09:43:45 +00:00
ganovelli d4b7e1c8fe [introduction of half edges as alternative representation]
No modification should be necessary for the existing code.

most relevant changes:

creation of folder:
vcg/connectors  
vcg/connectors/hedge.h
vcg/connectors/hedge_component.h

addition to the container of half edges to the trimesh:
HEdgeContainer hedge; // container
int hn;               // number of half edges

addition of 
vcg/trimesh/update/halfedge_indexed.h
which contains:
- the functions to compute the half edge representation from the indexed  and vivecersa
- the functions to add or remove an half edge
2010-03-25 16:52:55 +00:00
ganovelli 261ff53ab1 [introduction of half edges as alternative representation]
No modification should be necessary for the existing code.

most relevant changes:

creation of folder:
vcg/connectors  
vcg/connectors/hedge.h
vcg/connectors/hedge_component.h

addition to the container of half edges to the trimesh:
HEdgeContainer hedge; // container
int hn;               // number of half edges

addition of 
vcg/trimesh/update/halfedge_indexed.h
which contains:
- the functions to compute the half edge representation from the indexed  and vivecersa
- the functions to add or remove an half edge
2010-03-25 16:52:18 +00:00
ganovelli 0a74ba11a5 [introduction of half edges as alternative representation]
No modification should be necessary for the existing code.

most relevant changes:

creation of folder:
vcg/connectors  
vcg/connectors/hedge.h
vcg/connectors/hedge_component.h

addition to the container of half edges to the trimesh:
HEdgeContainer hedge; // container
int hn;               // number of half edges

addition of 
vcg/trimesh/update/halfedge_indexed.h
which contains:
- the functions to compute the half edge representation from the indexed  and vivecersa
- the functions to add or remove an half edge
2010-03-25 16:51:49 +00:00
ganovelli be64ec50c3 added inclusion of <string> 2010-03-25 16:51:20 +00:00
ganovelli a96c0e79aa [introduction of half edges as alternative representation]
No modification should be necessary for the existing code.

most relevant changes:

creation of folder:
vcg/connectors  
vcg/connectors/hedge.h
vcg/connectors/hedge_component.h

addition to the container of half edges to the trimesh:
HEdgeContainer hedge; // container
int hn;               // number of half edges

addition of 
vcg/trimesh/update/halfedge_indexed.h
which contains:
- the functions to compute the half edge representation from the indexed  and vivecersa
- the functions to add or remove an half edge
2010-03-25 16:50:45 +00:00
ganovelli 42557f19f8 [introduction of half edges as alternative representation]
No modification should be necessary for the existing code.

most relevant changes:

creation of folder:
vcg/connectors  
vcg/connectors/hedge.h
vcg/connectors/hedge_component.h

addition to the container of half edges to the trimesh:
HEdgeContainer hedge; // container
int hn;               // number of half edges

addition of 
vcg/trimesh/update/halfedge_indexed.h
which contains:
- the functions to compute the half edge representation from the indexed  and vivecersa
- the functions to add or remove an half edge
2010-03-25 16:50:28 +00:00
ganovelli cf7563eff4 [introduction of half edges as alternative representation]
No modification should be necessary for the existing code.

most relevant changes:

creation of folder:
vcg/connectors  
vcg/connectors/hedge.h
vcg/connectors/hedge_component.h

addition to the container of half edges to the trimesh:
HEdgeContainer hedge; // container
int hn;               // number of half edges

addition of 
vcg/trimesh/update/halfedge_indexed.h
which contains:
- the functions to compute the half edge representation from the indexed  and vivecersa
- the functions to add or remove an half edge
2010-03-25 16:50:10 +00:00
ganovelli e06c7f7e70 [temporary commit, it is to be moved to trimesh/update/halfedge_indexed.h] 2010-03-25 16:23:09 +00:00
Paolo Cignoni 1fb9d1c555 added a few disambiguating 'template' keywords 2010-03-23 22:37:46 +00:00
Paolo Cignoni ac52e05bc4 added management variable disk radius sampling to poisson pruning 2010-03-23 16:15:27 +00:00
ganovelli fb9d702e08 nametypebound..corrected bugs, changed a name, regrouped functions.
Change useless NameOf in NamesWithType which returns all the names bound to a given type
2010-03-23 09:47:52 +00:00
ganovelli bda10aba6e NameTypeBound wsorking (still to refine) 2010-03-23 09:25:13 +00:00
Paolo Cignoni b6cb2fc881 added option to the Poisson sampling filter of using an additional mesh as source of already generated samples.
In this way it is possible to refine existing sampling by using different sample pools
2010-03-23 07:26:34 +00:00
Paolo Cignoni b4857331f6 added FaceFauxCrease and other small helper for managing faux edges 2010-03-23 07:23:32 +00:00
Paolo Cignoni d55a1069de converted to the new style with mark outside the trimesh class 2010-03-19 22:56:30 +00:00
ganovelli 2f8a8945cc added inclusion of used_types.h 2010-03-19 17:21:25 +00:00
ganovelli a2341076c1 added typedef of ScalarType 2010-03-19 17:20:52 +00:00
ganovelli 21dd8aa179 Simplified reflection typedefs:
added type traits to support the mod below:

[ Changes in definition of  TriMesh: PART II ]

Note: No changes to existing code need be the done, this mod
should be fully backward compatible

Old way to define a TriMesh ==============
struct MyMesh: public vcg::tri::TriMesh< vector<MyVertex> , vector <MyFace> >{};

new  ways to define a TriMesh ==============

struct MyMesh: public vcg::tri::TriMesh< CONT1 >{};
struct MyMesh: public vcg::tri::TriMesh< CONT1 , CONT2>{};
struct MyMesh: public vcg::tri::TriMesh< CONT1 , CONT2, CONT3>{};

where CONT[i] can be vector< [MyVertex | MyEdge | MyFace ] > 
(the order is unimportant)
2010-03-19 17:19:51 +00:00
ganovelli 9fc476b130 added type traits to support the mod below:
[ Changes in definition of  TriMesh: PART II ]

Note: No changes to existing code need be the done, this mod
should be fully backward compatible

Old way to define a TriMesh ==============
struct MyMesh: public vcg::tri::TriMesh< vector<MyVertex> , vector <MyFace> >{};

new  ways to define a TriMesh ==============

struct MyMesh: public vcg::tri::TriMesh< CONT1 >{};
struct MyMesh: public vcg::tri::TriMesh< CONT1 , CONT2>{};
struct MyMesh: public vcg::tri::TriMesh< CONT1 , CONT2, CONT3>{};

where CONT[i] can be vector< [MyVertex | MyEdge | MyFace ] > 
(the order is unimportant)
2010-03-19 17:18:00 +00:00
ganovelli 1428a1cc3c added a derivation chain to support the modification to the trimesh definition (below)
[ Changes in definition of  TriMesh: PART II ]

Note: No changes to existing code need be the done, this mod
should be fully backward compatible

Old way to define a TriMesh ==============
struct MyMesh: public vcg::tri::TriMesh< vector<MyVertex> , vector <MyFace> >{};

new  ways to define a TriMesh ==============

struct MyMesh: public vcg::tri::TriMesh< CONT1 >{};
struct MyMesh: public vcg::tri::TriMesh< CONT1 , CONT2>{};
struct MyMesh: public vcg::tri::TriMesh< CONT1 , CONT2, CONT3>{};

where CONT[i] can be vector< [MyVertex | MyEdge | MyFace ] > 
(the order is unimportant)
2010-03-19 17:17:06 +00:00
ganovelli ca8d4abed3 All the functions handling TriMesh::imark have been moved outside the definition
of TriMesh to workaround an internal compiler error of vc compiler, and the usages have been
consequently updated
2010-03-19 17:14:01 +00:00
ganovelli 584936f27a [ Changes in definition of TriMesh: PART II ]
Note: No changes to existing code need be the done, this mod
should be fully backward compatible

Old way to define a TriMesh ==============
struct MyMesh: public vcg::tri::TriMesh< vector<MyVertex> , vector <MyFace> >{};

new  ways to define a TriMesh ==============

struct MyMesh: public vcg::tri::TriMesh< CONT1 >{};
struct MyMesh: public vcg::tri::TriMesh< CONT1 , CONT2>{};
struct MyMesh: public vcg::tri::TriMesh< CONT1 , CONT2, CONT3>{};

where CONT[i] can be vector< [MyVertex | MyEdge | MyFace ] > 
(the order is unimportant)
2010-03-19 17:13:31 +00:00
ganovelli 30f799220d All the functions handling TriMesh::imark have been moved outside the definition
of TriMesh to workaround an internal compiler error of vc compiler, and the usages have been
consequently updated
2010-03-19 17:05:14 +00:00
ganovelli f90bd789a3 added class AllTypes to implement type trait in trimesh/base.h
AllTypes is a class defining, as inner classes, global default names
for vertex,edge and face
2010-03-19 17:02:36 +00:00
ganovelli 5ce2c677f5 added include to trimesh/base.h 2010-03-19 17:00:45 +00:00
Paolo Cignoni a201459a30 removed harmless warnings 2010-03-18 14:20:53 +00:00
Paolo Cignoni 3b770c935a added updateQuality Vertex Clamp 2010-03-18 14:20:29 +00:00
Paolo Cignoni cf872a327c Doh! Forgot a const in the getbbox of Face Base 2010-03-18 10:28:10 +00:00
Paolo Cignoni e4b0019e90 removed harmless warnings 2010-03-18 10:08:12 +00:00
Paolo Cignoni 3976724c18 removed harmless warnings and improved Cone generator 2010-03-18 10:07:39 +00:00
Paolo Cignoni fba6bd5917 removed harmless warnings/English Comments 2010-03-18 10:04:55 +00:00
Paolo Cignoni 9aa23c4f6c removed harmless warnings 2010-03-18 10:03:31 +00:00
Paolo Cignoni 335afeee7e Disambiguated the origin of the ScalarType and CoordType in the simplex class. Now it derives from the type specified by the vertexRef component for the faces and from the Coord component for the vertexes. To be sure the ScalarType and CoordTypes are initialized to weird point3<bool> and char just to detect easisly when the wrong types shallow... 2010-03-18 10:03:00 +00:00
Paolo Cignoni 63e21f15cb Disambiguated the origin of the ScalarType and CoordType in the simplex class. Now it derives from the type specified by the vertexRef component for the faces and from the Coord component for the vertexes. To be sure the ScalarType and CoordTypes are initialized to weird point3<bool> and char just to detect easisly when the wrong types shallow... 2010-03-18 10:02:32 +00:00
Paolo Cignoni 2a1aebfa3d converted to the new UsedTypes syntax 2010-03-17 09:22:23 +00:00
Paolo Cignoni eca7114e6c corrected a small error inserted by mistake in the last commit... 2010-03-16 14:46:55 +00:00
Paolo Cignoni 80f825a428 removed harmless warnings 2010-03-16 14:25:30 +00:00
Paolo Cignoni bf69d1c24a removed harmless warnings 2010-03-16 14:22:08 +00:00
Paolo Cignoni 404831fc2f added a missing 'template' keyword between class and metod name. 2010-03-16 11:06:32 +00:00
ganovelli 09b0fb5ef7 added a way to define a scope, i.e. a collection of bounds between name of the attributes
and their type, so  that one can add an attribute without knowing its type. It is useful
when working with plugin.
example:
vcg::tri::NameTypeScope myScope;


AddNameTypeBound<int>(myScope,std::string("number");
AddNameTypeBound<float>(myScope,std::string("incoming_light"));

we have crated a scope myScope where "number" is bound a int and incoming_light is a float

In another part of code where I may not know the type of "number", I can still do:

AddPerVertexAttribute(myScope, mesh, "number");

and an int attibute name "number" will be added.
2010-03-15 15:17:20 +00:00
ganovelli 2e739825c8 [ Changes in definition of TriMesh: PART I ]
Note for the developers: the change to make to existing projects is very little
but strictly necessary to compile. This change IS NOT backward compliant.


==== OLD ==== way to define a TriMesh:

// forward declarations
class MyVertex;
class MyEdge;
class MyFace;

class MyVertex: public VertexSimp2 < MyVertex, MyEdge, MyFace, vertex::Coord3f,...other components>{};
class MyFace: public FaceSimp2 < MyVertex, MyEdge, MyFace, face::VertexRef,...other components>{};
class MyMesh: public TriMesh<vector<MyVertex>,vector<MyFace> >{};


==== NEW ==== way to define a TriMesh:
// forward declarations
class MyVertex;
class MyEdge;
class MyFace;

// declaration of which types is used as VertexType, which type is used as FaceType and so on...
class MyUsedTypes: public vcg::UsedType < vcg::Use<MyVertex>::AsVertexType,
                                         vcg::Use<MyFace>::AsFaceType>{};

class MyVertex: public Vertex < MyUsedTypes, vertex::Coord3f,...other components>{};
class MyFace: public Face < MyUsedTypes, face::VertexRef,...other components>{};
class MyMesh: public TriMesh<vector<MyVertex>,vector<MyFace> >{};

                               ===== classes introduced         [vcg::UsedType] : it is a class containing all the types that must be passed to the definition of Vertex, Face, Edge... This
class replaces the list of classes to pass as first templates and the need to specify the maximal simplicial. So

< MyVertex, MyEdge, MyFace,  beocmes  MyUsedTypes,
and
VertexSimp2 becomes Vertex

[vcg::Use] : an auxiliary class to give a simple way to specify the role of a type

Note 2: the order of templates parameters to vcg::UsedTypes is unimportant, e.g:

class MyUsedTypes: public vcg::UsedType <vcg::Use<MyVertex>::AsVertexType,
                                        vcg::Use<MyEdge>::AsEdgeType,
                                        vcg::Use<MyFace>::AsFaceType>{};

is the same as:
class MyUsedTypes: public vcg::UsedType <vcg::Use<MyFace>::AsFaceType,
                                        vcg::Use<MyEdge>::AsEdgeType,
                                        vcg::Use<MyVertex>::AsVertexType>{};

==== the Part II will be a tiny change to the class TriMesh it self.
2010-03-15 13:10:43 +00:00
ganovelli 01bb1ff921 [ Changes in definition of TriMesh: PART I ]
Note for the developers: the change to make to existing projects is very little 
but strictly necessary to compile. This change IS NOT backward compliant.


==== OLD ==== way to define a TriMesh:

// forward declarations
class MyVertex;
class MyEdge;
class MyFace;

class MyVertex: public VertexSimp2 < MyVertex, MyEdge, MyFace, vertex::Coord3f,...other components>{};
class MyFace: public FaceSimp2 < MyVertex, MyEdge, MyFace, face::VertexRef,...other components>{};
class MyMesh: public TriMesh<vector<MyVertex>,vector<MyFace> >{};


==== NEW ==== way to define a TriMesh:
// forward declarations
class MyVertex;
class MyEdge;
class MyFace;

// declaration of which types is used as VertexType, which type is used as FaceType and so on...
class MyUsedTypes: public vcg::UsedType < vcg::Use<MyVertex>::AsVertexType,
                                          vcg::Use<MyFace>::AsFaceType>{};

class MyVertex: public Vertex < MyUsedTypes, vertex::Coord3f,...other components>{};
class MyFace: public Face < MyUsedTypes, face::VertexRef,...other components>{};
class MyMesh: public TriMesh<vector<MyVertex>,vector<MyFace> >{};

                                 
===== classes introduced          
[vcg::UsedType] : it is a class containing all the types that must be passed to the definition of Vertex, Face, Edge... This
class replaces the list of typenames to pass as first templates and the need to specify the maximal simplicial. So 

<MyVertex, MyEdge, MyFace  becomes <MyUsedTypes<

and 

VertexSimp2 becomes Vertex

[vcg::Use] : an auxiliary class to give a simple way to specify the role of a type

Note 2: the order of templates parameters to vcg::UsedTypes is unimportant, e.g:

class MyUsedTypes: public vcg::UsedType <vcg::Use<MyVertex>::AsVertexType,
                                         vcg::Use<MyEdge>::AsEdgeType,
                                         vcg::Use<MyFace>::AsFaceType>{};

is the same as:
class MyUsedTypes: public vcg::UsedType <vcg::Use<MyFace>::AsFaceType,
                                         vcg::Use<MyEdge>::AsEdgeType,
                                         vcg::Use<MyVertex>::AsVertexType>{};

Note 3: you only need to specify the type  you use. If you do not have edges you do not need 
to include vcg::Use<MyEdge>::AsEdgeType in the template list of UsedTypes.
==== the Part II will be a tiny change to the class TriMesh it self.
2010-03-15 10:43:27 +00:00
ganovelli c40a6c3d97 [ Changes in definition of TriMesh: PART I ]
Note for the developers: the change to make to existing projects is very little 
but strictly necessary to compile. This change IS NOT backward compliant.


==== OLD ==== way to define a TriMesh:

// forward declarations
class MyVertex;
class MyEdge;
class MyFace;

class MyVertex: public VertexSimp2 < MyVertex, MyEdge, MyFace, vertex::Coord3f,...other components>{};
class MyFace: public FaceSimp2 < MyVertex, MyEdge, MyFace, face::VertexRef,...other components>{};
class MyMesh: public TriMesh<vector<MyVertex>,vector<MyFace> >{};


==== NEW ==== way to define a TriMesh:
// forward declarations
class MyVertex;
class MyEdge;
class MyFace;

// declaration of which types is used as VertexType, which type is used as FaceType and so on...
class MyUsedTypes: public vcg::UsedType < vcg::Use<MyVertex>::AsVertexType,
                                          vcg::Use<MyFace>::AsFaceType>{};

class MyVertex: public Vertex < MyUsedTypes, vertex::Coord3f,...other components>{};
class MyFace: public Face < MyUsedTypes, face::VertexRef,...other components>{};
class MyMesh: public TriMesh<vector<MyVertex>,vector<MyFace> >{};

                                 
===== classes introduced          
[vcg::UsedType] : it is a class containing all the types that must be passed to the definition of Vertex, Face, Edge... This
class replaces the list of typenames to pass as first templates and the need to specify the maximal simplicial. So 

<MyVertex, MyEdge, MyFace  becomes <MyUsedTypes<

and 

VertexSimp2 becomes Vertex

[vcg::Use] : an auxiliary class to give a simple way to specify the role of a type

Note 2: the order of templates parameters to vcg::UsedTypes is unimportant, e.g:

class MyUsedTypes: public vcg::UsedType <vcg::Use<MyVertex>::AsVertexType,
                                         vcg::Use<MyEdge>::AsEdgeType,
                                         vcg::Use<MyFace>::AsFaceType>{};

is the same as:
class MyUsedTypes: public vcg::UsedType <vcg::Use<MyFace>::AsFaceType,
                                         vcg::Use<MyEdge>::AsEdgeType,
                                         vcg::Use<MyVertex>::AsVertexType>{};

Note 3: you only need to specify the type  you use. If you do not have edges you do not need 
to include vcg::Use<MyEdge>::AsEdgeType in the template list of UsedTypes.
==== the Part II will be a tiny change to the class TriMesh it self.
2010-03-15 10:42:52 +00:00
Paolo Cignoni 2a18ebd5f5 Heavily restructured component of vertex simplex. Compacted all the emptyXXXX into a single EmptyCore class. Cleaned up the interface for the optional stuff now there is a standard static function that can say if a given component is enabled or not. 2010-03-04 13:34:38 +00:00
Paolo Cignoni 5e1f0ce521 Heavily restructured component of vertex simplex. Compacted all the emptyXXXX into a single EmptyCore class. Cleaned up the interface for the optional stuff now there is a standard static function that can say if a given component is enabled or not. 2010-03-03 16:01:39 +00:00
Paolo Cignoni 5ef6d30d37 Added a test to check in the point to face distance computation to manage the case of degenerated faces. Now correctly resort to distance point to segment. 2010-03-03 00:35:20 +00:00
Paolo Cignoni d340b8b92a removed harmless gcc warnings 2010-03-02 23:17:15 +00:00
Paolo Cignoni 355edd042e removed harmless warnings 2010-02-24 09:56:58 +00:00
Paolo Cignoni 9f8497013f removed harmless warnings 2010-02-24 09:55:28 +00:00
Paolo Cignoni fc6483307b added a missing cVFi() 2010-02-23 16:45:45 +00:00
Paolo Cignoni 18c92582d4 Cleaned up the CompactFaceVector and the CompactVertexVector, Now they correctly manage existing FV and FF topology by preserving them (if they are initialized to something meaningful). 2010-02-22 17:37:51 +00:00
Nico Pietroni 98eba3ef33 corrected minor compiling issues 2010-02-22 01:03:23 +00:00
Paolo Cignoni 446400f6fc Now the compactvertex and compactface funtions use the importlocal chain so we are sure that all the meaningful data is correctly copied (otherwise ocf stuff will not be copied) On the other hand when using ImportLocal we do not copy pointer based stuff like adjacency and *vertex pointers* that must be terefore copied by hand... 2010-02-19 00:21:26 +00:00
Paolo Cignoni 95e1b391c8 min in std limits is a function 2010-02-11 20:07:27 +00:00
Paolo Cignoni 41fda194bd Correctly defined int inside loop as per MSVC requirements, changed assert as to be more accurate 2010-02-11 20:06:14 +00:00
Paolo Cignoni 3b152298cc added runtime assert to prevent dangerous simplex to simplex assignment in the case of OCF optional attributes. 2010-02-11 00:14:35 +00:00
Luigi Malomo 8465fa432c Modified rasterization algorithm to generate samples from buffer areas outside (texture space) border edges 2010-02-09 19:10:22 +00:00
ganovelli 9fee205755 removed exceeding "default" in switch condition 2010-01-16 15:33:07 +00:00
Paolo Cignoni c72bfe6f63 Corrected a bug in the Distribution class and added useful access bin counting functions members to the Histogram class 2010-01-11 22:57:32 +00:00
Paolo Cignoni 3765096290 Added the possibility to wrap an existing coefficient vector 2010-01-08 10:36:09 +00:00
Paolo Cignoni 796c2f0b56 Implemented MakeTriEvenBySplit (still assume that the mesh is a single connected component), removed some face assigment with the (hopefully) safer ImportLocal. 2010-01-03 02:14:51 +00:00
Paolo Cignoni a26b0e34f9 Cleaned up Detach functions and added a special, simpler version of Detatch for 2Manifold cases 2010-01-03 02:01:45 +00:00
Paolo Cignoni 29e956d524 Corrected a small bug in CountNonManifoldVertexFFVF and changed the use of bit from selection to visit bit in the CountEdges 2010-01-03 01:59:32 +00:00
Paolo Cignoni 49bbc55cac removed harmless gcc warnings 2010-01-03 01:57:39 +00:00
Paolo Cignoni 137c239375 removed harmless gcc warnings 2010-01-03 01:31:26 +00:00
matteodelle 401abff90a Correction of IntersectionRayMesh functions, they did not compile. 2009-12-21 13:02:28 +00:00
Paolo Cignoni fbbf8fe436 Removed gcc4.4 warnings 2009-12-08 15:57:19 +00:00
Paolo Cignoni 39f12e9fdd added a function to permutate the vertex vector according to a given permutation. 2009-12-07 09:05:20 +00:00
Paolo Cignoni 7030dbb151 small change. The FFp<i> shortcuts seems no more used... 2009-12-07 08:31:01 +00:00
Paolo Cignoni d60fa01037 cleaning up include files 2009-12-07 08:23:02 +00:00
Paolo Cignoni 8a0c86c857 corrected the template in the normal<> function... again 2009-12-07 08:17:10 +00:00
Paolo Cignoni 760a767504 cleaning up include files 2009-12-07 08:15:59 +00:00
Paolo Cignoni 1c0ae1268c added a slightly faster version of the longest edge stratified subdivision sampling 2009-12-04 08:36:49 +00:00
Paolo Cignoni 6e3f10928e better comment to interpolationParameter2 2009-12-04 08:32:00 +00:00
Paolo Cignoni f7b9856d0d removed harmless warning 2009-12-04 08:22:33 +00:00
Paolo Cignoni 32619f1625 harmless gcc compiling issues 2009-12-03 23:17:46 +00:00
Paolo Cignoni 3e7b2267f0 added a missing const to the distance functor 2009-12-02 15:11:00 +00:00
Paolo Cignoni c749b3e143 Heavily restructured PoissonDisk resampling. Now there are two approaches, a pure pruning and a cell pruning approach 2009-12-02 15:10:12 +00:00
Paolo Cignoni 5a96ab4f8d a few optimization and correction to the hashed grid removal stuff 2009-12-02 15:08:49 +00:00
Marco Di Benedetto 939da657a9 added public: to TexCoord* Name(). 2009-12-01 17:36:27 +00:00
Marco Di Benedetto 5b076c064e added public: to WedgeColor* and Color Name(). 2009-12-01 17:35:42 +00:00
Paolo Cignoni 7c907e72ae Corrected a survived old style use of temporary data in smoothning of vertex normals 2009-12-01 08:37:27 +00:00
Paolo Cignoni 86d534ec95 added a missing std:: 2009-12-01 08:34:16 +00:00
Paolo Cignoni dc82ece647 Optimized version of poisson sampling 2009-11-30 15:53:23 +00:00
Paolo Cignoni 27c319a79c added a removeInSphere specialization and a removePunctual specialization. 2009-11-30 10:36:49 +00:00
Paolo Cignoni a89b2ace77 added some const and inline keywords 2009-11-30 10:32:37 +00:00
Paolo Cignoni a209a9b890 Refactoring of the Poisson Sampling algorithm. Hopefully faster 2009-11-25 15:50:36 +00:00
Paolo Cignoni 7e02dbb4f8 added methods for removing things from a hashed grids 2009-11-25 15:49:54 +00:00
Paolo Cignoni 302a7725fa removed harmless warnings 2009-11-17 23:34:46 +00:00
Marco Di Benedetto ebcbc5f98d fixed implicit cast warning. 2009-11-13 00:52:37 +00:00
Paolo Cignoni 70ae4d5c50 made public the self inspection member 'name' of the components. I do not know why it was not public in that case. 2009-11-05 22:35:56 +00:00
Paolo Cignoni 3482ee805e added a few missing std:: and cleaned up a bit the requirements 2009-11-05 10:19:42 +00:00
Paolo Cignoni ad4ad4026c added computation of the per-vertex directions and values of curvature using a quadric fitting method 2009-11-05 09:55:43 +00:00
Paolo Cignoni 5ef3e2ca50 added a missing const cQ() for ocf face component 2009-11-01 09:51:53 +00:00
Paolo Cignoni 6051c1eeaa added a missing IsVFAdjacencyEnabled and a missing typename 2009-10-29 17:16:41 +00:00
Nico Pietroni fe6d3ca34d restored changes for a corrected use of default copy constructor 2009-10-27 10:48:52 +00:00
Marco Di Benedetto a80c4d25ef fixed in-place version. 2009-10-26 12:19:21 +00:00
Marco Di Benedetto e7cbe4f558 modified typedef due to GCC complaints. 2009-10-23 20:25:54 +00:00
Marco Di Benedetto d650013e60 first commit. 2009-10-23 10:04:51 +00:00
Paolo Cignoni 8dd2320a4d add missing std:: 2009-10-15 11:53:09 +00:00
Nico Pietroni 74bd57f2fa missing CurvatureType and CurvatureDirType inside EmptyCurvatureData 2009-10-14 17:19:56 +00:00
Nico Pietroni fdd33df567 minor changes 2009-10-14 16:15:50 +00:00
Paolo Cignoni 3705cb3cb9 Improved speed by using DynamicLegendre and precomputing Scaling Factors 2009-10-14 16:10:42 +00:00
Paolo Cignoni 8d8ed1efa8 Memoized version of Legendre computation called DynamicLegendre 2009-10-14 16:09:30 +00:00
Nico Pietroni 01f772d7f8 corrected order of operations of decrease-increase valencies 2009-10-14 15:15:32 +00:00
Nico Pietroni 8c67be5617 added interpolator class for refinement 2009-10-14 15:05:08 +00:00