/* Generated By:JJTree: Do not edit this line. ASTCircle.java */

public class ASTCircle extends SimpleNode 
{
  	/*************************************************
	
					Constructors
		
	*************************************************/
  	
  	public ASTCircle(int id) 
  	{
    	super(id);
  	}

  	public ASTCircle(drawphase2 p, int id) 
  	{
    	super(p, id);
  	}
  	
  	/*************************************************
	
	generates the SVG code for the circle by putting
	co-ords into the ellipse SVG code. Each if statement
	checks the parent for type and set each of the variables
		
	*************************************************/
  
  	public String generateSVG()
  	{
  		String colour="black", temp;
  		int brushSize = 1, offsetX = 0, offsetY = 0;
  		
  		/*************************************************
	
		Checks if parent is null
		
		*************************************************/
  		
  		if(!(jjtGetParent().getParentType() == null))
        {
        
  			if(jjtGetParent().getParentType().equals("brush"))
  			{
  				brushSize = jjtGetParent().getBrush();
  			}
  		
  			if(jjtGetParent().getParentType().equals("colour"))
  			{
  				colour = jjtGetParent().getColour();
  			}
  		
  			if(jjtGetParent().getParentType().equals("offset"))
  			{
  				System.out.println("inside offset");
  				offsetX = jjtGetParent().getOffsetX();
  				offsetY = jjtGetParent().getOffsetY();
  			}
  			
  			/*************************************************
	
			Checks if the parent of the parent is null
		
			*************************************************/
  			
  			if(!(jjtGetParent().jjtGetParent().getParentType() == null))
        	{
  		
  				if(jjtGetParent().jjtGetParent().getParentType().equals("brush"))
  				{
  					brushSize = jjtGetParent().jjtGetParent().getBrush();
  				}
  		
  				if(jjtGetParent().jjtGetParent().getParentType().equals("colour"))
  				{
  					colour = jjtGetParent().jjtGetParent().getColour();
  				}
  		
  				if(jjtGetParent().jjtGetParent().getParentType().equals("offset"))
  				{
  					System.out.println("inside parent offset");
  					offsetX = jjtGetParent().jjtGetParent().getOffsetX();
  					offsetY = jjtGetParent().jjtGetParent().getOffsetY();
  				}
  				
  				/*************************************************
	
				Checks if the parent of the parent of the parent is null
		
				*************************************************/
  				
  				if(!(jjtGetParent().jjtGetParent().jjtGetParent().getParentType() == null))
  				{
  					if(jjtGetParent().jjtGetParent().jjtGetParent().getParentType().equals("brush"))
  					{
  						brushSize = jjtGetParent().jjtGetParent().jjtGetParent().getBrush();
  					}
  		
  					if(jjtGetParent().jjtGetParent().jjtGetParent().getParentType().equals("colour"))
  					{
  						colour = jjtGetParent().jjtGetParent().jjtGetParent().getColour();
  					}
  		
  					if(jjtGetParent().jjtGetParent().jjtGetParent().getParentType().equals("offset"))
  					{	
  						offsetX = jjtGetParent().jjtGetParent().jjtGetParent().getOffsetX();
  						offsetY = jjtGetParent().jjtGetParent().jjtGetParent().getOffsetY();
  					}
  				}
  			}
  		}
  		
  		/*************************************************
	
		Sets the width and height of the circle from the
		child nodes
		
		*************************************************/
  		
  		int width = (((ASTInt) jjtGetChild(2)).val) - (((ASTInt) jjtGetChild(0)).val);
  		int height = (((ASTInt) jjtGetChild(2)).val) - (((ASTInt) jjtGetChild(1)).val);
  		
		temp = ("<ellipse cx=\"" + ((((ASTInt) jjtGetChild(0)).val + offsetX) + (width/2)) +
        	"\" cy=\"" + ((((ASTInt) jjtGetChild(1)).val + offsetY) + (height/2)) + 
            "\" rx=\"" + (width / 2) +
            "\" ry=\"" + (height / 2) + 
            "\" fill=\"none\" stroke=\""+colour+"\" stroke-width=\""+brushSize+"\"/>");

  		return temp;
  	}
  	
  	/*************************************************
	
	Methods required by the Node interface
		
	*************************************************/
  	
  	public void generate()
  	{
  	}
  	
  	public int getBrush()
  	{
  		return 0;
  	}
  	 
  	 public String getColour()
  	{
  		return null;
  	}
  	
  	public String getParentType()
  	{
  		return null;
  	}
  	
  	public int getOffsetX()
  	{
  		return 0;
  	}
  
  	public int getOffsetY()
	{
  		return 0;
  	}
}

