/*
 * $$
 *     (M\pi)^2 : interface Reflectable
 *	Copyright 1999 By YAMAUCHI Hitoshi 山内 斉 
 *	@author YAMAUCHI Hitoshi 山内 斉
 *	
 * original source object.h
 * 
 * 1999年7月29日(木)
 * 物体については丁度良い機会なのである程度書き直してみる．
 * 
 * 本来は Primitive もパッケージとして違うディレクトリに生成すべき
 * であろうが，とにかく今は Java へのそのままの変換を重要視する． 
 */

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

import java.lang.String;
import jp.ac.tohoku.is.archi.mpi2.util.Vector3;

/**
 * <code>ObjectPrimitive<code> interface represents object behavior.
 *
 * @author 	YAMAUCHI Hitoshi (山内斉)
 */
public interface Reflectable {
    // shading のための輝度を返す(flat and shaded color)
    // virtual Vector3 getFlatRadiosityColor(const Vector3& hitPos)       = 0;
    // virtual Vector3 getShadedRadiosityColor(const Vector3& hitPos)     = 0;
    // 物体の法線ベクトルを返す arg = void の方は利用できない object あり
    public abstract Vector3 getNormal();
    public abstract Vector3 getNormal(Vector3 hitpos);

    //     public abstract String toString();
    //     public abstract String getMgfForm(int type);
    //     public abstract int    who();
}

