// Object.cpp

#include "Types.h"
#include "Object.h"


CObject::CObject()
{
	Name[0] = 0;

	VertList = NULL;
	FaceList = NULL;

	NumVerts = 0;
	NumFaces = 0;
}


CObject::~CObject()
{
	Name[0] = 0;

	delete [] VertList;
	delete [] FaceList;
	VertList = NULL;
	FaceList = NULL;

	NumVerts = 0;
	NumFaces = 0;
}


void CObject::SetBase( const s32 frame, const Vector3 *base )
{
	Base.Set( frame, base );
}


Vector3 *CObject::GetBase( const s32 frame )
{
	return( Base.Get( frame ) );
}


void CObject::AllocVerts( const s32 count )
{
	if (!VertList)
	{
		NumVerts = count;
		VertList = new CTwinVert[count];
	}
}


void CObject::SetVert( const s32 frame, const s32 index, const Vector3 *v )
{
	if (VertList)
		VertList[index].Set( frame, v );
}


Vector3 *CObject::GetVert( const s32 frame, const s32 index )
{
	if (!VertList)
		return( NULL );

	return( VertList[index].Get( frame ) );
}


void CObject::AllocFaces( const s32 count )
{
	if (!FaceList)
	{
		NumFaces = count;
		FaceList = new SFace[count];
	}
}


SFace *CObject::GetFace( const s32 index )
{
	if (!FaceList)
		return( NULL );

	return( &FaceList[index] );
}
