// ------------------------------------------------------------------------------------
// irr::core::array<S3DVertexTangents> wrappers
// NOTES:
// did not wrap the const version of getLast()
// ------------------------------------------------------------------------------------

extern "C" array<S3DVertexTangents>* IrrCore_Array_S3DVertexTangents_new()
{
	return new array<S3DVertexTangents>();
}

extern "C" array<S3DVertexTangents>* IrrCore_Array_S3DVertexTangents_newWithSize(u32 start_count)
{
	return new array<S3DVertexTangents>(start_count);
}

extern "C" array<S3DVertexTangents>* IrrCore_Array_S3DVertexTangents_newFromOther(array<S3DVertexTangents>* other)
{
	return new array<S3DVertexTangents>(*other);
}

extern "C" void IrrCore_Array_S3DVertexTangents_del(array<S3DVertexTangents>* arr)
{
	if (arr)
		delete arr;
		
	arr=0;
}

extern "C" u32 IrrCore_Array_S3DVertexTangents_allocated_size(array<S3DVertexTangents>* arr)
{
	if (arr)
		return arr->allocated_size();
	else
		return 0;
}

extern "C" void IrrCore_Array_S3DVertexTangents_clear(array<S3DVertexTangents>* arr)
{
	if (arr)
		arr->clear();
}

extern "C" const S3DVertexTangents* IrrCore_Array_S3DVertexTangents_const_pointer(array<S3DVertexTangents>* arr)
{
	if (arr)
		arr->const_pointer();
}

extern "C" S3DVertexTangents* IrrCore_Array_S3DVertexTangents_pointer(array<S3DVertexTangents>* arr)
{
	if (arr)
		arr->pointer();
}

extern "C" bool IrrCore_Array_S3DVertexTangents_empty(array<S3DVertexTangents>* arr)
{
	if (arr)
		return arr->empty();
	else
		return true;
}

extern "C" void IrrCore_Array_S3DVertexTangents_eraseWithCount(array<S3DVertexTangents>* arr,u32 idx,s32 count)
{
	if (arr)
		arr->erase(idx,count);
}

extern "C" void IrrCore_Array_S3DVertexTangents_erase(array<S3DVertexTangents>* arr,u32 idx)
{
	if (arr)
		arr->erase(idx);
}

// do not delete this pointer
extern "C" S3DVertexTangents* IrrCore_Array_S3DVertexTangents_getLast(array<S3DVertexTangents>* arr)
{
	if (arr)
		return &arr->getLast();
	else
		return 0;
}

// do not delete this pointer
extern "C" S3DVertexTangents* IrrCore_Array_S3DVertexTangents_elementAt(array<S3DVertexTangents>* arr,u32 idx)
{
	if (arr)
		return &(*arr)[idx];
	else
		return 0;
}

extern "C" void IrrCore_Array_S3DVertexTangents_insert(array<S3DVertexTangents>* arr,S3DVertexTangents* element,u32 idx=0)
{
	if (arr)
		arr->insert(*element,idx);
}

extern "C" void IrrCore_Array_S3DVertexTangents_Eq(array<S3DVertexTangents>* arr,array<S3DVertexTangents>* other)
{
	if (arr)
		*arr=*other;
}

extern "C" void IrrCore_Array_S3DVertexTangents_push_back(array<S3DVertexTangents>* arr,S3DVertexTangents* element)
{
	if (arr)
		arr->push_back(*element);
}

extern "C" void IrrCore_Array_S3DVertexTangents_push_front(array<S3DVertexTangents>* arr,S3DVertexTangents* element)
{
	if (arr)
		arr->push_front(*element);
}

extern "C" void IrrCore_Array_S3DVertexTangents_reallocate(array<S3DVertexTangents>* arr,u32 new_size)
{
	if (arr)
		arr->reallocate(new_size);
}

extern "C" void IrrCore_Array_S3DVertexTangents_set_free_when_destroyed(array<S3DVertexTangents>* arr,bool f)
{
	if (arr)
		arr->set_free_when_destroyed(f);
}

extern "C" void IrrCore_Array_S3DVertexTangents_set_pointer(array<S3DVertexTangents>* arr,S3DVertexTangents newPointer[],u32 size)
{
	if (arr)
		arr->set_pointer(newPointer,size);
}

extern "C" void IrrCore_Array_S3DVertexTangents_set_sorted(array<S3DVertexTangents>* arr,bool bVal)
{
	if (arr)
		arr->set_sorted(bVal);
}

extern "C" void IrrCore_Array_S3DVertexTangents_set_used(array<S3DVertexTangents>* arr,bool bVal)
{
	if (arr)
		arr->set_used(bVal);
}

extern "C" u32 IrrCore_Array_S3DVertexTangents_size(array<S3DVertexTangents>* arr)
{
	if (arr)
		return arr->size();
	else
		return 0;
}

/*
extern "C" s32 IrrCore_Array_S3DVertexTangents_linear_reverse_search(array<S3DVertexTangents>* arr,S3DVertexTangents* find)
{
	if (arr)
		return arr->linear_reverse_search(*find);
	else
		return -1;
}

extern "C" s32 IrrCore_Array_S3DVertexTangents_linear_search(array<S3DVertexTangents>* arr,S3DVertexTangents* find)
{
	if (arr)
		return arr->linear_search(*find);
	else
		return -1;
}

extern "C" s32 IrrCore_Array_S3DVertexTangents_binary_search(array<S3DVertexTangents>* arr,S3DVertexTangents* find)
{
	if (arr)
		return arr->binary_search(*find);
	else
		return -1;
}



extern "C" s32 IrrCore_Array_S3DVertexTangents_binary_searchWithBounds(array<S3DVertexTangents>* arr,S3DVertexTangents* find,s32 left,s32 right)
{
	if (arr)
		return arr->binary_search(*find,left,right);
	else
		return -1;
}

extern "C" void IrrCore_Array_S3DVertexTangents_sort(array<S3DVertexTangents>* arr)
{
	if (arr)
		arr->sort();
}
*/


