Manta Interactive Ray Tracer Development Mailing List

Text archives Help


[MANTA] r1146 - in trunk: Engine/Control Model/Groups Model/Materials Model/Primitives scenes


Chronological Thread 
  • From: cgribble@sci.utah.edu
  • To: manta@sci.utah.edu
  • Subject: [MANTA] r1146 - in trunk: Engine/Control Model/Groups Model/Materials Model/Primitives scenes
  • Date: Tue, 18 Jul 2006 20:38:40 -0600 (MDT)

Author: cgribble
Date: Tue Jul 18 20:38:34 2006
New Revision: 1146

Added:
   trunk/Engine/Control/DynPLTQueue.h
Removed:
   trunk/Model/Materials/DynPLTMaterial.cc
   trunk/Model/Materials/DynPLTMaterial.h
Modified:
   trunk/Engine/Control/CMakeLists.txt
   trunk/Engine/Control/DynPLTWorker.cc
   trunk/Engine/Control/DynPLTWorker.h
   trunk/Model/Groups/TimeSteppedParticles.cc
   trunk/Model/Groups/TimeSteppedParticles.h
   trunk/Model/Materials/CMakeLists.txt
   trunk/Model/Primitives/DynPLTGridSpheres.cc
   trunk/Model/Primitives/DynPLTGridSpheres.h
   trunk/scenes/dynplt.cc
Log:
Model/Groups/TimeSteppedParticles.h
Model/Groups/TimeSteppedParticles.cc
Model/Primitives/DynPLTGridSpheres.cc
Model/Primitives/DynPLTGridSpheres.h
Engine/Control/DynPLTWorker.cc
Engine/Control/DynPLTWorker.h
Engine/Control/CMakeLists.txt
scenes/dynplt.cc
  Change SCIRun::Mailbox<DynPLTMessage> to new DynPLTQueue class
  Moved DynPLTMessage struct into "DynPLTQueue.h"

Engine/Control/DynPLTQueue.h
  Added generic DynPLTQueue base class
  Added FIFO implementation based on SCIRun::Mailbox<DynPLTMessage>

Model/Materials/CMakeLists.txt
Model/Materials/DynPLTMaterial.h
Model/Materials/DynPLTMaterial.cc
  Remove unnecessary files from the repository


Modified: trunk/Engine/Control/CMakeLists.txt
==============================================================================
--- trunk/Engine/Control/CMakeLists.txt (original)
+++ trunk/Engine/Control/CMakeLists.txt Tue Jul 18 20:38:34 2006
@@ -8,6 +8,7 @@
 IF(BUILD_DYNPLT)
    SET(Manta_Control_SRCS
        ${Manta_Control_SRCS}
+       Control/DynPLTQueue.h
        Control/DynPLTWorker.h
        Control/DynPLTWorker.cc
    )

Added: trunk/Engine/Control/DynPLTQueue.h
==============================================================================
--- (empty file)
+++ trunk/Engine/Control/DynPLTQueue.h  Tue Jul 18 20:38:34 2006
@@ -0,0 +1,81 @@
+
+#ifndef Manta_Engine_DynPLTQueue_h
+#define Manta_Engine_DynPLTQueue_h
+
+#include <MantaTypes.h>
+#include <SCIRun/Core/Thread/Mailbox.h>
+
+#include <float.h>
+
+namespace Manta
+{
+  class DynPLTGridSpheres;
+
+  struct DynPLTMessage {
+    DynPLTMessage(int particle, const DynPLTGridSpheres* grid) :
+      particle(particle), grid(grid)
+    {
+      // Do nothing
+    }
+    DynPLTMessage(void) :
+      particle(-1), grid(0)
+    {
+      // Do nothing
+    }
+
+    int particle;
+    const DynPLTGridSpheres* grid;
+  };
+
+  class DynPLTQueue
+  {
+  public:
+    DynPLTQueue(void) { /* no-op */ }
+    ~DynPLTQueue(void) { /* no-op */ }
+
+    virtual bool tryReceive(DynPLTMessage& msg) = 0;
+    virtual DynPLTMessage receive(void) = 0;
+
+    virtual bool trySend(const DynPLTMessage& msg) = 0;
+    virtual void send(const DynPLTMessage& msg) = 0;
+  };
+
+  class DynPLTFifoQ : public DynPLTQueue
+  {
+  public:
+    DynPLTFifoQ(int size)
+    {
+      mailbox=new SCIRun::Mailbox<DynPLTMessage>("DynPLT Work Queue", size);
+    }
+
+    ~DynPLTFifoQ(void)
+    {
+      delete mailbox;
+    }
+
+    bool tryReceive(DynPLTMessage& msg)
+    {
+      return mailbox->tryReceive(msg);
+    }
+
+    DynPLTMessage receive(void)
+    {
+      return mailbox->receive();
+    }
+
+    bool trySend(const DynPLTMessage& msg)
+    {
+      mailbox->trySend(msg);
+    }
+
+    void send(const DynPLTMessage& msg)
+    {
+      mailbox->send(msg);
+    }
+
+  private:
+    SCIRun::Mailbox<DynPLTMessage>* mailbox;
+  };
+}
+
+#endif

Modified: trunk/Engine/Control/DynPLTWorker.cc
==============================================================================
--- trunk/Engine/Control/DynPLTWorker.cc        (original)
+++ trunk/Engine/Control/DynPLTWorker.cc        Tue Jul 18 20:38:34 2006
@@ -2,6 +2,7 @@
 #include <Interface/Context.h>
 #include <Interface/Packet.h>
 #include <Interface/Scene.h>
+#include <Engine/Control/DynPLTQueue.h>
 #include <Engine/Control/DynPLTWorker.h>
 #include <Engine/Shadows/HardShadows.h>
 #include <Model/Primitives/DynPLTGridSpheres.h>
@@ -23,7 +24,7 @@
 //       isn't empty, and never when it is empty
 
 DynPLTContext::DynPLTContext(MantaInterface* manta_interface,
-                             SCIRun::Mailbox<DynPLTMessage>* queue,
+                             DynPLTQueue* queue,
                              Scene* scene, unsigned int ngroups,
                              unsigned int nsamples, unsigned int max_depth,
                              bool dilate, Background* background, double 
runtime,

Modified: trunk/Engine/Control/DynPLTWorker.h
==============================================================================
--- trunk/Engine/Control/DynPLTWorker.h (original)
+++ trunk/Engine/Control/DynPLTWorker.h Tue Jul 18 20:38:34 2006
@@ -16,6 +16,7 @@
 namespace Manta
 {
   class Background;
+  class DynPLTMessage;
   class MantaInterface;
   class RayPacket;
   class Scene;
@@ -26,7 +27,7 @@
   {
   public:
     DynPLTContext(MantaInterface* manta_interface,
-                  SCIRun::Mailbox<DynPLTMessage>* queue, Scene* scene,
+                  DynPLTQueue* queue, Scene* scene,
                   unsigned int ngroups, unsigned int nsamples,
                   unsigned int max_depth, bool dilate,
                   Background* background, double runtime=DBL_MAX,
@@ -38,7 +39,7 @@
     MantaInterface* manta_interface;
 
     // DynPLT work queue
-    SCIRun::Mailbox<DynPLTMessage>* queue;
+    DynPLTQueue* queue;
 
     // Manta scene
     Scene* scene;

Modified: trunk/Model/Groups/TimeSteppedParticles.cc
==============================================================================
--- trunk/Model/Groups/TimeSteppedParticles.cc  (original)
+++ trunk/Model/Groups/TimeSteppedParticles.cc  Tue Jul 18 20:38:34 2006
@@ -16,7 +16,7 @@
 TimeSteppedParticles::TimeSteppedParticles(const string& filename, int 
ncells,
                                            int depth, Real radius, int ridx,
                                            RegularColorMap* cmap, int cidx,
-                                           SCIRun::Mailbox<DynPLTMessage>* 
queue,
+                                           DynPLTQueue* queue,
                                            int min, int max) :
   tstep(0)
 {

Modified: trunk/Model/Groups/TimeSteppedParticles.h
==============================================================================
--- trunk/Model/Groups/TimeSteppedParticles.h   (original)
+++ trunk/Model/Groups/TimeSteppedParticles.h   Tue Jul 18 20:38:34 2006
@@ -14,6 +14,7 @@
 
 namespace Manta
 {
+  class DynPLTQueue;
   class RegularColorMap;
 
   class TimeSteppedParticles : public Group
@@ -21,7 +22,7 @@
   public:
     TimeSteppedParticles(const string& filename, int ncells, int depth,
                          Real radius, int ridx, RegularColorMap* cmap, int 
cidx,
-                         SCIRun::Mailbox<DynPLTMessage>* queue=0, int min=0,
+                         DynPLTQueue* queue=0, int min=0,
                          int max=INT_MAX);
     ~TimeSteppedParticles(void);
 

Modified: trunk/Model/Materials/CMakeLists.txt
==============================================================================
--- trunk/Model/Materials/CMakeLists.txt        (original)
+++ trunk/Model/Materials/CMakeLists.txt        Tue Jul 18 20:38:34 2006
@@ -25,11 +25,3 @@
      Materials/CopyColorMaterial.cc
      Materials/CopyColorMaterial.h
      )
-
-IF(BUILD_DYNPLT)
-   SET(Manta_Materials_SRCS
-       ${Manta_Materials_SRCS}
-       Materials/DynPLTMaterial.h
-       Materials/DynPLTMaterial.cc
-   )
-ENDIF(BUILD_DYNPLT)

Modified: trunk/Model/Primitives/DynPLTGridSpheres.cc
==============================================================================
--- trunk/Model/Primitives/DynPLTGridSpheres.cc (original)
+++ trunk/Model/Primitives/DynPLTGridSpheres.cc Tue Jul 18 20:38:34 2006
@@ -1,9 +1,10 @@
 
 #include <Core/Color/RegularColorMap.h>
+#include <Engine/Control/DynPLTQueue.h>
+#include <Engine/Control/DynPLTWorker.h>
 #include <Interface/AmbientLight.h>
 #include <Interface/LightSet.h>
 #include <Interface/RayPacket.h>
-#include <Engine/Control/DynPLTWorker.h>
 #include <Model/Primitives/DynPLTGridSpheres.h>
 
 #include <iostream>
@@ -12,7 +13,7 @@
 using namespace Manta;
 using namespace SCIRun;
 
-DynPLTGridSpheres::DynPLTGridSpheres(SCIRun::Mailbox<DynPLTMessage>* queue,
+DynPLTGridSpheres::DynPLTGridSpheres(DynPLTQueue* queue,
                                      float* spheres, int nspheres, int nvars,
                                      int ncells, int depth, Real radius,
                                      int ridx, RegularColorMap* cmap, int 
cidx) :

Modified: trunk/Model/Primitives/DynPLTGridSpheres.h
==============================================================================
--- trunk/Model/Primitives/DynPLTGridSpheres.h  (original)
+++ trunk/Model/Primitives/DynPLTGridSpheres.h  Tue Jul 18 20:38:34 2006
@@ -14,6 +14,7 @@
 namespace Manta {
   class DynPLTContext;
   class DynPLTGridSpheres;
+  class DynPLTQueue;
   class RegularColorMap;
 
   class DynPLT {
@@ -31,22 +32,6 @@
     Real inside[XRES][YRES];
   };
 
-  struct DynPLTMessage {
-    DynPLTMessage(int particle, const DynPLTGridSpheres* grid) :
-      particle(particle), grid(grid)
-    {
-      // Do nothing
-    }
-    DynPLTMessage(void) :
-      particle(-1), grid(0)
-    {
-      // Do nothing
-    }
-
-    int particle;
-    const DynPLTGridSpheres* grid;
-  };
-
   class DynPLTGridSpheres : public GridSpheres
   {
   public:
@@ -55,7 +40,7 @@
       GlobalIllumination
     } TextureMode;
 
-    DynPLTGridSpheres(SCIRun::Mailbox<DynPLTMessage>* queue, float* spheres,
+    DynPLTGridSpheres(DynPLTQueue* queue, float* spheres,
                       int nspheres, int nvars, int ncells, int depth,
                       Real radius, int ridx, RegularColorMap* cmap, int 
cidx);
     ~DynPLTGridSpheres(void);
@@ -131,7 +116,7 @@
       }
     }
 
-    SCIRun::Mailbox<DynPLTMessage>* queue;
+    DynPLTQueue* queue;
     mutable vector<bool> requested;
     vector<bool> allocated;
     vector<bool> valid;

Modified: trunk/scenes/dynplt.cc
==============================================================================
--- trunk/scenes/dynplt.cc      (original)
+++ trunk/scenes/dynplt.cc      Tue Jul 18 20:38:34 2006
@@ -2,6 +2,7 @@
 #include <Core/Exceptions/IllegalArgument.h>
 #include <Core/Geometry/Vector.h>
 #include <Core/Util/Args.h>
+#include <Engine/Control/DynPLTQueue.h>
 #include <Engine/Control/DynPLTWorker.h>
 #include <Interface/Context.h>
 #include <Interface/LightSet.h>
@@ -16,7 +17,6 @@
 #include <Model/Primitives/DynPLTGridSpheres.h>
 #include <Model/Primitives/Sphere.h>
 #include <Model/Readers/ParticleNRRD.h>
-#include <SCIRun/Core/Thread/Mailbox.h>
 #include <SCIRun/Core/Thread/Thread.h>
 
 #include <sgi_stl_warnings_off.h>
@@ -157,8 +157,9 @@
   Scene* scene=new Scene();
 
   // Create DynPLT work queue
-  Mailbox<DynPLTMessage>* queue=new Mailbox<DynPLTMessage>("DynPLT Work 
Queue",
-                                                           nthreads*qsize);
+  DynPLTQueue* queue;
+  // XXX:  temporary (should switch on queue type)
+  queue=new DynPLTFifoQ(nthreads*qsize);
   
   Background* bg=0;
   if (env_fname != "")




  • [MANTA] r1146 - in trunk: Engine/Control Model/Groups Model/Materials Model/Primitives scenes, cgribble, 07/18/2006

Archive powered by MHonArc 2.6.16.

Top of page