/*
 * $Id: AdjDir.java,v 1.3 2000/06/15 13:55:50 yamauchi Exp $
 *     (M\pi)^2 : adjacent direction
 *	Copyright 1999 By YAMAUCHI Hitoshi 山内 斉 
 *	@author YAMAUCHI Hitoshi 山内 斉
 *	
 * original source adjdir.h
 *
 *	隣接する空間を引く
 * 
 * 1999年9月 8日(水)
 */

package jp.ac.tohoku.is.archi.mpi2.dda;

import  jp.ac.tohoku.is.archi.mpi2.dda.*;
import  jp.ac.tohoku.is.archi.mpi2.util.*;

public final class AdjDir {
    // FIXME 1.1 はこの final を許さないようだ    
    // private final static IntVec3 [] mDir; 
    private static IntVec3 [] mDir;
    static {
	mDir = new IntVec3[DIR_3D.ELEMNUM];
	mDir[DIR_3D.XPLUS]	= new IntVec3( 1,  0,  0);
	mDir[DIR_3D.XMINUS]	= new IntVec3(-1,  0,  0);
	mDir[DIR_3D.YPLUS]	= new IntVec3( 0,  1,  0);
	mDir[DIR_3D.YMINUS]	= new IntVec3( 0, -1,  0);
	mDir[DIR_3D.ZPLUS]	= new IntVec3( 0,  0,  1);
	mDir[DIR_3D.ZMINUS]	= new IntVec3( 0,  0, -1);
	mDir[DIR_3D.HERE]	= new IntVec3( 0,  0,  0);
    }

    public final static IntVec3 get(int direction)
    {
	Assert.out((0 <= direction) && (direction < DIR_3D.ELEMNUM), 
		   "Error!: no such direction : AdjDir");
	return(mDir[direction]);
    }
}
