
#ifndef _JL_VertexList_H_
#define _JL_VertexList_H_


#include "vertex.h"

class JLMatrix;


#define CLASS_NAME VertexList
#define CLASS_TYPE Vertex
#define CLASS_TYPE_PTR Vertex*

#define SIMPLE_COPY


#include "dynarray.h"

	private:
		int		_ref_count;
	
	public:
		void	ResetRefCount() { _ref_count = 0; }
		int		GetRefCount() { return _ref_count; }
		void	IncRefCount() { _ref_count++; }
		void	DecRefCount() { _ref_count--; }

		int AugmentBound(real min_max[2][3], int first);

		void ApplyTransform(const JLmatrix &M);
		void HomogeneousDivide();

		real Top(JLmatrix *VT, JLmatrix *IVT);
};


#undef SIMPLE_COPY

#undef CLASS_NAME
#undef CLASS_TYPE
#undef CLASS_TYPE_PTR

#endif
