Index: experimental/distortionNG/DistortionManipulator.cpp
===================================================================
--- experimental/distortionNG/DistortionManipulator.cpp	(revision 407)
+++ experimental/distortionNG/DistortionManipulator.cpp	(revision 408)
@@ -310,19 +310,19 @@
 	
 	_distortionSet->setDistortionMeshDimensions(2, 2, true);	// Reset dimensions and coordinates/texcoords & rebuild mesh data
-	updateDistortionMesh();	// Rebuild OSG Mesh (drawable)
+	_distortionSet->dirtyMesh();
+	
 	// Restore ProjectionMatrix
-	
-	// Set up projection Matrix as it is done in View::setUpViewOnSingleScreen(
-	double fovy, aspectRatio, zNear, zFar;
-	_camera->getProjectionMatrixAsPerspective(fovy, aspectRatio, zNear, zFar);
-
-	double newAspectRatio = double(_distortionSet->intensityMap()->width) / double(_distortionSet->intensityMap()->height);
+	// Set up basic projection Matrix
+	double fovy = 30., aspectRatio = 1., zNear = 1., zFar = 1000.;
+	_distortionSet->getProjectionOffset().makePerspective( fovy, aspectRatio, zNear, zFar );
+
+	double newAspectRatio = double(_distortionSet->getIntensityMap()->s()) / double(_distortionSet->getIntensityMap()->t());
 	double aspectRatioChange = newAspectRatio / aspectRatio;
 	if (aspectRatioChange != 1.0)
 	{
-		_camera->getProjectionMatrix() *= osg::Matrix::scale(1.0/aspectRatioChange,1.0,1.0);
-	}
-
-
+		_distortionSet->getProjectionOffset() *= osg::Matrix::scale(1.0/aspectRatioChange,1.0,1.0);
+	}
+
+	_distortionSet->dirtyMatrix();
 }
 
@@ -547,18 +547,27 @@
 	{
 
-#if 1
+#if 0
 		/*******************************************/
 		/***   ViewMatrix-Testcase  "Garching"   ***/
 		/*******************************************/
 
-		osg::Matrixd viewOffset, transViewOffset, rotViewOffset;
+		osg::Matrixd viewMatrix, transView, rotView;
 		
-		rotViewOffset.makeRotate(
+		rotView.makeRotate(
 			osg::DegreesToRadians(-130.0), osg::Vec3(0,1,0),		// heading
 			osg::DegreesToRadians(0.0), osg::Vec3(-1,0,0), 	// pitch
 			osg::DegreesToRadians(-80.0), osg::Vec3(0,0,1));	// roll
 
-		transViewOffset.makeTranslate(-4169457.75*0.99975, -860009.06*0.99975, -4737192.00*0.99975);
-		viewOffset = transViewOffset * rotViewOffset;
+		transView.makeTranslate(-4169457.75*0.99975, -860009.06*0.99975, -4737192.00*0.99975);
+		viewMatrix = transView * rotView;
+
+		if(_viewer->getCameraManipulator()==NULL)
+		{
+			_viewer->getCamera()->setViewMatrix(viewMatrix);
+		}
+		else
+		{
+			_viewer->getCameraManipulator()->setByMatrix(osg::Matrixd::inverse(viewMatrix));
+		}
 
 		/**************************************/
@@ -566,13 +575,4 @@
 		/**************************************/
 #endif
-
-		if(_viewer->getCameraManipulator()==NULL)
-		{
-			_viewer->getCamera()->setViewMatrix(viewOffset);
-		}
-		else
-		{
-			_viewer->getCameraManipulator()->setByMatrix(osg::Matrixd::inverse(viewOffset));
-		}
 
 		_viewer->getCamera()->setProjectionMatrix(osg::Matrix::identity());
@@ -615,5 +615,5 @@
 										0.0	);
 		vertices->push_back( tmpVec );
-		OSG_ALWAYS<<"Transfering mesh vertex : X:"<<tmpVec.x()<<" Y:"<<tmpVec.y()<<" Z:"<<tmpVec.z()<<std::endl;
+		//OSG_ALWAYS<<"Transfering mesh vertex : X:"<<tmpVec.x()<<" Y:"<<tmpVec.y()<<" Z:"<<tmpVec.z()<<std::endl;
 
 		// Note texCoords
@@ -622,5 +622,5 @@
 
 		texCoords->push_back(tmpTexCoords);
-		OSG_ALWAYS<<"Transfering texcoord vertex : X:"<<tmpTexCoords.x()<<" Y:"<<tmpTexCoords.y()<<std::endl;
+		//OSG_ALWAYS<<"Transfering texcoord vertex : X:"<<tmpTexCoords.x()<<" Y:"<<tmpTexCoords.y()<<std::endl;
 
 		colors->push_back(osg::Vec4(1.0f,1.0f,1.0f,1.0f));
Index: experimental/distortionNG/DistortionSet.h
===================================================================
--- experimental/distortionNG/DistortionSet.h	(revision 407)
+++ experimental/distortionNG/DistortionSet.h	(revision 408)
@@ -77,4 +77,6 @@
 	void setShaderIntensityMapVis(osg::Shader* shader)	{ shaderIntensityMapVis = shader; }
 
+	osg::Matrixd& getProjectionOffset() { return _projectionOffset; }
+
 
 
