Commit Graph

21 Commits

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