|
template <class I> class Trigon
{
public:
unsigned int a, b, c; // Номера вершин
I info;
};
template <> class Trigon<void>
{
public:
unsigned int a, b, c; // Номера вершин
};
template <class V, class I> class Poly3gon
{
Poly3gon ( Poly3gon & );
public:
DynArray<V> vertex; // массив вершин
DynArray< Trigon<I> > side; // массив треугольников
Poly3gon () {}
Poly3gon ( unsigned int nv, unsigned int ns ) : vertex(nv), side(ns) {}
Poly3gon & resize ( unsigned int nv, unsigned int ns )
{
vertex.resize ( nv );
side.resize ( ns );
return *this;
}
};
template <class T, class I> inline
void swap ( Poly3gon<T,I> & p1, Poly3gon<T,I> & p2 )
{
p1.vertex.swap ( p2.vertex );
p1.side.swap ( p2.side );
}
О векторах на плоскости смотрите здесь.
|