// Copyright 2000-2003, FreeHEP.
package hep.graphics.heprep.corbavalue;
import hep.graphics.heprep.*;
import hep.graphics.heprep.ref.*;
import hep.graphics.heprep.util.*;
/**
*
* @author Mark Donszelmann
*
* @version $Id: HepRepPointAdapter.java 8584 2006-08-10 23:06:37Z duns $
*/
public class HepRepPointAdapter extends HepRepAttributeAdapter implements HepRepPoint {
private hep.graphics.heprep.corbavalue.idl.HepRepPoint hepRepPoint;
private HepRepInstance instance;
/**
* Create a CORBA wrapper for a Point
* @param hepRepPoint corba point
* @param instance parent instance
*/
public HepRepPointAdapter(hep.graphics.heprep.corbavalue.idl.HepRepPoint hepRepPoint, HepRepInstance instance) {
super(hepRepPoint);
this.hepRepPoint = hepRepPoint;
this.instance = instance;
}
public HepRepPoint copy(HepRepInstance parent) throws CloneNotSupportedException {
HepRepPoint copy = new DefaultHepRepFactory().createHepRepPoint(parent, getX(), getY(), getZ());
HepRepUtil.copyAttributes(this, copy);
return copy;
}
public HepRepInstance getInstance() {
return instance;
}
public HepRepAttValue getAttValue(String lowerCaseName) {
HepRepAttValue attValue = getAttValueFromNode(lowerCaseName);
return (attValue != null) ? attValue : getInstance().getAttValue(lowerCaseName);
}
public double getX() {
return hepRepPoint.x;
}
public double getY() {
return hepRepPoint.y;
}
public double getZ() {
return hepRepPoint.z;
}
public double[] getXYZ(double[] xyz) {
if (xyz == null) xyz = new double[3];
xyz[0] = hepRepPoint.x;
xyz[1] = hepRepPoint.y;
xyz[2] = hepRepPoint.z;
return xyz;
}
public boolean equals(Object o) {
if (!super.equals(o)) return false;
if (o instanceof HepRepPoint) {
// HepRepPoint ref = (HepRepPoint)o;
return true;
// FREEHEP-386
// return (ref.getX() == getX()) && (ref.getY() == getY()) && (ref.getZ() == getZ());
}
return false;
}
public int hashCode() {
long r = Double.doubleToLongBits(getX()) +
Double.doubleToLongBits(getY()) +
Double.doubleToLongBits(getZ());
return (int)r;
}
// Delegated to HepRepMath
public double getRho() {
return HepRepMath.getRho(hepRepPoint.x, hepRepPoint.y);
}
public double getPhi() {
return HepRepMath.getPhi(hepRepPoint.x, hepRepPoint.y);
}
public double getTheta() {
return HepRepMath.getTheta(hepRepPoint.x, hepRepPoint.y, hepRepPoint.z);
}
public double getR() {
return HepRepMath.getR(hepRepPoint.x, hepRepPoint.y, hepRepPoint.z);
}
public double getEta() {
return HepRepMath.getEta(hepRepPoint.x, hepRepPoint.y, hepRepPoint.z);
}
public double getX(double xVertex, double yVertex, double zVertex) {
return HepRepMath.getX(hepRepPoint.x, xVertex);
}
public double getY(double xVertex, double yVertex, double zVertex) {
return HepRepMath.getY(hepRepPoint.y, yVertex);
}
public double getZ(double xVertex, double yVertex, double zVertex) {
return HepRepMath.getZ(hepRepPoint.z, zVertex);
}
public double getRho(double xVertex, double yVertex, double zVertex) {
return HepRepMath.getRho(hepRepPoint.x, hepRepPoint.y, xVertex, yVertex);
}
public double getPhi(double xVertex, double yVertex, double zVertex) {
return HepRepMath.getPhi(hepRepPoint.x, hepRepPoint.y, xVertex, yVertex);
}
public double getTheta(double xVertex, double yVertex, double zVertex) {
return HepRepMath.getTheta(hepRepPoint.x, hepRepPoint.y, hepRepPoint.z, xVertex, yVertex, zVertex);
}
public double getR(double xVertex, double yVertex, double zVertex) {
return HepRepMath.getR(hepRepPoint.x, hepRepPoint.y, hepRepPoint.z, xVertex, yVertex, zVertex);
}
public double getEta(double xVertex, double yVertex, double zVertex) {
return HepRepMath.getEta(hepRepPoint.x, hepRepPoint.y, hepRepPoint.z, xVertex, yVertex, zVertex);
}
}