// Represents a colored, three-dimensional point 	
	
package geometry;	
	
import java.awt.*;	
		
public class Colored3DPoint extends ThreeDimensionalPoint {	
	// instance variable 	
	Color color;	
		
	// Colored3DPoint(): default constructor 	
	public Colored3DPoint() {	
		setColor(Color.BLUE);	
	}	
		
	// Colored3DPoint(): specific constructor 	
	public Colored3DPoint(int a, int b, int c, Color d) {	
		super(a, b, c);	
		setColor(d);	
	}	
		
	// getColor(): color property accessor 	
	public Color getColor() {	
		return color;	
	}	
		
	// setColor(): color property mutator 	
	public void setColor(Color c) {	
		color = c;	
	}	
		
	// clone(): clone facilitator 	
	public Object clone() {	
		int a = (int) getX();	
		int b = (int) getY();	
		int c = (int) getZ();	
		Color d = getColor();	
		return new Colored3DPoint(a, b, c, d);	
	}	
		
	// toString(): string representation facilitator 	
	public String toString() {	
		int a = (int) getX();	
		int b = (int) getY();	
		int c = (int) getZ();	
		Color d = getColor();	
		return getClass() + "[" + a + ", " + b + ", " + c + ", " 	
			+ d + "]";	
	}	
		
	// equals(): equal facilitator 	
	public boolean equals(Object v) {	
		if (v instanceof Colored3DPoint) {	
			Color c1 = getColor();	
			Color c2 = ((Colored3DPoint) v).getColor();	
			return super.equals(v) && c1.equals(c2);	
		}	
		else {	
			return false;	
		}	
	}	
}	
	
