Commit Graph

3068 Commits

Author SHA1 Message Date
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