Text archives Help
- 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.