Exemplo n.º 1
0
void wxMultiCellSizer::OnPaint(wxDC& dc )
{
    if (m_win)
    {
        DrawGridLines(dc);
    }
}
void GridLayer::draw()
{
   CCLayer::draw();
#ifdef DRAW_GRID
   DrawGridLines();
#endif
}
Exemplo n.º 3
0
void AxisPlot::DrawDataArea(wxDC &dc, wxRect rcData)
{
	wxRect clipRc = rcData;
	clipRc.Deflate(1, 1);
	wxDCClipper clip(dc, clipRc);

	DrawMarkers(dc, rcData);
	DrawGridLines(dc, rcData);
	DrawDatasets(dc, rcData);
}
Exemplo n.º 4
0
void DrawPattern(int tileindex)
{
    gRect r;
    int colorindex = currindex;
    /*!!!
    Layer* savelayer = NULL;
    viewport* saveview0 = NULL;
    */

    // fill the background with state 0 color
    glClearColor(currlayer->cellr[0]/255.0,
                 currlayer->cellg[0]/255.0,
                 currlayer->cellb[0]/255.0,
                 1.0);
    glClear(GL_COLOR_BUFFER_BIT);

    // if grid is bounded then ensure viewport's central cell is not outside grid edges
    if ( currlayer->algo->gridwd > 0) {
        if ( currlayer->view->x < currlayer->algo->gridleft )
            currlayer->view->setpositionmag(currlayer->algo->gridleft,
                                            currlayer->view->y,
                                            currlayer->view->getmag());
        else if ( currlayer->view->x > currlayer->algo->gridright )
            currlayer->view->setpositionmag(currlayer->algo->gridright,
                                            currlayer->view->y,
                                            currlayer->view->getmag());
    }
    if ( currlayer->algo->gridht > 0) {
        if ( currlayer->view->y < currlayer->algo->gridtop )
            currlayer->view->setpositionmag(currlayer->view->x,
                                            currlayer->algo->gridtop,
                                            currlayer->view->getmag());
        else if ( currlayer->view->y > currlayer->algo->gridbottom )
            currlayer->view->setpositionmag(currlayer->view->x,
                                            currlayer->algo->gridbottom,
                                            currlayer->view->getmag());
    }

    if (nopattupdate) {
        // don't draw incomplete pattern, just draw grid lines and border
        currwd = currlayer->view->getwidth();
        currht = currlayer->view->getheight();
        if ( showgridlines && currlayer->view->getmag() >= mingridmag ) {
            DrawGridLines(currwd, currht);
        }
        if ( currlayer->algo->gridwd > 0 || currlayer->algo->gridht > 0 ) {
            DrawGridBorder(currwd, currht);
        }
        return;
    }

    /*!!!
    if ( numlayers > 1 && tilelayers ) {
        if ( tileindex < 0 ) {
            DrawTileBorders(dc);
            return;
        }
        // tileindex >= 0 so temporarily change some globals to draw this tile
        if ( syncviews && tileindex != currindex ) {
            // make sure this layer uses same location and scale as current layer
            GetLayer(tileindex)->view->setpositionmag(currlayer->view->x,
                                                      currlayer->view->y,
                                                      currlayer->view->getmag());
        }
        savelayer = currlayer;
        currlayer = GetLayer(tileindex);
        viewptr = currlayer->tilewin;
        colorindex = tileindex;
    } else if ( numlayers > 1 && stacklayers ) {
        // draw all layers starting with layer 0 but using current layer's viewport
        savelayer = currlayer;
        if ( currindex != 0 ) {
            // change currlayer to layer 0
            currlayer = GetLayer(0);
            saveview0 = currlayer->view;
            currlayer->view = savelayer->view;
        }
        colorindex = 0;
    }
    */

    if (showicons && currlayer->view->getmag() > 2) {
        // only show icons at scales 1:8 and above
        if (currlayer->view->getmag() == 3) {
            icontextures = currlayer->textures7x7;
        } else if (currlayer->view->getmag() == 4) {
            icontextures = currlayer->textures15x15;
        } else {
            icontextures = currlayer->textures31x31;
        }
    }

    currwd = currlayer->view->getwidth();
    currht = currlayer->view->getheight();

    // draw pattern using a sequence of pixblit calls
    currlayer->algo->draw(*currlayer->view, renderer);

    if ( showgridlines && currlayer->view->getmag() >= mingridmag ) {
        DrawGridLines(currwd, currht);
    }

    // if universe is bounded then draw border regions (if visible)
    if ( currlayer->algo->gridwd > 0 || currlayer->algo->gridht > 0 ) {
        DrawGridBorder(currwd, currht);
    }

    if ( currlayer->currsel.Visible(&r) ) {
        DrawSelection(r, colorindex == currindex);
    }

    /*!!!
    if ( numlayers > 1 && stacklayers ) {
        // must restore currlayer before we call DrawStackedLayers
        currlayer = savelayer;
        if ( saveview0 ) {
            // restore layer 0's viewport
            GetLayer(0)->view = saveview0;
        }
        // draw layers 1, 2, ... numlayers-1
        DrawStackedLayers(dc);
    }
    */

    if (waitingforpaste) {
        DrawPasteImage();
    }

    /*!!!
    if ( numlayers > 1 && tilelayers ) {
        // restore globals changed above
        currlayer = savelayer;
        viewptr = currlayer->tilewin;
    }
    */
}