SRect.java
上传用户:art_006
上传日期:2015-08-18
资源大小:18969k
文件大小:5k
- // **********************************************************************
- //
- // <copyright>
- //
- // BBN Technologies
- // 10 Moulton Street
- // Cambridge, MA 02138
- // (617) 873-8000
- //
- // Copyright (C) BBNT Solutions LLC. All rights reserved.
- //
- // </copyright>
- // **********************************************************************
- //
- // $Source: /cvs/distapps/openmap/src/corba/com/bbn/openmap/layer/specialist/SRect.java,v $
- // $RCSfile: SRect.java,v $
- // $Revision: 1.2.2.1 $
- // $Date: 2004/10/14 18:26:32 $
- // $Author: dietrick $
- //
- // **********************************************************************
- package com.bbn.openmap.layer.specialist;
- import com.bbn.openmap.CSpecialist.*;
- import com.bbn.openmap.CSpecialist.GraphicPackage.*;
- import com.bbn.openmap.CSpecialist.RectanglePackage.*;
- /**
- * SRect is a specialist rectangle graphic object
- *
- * <h4>ASSUMPTIONS</h4>
- *
- * OpenMap assumes the following about rects:
- *
- * <ul>
- *
- * <li>The edges of a LatLon rect must be less than 180 degrees of
- * arc, (one hemisphere). We draw lines the short way around the
- * world.
- * <p>
- *
- * <li>The vertices of the LatLon rect should be specified in
- * clockwise order, we suggest `llNW' then `llSE' (Northwest LatLon,
- * Southeast LatLon box). <br>
- *
- * </ul>
- *
- * Not following these assumptions may result in unpredictable
- * behavior!
- * <p>
- *
- * These assumptions are virtually the same as those on the more
- * generic Poly and Line graphic types.
- * <p>
- *
- * @see SPoly
- * @see SLine
- */
- public class SRect extends SGraphic /* used to be _RectangleImplBase */{
- /** Upper left corner xy screen point, or upper left corner offset. */
- protected XYPoint p1_;
- /**
- * Lower right corner xy screen point, or lower right corner
- * offset.
- */
- protected XYPoint p2_;
- /** Upper left corner coordinate, or coordinate for offset */
- protected LLPoint ll1_;
- /** Lower right corner coordinate */
- protected LLPoint ll2_;
- // Need several constructors
- public SRect() {
- super(GraphicType.GT_Rectangle,
- RenderType.RT_Unknown,
- LineType.LT_Unknown,
- DeclutterType.DC_None);
- ll1_ = new LLPoint(0f, 0f);
- p1_ = new XYPoint((short) 0, (short) 0);
- ll2_ = new LLPoint(0f, 0f);
- p2_ = new XYPoint((short) 0, (short) 0);
- }
- public SRect(LLPoint ll1, LLPoint ll2, LineType lType) {
- super(GraphicType.GT_Rectangle,
- RenderType.RT_LatLon,
- lType,
- DeclutterType.DC_None);
- ll1_ = ll1;
- ll2_ = ll2;
- p1_ = new XYPoint((short) 0, (short) 0);
- p2_ = new XYPoint((short) 0, (short) 0);
- }
- public SRect(short x1, short y1, short x2, short y2) {
- super(GraphicType.GT_Rectangle,
- RenderType.RT_XY,
- LineType.LT_Unknown,
- DeclutterType.DC_None);
- ll1_ = new LLPoint(0f, 0f);
- ll2_ = new LLPoint(0f, 0f);
- p1_ = new XYPoint(x1, y1);
- p2_ = new XYPoint(x2, y2);
- }
- public SRect(LLPoint ll1, short x1, short y1, short x2, short y2) {
- super(GraphicType.GT_Rectangle,
- RenderType.RT_Offset,
- LineType.LT_Unknown,
- DeclutterType.DC_None);
- ll1_ = ll1;
- ll2_ = new LLPoint(0f, 0f);
- p1_ = new XYPoint(x1, y1);
- p2_ = new XYPoint(x2, y2);
- }
- // The SRect methods
- public void p1(XYPoint p1) {
- p1_ = p1;
- }
- public XYPoint p1() {
- return p1_;
- }
- public void p2(XYPoint p2) {
- p2_ = p2;
- }
- public XYPoint p2() {
- return p2_;
- }
- public void ll1(LLPoint ll1) {
- ll1_ = ll1;
- }
- public LLPoint ll1() {
- return ll1_;
- }
- public void ll2(LLPoint ll2) {
- ll2_ = ll2;
- }
- public LLPoint ll2() {
- return ll2_;
- }
- public ERectangle fill() {
- return new ERectangle(eg, p1_, p2_, ll1_, ll2_);
- }
- public UGraphic ufill() {
- UGraphic ugraphic = new UGraphic();
- ugraphic.erect(fill());
- return ugraphic;
- }
- // Update methods as a result of gesture impulses...
- public void changeLl1(com.bbn.openmap.CSpecialist.LLPoint ll1) {
- ll1_ = ll1;
- RF_update gupdate = new RF_update();
- gupdate.ll1(ll1);
- UpdateGraphic ug = new UpdateGraphic();
- ug.rf_update(gupdate);
- addGraphicChange(ug);
- }
- public void changeLl2(com.bbn.openmap.CSpecialist.LLPoint ll2) {
- ll2_ = ll2;
- RF_update gupdate = new RF_update();
- gupdate.ll2(ll2);
- UpdateGraphic ug = new UpdateGraphic();
- ug.rf_update(gupdate);
- addGraphicChange(ug);
- }
- public void changeP1(com.bbn.openmap.CSpecialist.XYPoint p1) {
- p1_ = p1;
- RF_update gupdate = new RF_update();
- gupdate.p1(p1);
- UpdateGraphic ug = new UpdateGraphic();
- ug.rf_update(gupdate);
- addGraphicChange(ug);
- }
- public void changeP2(com.bbn.openmap.CSpecialist.XYPoint p2) {
- p2_ = p2;
- RF_update gupdate = new RF_update();
- gupdate.p2(p2);
- UpdateGraphic ug = new UpdateGraphic();
- ug.rf_update(gupdate);
- addGraphicChange(ug);
- }
- }