/*
	Autor:			Bernhard Preis
	MatrNr:			0200328
	
	Beschreibung:	Ein Farbwert im RGB-Farbwürfel (Rot, Grün, Blau je 256 Stufen) soll auf einen Farbwürfel mit 147 Farbwerten abgebildet werden. Dazu ist eine Bewertung der 8 Ecken des Teilquaders, in dem der Farbwert liegt, auszugeben.
*/

import java.lang.Math.*;


public class Point3d{
	
	//Koordinaten
	public double m_x,m_y,m_z;
	
	//Konstruktor
	public Point3d(double x, double y, double z){
		setX(x);
		setY(y);
		setZ(z);
	}

	//Konstruktor
	public Point3d(){
		this(0,0,0);
	}

	//Konstruktor
	public Point3d(Point3d otherPoint){
		this(otherPoint.getX(), otherPoint.getY(), otherPoint.getZ());
	}
	
	//subtrahiert zwei Punkte voneinander (Parallelverschiebung eines Vektors).
	public Point3d getDifference(Point3d otherPoint){
		return new Point3d(
			otherPoint.getX()-getX(),
			otherPoint.getY()-getY(),
			otherPoint.getZ()-getZ());
	}
	
	//berechnet den Abstand zwischen zwei Punkten (die Länge des Vektors).
	public double getDistance(Point3d otherPoint){
		Point3d temp = getDifference(otherPoint);
		return Math.sqrt(
			Math.pow(temp.getX(),2)+
			Math.pow(temp.getY(),2)+
			Math.pow(temp.getZ(),2));
	}

	//Wrapper-Funktionen
	public double getX(){
		return m_x;
	}
	public double getY(){
		return m_y;
	}
	public double getZ(){
		return m_z;
	}
	
	public void setX(double x){
		m_x=x;
	}
	public void setY(double y){
		m_y=y;
	}
	public void setZ(double z){
		m_z=z;
	}
	
}