📄 findlackld.java
字号:
package net.aetherial.gis.output.toLd.repeate;
import org.w3c.dom.Node;
import net.aetherial.gis.surface.ItemValue;
import net.aetherial.gis.our.auto.check.repeattrk.TrackRectangle;
import java.util.Vector;
import net.aetherial.gis.publicuse.track.TrackDecussate;
import net.aetherial.gis.publicuse.NodeArrayOper;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2004</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class FindLackLd {
private PartTrack ptFirst = null,ptLast = null;
private Node[] trks = null;
private Node fitNode = null;
private Node fitPointA = null,fitPointB = null;
public FindLackLd() {
}
public void setPtFirst(PartTrack pt) {
this.ptFirst = pt;
}
public void setPtLast(PartTrack pt) {
this.ptLast = pt;
}
public void setTrks(Node[] trks) {
this.trks = trks;
}
public Node getFitNode() {
return fitNode;
}
public Node getFitPointB() {
return fitPointB;
}
public Node getFitPointA() {
return fitPointA;
}
private Node[] getLackNodes(Node[] trks){
return NodeArrayOper.getSameNodes(this.searchPtAllDecussateTrk(this.ptFirst,trks),this.searchPtAllDecussateTrk(this.ptLast,trks));
}
public void getLackNode(){
try {
this.fitNode = this.getLackNodes(trks)[0];
}
catch (Exception ex) {
this.fitNode = null;
}
this.fitPointA = this.getJiaochaPoint(this.fitNode,this.ptFirst);
this.fitPointB = this.getJiaochaPoint(this.fitNode,this.ptLast);
}
// private
private Node getJiaochaPoint(Node fit,PartTrack pt){
if (fit == null) {
return null;
}
TrackDecussate ctd = new TrackDecussate();
ctd.setTrack2(fit);
for (int i = 0; i < pt.getParts().length; i++) {
ctd.setTrack1(pt.getParts()[i]);
if (ctd.isTLink()) {
return ctd.getTLinkTrackPoint();
}else if(ctd.isDecussate()){
return ctd.getDecussateTrackPoint();
}
}
return null;
}
private Node[] searchPtAllDecussateTrk(PartTrack pt,Node[] trks){
Node[] temp = null,temp_ok = null;
for (int i = 0; i < pt.getParts().length; i++) {
temp = this.searchDecussateTrk(pt.getParts()[i],trks);
for (int j = 0; j < temp.length; j++) {
temp_ok = NodeArrayOper.addNodeExceptSame(temp[j],temp_ok);
}
}
return temp_ok;
}
private Node[] searchDecussateTrk(Node currentTrk,Node[] trks){
if (trks == null || currentTrk == null) {
return null;
}else{
TrackRectangle ctr = new TrackRectangle(currentTrk),temp = null;
Vector ve = new Vector();
for (int i = 0; i < trks.length; i++) {
if (currentTrk != trks[i]) {
temp = new TrackRectangle(trks[i]);
if (ctr.isIntersect(temp)) {
ve.add(trks[i]);
}
}
}
Vector vd = new Vector();
TrackDecussate ctd = new TrackDecussate();
ctd.setTrack1(currentTrk);
for (int i = 0; i < ve.size(); i++) {
ctd.setTrack2((Node)ve.get(i));
if (ctd.isTLinkOrXDecussate()) {
vd.add((Node)ve.get(i));
}
}
Node[] tempp = new Node[vd.size()];
for (int i = 0; i < tempp.length; i++) {
tempp[i] = (Node)vd.get(i);
}
return tempp;
}
}
public static void main(String[] args) {
FindLackLd findlackld = new FindLackLd();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -