7 #include <utility/dllexport.h>
8 #include <vertexattribute.h>
10 #include <glm/glm.hpp>
35 inline const T&
first()
const {
return mData[0]; }
41 inline void setFirst(
const T& data) { mData[0] = data; }
46 inline const T&
second()
const {
return mData[1]; }
52 inline void setSecond(
const T& data) { mData[1] = data; }
57 inline const T&
third()
const {
return mData[2]; }
63 inline void setThird(
const T& data)
const { mData[2] = data; }
70 T&
operator[](std::size_t index) {
return mData[index]; }
77 const T&
operator[](std::size_t index)
const {
return mData[index]; }
80 std::array<T, 3> mData;
92 ShapeTriangle(
int triangleIndex,
int index0,
int index1,
int index2);
122 int operator[](std::size_t index)
const {
return mIndices[index]; }
124 IndexArray::const_iterator
begin() {
return mIndices.begin(); }
125 IndexArray::const_iterator
end() {
return mIndices.end(); }
135 return TriangleData<T>(attribute[mIndices[0]], attribute[mIndices[1]], attribute[mIndices[2]]);
148 attribute[mIndices[0]] = firstValue;
149 attribute[mIndices[1]] = secondValue;
150 attribute[mIndices[2]] = thirdValue;
215 bool isDone()
const {
return mCurrentIndex >= mIndexEnd; }
225 int mCurrentTriangle = 0;
299 bool isDone()
const {
return mCurIterator ==
nullptr; }
311 void advanceToNextShape();
bool isDone() const
Definition: triangleiterator.h:215
void setSecond(const T &data)
Definition: triangleiterator.h:52
const T & operator[](std::size_t index) const
Definition: triangleiterator.h:77
const T & third() const
Definition: triangleiterator.h:57
Definition: vertexattribute.h:65
const uint32 * mCurrentIndex
The current position in the index buffer of the shape that we're iterating through.
Definition: triangleiterator.h:224
void setThird(const T &data) const
Definition: triangleiterator.h:63
TriangleData(const T &first, const T &second, const T &third)
Definition: triangleiterator.h:26
int operator[](std::size_t index) const
Definition: triangleiterator.h:122
IndexArray::const_iterator end()
Definition: triangleiterator.h:125
ShapeTriangle(int triangleIndex, int index0, int index1, int index2)
int firstIndex() const
Definition: triangleiterator.h:107
bool isDone() const
Definition: triangleiterator.h:299
IndexArray::const_iterator begin()
Definition: triangleiterator.h:124
uint32_t uint32
Definition: numeric.h:20
void setVertexData(VertexAttribute< T > &attribute, const T &firstValue, const T &secondValue, const T &thirdValue)
Definition: triangleiterator.h:146
int getShapeIndex() const
Definition: triangleiterator.h:189
Definition: triangleiterator.h:251
Definition: triangleiterator.h:23
int thirdIndex() const
Definition: triangleiterator.h:117
T & operator[](std::size_t index)
Definition: triangleiterator.h:70
std::array< int, 3 > IndexArray
Definition: triangleiterator.h:90
IndexArray indices() const
Definition: triangleiterator.h:102
Definition: triangleiterator.h:205
Definition: triangleiterator.h:235
TriangleData< T > getVertexData(const VertexAttribute< T > &attribute) const
Definition: triangleiterator.h:133
void setFirst(const T &data)
Definition: triangleiterator.h:41
void setVertexData(VertexAttribute< T > &attribute, const TriangleData< T > &value)
Definition: triangleiterator.h:168
Definition: triangleiterator.h:183
Definition: templateapp.h:17
Definition: triangleiterator.h:270
const T & first() const
Definition: triangleiterator.h:35
int getTriangleIndex() const
Definition: triangleiterator.h:97
void setVertexData(VertexAttribute< T > &attribute, const T &value)
Definition: triangleiterator.h:158
const T & second() const
Definition: triangleiterator.h:46
Definition: triangleiterator.h:289
int secondIndex() const
Definition: triangleiterator.h:112
virtual ~ShapeTriangleIterator()
Definition: triangleiterator.h:209
Definition: triangleiterator.h:87