<<<<<<< HEAD
/*
Copyright (C) 2011 ApPeAL Group, Politecnico di Torino
This file is part of TraCI4J.
TraCI4J is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
TraCI4J is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
*/
package it.polito.appeal.traci.protocol;
import it.polito.appeal.traci.TraCIException;
import java.awt.Rectangle;
import java.awt.geom.AffineTransform;
import java.awt.geom.Dimension2D;
import java.awt.geom.Line2D;
import java.awt.geom.PathIterator;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import de.uniluebeck.itm.tcpip.Storage;
public class BoundingBox extends Rectangle2D {
private final Rectangle2D.Double rect;
public BoundingBox(Storage storage, boolean verifyType) throws TraCIException {
if (verifyType) {
if (storage.readByte() != Constants.TYPE_BOUNDINGBOX)
throw new TraCIException("bounding box expected");
}
double llX = storage.readDouble();
double llY = storage.readDouble();
double urX = storage.readDouble();
double urY = storage.readDouble();
rect = new Rectangle2D.Double(llX, llY, urX - llX, urY - llY);
}
public void writeTo(Storage out) {
out.writeByte(Constants.TYPE_BOUNDINGBOX);
out.writeDouble(rect.x);
out.writeDouble(rect.y);
out.writeDouble(rect.x + rect.width);
out.writeDouble(rect.y + rect.height);
}
/**
* @param newx
* @param newy
* @see java.awt.geom.Rectangle2D#add(double, double)
*/
public void add(double newx, double newy) {
rect.add(newx, newy);
}
/**
* @param pt
* @see java.awt.geom.Rectangle2D#add(java.awt.geom.Point2D)
*/
public void add(Point2D pt) {
rect.add(pt);
}
/**
* @param r
* @see java.awt.geom.Rectangle2D#add(java.awt.geom.Rectangle2D)
*/
public void add(Rectangle2D r) {
rect.add(r);
}
/**
* @see java.awt.geom.RectangularShape#clone()
*/
public Object clone() {
return rect.clone();
}
/**
* @param x
* @param y
* @param w
* @param h
* @see java.awt.geom.Rectangle2D#contains(double, double, double, double)
*/
public boolean contains(double x, double y, double w, double h) {
return rect.contains(x, y, w, h);
}
/**
* @param x
* @param y
* @see java.awt.geom.Rectangle2D#contains(double, double)
*/
public boolean contains(double x, double y) {
return rect.contains(x, y);
}
/**
* @param arg0
* @see java.awt.geom.RectangularShape#contains(java.awt.geom.Point2D)
*/
public boolean contains(Point2D arg0) {
return rect.contains(arg0);
}
/**
* @param arg0
* @see java.awt.geom.RectangularShape#contains(java.awt.geom.Rectangle2D)
*/
public boolean contains(Rectangle2D arg0) {
return rect.contains(arg0);
}
/**
* @param r
* @see java.awt.geom.Rectangle2D#createIntersection(java.awt.geom.Rectangle2D)
*/
public Rectangle2D createIntersection(Rectangle2D r) {
return rect.createIntersection(r);
}
/**
* @param r
* @see java.awt.geom.Rectangle2D#createUnion(java.awt.geom.Rectangle2D)
*/
public Rectangle2D createUnion(Rectangle2D r) {
return rect.createUnion(r);
}
/**
* @param obj
* @see java.awt.geom.Rectangle2D#equals(java.lang.Object)
*/
public boolean equals(Object obj) {
return rect.equals(obj);
}
/**
* @see java.awt.geom.RectangularShape#getBounds()
*/
public Rectangle getBounds() {
return rect.getBounds();
}
/**
* @see java.awt.geom.Rectangle2D#getBounds2D()
*/
public Rectangle2D getBounds2D() {
return rect.getBounds2D();
}
/**
* @see java.awt.geom.RectangularShape#getCenterX()
*/
public double getCenterX() {
return rect.getCenterX();
}
/**
* @see java.awt.geom.RectangularShape#getCenterY()
*/
public double getCenterY() {
return rect.getCenterY();
}
/**
* @see java.awt.geom.RectangularShape#getFrame()
*/
public Rectangle2D getFrame() {
return rect.getFrame();
}
/**
* @see java.awt.geom.RectangularShape#getHeight()
*/
public double getHeight() {
return rect.getHeight();
}
/**
* @see java.awt.geom.RectangularShape#getMaxX()
*/
public double getMaxX() {
return rect.getMaxX();
}
/**
* @see java.awt.geom.RectangularShape#getMaxY()
*/
public double getMaxY() {
return rect.getMaxY();
}
/**
* @see java.awt.geom.RectangularShape#getMinX()
*/
public double getMinX() {
return rect.getMinX();
}
/**
* @see java.awt.geom.RectangularShape#getMinY()
*/
public double getMinY() {
return rect.getMinY();
}
/**
* @param at
* @param flatness
* @see java.awt.geom.Rectangle2D#getPathIterator(java.awt.geom.AffineTransform, double)
*/
public PathIterator getPathIterator(AffineTransform at, double flatness) {
return rect.getPathIterator(at, flatness);
}
/**
* @param at
* @see java.awt.geom.Rectangle2D#getPathIterator(java.awt.geom.AffineTransform)
*/
public PathIterator getPathIterator(AffineTransform at) {
return rect.getPathIterator(at);
}
/**
* @see java.awt.geom.RectangularShape#getWidth()
*/
public double getWidth() {
return rect.getWidth();
}
/**
* @see java.awt.geom.RectangularShape#getX()
*/
public double getX() {
return rect.getX();
}
/**
* @see java.awt.geom.RectangularShape#getY()
*/
public double getY() {
return rect.getY();
}
/**
* @see java.awt.geom.Rectangle2D#hashCode()
*/
public int hashCode() {
return rect.hashCode();
}
/**
* @param x
* @param y
* @param w
* @param h
* @see java.awt.geom.Rectangle2D#intersects(double, double, double, double)
*/
public boolean intersects(double x, double y, double w, double h) {
return rect.intersects(x, y, w, h);
}
/**
* @param arg0
* @see java.awt.geom.RectangularShape#intersects(java.awt.geom.Rectangle2D)
*/
public boolean intersects(Rectangle2D arg0) {
return rect.intersects(arg0);
}
/**
* @param x1
* @param y1
* @param x2
* @param y2
* @see java.awt.geom.Rectangle2D#intersectsLine(double, double, double, double)
*/
public boolean intersectsLine(double x1, double y1, double x2, double y2) {
return rect.intersectsLine(x1, y1, x2, y2);
}
/**
* @param l
* @see java.awt.geom.Rectangle2D#intersectsLine(java.awt.geom.Line2D)
*/
public boolean intersectsLine(Line2D l) {
return rect.intersectsLine(l);
}
/**
* @see java.awt.geom.RectangularShape#isEmpty()
*/
public boolean isEmpty() {
return rect.isEmpty();
}
/**
* @param x
* @param y
* @see java.awt.geom.Rectangle2D#outcode(double, double)
*/
public int outcode(double x, double y) {
return rect.outcode(x, y);
}
/**
* @param p
* @see java.awt.geom.Rectangle2D#outcode(java.awt.geom.Point2D)
*/
public int outcode(Point2D p) {
return rect.outcode(p);
}
/**
* @param x
* @param y
* @param w
* @param h
* @see java.awt.geom.Rectangle2D#setFrame(double, double, double, double)
*/
public void setFrame(double x, double y, double w, double h) {
rect.setFrame(x, y, w, h);
}
/**
* @param arg0
* @param arg1
* @see java.awt.geom.RectangularShape#setFrame(java.awt.geom.Point2D, java.awt.geom.Dimension2D)
*/
public void setFrame(Point2D arg0, Dimension2D arg1) {
rect.setFrame(arg0, arg1);
}
/**
* @param arg0
* @see java.awt.geom.RectangularShape#setFrame(java.awt.geom.Rectangle2D)
*/
public void setFrame(Rectangle2D arg0) {
rect.setFrame(arg0);
}
/**
* @param arg0
* @param arg1
* @param arg2
* @param arg3
* @see java.awt.geom.RectangularShape#setFrameFromCenter(double, double, double, double)
*/
public void setFrameFromCenter(double arg0, double arg1, double arg2,
double arg3) {
rect.setFrameFromCenter(arg0, arg1, arg2, arg3);
}
/**
* @param arg0
* @param arg1
* @see java.awt.geom.RectangularShape#setFrameFromCenter(java.awt.geom.Point2D, java.awt.geom.Point2D)
*/
public void setFrameFromCenter(Point2D arg0, Point2D arg1) {
rect.setFrameFromCenter(arg0, arg1);
}
/**
* @param arg0
* @param arg1
* @param arg2
* @param arg3
* @see java.awt.geom.RectangularShape#setFrameFromDiagonal(double, double, double, double)
*/
public void setFrameFromDiagonal(double arg0, double arg1, double arg2,
double arg3) {
rect.setFrameFromDiagonal(arg0, arg1, arg2, arg3);
}
/**
* @param arg0
* @param arg1
* @see java.awt.geom.RectangularShape#setFrameFromDiagonal(java.awt.geom.Point2D, java.awt.geom.Point2D)
*/
public void setFrameFromDiagonal(Point2D arg0, Point2D arg1) {
rect.setFrameFromDiagonal(arg0, arg1);
}
/**
* @param x
* @param y
* @param w
* @param h
* @see java.awt.geom.Rectangle2D#setRect(double, double, double, double)
*/
public void setRect(double x, double y, double w, double h) {
rect.setRect(x, y, w, h);
}
/**
* @param r
* @see java.awt.geom.Rectangle2D#setRect(java.awt.geom.Rectangle2D)
*/
public void setRect(Rectangle2D r) {
rect.setRect(r);
}
/**
* @see java.lang.Object#toString()
*/
public String toString() {
return rect.toString();
}
}
=======
/*
Copyright (C) 2011 ApPeAL Group, Politecnico di Torino
This file is part of TraCI4J.
TraCI4J is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
TraCI4J is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with TraCI4J. If not, see <http://www.gnu.org/licenses/>.
*/
package it.polito.appeal.traci.protocol;
import it.polito.appeal.traci.TraCIException;
import java.awt.Rectangle;
import java.awt.geom.AffineTransform;
import java.awt.geom.Dimension2D;
import java.awt.geom.Line2D;
import java.awt.geom.PathIterator;
import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import de.uniluebeck.itm.tcpip.Storage;
public class BoundingBox extends Rectangle2D {
private final Rectangle2D.Double rect;
public BoundingBox(Storage storage, boolean verifyType) throws TraCIException {
if (verifyType) {
if (storage.readByte() != Constants.TYPE_BOUNDINGBOX)
throw new TraCIException("bounding box expected");
}
double llX = storage.readDouble();
double llY = storage.readDouble();
double urX = storage.readDouble();
double urY = storage.readDouble();
rect = new Rectangle2D.Double(llX, llY, urX - llX, urY - llY);
}
public void writeTo(Storage out) {
out.writeByte(Constants.TYPE_BOUNDINGBOX);
out.writeDouble(rect.x);
out.writeDouble(rect.y);
out.writeDouble(rect.x + rect.width);
out.writeDouble(rect.y + rect.height);
}
/**
* @param newx
* @param newy
* @see java.awt.geom.Rectangle2D#add(double, double)
*/
public void add(double newx, double newy) {
rect.add(newx, newy);
}
/**
* @param pt
* @see java.awt.geom.Rectangle2D#add(java.awt.geom.Point2D)
*/
public void add(Point2D pt) {
rect.add(pt);
}
/**
* @param r
* @see java.awt.geom.Rectangle2D#add(java.awt.geom.Rectangle2D)
*/
public void add(Rectangle2D r) {
rect.add(r);
}
/**
* @see java.awt.geom.RectangularShape#clone()
*/
public Object clone() {
return rect.clone();
}
/**
* @param x
* @param y
* @param w
* @param h
* @see java.awt.geom.Rectangle2D#contains(double, double, double, double)
*/
public boolean contains(double x, double y, double w, double h) {
return rect.contains(x, y, w, h);
}
/**
* @param x
* @param y
* @see java.awt.geom.Rectangle2D#contains(double, double)
*/
public boolean contains(double x, double y) {
return rect.contains(x, y);
}
/**
* @param arg0
* @see java.awt.geom.RectangularShape#contains(java.awt.geom.Point2D)
*/
public boolean contains(Point2D arg0) {
return rect.contains(arg0);
}
/**
* @param arg0
* @see java.awt.geom.RectangularShape#contains(java.awt.geom.Rectangle2D)
*/
public boolean contains(Rectangle2D arg0) {
return rect.contains(arg0);
}
/**
* @param r
* @see java.awt.geom.Rectangle2D#createIntersection(java.awt.geom.Rectangle2D)
*/
public Rectangle2D createIntersection(Rectangle2D r) {
return rect.createIntersection(r);
}
/**
* @param r
* @see java.awt.geom.Rectangle2D#createUnion(java.awt.geom.Rectangle2D)
*/
public Rectangle2D createUnion(Rectangle2D r) {
return rect.createUnion(r);
}
/**
* @param obj
* @see java.awt.geom.Rectangle2D#equals(java.lang.Object)
*/
public boolean equals(Object obj) {
return rect.equals(obj);
}
/**
* @see java.awt.geom.RectangularShape#getBounds()
*/
public Rectangle getBounds() {
return rect.getBounds();
}
/**
* @see java.awt.geom.Rectangle2D#getBounds2D()
*/
public Rectangle2D getBounds2D() {
return rect.getBounds2D();
}
/**
* @see java.awt.geom.RectangularShape#getCenterX()
*/
public double getCenterX() {
return rect.getCenterX();
}
/**
* @see java.awt.geom.RectangularShape#getCenterY()
*/
public double getCenterY() {
return rect.getCenterY();
}
/**
* @see java.awt.geom.RectangularShape#getFrame()
*/
public Rectangle2D getFrame() {
return rect.getFrame();
}
/**
* @see java.awt.geom.RectangularShape#getHeight()
*/
public double getHeight() {
return rect.getHeight();
}
/**
* @see java.awt.geom.RectangularShape#getMaxX()
*/
public double getMaxX() {
return rect.getMaxX();
}
/**
* @see java.awt.geom.RectangularShape#getMaxY()
*/
public double getMaxY() {
return rect.getMaxY();
}
/**
* @see java.awt.geom.RectangularShape#getMinX()
*/
public double getMinX() {
return rect.getMinX();
}
/**
* @see java.awt.geom.RectangularShape#getMinY()
*/
public double getMinY() {
return rect.getMinY();
}
/**
* @param at
* @param flatness
* @see java.awt.geom.Rectangle2D#getPathIterator(java.awt.geom.AffineTransform, double)
*/
public PathIterator getPathIterator(AffineTransform at, double flatness) {
return rect.getPathIterator(at, flatness);
}
/**
* @param at
* @see java.awt.geom.Rectangle2D#getPathIterator(java.awt.geom.AffineTransform)
*/
public PathIterator getPathIterator(AffineTransform at) {
return rect.getPathIterator(at);
}
/**
* @see java.awt.geom.RectangularShape#getWidth()
*/
public double getWidth() {
return rect.getWidth();
}
/**
* @see java.awt.geom.RectangularShape#getX()
*/
public double getX() {
return rect.getX();
}
/**
* @see java.awt.geom.RectangularShape#getY()
*/
public double getY() {
return rect.getY();
}
/**
* @see java.awt.geom.Rectangle2D#hashCode()
*/
public int hashCode() {
return rect.hashCode();
}
/**
* @param x
* @param y
* @param w
* @param h
* @see java.awt.geom.Rectangle2D#intersects(double, double, double, double)
*/
public boolean intersects(double x, double y, double w, double h) {
return rect.intersects(x, y, w, h);
}
/**
* @param arg0
* @see java.awt.geom.RectangularShape#intersects(java.awt.geom.Rectangle2D)
*/
public boolean intersects(Rectangle2D arg0) {
return rect.intersects(arg0);
}
/**
* @param x1
* @param y1
* @param x2
* @param y2
* @see java.awt.geom.Rectangle2D#intersectsLine(double, double, double, double)
*/
public boolean intersectsLine(double x1, double y1, double x2, double y2) {
return rect.intersectsLine(x1, y1, x2, y2);
}
/**
* @param l
* @see java.awt.geom.Rectangle2D#intersectsLine(java.awt.geom.Line2D)
*/
public boolean intersectsLine(Line2D l) {
return rect.intersectsLine(l);
}
/**
* @see java.awt.geom.RectangularShape#isEmpty()
*/
public boolean isEmpty() {
return rect.isEmpty();
}
/**
* @param x
* @param y
* @see java.awt.geom.Rectangle2D#outcode(double, double)
*/
public int outcode(double x, double y) {
return rect.outcode(x, y);
}
/**
* @param p
* @see java.awt.geom.Rectangle2D#outcode(java.awt.geom.Point2D)
*/
public int outcode(Point2D p) {
return rect.outcode(p);
}
/**
* @param x
* @param y
* @param w
* @param h
* @see java.awt.geom.Rectangle2D#setFrame(double, double, double, double)
*/
public void setFrame(double x, double y, double w, double h) {
rect.setFrame(x, y, w, h);
}
/**
* @param arg0
* @param arg1
* @see java.awt.geom.RectangularShape#setFrame(java.awt.geom.Point2D, java.awt.geom.Dimension2D)
*/
public void setFrame(Point2D arg0, Dimension2D arg1) {
rect.setFrame(arg0, arg1);
}
/**
* @param arg0
* @see java.awt.geom.RectangularShape#setFrame(java.awt.geom.Rectangle2D)
*/
public void setFrame(Rectangle2D arg0) {
rect.setFrame(arg0);
}
/**
* @param arg0
* @param arg1
* @param arg2
* @param arg3
* @see java.awt.geom.RectangularShape#setFrameFromCenter(double, double, double, double)
*/
public void setFrameFromCenter(double arg0, double arg1, double arg2,
double arg3) {
rect.setFrameFromCenter(arg0, arg1, arg2, arg3);
}
/**
* @param arg0
* @param arg1
* @see java.awt.geom.RectangularShape#setFrameFromCenter(java.awt.geom.Point2D, java.awt.geom.Point2D)
*/
public void setFrameFromCenter(Point2D arg0, Point2D arg1) {
rect.setFrameFromCenter(arg0, arg1);
}
/**
* @param arg0
* @param arg1
* @param arg2
* @param arg3
* @see java.awt.geom.RectangularShape#setFrameFromDiagonal(double, double, double, double)
*/
public void setFrameFromDiagonal(double arg0, double arg1, double arg2,
double arg3) {
rect.setFrameFromDiagonal(arg0, arg1, arg2, arg3);
}
/**
* @param arg0
* @param arg1
* @see java.awt.geom.RectangularShape#setFrameFromDiagonal(java.awt.geom.Point2D, java.awt.geom.Point2D)
*/
public void setFrameFromDiagonal(Point2D arg0, Point2D arg1) {
rect.setFrameFromDiagonal(arg0, arg1);
}
/**
* @param x
* @param y
* @param w
* @param h
* @see java.awt.geom.Rectangle2D#setRect(double, double, double, double)
*/
public void setRect(double x, double y, double w, double h) {
rect.setRect(x, y, w, h);
}
/**
* @param r
* @see java.awt.geom.Rectangle2D#setRect(java.awt.geom.Rectangle2D)
*/
public void setRect(Rectangle2D r) {
rect.setRect(r);
}
/**
* @see java.lang.Object#toString()
*/
public String toString() {
return rect.toString();
}
}
>>>>>>> origin/abdalla