/*
 * @(#)GEllipse.java
 *
 * Copyright 2001 by Intelligent Technology Inc. All rights reserved.
 */

package jp.co.iti.fagot.gob;

import jp.co.iti.fagot.geom.ZPath;
import jp.co.iti.fagot.geom.ZPoint;

import jp.co.iti.fagot.fob.FobManager;
/**
 * 円を描画します
 *
 * @author  福島康治
 * @version 1.01 2001/01/07
 */
public class GEllipse extends GRectangle {

	/**
	 * コンストラクタ
	 */
	public GEllipse() {
		super();
		//{{FAGOT_ATTR
		//}}FAGOT_ATTR
	}

	//## 位置##########################################################

	//## 選択 ##########################################################
	/**
	 * 要素にヒットするか？
	 * @param pt   論理座標
	 */
	public byte getHitModeGob(ZPoint pt) {
	// セレクターにヒットするか？
	GSelector sel = new GSelector();
	if ( isSelect() && (getEditOption()&NORESIZE)==0 )  { 
		for (byte nAt=GOperation.ZOOMBASE;nAt<=GOperation.ZOOMMAX;nAt++ ) {
			if ( sel.isHit(getSelectorPoint(nAt),pt) ) {
				return ( nAt ) ;
			}
		}
	}
	// 塗りつぶしの場合
	if ( true ) {
		if ( getBounds().getEllipse2D().contains(pt) ) {
			return ( GOperation.MOVE ) ;
		}
	} else {
		// パスの近くか検索する
		if ( false ) {
			return ( GOperation.MOVE ) ;
		}
	}
	return ( GOperation.NONE );
	}

	//## 移動##########################################################

	//## 固有##########################################################

	//## 描画##########################################################

	//## FAGOT ########################################################
	/**
	 * パスの設定
	 */
	public void setPath() {
	setPath( new ZPath( getRect().getEllipse2D() ) );
	}

	/**
	 * Fobマネージャの登録
	 * @param mgr マネージャ
	 */
	public void setFobManager(FobManager mgr) {
		super.setFobManager(mgr);
		//{{FAGOT_ATTR
		//}}FAGOT_ATTR
	}

	//## CLONE ########################################################
	/**
	 * 複製インスタンスの作成
	 * 各実現クラスにおいてインスタンスを生成する
	 * 仮想クラス（およびインスタンス化されないクラス）ではnullを返す
	 */
	public Object createClone() {
	return new GEllipse();
	}

	/**
	 * アトリビュートの複製
	 * @param obj 複製先のオブジェクト
	 */
	public void copyAttribute( Object obj ) {
	super.copyAttribute( obj );
	}

	//##{FAGOT_ATTRIBUTE###############################################
}
