package swcparts; import java.math.*; public class SwcLine { static private int totalLines; //the same for all instances of SwcLine class private int lineNumber; private int origionalLineNumber; private int lineType; private double lineX; private double lineY; private double lineZ; private double lineRad; private int lineLink; private int numDaughters; private int lineTreeNum; private int lineBranchNum; private double segLength; private double branchLength; private double treeLength; private double eculidianDistanceToSoma; private int stemNumber; private int branchOrder; private int daughter1num; private int daughter2num; private double branchStartRad; private int termDegree; public void seTtermDegree(int tdg) { termDegree = tdg; } public int getTermDegree() { return termDegree; } public void setBranchStartRad(double bsr) { branchStartRad = bsr; } public double getBranchStartRad() { return branchStartRad; } public void setStemNumber(int SN) { stemNumber = SN; } public int getStemNumber() { return stemNumber; } public void setBranchOrder(int BO) { branchOrder = BO; } public int getBranchOrder() { return branchOrder; } public void setDaughter1num(int d1n) { daughter1num = d1n; } public void setDaughter2num(int d2n) { daughter2num = d2n; } public int getDaughter1num() { return daughter1num; } public int getDaughter2num() { return daughter2num; } public void setSegLength(double SL) { segLength = SL; } public void setBranchLength(double BL) { branchLength = BL; } public void setTreeLength(double TL) { treeLength = TL; } public void setEuclidianDistance(double ED) { eculidianDistanceToSoma = ED; } public double getSegLength() { return segLength; } public double getBranchLength() { return branchLength; } public double getTreeLength() { return treeLength; } public double getEuclidianDistance() { return eculidianDistanceToSoma; } public void setLine(int lnum, int ltype, double lx, double ly, double lz, double lRad, int llink) { lineNumber = lnum; lineType = ltype; lineX = lx; lineY = ly; lineZ = lz; lineRad = lRad; lineLink = llink; origionalLineNumber = lnum; } public void setLine(int lnum, int olnum, int ltype, double lx, double ly, double lz, double lRad, int llink) { lineNumber = lnum; origionalLineNumber = olnum; lineType = ltype; lineX = lx; lineY = ly; lineZ = lz; lineRad = lRad; lineLink = llink; } static public void setTotalLines(int ltnum) { totalLines = ltnum; } public void setNumDaughters(int nd) { numDaughters = nd; } public void setLineTreeNum(int ltn) { lineTreeNum = ltn; } public void setLineBranchNum(int lbn) { lineBranchNum = lbn; } public void setLineNum(int ln) { lineNumber = ln; } public void setLineType(int lt) { lineType = lt; } public void setLineX(double lx) { lineX = lx; } public void setLineY(double ly) { lineY = ly; } public void setLineZ(double lz) { lineZ = lz; } public void setLineRadius(double ld) { lineRad = ld; } public void setLineLink(int ll) { lineLink = ll; } public void setOrigionalLineNum(int oln) { origionalLineNumber = oln; } static public int getTotalLines() { return totalLines; } public int getLineNumber() { return lineNumber; } public int getLineType() { return lineType; } public double getLineX() { return lineX; } public double getLineY() { return lineY; } public double getLineZ() { return lineZ; } public double getLineRad() { return lineRad; } public int getLineLink() { return lineLink; } public int getNumDaughters() { return numDaughters; } public int getLineTreeNum() { return lineTreeNum; } public int getLineBranchNum() { return lineBranchNum; } public int getOrigionalLineNum() { return origionalLineNumber; } public double getDistance(SwcLine l1) { if ( ( (this.lineX - l1.lineX) * (this.lineX - l1.lineX)) + ( (this.lineY - l1.lineY) * (this.lineY - l1.lineY)) + ( (this.lineZ - l1.lineZ) * (this.lineZ - l1.lineZ)) == 0) { return 0; } else { return Math.sqrt( ( (this.lineX - l1.lineX) * (this.lineX - l1.lineX)) + ( (this.lineY - l1.lineY) * (this.lineY - l1.lineY)) + ( (this.lineZ - l1.lineZ) * (this.lineZ - l1.lineZ))); } } }