#include namespace icl{ const std::vector &Object2::getVertices() const { return m_vertices; } std::vector &Object2::getVertices() { return m_vertices; } const std::vector &Object2::getPrimitives() const { return m_primitives; } std::vector &Object2::getPrimitives() { return m_primitives; } void Object2::setVisible(Primitive::Type t, bool visible) { m_visible[t] = visible; } bool Object2::isVisible(Primitive::Type t) const { return m_visible[t]; } Object2::Object2(): m_lineColorsFromVertices(false), m_triangleColorsFromVertices(false), m_quadColorsFromVertices(false), m_pointSize(1), m_lineWidth(1) { std::fill(m_visible,m_visible+Primitive::PRIMITIVE_TYPE_COUNT,true); } void Object2::addVertex(const Vec &p, const GeomColor &color){ m_vertices.push_back(p); m_vertexColors.push_back(color); } void Object2::addLine(int a, int b, const GeomColor &color){ m_primitives.push_back(Primitive(a,b,color)); } void Object2::addTriangle(int a, int b, int c, const GeomColor &color){ m_primitives.push_back(Primitive(a,b,c,color)); } void Object2::addQuad(int a, int b, int c, int d, const GeomColor &color){ m_primitives.push_back(Primitive(a,b,c,d,color)); } void Object2::addTexture(int a, int b, int c, int d, const Img8u &texture,bool deepCopy){ m_primitives.push_back(Primitive(a,b,c,d,texture,deepCopy)); } Object2 *Object2::copy() const{ return new Object2(*this); } void Object2::updateZFromPrimitives(){ m_z = 0; if(m_primitives.size()){ for(unsigned int i=0;i0 && j>0){ addLine(idx,idx-1); addLine(idx,idx-slices); } } } }else{ ERROR_LOG("unknown type:" << type); } } void Object2::setColorsFromVertices(Primitive::Type t, bool on){ switch(t){ case Primitive::line: m_lineColorsFromVertices = on; break; case Primitive::triangle: m_triangleColorsFromVertices = on; break; case Primitive::quad: m_quadColorsFromVertices = on; break; default: ERROR_LOG("this operations is only supported for line, triangle and quad primitive types"); break; } } }