Index: /experimental/distortionNG/DistortionManipulator.cpp
===================================================================
--- /experimental/distortionNG/DistortionManipulator.cpp	(revision 348)
+++ /experimental/distortionNG/DistortionManipulator.cpp	(revision 349)
@@ -31,4 +31,6 @@
 	activeManualSetupMode = DISTORTION;
 	activeVisualizationMode = NONE;
+
+	_distortionSet = NULL;
 }
 
@@ -50,9 +52,10 @@
 bool DistortionManipulator::handle(const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& aa, osg::Object* obj, osg::NodeVisitor* nv)
 {
-	osgViewer::View* viewer = dynamic_cast<osgViewer::View*>(&aa);
-		if ( viewer )
-		{
-			//osg::notify(osg::ALWAYS)<<"viewer!"<<std::endl;
-		}
+	//osgViewer::View* viewer = dynamic_cast<osgViewer::View*>(&aa);
+	//if ( viewer && !_distortionSet.isValid())
+	//{
+	//	OSG_ALWAYS<<"Fetching valid DistortionSet!"<<std::endl;
+	//	_distortionSet = viewer->getDistortionSet();
+	//}
 
 	switch(ea.getEventType())
@@ -61,5 +64,5 @@
         case(osgGA::GUIEventAdapter::DRAG):
 		{
-			osg::notify(osg::ALWAYS)<<"DRAG!"<<std::endl;
+			OSG_ALWAYS<<"DRAG!"<<std::endl;
 			break;
 		}
@@ -68,5 +71,5 @@
 			if(ea.getButton() == osgGA::GUIEventAdapter::LEFT_MOUSE_BUTTON)
 			{
-				osg::notify(osg::ALWAYS)<<"mouse click left!"<<std::endl;
+				OSG_ALWAYS<<"mouse click left!"<<std::endl;
 			}
 			break;
@@ -94,5 +97,5 @@
 				}
 
-				osg::notify(osg::ALWAYS)<<"KEY_KP_4 : Setup Mode now "<<activeSetupMode<<std::endl;
+				OSG_ALWAYS<<"KEY_KP_4 : Setup Mode now "<<activeSetupMode<<std::endl;
 				return(true);
 			}
@@ -101,5 +104,5 @@
 
 				activeManualSetupMode = (activeManualSetupMode==DISTORTION?BLENDING:DISTORTION);
-				osg::notify(osg::ALWAYS)<<"KEY_KP_5 : activeManualSetupMode is now "<<activeManualSetupMode<<std::endl;
+				OSG_ALWAYS<<"KEY_KP_5 : activeManualSetupMode is now "<<activeManualSetupMode<<std::endl;
 				return(true);
 			}
@@ -107,5 +110,5 @@
 			{
 				activeDistortionMode = (activeDistortionMode==MESH?TEXCOORDINATES:MESH);
-				osg::notify(osg::ALWAYS)<<"KEY_KP_6 : activeDistortionMode is now "<<activeDistortionMode<<std::endl;
+				OSG_ALWAYS<<"KEY_KP_6 : activeDistortionMode is now "<<activeDistortionMode<<std::endl;
 				return(true);
 			}
@@ -114,14 +117,34 @@
 				switch(activeVisualizationMode)
 				{	
-					case DISTORTION_MESH : activeVisualizationMode = INTENSITY_MAP; break;
-					case INTENSITY_MAP : activeVisualizationMode = NONE; break;
-					case NONE : activeVisualizationMode = DISTORTION_MESH; break;
+					case DISTORTION_MESH : 
+					{
+						activeVisualizationMode = INTENSITY_MAP;
+						showDistortionMesh(true);
+						showIntensityMap(false);
+						break;
+					}
+					case INTENSITY_MAP :
+					{
+						activeVisualizationMode = NONE;
+						showDistortionMesh(false);
+						showIntensityMap(true);
+						break;
+					}
+					case NONE : 
+					{
+						activeVisualizationMode = DISTORTION_MESH;
+						showDistortionMesh(false);
+						showIntensityMap(false);
+						break;
+					}
 				}
-				osg::notify(osg::ALWAYS)<<"KEY_KP_7 : activeVisualizationMode is now "<<activeVisualizationMode<<std::endl;
+
+
+				OSG_ALWAYS<<"KEY_KP_7 : activeVisualizationMode is now "<<activeVisualizationMode<<std::endl;
 				return(true);
 			}
 			if (ea.getKey()==osgGA::GUIEventAdapter::KEY_KP_Up)	// KP 8: Save distortion set	 via plugin
 			{
-				osg::notify(osg::ALWAYS)<<"KEY_KP_8 : todo: Save DistortionContainer"<<std::endl;
+				OSG_ALWAYS<<"KEY_KP_8 : todo: Save DistortionContainer"<<std::endl;
 				return(true);
 			}
@@ -133,10 +156,10 @@
 		case(osgGA::GUIEventAdapter::FRAME):
 		{
-			//osg::notify(osg::ALWAYS)<<"FRAME!"<<std::endl;
+			//OSG_ALWAYS<<"FRAME!"<<std::endl;
 			break;
 		}
         case (osgGA::GUIEventAdapter::RESIZE):	// todo: adapt distortion mesh to new screen size
 		{
-			osg::notify(osg::ALWAYS)<<"RESIZE!"<<std::endl;
+			OSG_ALWAYS<<"RESIZE!"<<std::endl;
 			break;
 		}
@@ -150,9 +173,55 @@
 void DistortionManipulator::resetIntensityMap()
 {
-	osg::notify(osg::ALWAYS)<<"ToDo: resetIntensityMap()"<<std::endl;
+	if(!_distortionSet.valid())
+		return;
+
+	osg::ref_ptr<osg::Image> image = _distortionSet->getIntensityMap();
+
+	OSG_ALWAYS<<"Reseting IntensityMap Blending."<<std::endl;
+
+	if (!image->isDataContiguous())
+	{
+		OSG_WARN<<"Warning: DistortionManipulator does not support working with non contiguous imagery as blendmaps!"<<std::endl;
+		return;
+	}
+
+	// Fill intensity map with 255 
+	unsigned char* dataPtr = image->data(); 
+	for(unsigned int i=0;i<image->getTotalSizeInBytes();i++)
+	{
+		*dataPtr++ = 255; 
+	}
+	image->dirty();
 }
 
 void DistortionManipulator::resetDistortion()
 {
-	osg::notify(osg::ALWAYS)<<"ToDo: resetDistortion()"<<std::endl;
-}
+	if(!_distortionSet.valid())
+		return;
+
+	OSG_ALWAYS<<"ToDo: resetDistortion()"<<std::endl;
+}
+
+void DistortionManipulator::showDistortionMesh(bool show)
+{
+	OSG_ALWAYS<<"ToDo: showDistortionMesh(bool) is now "<<show<<std::endl;
+
+	// Todo: Stateset muss das von der MeshGeode sein.
+
+   /* osg::PolygonMode* polyModeObj = dynamic_cast<osg::PolygonMode*>(_stateset->getAttribute(osg::StateAttribute::POLYGONMODE));
+    if (!polyModeObj)
+    {
+        polyModeObj = new osg::PolygonMode;
+        _stateset->setAttribute(polyModeObj);
+    }
+ 
+	if(show)
+		polyModeObj->setMode(osg::PolygonMode::FRONT_AND_BACK,osg::PolygonMode::LINE);
+	else
+		polyModeObj->setMode(osg::PolygonMode::FRONT_AND_BACK,osg::PolygonMode::FILL);*/
+}
+
+void DistortionManipulator::showIntensityMap(bool show)
+{
+		OSG_ALWAYS<<"ToDo: showIntensityMap(bool) is now "<<show<<std::endl;
+}
Index: /experimental/distortionNG/DistortionManipulator.h
===================================================================
--- /experimental/distortionNG/DistortionManipulator.h	(revision 348)
+++ /experimental/distortionNG/DistortionManipulator.h	(revision 349)
@@ -20,5 +20,7 @@
 #define OSGGA_DISTORTION_MANIPULATOR 1
 
-#include<osgGA/GUIEventHandler>
+#include <osgGA/GUIEventHandler>
+#include<osg/Referenced>
+#include "DistortionSet.h"
 
 
@@ -54,7 +56,11 @@
     virtual bool handle(const osgGA::GUIEventAdapter& ea,osgGA::GUIActionAdapter& aa, osg::Object*, osg::NodeVisitor* nv);
 
+	void setDistortionSet(DistortionSet* ds) {_distortionSet = ds;}
+
 private:
 	void resetIntensityMap();
 	void resetDistortion();
+	void showDistortionMesh(bool show);
+	void showIntensityMap(bool show);
 
 	SetupMode activeSetupMode;
@@ -62,4 +68,6 @@
 	ManualSetupMode activeManualSetupMode;
 	VisualizationMode activeVisualizationMode;
+
+	osg::ref_ptr<DistortionSet> _distortionSet;
 };
 
Index: /experimental/distortionNG/DistortionSet.h
===================================================================
--- /experimental/distortionNG/DistortionSet.h	(revision 348)
+++ /experimental/distortionNG/DistortionSet.h	(revision 349)
@@ -52,5 +52,6 @@
 
 	void setIntensityMap(osg::Image* intensityMap)		{ _intensityMap = intensityMap; }
-	const osg::Image* getIntensityMap() const	{ return _intensityMap; }
+	const osg::Image* getIntensityMap() const	{ return _intensityMap; }	// for serializers
+	osg::Image* getIntensityMap()  { return _intensityMap; }	// for manipulating the intensity map
 
 	void setTexUnitScene(unsigned int texUnitScene)		{ _texUnitScene = texUnitScene; }
Index: /experimental/distortionNG/extViewer.cpp
===================================================================
--- /experimental/distortionNG/extViewer.cpp	(revision 348)
+++ /experimental/distortionNG/extViewer.cpp	(revision 349)
@@ -347,6 +347,13 @@
 		camera->setCullingMode( mode & (~osg::CullSettings::SMALL_FEATURE_CULLING) );
 
+		// Create DistortionSet
+		_distortionSet = new osgViewer::DistortionSet();
+		_distortionSet->setIntensityMap( intensityMap );
+
+
 		// Add the distortionHandler
-		addEventHandler(new osgViewer::DistortionManipulator);
+		osgViewer::DistortionManipulator* distManip = new osgViewer::DistortionManipulator();
+		distManip->setDistortionSet(_distortionSet);
+		addEventHandler(distManip);
 
 
Index: /experimental/distortionNG/extViewer.h
===================================================================
--- /experimental/distortionNG/extViewer.h	(revision 348)
+++ /experimental/distortionNG/extViewer.h	(revision 349)
@@ -19,6 +19,8 @@
 */
 
+#include <osgViewer/Viewer>
+#include<osg/Referenced>
+#include "DistortionSet.h"
 
-#include<osgViewer/Viewer>
 
 class extViewer : public osgViewer::Viewer
@@ -37,3 +39,9 @@
 
 		void setUpIntensityMapBlending(osg::StateSet* stateset, osg::Image* intensityMap, unsigned int screenNum=0, int rttSceneTextureUnit=0, int intensityMapTextureUnit=1);
+
+		osgViewer::DistortionSet* getDistortionSet()	{return _distortionSet;}
+		void setDistortionSet(osgViewer::DistortionSet* ds) {_distortionSet = ds;}
+
+private:
+		osg::ref_ptr<osgViewer::DistortionSet> _distortionSet;
 };
Index: /experimental/distortionNG/main.cpp
===================================================================
--- /experimental/distortionNG/main.cpp	(revision 348)
+++ /experimental/distortionNG/main.cpp	(revision 349)
@@ -174,5 +174,5 @@
  *							[done]		- Key to control if mouse drags affects mesh coordinates or rttScene texture coordinates. Default: Mesh coordinates.
  *										- Key to reset Distortion.
- *										- Key to reset Blending.
+ *							[done]		- Key to reset Blending.
  *										
  *										Die Funktion  handle( const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& aa ):
