// ===================================================================
// $Id: surface.cpp,v 1.2 2002/12/05 14:45:00 havran Exp $
//
// surface.cpp
//     Implementation of abstract surface.
//
// Licence and usage conditions in November 2003:
// This file can be used and modified only with written permission of
// Vlastimil Havran, Pohodli 27, 57001 Litomysl, the Czech Republic.
// This library is granted to be used by Polina Kondratieva within
// her MPI HIWI job working on BRDFLIB library. The usage condition
// may change in the next version of the library. At the moment,
// the library development is supported by Max-Planck-Institut for
// Informatik, Stuhlsatzenhausweg 85, 66123 Saarbruecken Germany
// See WWW: http://www.mpi-sb.mpg.de
// REPLACEMENT_STRING
//
// Initial coding by Nicholas Wilt, completely
// rewritten by Vlastimil Havran and
// also by Jaroslav Krivanek, 2000.
//
// Given to BRDFLIB project for the Polina Kondratieva's
// HIWI JOB assignment in November 2003.
// ===================================================================


// BRDFLIB headers
#include "config.h"
#include "surface.h"


__BEGIN_BRDFLIB_SOURCE

// --------------------------------------------------------------------
// implementation of the abstract surface

float
CSurface::_minExpAsMirror = 10000;


// destructor
CSurface::~CSurface()
{

}

const char* 
CSurface::GetHelp() const
{
	return "Missing BRDF model description";
}

int 
CSurface::GetNumParameters() const
{
	return -1;
}

CValues 
CSurface::GetParameter(int parameterIndex) const
{
	return -1;
}

CValues 
CSurface::GetParameterConstraints(int parameterIndex) const
{
	return -1;
}

const char* 
CSurface::GetParameterDescription(int parameterIndex) const
{
	return "Missing parameter description";
}

CSurface::EParameterUIType
CSurface::GetParameterSyntax(int parameterIndex) const
{
	return EE_Unknown;
}

const char*
CSurface::GetParameterTitle(int parameterIndex) const
{
	return "???";
}

void
CSurface::SetParameter(int parameterIndex, const CValues& value)
{
}

/**
   Returns the transparency at the specified point, possibly taking the
   incoming direction of the ray into account
*/
bool
CSurface::GetTransparency(CValues &transparency,
			  const CHitPointInfo &hitinfo) const
{
  transparency.Set(0.0);
  return true; // opaque surface
}


__END_BRDFLIB_SOURCE
