BALL_INLINE 
const PreciseTime& Representation::getModelBuildTime() const
{ 
	return model_build_time_;
}

BALL_INLINE 
void Representation::setModelType(ModelType type)
{ 
	model_type_ = type;
}

BALL_INLINE 
ModelType  Representation::getModelType() const
{ 
	return model_type_;
}

BALL_INLINE 
void Representation::setColoringMethod(ColoringMethod type)
{ 
	coloring_method_= type;
}

BALL_INLINE 
ColoringMethod Representation::getColoringMethod() const
{ 
	return coloring_method_;
}

BALL_INLINE 
void Representation::insert(GeometricObject& object) 
{
	geometric_objects_.push_back(&object); 
}

BALL_INLINE 
const ModelProcessor* Representation::getModelProcessor() const
{
	return model_processor_;
}

BALL_INLINE 
ModelProcessor* Representation::getModelProcessor()
{
	return model_processor_;
}

BALL_INLINE 
ColorProcessor* Representation::getColorProcessor()
{
	return color_processor_;
}

BALL_INLINE 
void Representation::setHidden(bool state) 
{
	hidden_ = state;
}

BALL_INLINE 
bool Representation::isHidden() const
{
	return hidden_;
}

BALL_INLINE 
DrawingPrecision Representation::getDrawingPrecision() const
{
	return drawing_precision_;
}

BALL_INLINE 
float Representation::getSurfaceDrawingPrecision() const
{
	return surface_drawing_precision_;
}

BALL_INLINE 
void Representation::setDrawingMode(DrawingMode mode)
{
	drawing_mode_ = mode;
}

BALL_INLINE 
void Representation::setDrawingPrecision(DrawingPrecision precision)
{
	drawing_precision_ = precision;
	if (model_processor_ != 0) 
	{
		model_processor_->setDrawingPrecision(drawing_precision_);
	}
}

BALL_INLINE 
void Representation::setSurfaceDrawingPrecision(float precision)
{
	if (precision < 0.1)
	{
		Log.error() << "Error: setting invalid surface drawing precision, using 0.1! " << std::endl;
		precision = 0.1;
	}
	surface_drawing_precision_ = precision;
	if (model_processor_ != 0) model_processor_->setSurfaceDrawingPrecision(surface_drawing_precision_);
}

BALL_INLINE 
const GeometricObjectList& Representation::getGeometricObjects() const
{ 
	if (model_processor_ == 0)
	{
		return geometric_objects_; 
	}
	
	return model_processor_->getGeometricObjects();
}

BALL_INLINE 
GeometricObjectList& Representation::getGeometricObjects()
{ 
	if (model_processor_ == 0)
	{
		return geometric_objects_; 
	}
	
	return model_processor_->getGeometricObjects();
}

BALL_INLINE 
Size Representation::getTransparency() const
{
	return transparency_;
}

BALL_INLINE 
DrawingMode Representation::getDrawingMode() const
{
	return drawing_mode_;
}

BALL_INLINE 
void Representation::setNeedsUpdate(bool state) 
{
	needs_update_ = state;
}
