Subversion Repositories gelsvn

Rev

Rev 518 | Rev 520 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 518 Rev 519
Line 16... Line 16...
16
#include <vector>
16
#include <vector>
17
#include <map>
17
#include <map>
18
 
18
 
19
namespace HMesh
19
namespace HMesh
20
{
20
{
21
    class Manifold;
-
 
22
 
-
 
23
    template<typename ITEM, typename ITEMID>
21
    template<typename ITEM, typename ITEMID>
24
    class AttributeVector
22
    class AttributeVector
25
    {
23
    {
26
    public:
24
    public:
27
        AttributeVector(size_t _size = 0, ITEM item = ITEM());
25
        AttributeVector(size_t _size = 0, ITEM item = ITEM());
Line 50... Line 48...
50
 
48
 
51
    template<typename ITEM>
49
    template<typename ITEM>
52
    class VertexAttributeVector : public AttributeVector<ITEM, VertexID>
50
    class VertexAttributeVector : public AttributeVector<ITEM, VertexID>
53
    {
51
    {
54
    public:
52
    public:
55
        VertexAttributeVector(const Manifold& m, ITEM item = ITEM());
53
        VertexAttributeVector(size_t _size = 0, ITEM item = ITEM());
56
    };
54
    };
57
 
55
 
58
    template<typename ITEM>
56
    template<typename ITEM>
59
    class FaceAttributeVector : public AttributeVector<ITEM, FaceID>
57
    class FaceAttributeVector : public AttributeVector<ITEM, FaceID>
60
    {
58
    {
61
    public:
59
    public:
62
        FaceAttributeVector(const Manifold& m, ITEM item = ITEM());
60
        FaceAttributeVector(size_t _size = 0, ITEM item = ITEM());
63
    };
61
    };
64
 
62
 
65
    template<typename ITEM>
63
    template<typename ITEM>
66
    class HalfEdgeAttributeVector : public AttributeVector<ITEM, HalfEdgeID>
64
    class HalfEdgeAttributeVector : public AttributeVector<ITEM, HalfEdgeID>
67
    {
65
    {
68
    public:
66
    public:
69
        HalfEdgeAttributeVector(const Manifold& m, ITEM item = ITEM());
67
        HalfEdgeAttributeVector(size_t _size = 0, ITEM item = ITEM());
70
    };
68
    };
71
 
69
 
72
    template<typename ITEM>
70
    template<typename ITEM>
73
    inline VertexAttributeVector<ITEM>::VertexAttributeVector(const Manifold& m, ITEM item) : AttributeVector<ITEM, VertexID>(m.no_vertices(false), item){}
71
    inline VertexAttributeVector<ITEM>::VertexAttributeVector(size_t _size, ITEM item) : AttributeVector<ITEM, VertexID>(_size, item){}
74
 
72
 
75
    template<typename ITEM>
73
    template<typename ITEM>
76
    inline FaceAttributeVector<ITEM>::FaceAttributeVector(const Manifold& m, ITEM item) : AttributeVector<ITEM, FaceID>(m.no_faces(false), item){}
74
    inline FaceAttributeVector<ITEM>::FaceAttributeVector(size_t _size, ITEM item) : AttributeVector<ITEM, FaceID>(_size, item){}
77
 
75
 
78
    template<typename ITEM>
76
    template<typename ITEM>
79
    inline HalfEdgeAttributeVector<ITEM>::HalfEdgeAttributeVector(const Manifold& m, ITEM item) : AttributeVector<ITEM, HalfEdgeID>(m.no_halfedges(false), item){}
77
    inline HalfEdgeAttributeVector<ITEM>::HalfEdgeAttributeVector(size_t _size, ITEM item) : AttributeVector<ITEM, HalfEdgeID>(_size, item){}
80
 
78
 
81
 
79
 
82
    template<typename ITEM, typename ITEMID>
80
    template<typename ITEM, typename ITEMID>
83
    inline AttributeVector<ITEM, ITEMID>::AttributeVector(size_t _size, ITEM item) : items(_size, item){}
81
    inline AttributeVector<ITEM, ITEMID>::AttributeVector(size_t _size, ITEM item) : items(_size, item){}
84
 
82