Manta Interactive Ray Tracer Development Mailing List

Text archives Help


[MANTA] r925 - in trunk/fox/afr_demo: Engine/ImageTraversers Model/Cameras StandAlone


Chronological Thread 
  • From: abhinav@sci.utah.edu
  • To: manta@sci.utah.edu
  • Subject: [MANTA] r925 - in trunk/fox/afr_demo: Engine/ImageTraversers Model/Cameras StandAlone
  • Date: Thu, 9 Feb 2006 21:51:07 -0700 (MST)

Author: abhinav
Date: Thu Feb  9 21:51:07 2006
New Revision: 925

Modified:
   trunk/fox/afr_demo/Engine/ImageTraversers/AFRImageTraverser.cc
   trunk/fox/afr_demo/Model/Cameras/AFRCamera.cc
   trunk/fox/afr_demo/Model/Cameras/AFRCamera.h
   trunk/fox/afr_demo/Model/Cameras/AFRPinholeCamera.cc
   trunk/fox/afr_demo/StandAlone/afr.cc
Log:
fixed the camera setting from commandline, i.e. camera registor method for 
AFR.



Modified: trunk/fox/afr_demo/Engine/ImageTraversers/AFRImageTraverser.cc
==============================================================================
--- trunk/fox/afr_demo/Engine/ImageTraversers/AFRImageTraverser.cc      
(original)
+++ trunk/fox/afr_demo/Engine/ImageTraversers/AFRImageTraverser.cc      Thu 
Feb  9 21:51:07 2006
@@ -171,7 +171,9 @@
         const Point p2(triangle.v[1].x(), triangle.v[1].y(), 
triangle.v[1].z());
         const Point p3(triangle.v[2].x(), triangle.v[2].y(), 
triangle.v[2].z());
         Point rp;
-        rp = ((AFRCamera*)context.camera)->project(p1);
+        const AFRCamera *camera = dynamic_cast<const AFRCamera *>( 
context.camera );
+        // rp = ((AFRCamera*)context.camera)->project(p1);
+        rp = camera->project(p1);
         tv[i].v1[0] = rp.x()*xres;
         tv[i].v1[1] = rp.y()*yres;
         tv[i].v1[2] = rp.z();
@@ -185,6 +187,7 @@
         tv[i].v3[2] = rp.z();
       }
       else {
+         // what to do when geometry is not a triangle????
         std::cerr << "Not using KDTreeData: " << __FILE__ << ":" << __LINE__ 
<< "\n";
       }
     }

Modified: trunk/fox/afr_demo/Model/Cameras/AFRCamera.cc
==============================================================================
--- trunk/fox/afr_demo/Model/Cameras/AFRCamera.cc       (original)
+++ trunk/fox/afr_demo/Model/Cameras/AFRCamera.cc       Thu Feb  9 21:51:07 
2006
@@ -4,6 +4,13 @@
 
 using namespace Manta;
 using namespace Manta::Afr;
+
+Camera* AFRCamera::create(AFRCamera *c, const vector<string>& args) {
+
+  // 60 is only hardcoded because there isn't a getFov method on the camera.
+   for(int i=0; i<Size; i++) c->cam[i] = new AFRPinholeCamera( args );
+   return c->cam[0];
+}
 ///////////////////////////////////////////////////////////////////////////
 // Make an update to the cam with a timestamp.
 void AFRCamera::update()

Modified: trunk/fox/afr_demo/Model/Cameras/AFRCamera.h
==============================================================================
--- trunk/fox/afr_demo/Model/Cameras/AFRCamera.h        (original)
+++ trunk/fox/afr_demo/Model/Cameras/AFRCamera.h        Thu Feb  9 21:51:07 
2006
@@ -77,7 +77,7 @@
                           camera->getUp(),
                           camera->getLookAt() );
     }
-    
+    static Camera* create(AFRCamera *c, const vector<string>& args);
     
///////////////////////////////////////////////////////////////////////////
     // Make an update to the cam with a timestamp.
     void update();
@@ -109,7 +109,7 @@
        return cam[prev]->project( point ); 
     }
     virtual void reset( const Point &eye_, const Vector &up_, const Point 
&lookat_ )
-    { update(); getCurrent()->reset( eye_, up_, lookat_ ); }
+    { for(int i=0; i<Size; i++) cam[i]->reset( eye_, up_, lookat_ );}
     virtual void writeToFile(FILE *fp) const {getCurrent()->writeToFile(fp); 
};
     
///////////////////////////////////////////////////////////////////////////
     // Accessors

Modified: trunk/fox/afr_demo/Model/Cameras/AFRPinholeCamera.cc
==============================================================================
--- trunk/fox/afr_demo/Model/Cameras/AFRPinholeCamera.cc        (original)
+++ trunk/fox/afr_demo/Model/Cameras/AFRPinholeCamera.cc        Thu Feb  9 
21:51:07 2006
@@ -29,15 +29,8 @@
 
 Camera* AFRPinholeCamera::create(const vector<string>& args) {
 
-  Camera *camera = PinholeCamera::create( args );
-  
   // 60 is only hardcoded because there isn't a getFov method on the camera.
-  AFRPinholeCamera *afr_camera = new AFRPinholeCamera( camera->getPosition(),
-                                                       camera->getLookAt(),
-                                                       camera->getUp(),
-                                                       60 );
-  delete camera;  
-  return afr_camera;
+  return new AFRPinholeCamera( args );
 }
 
 

Modified: trunk/fox/afr_demo/StandAlone/afr.cc
==============================================================================
--- trunk/fox/afr_demo/StandAlone/afr.cc        (original)
+++ trunk/fox/afr_demo/StandAlone/afr.cc        Thu Feb  9 21:51:07 2006
@@ -68,6 +68,7 @@
 #include <Model/Primitives/Sphere.h>
 #include <Model/TexCoordMappers/UniformMapper.h>
 #include <SCIRun/Core/Thread/Thread.h>
+#include <Model/Cameras/AFRCamera.h>
 
 #include <strings.h>
 
@@ -124,6 +125,7 @@
   printList(cerr, rtrt->listPixelSamplers(), 4);
   cerr << " -camera S       - User camera model S, valid cameras are:\n";
   printList(cerr, rtrt->listCameras(), 4);
+
   cerr << " -bbcamera       - Positions the lookat in the center of the\n";
   cerr << "                   scene, and the eye point far enough away to\n";
   cerr << "                   see the entire scene.\n";
@@ -227,6 +229,7 @@
       if(arg == "-help"){
         usage(rtrt);
 
+
         
       } else if(arg == "-bench" || arg == "-quietbench"){
 
@@ -253,10 +256,15 @@
         string s;
         if(!getStringArg(i, args, s))
           usage(rtrt);
-        currentCamera = rtrt->createCamera(s);
+        Camera *tempcam = rtrt->createCamera(s);
+        currentCamera->reset(tempcam->getPosition(), tempcam->getUp(), 
tempcam->getLookAt());
+        if (!dynamic_cast<AFRCamera *>( currentCamera ))
+           throw InternalError( "Didn't create an AFRCamera", __FILE__, 
__LINE__ );
+        
         if(!currentCamera){
           cerr << "Error creating camera: " << s << ", available cameras 
are:\n";
           printList(cerr, rtrt->listCameras());
+
           throw IllegalArgument( s, i, args );
         }
       } else if(arg == "-bbcamera" || arg == "-autoview"){




  • [MANTA] r925 - in trunk/fox/afr_demo: Engine/ImageTraversers Model/Cameras StandAlone, abhinav, 02/09/2006

Archive powered by MHonArc 2.6.16.

Top of page