//------------------------------------------------------------
// $Id: PEGetNextSpace.cc,v 1.1.1.1 1999/11/25 06:26:09 yamauchi Exp $ 
//------------------------------------------------------------
//	PEGetNextSpace.cc Processing Element
//	1998年8月21日(金)
//	Copyright (C) 1996--1998 YAMAUCHI Hitoshi 山内 斉
// 次空間探索の部分を PE.cc から分離した．
//------------------------------------------------------------
#include <stdlib.h>
#include "PE.h"

YorN PEClass::
moveRayToNextSubspace(Ray *pRay)
{
    YorN isSendRay = NO;	// このレイを送信するか?
	
    // 空間スキップ法によってレイの伝搬を変化させる
    switch(this->mSysInfo.getRayPropSkipMethod())
    {
    case NoSkip_rayprop:
	isSendRay = this->mDDAUnit.moveRayToNextSubspaceNoSkip(pRay);
    	break;

    case SobokuSkip_rayprop:
	isSendRay = this->mDDAUnit.moveRayWithSobokuSkip(pRay);
	break;
	
    case ProximityClouds_rayprop:
	//for PRC by tokunaga 
	isSendRay = this->mPRCUnit.moveRayToNextCalcSubspaceWithSkip(pRay);
	break;

    default:
	cout << "Internal Error! : no such ray propagation method."<< endl;
	this->exitprog();
	break;
    }

    return(isSendRay);
}
