#pragma once
#include "PosGeometry.h"
#include "PosMaterial.h"

using namespace std;

class PosModel
{
public:
	PosModel(void);

	/*
	 * Sets the name of this Model (globally unique!)
	 * @param name: the name
	 */
	virtual void setName(string name) = 0;

	/*
	 * Gets the name of this Model
	 * @return the name
	 */
	virtual string getName(void) = 0;

	/*
	 * Sets the bounding sphere for this Geometry
	 * @param boundingSphereCenter: float[3]
	 * @param boundingSphereRadius: The radius of the sphere
	 */
	virtual void setBoundingSphere(float* boundingSphereCenter, float boundingSphereRadius) = 0;

	/*
	 * Adds a Geometry and it's Material to this Geometry
	 * @param geometry:	the Geometry to add
	 * @param material: the Material to use for this Geometry
	 */
	virtual void addGeometry(PosGeometry* geometry, PosMaterial* material) = 0;

	virtual ~PosModel(void);
};
