public Vector3 getCenter()
{
float xshift = (float)Math.Cos(Math.PI / (double)6) * radius+spacing;
float yshift = (float)Math.Sin(Math.PI / (double)6) * radius+spacing;
return new Vector3( (this.x * xshift * 2) + (xshift*this.y) , (yshift + radius) * this.y, 1);
}
public void SetGhost(Hex3D target) { //Console.WriteLine("setting ghost"); double x = target.getCenter().X - hex.getCenter().X; double y = hex.getCenter().Y - target.getCenter().Y; targetangle = Math.Atan(x / y); //Console.WriteLine(" x " + x); //Console.WriteLine(" y " + y); if (y < 0) targetangle = targetangle + Math.PI; //Console.WriteLine("angle -> " + targetangle); if (ghosthex != null) ghosthex.SetGhostObject(null); ghosthex = target; target.SetGhostObject(this); if (this.hex.hexgrid == ghosthex.hexgrid) { //Console.WriteLine("creating new linemodel"); line = new LineModel(getCenter(), ghosthex.getCenter()); } }