//------------------------------------------------------------
// $Id: volumeFuncs.h,v 1.3.2.1 2000/06/14 15:00:10 yamauchi Exp $
//------------------------------------------------------------
//	(M\pi)^2 volume related functions
//	Copyright (C) 1996--1998 YAMAUCHI Hitoshi »³Æâ ÀÆ
//------------------------------------------------------------
#ifndef _volumeFuncs_h
#define _volumeFuncs_h 1

#include "SLList.h"
#include "array3d.h"
#include "objectInfoInASpace.h"
#include "SpaceParam.h"
//------------------------------------------------------------
// volume rendering 
//------------------------------------------------------------
// readVolInfile.cc
class volumeInfileInfoClass;
class volumeAttribClass;
class VolumeClass;


// readVolumeInfile.cc
extern YorN readVolumeInfile(const char *pVolInfileName, 
			     volumeInfileInfoClass *pVolInfileInfo);

// volumeRayCast.cc
extern void processingOneRayTraceWithVolume(Ray *pRay, 
					    SLList < VolumeClass * > *pVolLis,
					    const double distBtwRayNObj);
// volumeInit.cc
extern void initializeVolumes(SLList < VolumeClass * > *pVolLis);

// volumeReader.cc : readAllVolumeData (call from host.cc)
extern int readAllVolumeData(const char *const pVolInfileLists,
			     const SpaceParam& spcParam,
			     array3dClass < objectNumInASpaceClass > 
			     *pObjNum3dArray);

// in deliverVolume.cc
extern void deliverOneVolume(VolumeClass *pVolumeToDeliver);


#endif				// #ifndef _volumeFuncs_h



