/*=======================================================
author:     Martin robinson
title:      wireframe object
goal:       wireframe pair vector
            ligne
==========================================================
preprocessor*/

#pragma once
#ifndef _WIREFRAME
#define _WIREFRAME

#include "color.hpp"
#include "wire.hpp"
#include "shape.hpp"

#include <assert.h>
#include <vector>
using namespace std;

/*=======================================================
classe
=======================================================*/

class wireframe : public shape{
protected:
    vector<wire> _wireframe;                             //liste de ligne
    color _brush;                                        //pinceau
    void _copyWireframe(const wireframe&);              //copieur
public:
    wireframe();                                         //constructeur
    wireframe(const wireframe&);                        //copieur
    const wireframe & operator=(const wireframe & l); //assignation
    //getter
    const color& getLineColor(int)const;               //couleur de la ligne
    int numLine()const;                                 //nombre de ligne
    const wire& getLine(int)const;                     //la ligne
    const point& getLinePointA(int)const;              //point A de la ligne
    const point& getLinePointB(int)const;              //point B de la ligne
    //setteur
    void addLine(const wire&);                          //ajouter une ligne
    void setBrush(const color&);                        //modifier le pinceau
};

#endif
