Commit Graph

50 Commits

Author SHA1 Message Date
Gianpaolo Palma 8b90ba72a3 Bug fixed by removing the deferencing of the end() iterator of the container 2016-10-07 17:01:39 +02:00
Guido Ranzuglia 92eec412a5 - the DeletePerMeshAttribute signature (and semantics...) has been consistent with the other DeletePerXXXAttribute functions
I discussed with Fabio about it
2016-07-28 12:32:13 +02:00
Paolo Cignoni 32333eba24 Huge copyright sanitization of the header files of vcg folder. 2016-06-13 05:29:25 +00:00
Paolo Cignoni 6f0d5cb168 Added very useful "IsValidPointer" functions that check that a given pointer is within the reasonable bounds for a given mesh (eg. given a vertex pointer it checks that it is between begin and end of the vertex vector) 2016-04-11 20:31:56 +00:00
giorgiomarcias b7694288e5 Corrected vertex reference assignment for second triangle in AddQuadFace for the case of two triangles with faux flags 2016-02-14 06:56:26 +00:00
Gianpaolo Palma 4a7940a37b Removed debug code 2015-10-21 17:32:21 +00:00
Gianpaolo Palma fd2bfa9f64 Bug fixed in CompactFaceVector. The FF topology must be updated always. 2015-10-21 15:55:09 +00:00
giorgiomarcias 882d54d6ae Fixed some memory leaks when using polygonal component for faces. Deallocations more stable and clear for each component, using also local dynamic memory deallocs. Changed Clear() method of TriMesh which guarantees perfect deallocations of faces' components. Fixed also CompactFaceVector which now deallocates faces before resizing the vector. In DeleteFace, not only the flag is set, but also the face's components are deallocated. 2014-12-15 15:36:37 +00:00
Paolo Cignoni 65336cfe7b Trying to solve int / size_t issues. Added a error guard to avoid inclusion of append. 2014-07-07 10:09:25 +00:00
granzuglia 991aa707d9 - added int cast in order to avoid annoying warnings 2014-07-07 06:58:08 +00:00
Paolo Cignoni afc802107a Made uniform the use of size_t instead of int in the vast majority of the allocate.h functions 2014-07-03 20:57:26 +00:00
Paolo Cignoni d3a7e225ee added a AddEdge ( point - point) member to the Allocator Class 2014-06-17 13:05:46 +00:00
Paolo Cignoni b572187a63 added yet another wrapper for the Allocator Add face. it is quite useful to add faces just with indexes... 2014-05-15 16:31:39 +00:00
Paolo Cignoni dbe0d2b7f5 Wrapper to AddVertices() to add, with a single call, a single vertex with given coords and normal 2014-04-17 09:49:40 +00:00
Paolo Cignoni e042757e5a Added another AddFace wrapper. 2014-03-04 00:31:49 +00:00
Paolo Cignoni 62bd82e208 added one more control in AddFace 2014-03-03 07:44:03 +00:00
Paolo Cignoni 0d6c673a9b PolygonalMesh Debugging: Improved Allocator robustness. Better allocation/deallocation of polyigonal elements 2014-02-18 10:56:16 +00:00
giorgiomarcias 4260535fa6 Corrected two wrong indexes on the access to the vertexes of a face while compacting the face vector: just a typo mistake. 2014-02-12 12:15:42 +00:00
Paolo Cignoni 7747e6097f Corrected a few allocating and copyng functions to manage polygonal meshes instead of simple triangular ones. 2014-02-12 10:59:37 +00:00
Paolo Cignoni 43b738796d Significantly improved documentation. Refactored a bit some of the Add* for better readability 2013-12-12 20:35:27 +00:00
Paolo Cignoni 84c80a1972 Include header cleaning and reordering. 2013-11-25 10:01:24 +00:00
granzuglia d59e519e8f - added missing "#include" 2013-10-16 08:36:05 +00:00
Paolo Cignoni 607e048265 added a few assert in the newly added AddFace shortcut 2013-10-03 14:32:01 +00:00
Paolo Cignoni ad17f61dc0 added a simple wrapper to add a single vertex to a mesh given its coords 2013-10-03 09:57:45 +00:00
Nico Pietroni afef24633f added #include <vcg/container/simple_temporary_data.h> 2013-09-21 00:52:24 +00:00
Paolo Cignoni c5549f607a Cleaned up the edge allocator and added two small wrapper for adding and initializing a single face or edge with the vertex pointers 2013-07-26 09:34:41 +00:00
Paolo Cignoni 72d67f4a11 Added parenthesis to clearly disambiguate if/then/else 2013-03-20 08:28:30 +00:00
Paolo Cignoni f62e07ee66 Corrected the behavoiour of the allocate::Compact when managing uninitialized and null element in adjacency 2013-03-13 14:33:09 +00:00
Paolo Cignoni 8f45cb352e Added a simpler CompactEveryVector to allocate to compact face edge and vertices... 2013-03-13 00:15:13 +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
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 2a21d5fb8e simple comments and re-indentation for better reading 2012-11-10 14:36:54 +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 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 fc5a0216ac Improved documentation about allocation. Added sample on allocation. 2012-10-25 22:53:33 +00:00
Paolo Cignoni 42252b04b4 Improved documentation of Attribute mechanims 2012-10-15 08:17:26 +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
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 3b61972116 Implemented the correct management of per edge attribute. It was half done... 2011-12-15 07:23:51 +00:00
Paolo Cignoni 5ec7fc1e4a added missing const to the Index function 2011-12-12 23:29:16 +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 34921eb3ba corrected small nasty bug in the rarely used compact edge vector... 2011-11-07 15:41:59 +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
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
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
Paolo Cignoni 55068f366b Added CompactEdgeVector functions for removing unused edges 2011-05-31 08:28:40 +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
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 562ddb5397 Ongoing Rearrangement of filpath
ACTION 2
2011-04-01 16:20:53 +00:00