// Copyright 2004 BullMahi LLC.  All rights reserved.

// drawing utilities 

// constants

var XOFFSET_LOCAL = 0;
var YOFFSET_LOCAL = 0;

function init_drawing(xoff,yoff)
{
	//alert("init_drawing " + xoff);
	XOFFSET_LOCAL = xoff;
	YOFFSET_LOCAL = yoff;
}

// point class
function point(x,y)
{
	this.x = x;
	this.y = y;
}

// waypoint class represents a point on a route.
function waypoint(x,y,name)
{
	this.x  = x;
	this.y  = y;
	this.name = name;
}

// inputs are in graphics coord system
function drawArrow(x1,y1,x2,y2)
{
	//draw the line
	jg.drawLine(x1,y1,x2,y2);

	var size = 15;
   	// calculate points for arrowhead
	var theta = Math.PI*15/180;
	var angle=Math.atan2( y2-y1, x2-x1 )+Math.PI;

   	var x3= x2+Math.cos( angle-theta )*size;
   	var y3= y2+Math.sin( angle-theta )*size;

   	var x4=x2+Math.cos( angle+theta )*size;
   	var y4=y2+Math.sin( angle+theta )*size;

	jg.drawLine(x2,y2,x3,y3);
	jg.drawLine(x2,y2,x4,y4);
}

// convert drag and drop to graphics coord
function xToGC(x)
{
	//alert(stacktrace("xToGC"));
	//alert(arguments.length);
	return x - XOFFSET_LOCAL; // + XBORDERWIDTH;
}

function yToGC(y)
{
	return y - YOFFSET_LOCAL; // + YBORDERWIDTH;
}


