Ejemplo n.º 1
0
    protected void rptrTests_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
    {

        if ((e.Item.ItemType != ListItemType.Item) & (e.Item.ItemType != ListItemType.AlternatingItem))
        {
            return;
        }

        // ----------

        SingleTest singleTest = (SingleTest)e.Item.DataItem;

        // ---------------------------
        // Show the rectangles to be placed

        Literal ltHeading = (Literal)(e.Item.FindControl("ltHeading"));
        ltHeading.Text = singleTest.Heading;

        GridView gvRectangleDimensions = (GridView)(e.Item.FindControl("gvRectangleDimensions"));

        var imageInfosHighestFirst =
            singleTest.ImageInfos.OrderByDescending(p => p.Height);

        gvRectangleDimensions.DataSource = imageInfosHighestFirst;
        gvRectangleDimensions.DataBind();

        // -----------------
        // Place the rectangles on a canvas. The canvas will produce images of each stage.

        MapperOptimalEfficiency_AdditionalStats<Sprite> mapper = 
            new MapperOptimalEfficiency_AdditionalStats<Sprite>(_canvas, _cutoffEfficiency, _maximumNbrCandidates);

        DetailedSingleTestStats stats = mapper.GetMappingStats(singleTest.ImageInfos);

        // Show the results

        Literal ltFinalWidth = (Literal)(e.Item.FindControl("ltFinalWidth"));
        ltFinalWidth.Text = stats.FinalSprite.Width.ToString();

        Literal ltFinalHeight = (Literal)(e.Item.FindControl("ltFinalHeight"));
        ltFinalHeight.Text = stats.FinalSprite.Height.ToString();

        Literal ltFinalArea = (Literal)(e.Item.FindControl("ltFinalArea"));
        ltFinalArea.Text = stats.FinalSprite.Area.ToString("N0");

        Literal ltFinalEfficiency = (Literal)(e.Item.FindControl("ltFinalEfficiency"));
        ltFinalEfficiency.Text = stats.Efficiency.ToString("p");

        GridView gvSpriteImageOffsets = (GridView)(e.Item.FindControl("gvSpriteImageOffsets"));
        gvSpriteImageOffsets.DataSource = stats.FinalSprite.MappedImages;
        gvSpriteImageOffsets.DataBind();

        System.Web.UI.WebControls.Image imgSprite = (System.Web.UI.WebControls.Image)(e.Item.FindControl("imgSprite"));
        imgSprite.ImageUrl = _canvas.SpriteToImage(stats.FinalSprite);

        var EnhancedIterations =
            from s in stats.Iterations
            select new { 
                Result = s.Result,
                MaxCanvasWidth = s.MaxCanvasWidth == _canvas.UnlimitedSize ? "infinite" : s.MaxCanvasWidth.ToString(),
                MaxCanvasHeight = s.MaxCanvasHeight,
                MaxCanvasArea = s.MaxCanvasWidth == _canvas.UnlimitedSize ? "infinite" : (s.MaxCanvasWidth * s.MaxCanvasHeight).ToString("N0"),
                IntermediateSpriteWidth = s.IntermediateSpriteWidth,
                IntermediateSpriteHeight = s.IntermediateSpriteHeight,
                IntermediateSpriteArea = s.IntermediateSpriteWidth * s.IntermediateSpriteHeight,
                IntermediateSpriteEfficiency = TestUtils.Efficiency(s.IntermediateSpriteWidth, s.IntermediateSpriteHeight, stats.TotalAreaAllImages),
                ImageDetails = s.ImageDetails
            };

        Repeater rptrIterations = (Repeater)(e.Item.FindControl("rptrIterations"));
        rptrIterations.DataSource = EnhancedIterations;
        rptrIterations.DataBind();
    }
Ejemplo n.º 2
0
    protected void rptrTests_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
    {
        if ((e.Item.ItemType != ListItemType.Item) & (e.Item.ItemType != ListItemType.AlternatingItem))
        {
            return;
        }

        // ----------

        SingleTest singleTest = (SingleTest)e.Item.DataItem;

        // ---------------------------
        // Show the rectangles to be placed

        Literal ltHeading = (Literal)(e.Item.FindControl("ltHeading"));

        ltHeading.Text = singleTest.Heading;

        GridView gvRectangleDimensions = (GridView)(e.Item.FindControl("gvRectangleDimensions"));

        var imageInfosHighestFirst =
            singleTest.ImageInfos.OrderByDescending(p => p.Height);

        gvRectangleDimensions.DataSource = imageInfosHighestFirst;
        gvRectangleDimensions.DataBind();

        // -----------------
        // Place the rectangles on a canvas. The canvas will produce images of each stage.

        MapperOptimalEfficiency_AdditionalStats <Sprite> mapper =
            new MapperOptimalEfficiency_AdditionalStats <Sprite>(_canvas, _cutoffEfficiency, _maximumNbrCandidates);

        DetailedSingleTestStats stats = mapper.GetMappingStats(singleTest.ImageInfos);

        // Show the results

        Literal ltFinalWidth = (Literal)(e.Item.FindControl("ltFinalWidth"));

        ltFinalWidth.Text = stats.FinalSprite.Width.ToString();

        Literal ltFinalHeight = (Literal)(e.Item.FindControl("ltFinalHeight"));

        ltFinalHeight.Text = stats.FinalSprite.Height.ToString();

        Literal ltFinalArea = (Literal)(e.Item.FindControl("ltFinalArea"));

        ltFinalArea.Text = stats.FinalSprite.Area.ToString("N0");

        Literal ltFinalEfficiency = (Literal)(e.Item.FindControl("ltFinalEfficiency"));

        ltFinalEfficiency.Text = stats.Efficiency.ToString("p");

        GridView gvSpriteImageOffsets = (GridView)(e.Item.FindControl("gvSpriteImageOffsets"));

        gvSpriteImageOffsets.DataSource = stats.FinalSprite.MappedImages;
        gvSpriteImageOffsets.DataBind();

        System.Web.UI.WebControls.Image imgSprite = (System.Web.UI.WebControls.Image)(e.Item.FindControl("imgSprite"));
        imgSprite.ImageUrl = _canvas.SpriteToImage(stats.FinalSprite);

        var EnhancedIterations =
            from s in stats.Iterations
            select new {
            Result                       = s.Result,
            MaxCanvasWidth               = s.MaxCanvasWidth == _canvas.UnlimitedSize ? "infinite" : s.MaxCanvasWidth.ToString(),
            MaxCanvasHeight              = s.MaxCanvasHeight,
            MaxCanvasArea                = s.MaxCanvasWidth == _canvas.UnlimitedSize ? "infinite" : (s.MaxCanvasWidth * s.MaxCanvasHeight).ToString("N0"),
            IntermediateSpriteWidth      = s.IntermediateSpriteWidth,
            IntermediateSpriteHeight     = s.IntermediateSpriteHeight,
            IntermediateSpriteArea       = s.IntermediateSpriteWidth * s.IntermediateSpriteHeight,
            IntermediateSpriteEfficiency = TestUtils.Efficiency(s.IntermediateSpriteWidth, s.IntermediateSpriteHeight, stats.TotalAreaAllImages),
            ImageDetails                 = s.ImageDetails
        };

        Repeater rptrIterations = (Repeater)(e.Item.FindControl("rptrIterations"));

        rptrIterations.DataSource = EnhancedIterations;
        rptrIterations.DataBind();
    }