Ignore:
Timestamp:
May 13, 2012, 6:21:34 PM (12 years ago)
Author:
Torben Dannhauer
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • experimental/distortionNG/main.cpp

    r362 r366  
    149149 * modul                                                                Funktionen / Description
    150150 *
    151  * [postponed] plugin .dist                             load / Save distContainers                                      loads and saves via serializers the distortion container from/to file.
     151 * [] plugin .dist                                              load / Save distContainers                                      loads and saves via serializers the distortion container from/to file.
     152 *                                                                                                                                                                      Ensures the Coordinates are normalized before saving the container.
     153 *                                                                              Load:
     154 *                                                                              * use serializer to load container
     155 *                                                                              * invoke osgViewer::setUpViewForManualDistortion(distSet, screenNum, projectorMatrix) to set up distortion
     156 *                                                                              Save:
     157 *                                                                              * check if container is normalized. if not, copy and normalize container
     158 *                                                                              * use serializer to save container
    152159 * 
    153160 *
    154  * [done] Distortion Container                                  Beinhaltet die folgenden Distortion Details:
     161 * [done] Distortion Container                  Der Container wird immer normalisiert gespeichert, alle Koordinaten (Mesh+TexCoords) werden im Range [0-1]angespeichert.
     162 *                                                                              Er beinhaltet die folgenden Distortion Details:
    155163 *                                                                              - Blendmap (osgImage)
    156164 *                                                                              - Mesh Dimensions (rows, columns)
    157165 *                                                                              - Mesh Type (GLenum QUAD_STRIP, ...)
     166 *                                                                              - Mesh Coordinates [0-1]
     167 *                                                                              - Texture Coordinates [0-1]
    158168 *                                                                              - textureUnit for Scene RTT (z.B.: 0)
    159169 *                                                                              - textureUnit for blendmap (z.B.: 1)
    160170 *                                                                              - screenNum
    161  *                                                                              - slaveCam projectionOffset (wird mit der vom master multipliziert und auf die slave cam angewendet, meist identity)
     171 *                                                                              - slaveCam projectionOffset (wird mit der vom master multipliziert und auf die slave cam angewendet, meist Identity)
    162172 *                                                                              - slaveCam viewOffset   (wird mit der vom master multipliziert und auf die slave cam angewendet, verwendet für translation und rotation offset)
    163173 *                                                                             
    164174 *                                                                              need to add setter/getter as well as the serializer macros.
    165175 *                                                                             
    166  *                                                                              Besitz: Da osgViewer distSets ohne Manipulationsmöglichkeit konsumieren können soll, muss der COntainer vom Vierwer verwaltet werden.
    167  *
    168  * osgViewer                                                    load and apply distortion (apply via setupDistortion(...)
    169  *                                                                              setUpIntensityMapBlending(string filepath, int rrtTexUnit=1, int scenTexUnit=0): simple function providing a file path, and optionally the texUnits to use. Wil invoke the more detailed funtion for setup.
     176 *                                                                              Besitz: Da osgViewer distSets ohne Manipulationsmöglichkeit konsumieren können soll, muss der Container vom Viewer verwaltet werden. der manipulator greift darauf zu, das plugin kann container entgegen nehmen oder zurückgeben, hat aber keinen direkten kontakt zur container instanz von osgViewer
     177 *
     178 * osgViewer                                                    im construtor (anfangs ersatzweise in der main.cpp) : -dist <distFile> => load and apply distortion [via setUpViewForManualDistortion(std::string distFile)]
     179 *                                                                              setUpIntensityMapBlending(string filepath, int rrtTexUnit=1, int scenTexUnit=0):        Simple function providing a file path, and optionally the texUnits to use.
     180 *                                                                                                                                                                                                                                                      Will invoke the more detailed funtion (below) for setup.
    170181 *                                                                              setUpIntensityMapBlending(osg::StateSet* stateset, osg::Image* intensityMap, unsigned int screenNum, int rttSceneTextureUnit, int intensityMapTextureUnit)
    171  *
     182 *                                                                              setUpViewForManualDistortion(osgViewer::DistortionSet* distSet, unsigned int screenNum, const osg::Matrixd& projectorMatrix)
     183 *                                                                              setUpViewForManualDistortion(std::string distFile, unsigned int screenNum, const osg::Matrixd& projectorMatrix) is invoked by -dist <distFile>, reads distSet via osgDB::readObjectFile(), calls setUpViewForManualDistortion(osgViewer::DistortionSet* distSet, unsigned int screenNum, const osg::Matrixd& projectorMatrix) to setup the distortion.
    172184 *
    173185 * distortionManipulator                                abgeleitet von osgGA::GUIEventHandler
    174186 *                                                                              Grundfunktionen:
    175187 *                                                      [done]          - Key to Show Distortion Mesh / Intensity Map / none
    176  *                                                                              - Key to Save distortion Container  - via plugin
     188 *                                                                              - Key to Save distortion Container  - via osgDB::writeObjectFile(const osg::Object& object, const std::string& filename, const Options* options). osgDB & registry determines and loads the approriate plugin bythe file ending (.dist).
    177189 *                                                      [.]             - Key to toggle MANUAL mode between blending und distortion setup
    178190 *                                                      [done]          - Key to toggle distortion setup:
     
    196208 * direct to do:
    197209 *
    198  * speichern des containers in ein .dist file
     210 * Plugin fertigstellen
     211 * save funktion des manipulators via osgDB::writeObjectFile fertig stellen
     212 * extViewer::setUpViewForManualDistortion(std::string distFile)
     213 * Load Funktion vom osgViewer (ersatzweise Anfangs in der main.cpp) fertigstellen : -dist <distFile> weiterreichen and extViewer::setUpViewForManualDistortion(std::string distFile)
    199214 * Laden des Containers.
    200  * reset distortion funktioniert.
     215 * reset distortion implementieren.
    201216 * Anwenden der distortion auf die Meshknoten oder die texturekoordinaten
    202217 *
    203  * - umstellung der koordinaten auf [0-1]
    204  * oder alternativ:
    205  * - speichern der hieght und width im container so daß das mesh an andere Bildschirmgrößen angepasst werden kann.
    206  
    207218 *
    208219*/
Note: See TracChangeset for help on using the changeset viewer.