Commit Graph

267 Commits

Author SHA1 Message Date
Paolo Cignoni 26ee5e5246 const access to flags -> cFlags() 2012-11-07 22:53:41 +00:00
Paolo Cignoni 9f39a0c7cb added cflags to the emtpycore face component 2012-11-07 15:51:51 +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 578ea5ae6b Added control in the creation of a pos that you pass a consistent triple 2012-10-26 12:39:58 +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 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 b1a1b36260 Re added the empty component. It can be useful sometimes... 2012-10-19 11:45:51 +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
Nico Pietroni 8d4bdc467e added function VFExtendedStarVF 2012-10-14 09:24:49 +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 dcb0d036ff added FindSharedFaces and VFOrderedStarVF functions 2012-09-22 12:54:30 +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
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 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
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 24110c34b2 added an Empty Component for the edgePlane component. 2012-07-06 05:07:25 +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 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
Nico Pietroni a53447ab1c added VFOrderedStarVF_FF function 2012-03-29 16:36:01 +00:00
ganovelli bbcfbfabc2 added CurvatureDir to Face 2012-03-28 12:39:22 +00:00
Nico Pietroni 4f166fbd95 added Crease Flag access functions 2012-03-16 13:49:04 +00:00
Paolo Cignoni 57bd611892 added assert in the VFIterator to handle uninitialized topology. 2012-03-14 16:02: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 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 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 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
Marco Callieri 7616955d64 changed function call from Distance to DistancePlanePoint 2011-11-21 13:20:45 +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
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 2fe129645b Rolled back 2011-10-05 15:04:40 +00:00
ganovelli 68fc8ae865 removed Neigh functions 2011-06-15 13:02:20 +00:00
ganovelli a815890b15 minimal addition to support neighboorhood relation between vertices
and between faces
2011-06-14 16:18:34 +00:00
Nico Pietroni 052e774fbc added Quality3 component 2011-05-25 16:28:18 +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 214904b312 Ongoing corrections of include paths to comply the new folder arrangement 2011-04-03 22:50:59 +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
Paolo Cignoni ec825ed246 harmless gcc warnings 2011-02-17 11:39:57 +00:00
ganovelli d505581af9 bug fixing in vector_ocf::reserve for the case of empty vector 2010-11-11 09:33:35 +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
ganovelli 3bcc518722 replaced ImportLocal with ImportData (it was left behind) 2010-10-15 09:24:51 +00:00
Paolo Cignoni f83dc8b993 rewrote checkflip edge. 2010-10-01 20:27:30 +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 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
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