#include "wireframe.hpp"

//copieur privée
void wireframe::_copyWireframe(const wireframe& l)
{
    _wireframe = l._wireframe;
    _brush = l._brush;
}

//constructeur
wireframe::wireframe()
{
    _brush = color();
}

//copieur
wireframe::wireframe(const wireframe& l)
{
    _copyWireframe(l);
}

//assignation
const wireframe & wireframe::operator=(const wireframe & l)
{
    _copyWireframe(l);
    return *this;
}

//obtenir la couleur de la ligne demandé
const color& wireframe::getLineColor(int i)const
{
    assert(i<_wireframe.size());
    return _wireframe[i].c;
}

//obtenir le nombre de ligne
int wireframe::numLine()const
{
    return _wireframe.size();
}

//obtenir une ligne
const wire& wireframe::getLine(int i)const
{
    assert(i < numLine());
    return _wireframe[i];
}

//obtenire le premier point de la ligne demandé
const point& wireframe::getLinePointA(int i)const
{
    assert(i < numLine());
    return getPoint(_wireframe[i].a+1);
}

//obtenire le deuxieme point de la ligne demandé
const point& wireframe::getLinePointB(int i)const
{
    assert(i < numLine());
    return getPoint(_wireframe[i].b+1);
}

//ajouter une ligne
void wireframe::addLine(const wire& l)
{
    _wireframe.push_back(l);
    _wireframe.back().c = _brush;
}

//changer le pinceau de couleur
void wireframe::setBrush(const color& c)
{
    _brush = c;
}
