Commit Graph

1492 Commits

Author SHA1 Message Date
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 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
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
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 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 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 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 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 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 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 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 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
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 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
mtarini 15665c15ef added a few testing methods (IsTriOnly, IsQuadOnly, IsTriQuadOnly) 2012-07-20 13:50:08 +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
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 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 81a4cd4765 Corrected two wrong (unused) return types in stat collecting functions for trimesh 2012-07-06 05:38:05 +00:00
granzuglia 398f906bb6 added missing cmath include 2012-07-05 14:46:16 +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
Paolo Cignoni bfc10096f0 small improvemnt in stat collection for voronoi atlas 2012-07-03 10:21:41 +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 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
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
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
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 5445d99402 several major modifications 2012-05-25 13:21:11 +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 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 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 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
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 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
Nico Pietroni d5e7d551ba clean up the code and used new per face component 2012-03-29 16:33:33 +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 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
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 6983d4f6e9 Added a few comments... 2012-02-25 14:40:23 +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 d331cf7f60 Added OrientedDisk creation method. and a missing "clear()" 2012-02-09 17:50:38 +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 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 e9d476e93c Changed all the MeshType::HasSomething() into the now standard tri::HasSomething(MeshType &m) 2012-01-20 07:49:26 +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 048b884a3e Added tri:UpdatePosition::Scale(mesh) 2012-01-18 11:22:40 +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