/* * 作成日: 2008/04/24 */ package jp.ac.fit.asura.nao.vision.perception; import java.awt.Polygon; import java.awt.Rectangle; import java.util.ArrayList; import java.util.List; import javax.vecmath.Point2f; import jp.ac.fit.asura.nao.vision.VisualObjects; import jp.ac.fit.asura.nao.vision.perception.BlobVision.Blob; /** * @author sey * * @version $Id: VisualObject.java 704 2008-10-23 17:25:51Z sey $ * */ public abstract class VisualObject { protected VisualObjects type; private List<Blob> blobs; // 信頼度(?) public int confidence; // 画像の端に付いているか protected boolean isTopTouched; protected boolean isBottomTouched; protected boolean isLeftTouched; protected boolean isRightTouched; // 中心の座標(px) public Point2f center; // 画像中心からの角度(rad) public Point2f angle; // ロボット座標系での角度(rad) public Point2f robotAngle; // 画像上の領域(px) public Rectangle area; public Polygon polygon; public VisualObject(VisualObjects type) { blobs = new ArrayList<Blob>(); this.type = type; center = new Point2f(); angle = new Point2f(); robotAngle = new Point2f(); area = new Rectangle(); polygon = new Polygon(); } public void clear() { blobs.clear(); confidence = 0; polygon.reset(); } public VisualObjects getType() { return type; } public List<Blob> getBlobs() { return blobs; } public boolean isTopTouched() { return isTopTouched; } public boolean isBottomTouched() { return isBottomTouched; } public boolean isLeftTouched() { return isLeftTouched; } public boolean isRightTouched() { return isRightTouched; } }