Manta Interactive Ray Tracer Development Mailing List

Text archives Help


[MANTA] r503 - in branches/AFR/Engine: Control ImageTraversers ImageTraversers/AFR


Chronological Thread 
  • From: abe@sci.utah.edu
  • To: manta@sci.utah.edu
  • Subject: [MANTA] r503 - in branches/AFR/Engine: Control ImageTraversers ImageTraversers/AFR
  • Date: Thu, 25 Aug 2005 21:16:53 -0600 (MDT)

Author: abe
Date: Thu Aug 25 21:16:51 2005
New Revision: 503

Modified:
   branches/AFR/Engine/Control/RTRT_register.cc
   branches/AFR/Engine/ImageTraversers/AFImageTraverser.cc
   branches/AFR/Engine/ImageTraversers/AFImageTraverser.h
   branches/AFR/Engine/ImageTraversers/AFR/CQ.h
   branches/AFR/Engine/ImageTraversers/AFR/evil.h
   branches/AFR/Engine/ImageTraversers/AFR/kdtree.cc
   branches/AFR/Engine/ImageTraversers/AFR/kdtree.h
   branches/AFR/Engine/ImageTraversers/AFR/sample.h
   branches/AFR/Engine/ImageTraversers/AFR/stats.cc
   branches/AFR/Engine/ImageTraversers/AFR/stats.h
   branches/AFR/Engine/ImageTraversers/AFR/tiles.cc
   branches/AFR/Engine/ImageTraversers/AFR/tiles.h
Log:
added namespace Afr

Modified: branches/AFR/Engine/Control/RTRT_register.cc
==============================================================================
--- branches/AFR/Engine/Control/RTRT_register.cc        (original)
+++ branches/AFR/Engine/Control/RTRT_register.cc        Thu Aug 25 21:16:51 
2005
@@ -41,7 +41,6 @@
 #include <UserInterface/XWindowUI.h>
 
 
-
 namespace Manta {
   void registerKnownComponents(RTRTInterface* rtrt)
   {
@@ -54,7 +53,7 @@
     rtrt->registerComponent("null", &NullImageTraverser::create);
     rtrt->registerComponent("tiled", &TiledImageTraverser::create);
     rtrt->registerComponent("frameless", &FramelessImageTraverser::create);
-    rtrt->registerComponent("afr", &AFImageTraverser::create);
+    rtrt->registerComponent("afr", &Afr::AFImageTraverser::create);
     rtrt->registerComponent("dissolve", &DissolveImageTraverser::create);
     rtrt->registerComponent("dissolvetiled", 
&DissolveTiledImageTraverser::create);
 

Modified: branches/AFR/Engine/ImageTraversers/AFImageTraverser.cc
==============================================================================
--- branches/AFR/Engine/ImageTraversers/AFImageTraverser.cc     (original)
+++ branches/AFR/Engine/ImageTraversers/AFImageTraverser.cc     Thu Aug 25 
21:16:51 2005
@@ -18,19 +18,27 @@
 
 #include <SCIRun/Core/Thread/Time.h>
 
-#include <math.h>
+#include <cmath>
+
 #ifdef __sgi
 #include <ieeefp.h>
 #endif
+
 #include <GL/glu.h>
 
 #define MAX_MIN_RATIO 0.5
 #define MAX_MERGE_SPLIT_LIMIT 50
 
-using namespace Manta;
 using namespace std;
+using namespace Manta;
+using namespace Manta::Afr;
+
+
 using SCIRun::IllegalValue;
 using SCIRun::InternalError;
+
+using namespace std;
+
 // args are the command line options, if the user wants to pas to th
 // eimage traverser look in TiledimageTraverser.cc for usage
 ImageTraverser* AFImageTraverser::create(const vector<string>& args)
@@ -66,205 +74,14 @@
   // confirm!
 }
 
-void AFImageTraverser::createStatsWin()
-{
-  XHelper::Xlock.lock();
-  // Open the display and make sure it has opengl
-  dpy = XOpenDisplay(NULL);
-  if(!dpy) {
-    XHelper::Xlock.unlock();
-    throw InternalError("Error opening display", __FILE__, __LINE__);
-  }
-  int error, event;
-  if ( !glXQueryExtension( dpy, &error, &event) ) {
-    XCloseDisplay(dpy);
-    dpy=0;
-    XHelper::Xlock.unlock();
-    throw InternalError("GL extension NOT available!\n", __FILE__, __LINE__);
-  }
-  
-  int screen=DefaultScreen(dpy);
-    
-  // Form the criteria for the 
-  vector<int> attribList;
-  attribList.push_back(GLX_RGBA);
-  attribList.push_back(GLX_RED_SIZE); attribList.push_back(1);
-  attribList.push_back(GLX_GREEN_SIZE); attribList.push_back(1);
-  attribList.push_back(GLX_BLUE_SIZE); attribList.push_back(1);
-  attribList.push_back(GLX_ALPHA_SIZE); attribList.push_back(0);
-  attribList.push_back(GLX_DEPTH_SIZE); attribList.push_back(0);
-  attribList.push_back(GLX_DOUBLEBUFFER); // This must be the last one
-  attribList.push_back(None);
-
-  XVisualInfo* vi = glXChooseVisual(dpy, screen, &attribList[0]);
-  if(!vi){
-    // We failed to choose a visual.  Try again without the double-buffer 
flag
-    attribList.pop_back();
-    attribList.pop_back();
-    attribList.push_back(None);
-    vi = glXChooseVisual(dpy, screen, &attribList[0]);
-  }
-
-  Colormap cmap = XCreateColormap(dpy, RootWindow(dpy, screen),
-                                 vi->visual, AllocNone);
-
-  XSetWindowAttributes atts;
-  int flags=CWColormap|CWEventMask|CWBackPixmap|CWBorderPixel;
-  atts.background_pixmap = None;
-  atts.border_pixmap = None;
-  atts.border_pixel = 0;
-  atts.colormap=cmap;
-  
atts.event_mask=StructureNotifyMask|ExposureMask|KeyPressMask|KeyReleaseMask;
-  Window parent = RootWindow(dpy, screen);
-  statsWindow.window=XCreateWindow(dpy, parent, 600, 0, DISPLAY_WIDTH, 
DISPLAY_HEIGHT, 0, vi->depth,
-                   InputOutput, vi->visual, flags, &atts);
-
-  XTextProperty tp;
-  char* name = "AFR Debug";
-  XStringListToTextProperty(&name, 1, &tp);
-  XSizeHints sh;
-  sh.flags = USPosition|USSize;
-  
-  XSetWMProperties(dpy, statsWindow.window, &tp, &tp, 0, 0, &sh, 0, 0);
-  XMapWindow(dpy, statsWindow.window);
-
-  // Wait for the window to appear before proceeding
-  for(;;){
-    XEvent e;
-    XNextEvent(dpy, &e);
-    if(e.type == MapNotify)
-      break;
-  }
-
-  windowOpen = true;
-
-  gl_context = glXCreateContext(dpy, vi, NULL, True);
-  XFree(vi);
-
-  if(!glXMakeCurrent(dpy, statsWindow.window, gl_context)) {
-    XHelper::Xlock.unlock();
-    throw InternalError("glXMakeCurrent failed!\n", __FILE__, __LINE__);
-  }
-  
-  glViewport(0, 0, DISPLAY_WIDTH, DISPLAY_HEIGHT);
-  glMatrixMode(GL_PROJECTION);
-  glLoadIdentity();
-  gluOrtho2D(0, DISPLAY_WIDTH, 0, DISPLAY_HEIGHT);
-  glMatrixMode(GL_MODELVIEW);
-  glLoadIdentity();
-  
-  glClearColor(.05, .1, .2, 0);
-  glClear(GL_COLOR_BUFFER_BIT);
-  
-  glXSwapBuffers(dpy, statsWindow.window);
-  glFinish();
-
-  // Get the fonts.  You need to call this with a current GL context.
-  fontInfo = XHelper::getX11Font(dpy);
-  if (!fontInfo) {
-    XHelper::Xlock.unlock();
-    throw InternalError("getX11Font failed!\n", __FILE__, __LINE__);
-  }
-  fontbase = XHelper::getGLFont(fontInfo);
-  if (fontbase == 0) {
-    XHelper::Xlock.unlock();
-    throw InternalError("getGLFont failed!\n", __FILE__, __LINE__);
-  }
-
-  if(!glXMakeCurrent(dpy, None, NULL)) {
-    XHelper::Xlock.unlock();
-    throw InternalError("glXMakeCurrent failed!\n", __FILE__, __LINE__);
-  }
-  
-  XHelper::Xlock.unlock();
-}
-
-void AFImageTraverser::display_stats() {
-  static int fcount = 0;
-  if(samples_done/1000 > fcount)
-  {
-    // Display textual information on the screen:
-    char text[200];
-    
-    switch(tmode)
-    {
-      case SOLID: sprintf(text, "Random Color Tiles; scale: %d", 
(int)visScale); break;
-      case BOUNDARY: sprintf(text, "Tiles colored by size; scale: %d", 
(int)visScale); break;
-      case DERIVATIVE: sprintf(text, "Derivative; scale: %d", 
(int)visScale); break;
-      case OCCLUSION: sprintf(text, "Occlusion; scale: %d", (int)visScale); 
break;
-      case ABSOLUTE_GRADIENT: sprintf(text, "ABS Gradients; scale: %d", 
(int)visScale); break;
-      case RELATIVE_GRADIENT: sprintf(text, "REL Gradients; scale: %d", 
(int)visScale); break;
-      case SAMPLING_DENSITY: sprintf(text, "Sample density; scale: %d", 
(int)visScale); break;
-      case UNDERSAMPLING: sprintf(text, "Undersampling; scale: %d", 
(int)visScale); break;
-      case AVERAGE_AGE: sprintf(text, "Average Age; scale: %d", 
(int)visScale); break;
-      case JITTERING: sprintf(text, "Jittering; scale: %d", (int)visScale); 
break;
-      default: sprintf(text, "Random Color Tiles; scale: %d", 
(int)visScale); break;
-    };
-  
-    if(!glXMakeCurrent(dpy, statsWindow.window, gl_context))
-      throw InternalError("AFImageTraverser::glXMakeCurrent failed!\n",
-                          __FILE__, __LINE__);
-    glClearColor(.05, .1, .2, 0);
-    glClear(GL_COLOR_BUFFER_BIT);
-    kdtree.displayTiles(tmode, samplingrate, chunkTimeStamp, visScale);
-    // Figure out how wide the string is
-    int width = XHelper::calc_width(fontInfo, text);
-    // Now we want to draw a gray box beneth the font using blending. :)
-    glEnable(GL_BLEND);
-    glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
-    glColor4f(0.5,0.5,0.5,0.5);
-    glRecti(8,3-fontInfo->descent-2,25+width,fontInfo->ascent+3);
-    glDisable(GL_BLEND);
-    XHelper::printString(fontbase, 10, 3, text, RGBColor(1,1,1));
-    glXSwapBuffers(dpy, statsWindow.window);
-    glFinish();
-    // Suck up X events to keep opengl happy
-    while (XPending(dpy)) {
-      XEvent e;
-      XNextEvent(dpy, &e);
-      switch (e.type) {
-      case KeyPress:
-        {
-            unsigned long key = XKeycodeToKeysym(dpy, e.xkey.keycode, 0);
-            switch (key) {
-                case XK_m:
-                case XK_M:
-                    toggleTileDisplayMode();
-                    break;
-                case XK_b:
-                case XK_B:
-                    visScale++;
-                    break;
-                case XK_l:
-                case XK_L:
-                    if (visScale>0) visScale--;
-                    break;
-            }
-        }
-      };
-      fcount++;
-    }
-  }
-  
-}
-
 void AFImageTraverser::setupBegin(SetupContext& context,
                                          int numChannels)
 {
   context.loadBalancer->setupBegin(context, numChannels);
-  context.setMultipleGLWindows();
-  statsWindow.xres = DISPLAY_WIDTH; statsWindow.yres = DISPLAY_HEIGHT;
-  createStatsWin();
 }
 
 void AFImageTraverser::setupDisplayChannel(SetupContext& context)
 {
- // char **argv;
- // argv = (char**)malloc(sizeof(char*));
- // argv[0] = (char*)malloc(12*sizeof(char));
- // sprintf(argv[0],"tile_display");
- // my_main(1, argv);
-  context.setMultipleGLWindows();
   context.constrainPipelineDepth(1,1); // single buffer mode is set here
   bool stereo; // get whether it is stereo, (shoot two rays for left
                // and right eye)
@@ -329,8 +146,6 @@
   //--------------------------------------------------------------------
   cout << "numFragments = " << numFragments << endl;
   context.loadBalancer->setupDisplayChannel(context, numFragments);
-  tmode = SOLID;
-  visScale = 1.0;
   // make fist set of fragments from uniform tiling
   allocateFragments(EVEN_FRAME);
 }
@@ -576,25 +391,6 @@
   }
 }
 
-
-void AFImageTraverser::toggleTileDisplayMode()
-{
-       switch(tmode)
-               {
-                       case SOLID: tmode = BOUNDARY; break;
-                       case BOUNDARY: tmode = DERIVATIVE; break;
-                       case DERIVATIVE: tmode = OCCLUSION; break;
-                       case OCCLUSION: tmode = ABSOLUTE_GRADIENT; break;
-                       case ABSOLUTE_GRADIENT: tmode=RELATIVE_GRADIENT; 
break;
-                       case RELATIVE_GRADIENT: tmode=SAMPLING_DENSITY; break;
-                       case SAMPLING_DENSITY: tmode = AVERAGE_AGE; break;
-                       case AVERAGE_AGE: tmode = UNDERSAMPLING; break;
-                       case UNDERSAMPLING: tmode = JITTERING; break;
-                       case JITTERING: tmode = SOLID; break;   
-                       default: tmode = SOLID; break;
-               };                      
-}
-      
 void AFImageTraverser::masterThread(const RenderContext& context,
                                           Image* image)
 {
@@ -604,8 +400,6 @@
   bool stereo;
   int xres, yres;
   image->getResolution(stereo, xres, yres);
-  // now let us do our display stuff
-  display_stats();
   
   FrameType prevFrameType = (frametype[0]==EVEN_FRAME)? ODD_FRAME : 
EVEN_FRAME;
   

Modified: branches/AFR/Engine/ImageTraversers/AFImageTraverser.h
==============================================================================
--- branches/AFR/Engine/ImageTraversers/AFImageTraverser.h      (original)
+++ branches/AFR/Engine/ImageTraversers/AFImageTraverser.h      Thu Aug 25 
21:16:51 2005
@@ -18,6 +18,7 @@
 
 namespace Manta {
   using namespace std;
+  namespace Afr {
   enum FrameType { EVEN_FRAME, ODD_FRAME };
   class AFImageTraverser : public ImageTraverser {
   public:
@@ -36,9 +37,6 @@
     void masterThread(const RenderContext& context, Image* image);
     void clientThread(const RenderContext& context, Image* image, int 
assignment);
     void adjustTiles(Timestamp currenttime);
-    void createStatsWin();
-    void display_stats();
-    void toggleTileDisplayMode();
     static ImageTraverser* create(const vector<string>& args);
   private:
     AFImageTraverser(const AFImageTraverser&);
@@ -57,17 +55,8 @@
     FrameType *frametype;
     double chunkTimeStamp;
     bool initpass;
-    XWindow statsWindow;
-    Display* dpy;
-    GLXContext gl_context;
-  // These contain stuff for font stuff.
-    XFontStruct* fontInfo;
-    GLuint fontbase;
-    bool windowOpen;
-    bool madeCurrent;
-    TileDisplayMode tmode;
-    float visScale;
   };
+}
 }
 
 #endif

Modified: branches/AFR/Engine/ImageTraversers/AFR/CQ.h
==============================================================================
--- branches/AFR/Engine/ImageTraversers/AFR/CQ.h        (original)
+++ branches/AFR/Engine/ImageTraversers/AFR/CQ.h        Thu Aug 25 21:16:51 
2005
@@ -9,7 +9,8 @@
 #define _CQ_H
 
 #include <Core/Thread/Mutex.h>
-
+namespace Manta {
+namespace Afr {
 template<class T>
 class CQ
 {
@@ -134,7 +135,8 @@
                }
 
 };
-
+} // end namespace Afr
+} // end namespacw Manta
 
 
 #endif

Modified: branches/AFR/Engine/ImageTraversers/AFR/evil.h
==============================================================================
--- branches/AFR/Engine/ImageTraversers/AFR/evil.h      (original)
+++ branches/AFR/Engine/ImageTraversers/AFR/evil.h      Thu Aug 25 21:16:51 
2005
@@ -14,6 +14,9 @@
 #ifndef EVIL_H
 #define EVIL_H
 
+namespace Manta {
+  namespace Afr {
+
 /**
  * meta evil: evil documentation.
  *
@@ -359,6 +362,9 @@
 #endif
 
 #undef INLINE
+
+  };
+};
 
 #endif
 

Modified: branches/AFR/Engine/ImageTraversers/AFR/kdtree.cc
==============================================================================
--- branches/AFR/Engine/ImageTraversers/AFR/kdtree.cc   (original)
+++ branches/AFR/Engine/ImageTraversers/AFR/kdtree.cc   Thu Aug 25 21:16:51 
2005
@@ -9,6 +9,8 @@
 #include <Engine/ImageTraversers/AFR/kdtree.h>
 #include <assert.h>
 
+using namespace Manta;
+using namespace Manta::Afr;
 KDTree::KDTree()
 {
        totalNodes = numLevels = numTiles = pseudostart = 0; 

Modified: branches/AFR/Engine/ImageTraversers/AFR/kdtree.h
==============================================================================
--- branches/AFR/Engine/ImageTraversers/AFR/kdtree.h    (original)
+++ branches/AFR/Engine/ImageTraversers/AFR/kdtree.h    Thu Aug 25 21:16:51 
2005
@@ -10,9 +10,8 @@
 #define _KDTREE_H
 #include <Engine/ImageTraversers/AFR/tiles.h>
 
-//namespace Manta {
-//  using namespace std;
-  
+namespace Manta {
+ namespace Afr { 
   
   /*
    * KD tree structure is as follows
@@ -105,5 +104,6 @@
                  void updateStatsAddSample(Sample *newsample, Timestamp 
currenttime, int sampling_rate, float tgrad, bool occ);
                  void displayTiles(TileDisplayMode displaymode, int 
sampling_rate, Timestamp currenttime, float visScale);     
   };
-//}
+ } // end namespace Afr
+} // emd namespace Manta
 #endif /* _KDTREE_H */

Modified: branches/AFR/Engine/ImageTraversers/AFR/sample.h
==============================================================================
--- branches/AFR/Engine/ImageTraversers/AFR/sample.h    (original)
+++ branches/AFR/Engine/ImageTraversers/AFR/sample.h    Thu Aug 25 21:16:51 
2005
@@ -22,8 +22,8 @@
  * This is the data type returned to us by the sampler
  * from which we will reconstruct our image.
  */
-//namespace Manta {
-//  using namespace std;
+namespace Manta {
+namespace Afr {
   typedef float Timestamp;
   typedef float FloatColor[3];
   const FloatColor      UNDEFINED_SAMPLE_COLOR = {0.0,0.0,0.0};
@@ -325,7 +325,8 @@
                    return false; //<TODO>
       }
   };
-//}
+} // end namespace Afr
+} // end namespace Manta
 #endif
 
 /** @} */

Modified: branches/AFR/Engine/ImageTraversers/AFR/stats.cc
==============================================================================
--- branches/AFR/Engine/ImageTraversers/AFR/stats.cc    (original)
+++ branches/AFR/Engine/ImageTraversers/AFR/stats.cc    Thu Aug 25 21:16:51 
2005
@@ -3,6 +3,8 @@
 #define EPSILON 0.00001;
 #include <assert.h>
 
+using namespace Manta;
+using namespace Manta::Afr;
 Stats::Stats()
 {
        reset();

Modified: branches/AFR/Engine/ImageTraversers/AFR/stats.h
==============================================================================
--- branches/AFR/Engine/ImageTraversers/AFR/stats.h     (original)
+++ branches/AFR/Engine/ImageTraversers/AFR/stats.h     Thu Aug 25 21:16:51 
2005
@@ -1,8 +1,8 @@
 #ifndef _STATS_H
 #define _STATS_H
 
-//namespace Manta {
-//  using namespace std;
+namespace Manta {
+namespace Afr {
   class Stats
   {
     private:
@@ -27,6 +27,7 @@
       Stats operator/(float denom);
       void print();
   };
-//}
+} // end namespace Afr
+} // end namespace Manta
 
 #endif

Modified: branches/AFR/Engine/ImageTraversers/AFR/tiles.cc
==============================================================================
--- branches/AFR/Engine/ImageTraversers/AFR/tiles.cc    (original)
+++ branches/AFR/Engine/ImageTraversers/AFR/tiles.cc    Thu Aug 25 21:16:51 
2005
@@ -21,6 +21,9 @@
 
 #define AMBIENT_ERROR 0.01
 
+using namespace Manta;
+using namespace Manta::Afr;
+
 int** Tile::leafMapping;
 int Tile::meanLevel=8;
 int Tile::max_tile_area = 256;
@@ -411,12 +414,12 @@
        return retval;
 }
        
-void invexp_init()
+void Manta::Afr::invexp_init()
 {
        invexpInit();
 }
 
-float getWeight(float A, float B, float age)
+float Manta::Afr::getWeight(float A, float B, float age)
 {
        return (A*invexp(B*age));
        //return (A*expf(-B*age));

Modified: branches/AFR/Engine/ImageTraversers/AFR/tiles.h
==============================================================================
--- branches/AFR/Engine/ImageTraversers/AFR/tiles.h     (original)
+++ branches/AFR/Engine/ImageTraversers/AFR/tiles.h     Thu Aug 25 21:16:51 
2005
@@ -18,11 +18,8 @@
 #define DISPLAY_WIDTH 512
 #define DISPLAY_HEIGHT 512
 
-//namespace Manta {
-//  using namespace std;
-
-using namespace Manta;
-using namespace std;
+namespace Manta {
+namespace Afr {
 // returns a random integer in [0,myMax)
 // use extern to define it elsewhere and use it
 
@@ -189,5 +186,6 @@
 float getWeight(float A, float B, float age);
 void invexp_init();
 
-//}
+} // end namespace Afr
+} // end namespace Manta
 #endif /* _TILES_H */




  • [MANTA] r503 - in branches/AFR/Engine: Control ImageTraversers ImageTraversers/AFR, abe, 08/25/2005

Archive powered by MHonArc 2.6.16.

Top of page