Changeset 408 for experimental


Ignore:
Timestamp:
Aug 6, 2012, 10:59:23 PM (12 years ago)
Author:
Torben Dannhauer
Message:
 
Location:
experimental/distortionNG
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • experimental/distortionNG/DistortionManipulator.cpp

    r407 r408  
    310310       
    311311        _distortionSet->setDistortionMeshDimensions(2, 2, true);        // Reset dimensions and coordinates/texcoords & rebuild mesh data
    312         updateDistortionMesh(); // Rebuild OSG Mesh (drawable)
     312        _distortionSet->dirtyMesh();
     313       
    313314        // Restore ProjectionMatrix
    314        
    315         // Set up projection Matrix as it is done in View::setUpViewOnSingleScreen(
    316         double fovy, aspectRatio, zNear, zFar;
    317         _camera->getProjectionMatrixAsPerspective(fovy, aspectRatio, zNear, zFar);
    318 
    319         double newAspectRatio = double(_distortionSet->intensityMap()->width) / double(_distortionSet->intensityMap()->height);
     315        // Set up basic projection Matrix
     316        double fovy = 30., aspectRatio = 1., zNear = 1., zFar = 1000.;
     317        _distortionSet->getProjectionOffset().makePerspective( fovy, aspectRatio, zNear, zFar );
     318
     319        double newAspectRatio = double(_distortionSet->getIntensityMap()->s()) / double(_distortionSet->getIntensityMap()->t());
    320320        double aspectRatioChange = newAspectRatio / aspectRatio;
    321321        if (aspectRatioChange != 1.0)
    322322        {
    323                 _camera->getProjectionMatrix() *= osg::Matrix::scale(1.0/aspectRatioChange,1.0,1.0);
    324         }
    325 
    326 
     323                _distortionSet->getProjectionOffset() *= osg::Matrix::scale(1.0/aspectRatioChange,1.0,1.0);
     324        }
     325
     326        _distortionSet->dirtyMatrix();
    327327}
    328328
     
    547547        {
    548548
    549 #if 1
     549#if 0
    550550                /*******************************************/
    551551                /***   ViewMatrix-Testcase  "Garching"   ***/
    552552                /*******************************************/
    553553
    554                 osg::Matrixd viewOffset, transViewOffset, rotViewOffset;
     554                osg::Matrixd viewMatrix, transView, rotView;
    555555               
    556                 rotViewOffset.makeRotate(
     556                rotView.makeRotate(
    557557                        osg::DegreesToRadians(-130.0), osg::Vec3(0,1,0),                // heading
    558558                        osg::DegreesToRadians(0.0), osg::Vec3(-1,0,0),  // pitch
    559559                        osg::DegreesToRadians(-80.0), osg::Vec3(0,0,1));        // roll
    560560
    561                 transViewOffset.makeTranslate(-4169457.75*0.99975, -860009.06*0.99975, -4737192.00*0.99975);
    562                 viewOffset = transViewOffset * rotViewOffset;
     561                transView.makeTranslate(-4169457.75*0.99975, -860009.06*0.99975, -4737192.00*0.99975);
     562                viewMatrix = transView * rotView;
     563
     564                if(_viewer->getCameraManipulator()==NULL)
     565                {
     566                        _viewer->getCamera()->setViewMatrix(viewMatrix);
     567                }
     568                else
     569                {
     570                        _viewer->getCameraManipulator()->setByMatrix(osg::Matrixd::inverse(viewMatrix));
     571                }
    563572
    564573                /**************************************/
     
    566575                /**************************************/
    567576#endif
    568 
    569                 if(_viewer->getCameraManipulator()==NULL)
    570                 {
    571                         _viewer->getCamera()->setViewMatrix(viewOffset);
    572                 }
    573                 else
    574                 {
    575                         _viewer->getCameraManipulator()->setByMatrix(osg::Matrixd::inverse(viewOffset));
    576                 }
    577577
    578578                _viewer->getCamera()->setProjectionMatrix(osg::Matrix::identity());
     
    615615                                                                                0.0     );
    616616                vertices->push_back( tmpVec );
    617                 OSG_ALWAYS<<"Transfering mesh vertex : X:"<<tmpVec.x()<<" Y:"<<tmpVec.y()<<" Z:"<<tmpVec.z()<<std::endl;
     617                //OSG_ALWAYS<<"Transfering mesh vertex : X:"<<tmpVec.x()<<" Y:"<<tmpVec.y()<<" Z:"<<tmpVec.z()<<std::endl;
    618618
    619619                // Note texCoords
     
    622622
    623623                texCoords->push_back(tmpTexCoords);
    624                 OSG_ALWAYS<<"Transfering texcoord vertex : X:"<<tmpTexCoords.x()<<" Y:"<<tmpTexCoords.y()<<std::endl;
     624                //OSG_ALWAYS<<"Transfering texcoord vertex : X:"<<tmpTexCoords.x()<<" Y:"<<tmpTexCoords.y()<<std::endl;
    625625
    626626                colors->push_back(osg::Vec4(1.0f,1.0f,1.0f,1.0f));
  • experimental/distortionNG/DistortionSet.h

    r407 r408  
    7777        void setShaderIntensityMapVis(osg::Shader* shader)      { shaderIntensityMapVis = shader; }
    7878
     79        osg::Matrixd& getProjectionOffset() { return _projectionOffset; }
     80
    7981
    8082
Note: See TracChangeset for help on using the changeset viewer.