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 ); } О векторах на плоскости смотрите здесь.
|