📄 wcsboundingbox.java
字号:
/**
*
*/
package com.esri.solutions.jitk.datasources.ogc.wcs.info;
import com.esri.solutions.jitk.datasources.ogc.wcs.Val;
/**
* @author vlad2928
*
*/
public class WCSBoundingBox {
private double minX;
private double minY;
private double maxX;
private double maxY;
public WCSBoundingBox() {
this.minX = Double.NaN;
this.minY = Double.NaN;
this.maxX = Double.NaN;
this.maxY = Double.NaN;
}
public WCSBoundingBox(double minX, double minY, double maxX, double maxY) {
this.minX = minX;
this.minY = minY;
this.maxX = maxX;
this.maxY = maxY;
}
public WCSBoundingBox(String[] bbox) {
this();
if(bbox != null && bbox.length == 4) {
this.minX = Val.chkDbl(bbox[0], Double.NaN);
this.minY = Val.chkDbl(bbox[1], Double.NaN);
this.maxX = Val.chkDbl(bbox[2], Double.NaN);
this.maxY = Val.chkDbl(bbox[3], Double.NaN);
}
}
public boolean isValid() {
return (this.minX != Double.NaN && this.minY != Double.NaN && this.maxX != Double.NaN && this.maxY != Double.NaN);
}
public void reaspect(int imgWidth, int imgHeight) {
if(isValid()) {
double ratio = (double)imgWidth / (double)imgHeight;
if(ratio < 0.0001) ratio = 0.0001;
double bboxWidth = getWidth();
double bboxHeight = getHeight();
if((bboxWidth / bboxHeight) < ratio) { // stretch x
double bboxCenterX = this.minX + bboxWidth / 2;
double width = (bboxHeight * ratio) / 2;
this.minX = bboxCenterX - width;
this.maxX = bboxCenterX + width;
} else { // stretch y
double bboxCenterY = this.minY + bboxHeight / 2;
double height = (bboxWidth / ratio) / 2;
this.minY = bboxCenterY - height;
this.maxY = bboxCenterY + height;
}
}
}
public double getMinX() {
return this.minX;
}
public void setMinX(double minX) {
this.minX = minX;
}
public double getMinY() {
return this.minY;
}
public void setMinY(double minY) {
this.minY = minY;
}
public double getMaxX() {
return this.maxX;
}
public void setMaxX(double maxX) {
this.maxX = maxX;
}
public double getMaxY() {
return this.maxY;
}
public void setMaxY(double maxY) {
this.maxY = maxY;
}
public double getWidth() {
return this.maxX - this.minX;
}
public double getHeight() {
return this.maxY - this.minY;
}
public String toString() {
return this.minX + "," + this.minY + "," + this.maxX + "," + this.maxY;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -