Exemple #1
0
void GLEcgCanvas::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);
    painter.begin(this);
    painter.setRenderHint(QPainter::Antialiasing);
    painter.fillRect(event->rect(), QBrush(Qt::white));
    painter.end();

    drawGridLines(10, QColor(255, 192, 192));
    drawGridLines(50, QColor(240, 128, 128));
    drawSignal(QColor(0, 0, 0));
}
void SceneWhiteNote::draw()
{
    ofBackground(255, 255, 255);
    ofSetLineWidth(1);

    
    // draw waves
    ofSetColor(0);
    ofNoFill();
    for (int i = 0; i < NUM_SAMPLES; i++)
    {
        mSamplePointsDrawer->drawWave(mSamples[i], ofRectangle(0, 0, ofGetWidth(), ofGetHeight()));
    }
    
    cameraBegin(); //------------------------ camera begin
    
    //grid lines
    drawGridLines();
    
    // draw points
    ofFill();
    ofSetColor(0);
//    mSamplePointsDrawer->drawCircle(mPts[0], 0.3);
    mSamplePointsDrawer->drawPoints(mPts[0], ofColor(0), 2);

    
//    ofSetColor(255, 0, 0);
//    mSamplePointsDrawer->drawCircle(mPts[1], 0.3);
    
//    mSamplePointsDrawer->drawCircle(mPts[2], 0.3);
    
//    mSamplePointsDrawer->setTo2dMode(BaseScopeManager::TO2D_XZ);
//    mSamplePointsDrawer->set2dDistance(-75);
    
    cameraEnd(); //--------------------------- camera end
    
    //ruler lines
    drawRulerLines();
}
Exemple #3
0
    void
        TerrainGridRenderable::initTerrainGrid(int vertexCount)
    {
        m_locked_data = 0;

        mRenderOp.vertexData = new Ogre::VertexData();
        mRenderOp.indexData = 0;

        mRenderOp.vertexData->vertexCount = mVertexCount;
        mRenderOp.vertexData->vertexStart = 0;

        mRenderOp.operationType = Ogre::RenderOperation::OT_LINE_LIST; 
        mRenderOp.useIndexes = false; 

        Ogre::VertexDeclaration* decl = mRenderOp.vertexData->vertexDeclaration;
        Ogre::VertexBufferBinding* bind = mRenderOp.vertexData->vertexBufferBinding;

        decl->addElement(0, 0, Ogre::VET_FLOAT3, Ogre::VES_POSITION);
        decl->addElement(0, 3*sizeof(Ogre::Real), Ogre::VET_COLOUR, Ogre::VES_DIFFUSE);

        Ogre::HardwareVertexBufferSharedPtr vbuf = 
            Ogre::HardwareBufferManager::getSingleton().createVertexBuffer(
            decl->getVertexSize(0),
            vertexCount,
            Ogre::HardwareBuffer::HBU_WRITE_ONLY);

        bind->setBinding(0, vbuf);

        // set basic white material
        this->setMaterial("BaseWhiteNoLighting");
        mBox.setExtents(-10,-10,-10,10,10,10);

        lock();
        drawGridLines();
        unlock();
        
	//	getMaterial()->setSceneBlending(Ogre::SBT_TRANSPARENT_ALPHA);
        setQueryFlags(0);
    }
Exemple #4
0
    void TerrainGridRenderable::onTerrainHeightChanged(const std::vector<TerrainInfo>& terrainInfo,int minx,int minz,int maxx,int maxz)
    {
		/*minx  = std::max(mXStart,minx);
		minz  = std::max(mZStart,minz);

		maxx  = std::min(maxx,mXEnd);
		maxz  = std::min(maxz,mZEnd);


        lock();

        int lineCount = ((minz-mZStart) * (mZEnd - mZStart) + (minx-mXStart)) ;
        for(int z=minz;z<maxz+1;z++)
        {
            for(int x=minx;x<maxx;x++)
            {
                Ogre::Vector3 startPt = terrData->_getPosition(x,z);
                Ogre::Vector3 endPt = terrData->_getPosition(x+1,z);

                startPt.y +=1;
                endPt.y +=1;

                if(z%10 == 0)
                    mColorValue = colourRed;
                else
                    mColorValue = colourWhite;

                if (z == 2 || z == 62)
                    mColorValue = colourGreen;

                drawLine(startPt,endPt,mColorValue,mColorValue,lineCount++);
            }

            lineCount += (mXEnd - mXStart) - (maxx-minx);
        }

        lineCount = ((minx-mXStart) * (mZEnd - mZStart) + (minz-mZStart)) + (mXEnd - mXStart) * (mZEnd - mZStart+1);
        for(int x=minx;x<maxx+1;x++)
        {
            for(int z=minz;z<maxz;z++)
            {
                Ogre::Vector3 startPt = terrData->_getPosition(x,z);
                Ogre::Vector3 endPt = terrData->_getPosition(x,z+1);

                startPt.y +=1;
                endPt.y +=1;

                if(x%10 == 0)
                    mColorValue = colourRed;
                else
                    mColorValue = colourWhite;

                if (x == 2 || x == 62)
                    mColorValue = colourGreen;

                drawLine(startPt,endPt,mColorValue,mColorValue,lineCount++);
            }

            lineCount += (mZEnd - mZStart) - (maxz-minz);
        }

        unlock();*/
        /**
        hack的代码,临时修改了reshape后地形网格线的bug
        现在是每次改变地形高度都会重新填充整块地形网格线,效率有点低
        */
        lock();
        drawGridLines();
        unlock();
    }