public override BehaviourResult Clicked(RayMeshGeometry3DHitTestResult rayMeshResult, BoardVisual board)
        {
            Road side = rayMeshResult.VisualHit as Road;
            if (side != null)
            {
                List<BuildPointVisual> x = new List<BuildPointVisual>();
                foreach (BuildPointVisual bpv in board.Children.OfType<BuildPointVisual>())
                    x.Add(bpv);
                foreach (BuildPointVisual bp in x)
                    board.Children.Remove(bp);

                BuildPointVisual bpv1 = new BuildPointVisual(board.CalculatePosition(side.Location.HexPoint1), side.Location.HexPoint1);
                BuildPointVisual bpv2 = new BuildPointVisual(board.CalculatePosition(side.Location.HexPoint2), side.Location.HexPoint2);
                board.Children.Add(bpv1);
                board.Children.Add(bpv2);
            }
            return BehaviourResult.NoSuccess;
        }
 public override void Moved(RayMeshGeometry3DHitTestResult rayMeshResult, BoardVisual board)
 {
     BuildPointVisual buildPoint = rayMeshResult.VisualHit as BuildPointVisual;
     if (buildPoint != null)
     {
         buildPoint.Scale.ScaleX = 2;
         buildPoint.Scale.ScaleY = 2;
         buildPoint.Scale.ScaleZ = 2;
         _OldBuildPoint = buildPoint;
     }
     else
     {
         if (_OldBuildPoint != null)
         {
             _OldBuildPoint.Scale.ScaleX = 1;
             _OldBuildPoint.Scale.ScaleY = 1;
             _OldBuildPoint.Scale.ScaleZ = 1;
         }
     }
 }