Text archives Help
- From: boulos@sci.utah.edu
- To: manta@sci.utah.edu
- Subject: [MANTA] r1563 - in trunk: Interface Model/Cameras StandAlone scenes
- Date: Thu, 26 Jul 2007 14:47:41 -0600 (MDT)
Author: boulos
Date: Thu Jul 26 14:47:41 2007
New Revision: 1563
Modified:
trunk/Interface/Camera.cc
trunk/Interface/Camera.h
trunk/Interface/Scene.cc
trunk/Interface/Scene.h
trunk/Model/Cameras/EnvironmentCamera.cc
trunk/Model/Cameras/FisheyeCamera.cc
trunk/Model/Cameras/FisheyeCamera.h
trunk/Model/Cameras/OrthogonalCamera.cc
trunk/Model/Cameras/OrthogonalCamera.h
trunk/Model/Cameras/PinholeCamera.cc
trunk/Model/Cameras/PinholeCamera.h
trunk/StandAlone/manta.cc
trunk/scenes/0.cc
trunk/scenes/dynlt.cc
trunk/scenes/pnrrd.cc
Log:
Interface/Camera.cc
Interface/Camera.h
Interface/Scene.cc
Interface/Scene.h
Model/Cameras/EnvironmentCamera.cc
Model/Cameras/FisheyeCamera.cc
Model/Cameras/FisheyeCamera.h
Model/Cameras/OrthogonalCamera.cc
Model/Cameras/OrthogonalCamera.h
Model/Cameras/PinholeCamera.cc
Model/Cameras/PinholeCamera.h
StandAlone/manta.cc
scenes/0.cc
scenes/dynlt.cc
scenes/pnrrd.cc
Updating all cameras, interfaces, and scenes visible to me to support
both horizontal and vertical field of view. If you have scenes or
libraries that link against Manta and use the addBookmark feature (or
directly create some of these cameras) you may need to add an
additional vfov argument.
Modified: trunk/Interface/Camera.cc
==============================================================================
--- trunk/Interface/Camera.cc (original)
+++ trunk/Interface/Camera.cc Thu Jul 26 14:47:41 2007
@@ -12,8 +12,8 @@
}
BasicCameraData::BasicCameraData(const Vector& eye, const Vector& lookat,
- const Vector& up, double hfov)
- : eye(eye), lookat(lookat), up(up), hfov(hfov)
+ const Vector& up, double hfov, double vfov)
+ : eye(eye), lookat(lookat), up(up), hfov(hfov), vfov(vfov)
{
}
Modified: trunk/Interface/Camera.h
==============================================================================
--- trunk/Interface/Camera.h (original)
+++ trunk/Interface/Camera.h Thu Jul 26 14:47:41 2007
@@ -18,7 +18,11 @@
class BasicCameraData {
public:
BasicCameraData() {}
- BasicCameraData(const Vector& eye, const Vector& lookat, const Vector&
up, double hfov);
+ BasicCameraData(const Vector& eye,
+ const Vector& lookat,
+ const Vector& up,
+ double hfov,
+ double vfov);
// The position of the camera
Vector eye;
@@ -28,10 +32,11 @@
// This will be parallel to the y coordinate of the image
Vector up;
- // For a pinhole camera, this will be the horizontal field of view. For
a
+ // For a pinhole camera, this will be the horizontal field of view. For
a
// orthographic camera, it will be the effective field of view angle at
the
// lookat point
double hfov;
+ double vfov;
// Someday, it may be nice to add extra space with an identifier for
camera that
// want to store other parameters here.
@@ -53,10 +58,10 @@
virtual void getBasicCameraData(BasicCameraData& cam) const = 0;
virtual BasicCameraData getBasicCameraData() const { BasicCameraData c;
getBasicCameraData(c); return c; }
-
+
// This is not pass by reference because it needs to be used in a
transaction
virtual void setBasicCameraData(BasicCameraData cam) = 0;
-
+
virtual Vector getPosition() const = 0; // This method is called
// to get the eye point by
// HeadLight etc.
Modified: trunk/Interface/Scene.cc
==============================================================================
--- trunk/Interface/Scene.cc (original)
+++ trunk/Interface/Scene.cc Thu Jul 26 14:47:41 2007
@@ -3,9 +3,9 @@
using namespace Manta;
int Scene::addBookmark(const std::string& name, const Vector& eye, const
Vector& lookat,
- const Vector& up, double hfov)
+ const Vector& up, double hfov, double vfov)
{
- return addBookmark(name, BasicCameraData(eye, lookat, up, hfov));
+ return addBookmark(name, BasicCameraData(eye, lookat, up, hfov, vfov));
}
int Scene::addBookmark(const std::string& name, const BasicCameraData& cam)
@@ -44,4 +44,4 @@
return &bookmarks[currentBookmark_id]->cameradata;
}
-
+
Modified: trunk/Interface/Scene.h
==============================================================================
--- trunk/Interface/Scene.h (original)
+++ trunk/Interface/Scene.h Thu Jul 26 14:47:41 2007
@@ -68,7 +68,7 @@
}
int addBookmark(const std::string& name, const Vector& eye, const
Vector& lookat,
- const Vector& up, double hfov);
+ const Vector& up, double hfov, double vfov);
int addBookmark(const std::string& name, const BasicCameraData& cam);
void selectBookmark(unsigned int bookmark);
const BasicCameraData* nextBookmark();
Modified: trunk/Model/Cameras/EnvironmentCamera.cc
==============================================================================
--- trunk/Model/Cameras/EnvironmentCamera.cc (original)
+++ trunk/Model/Cameras/EnvironmentCamera.cc Thu Jul 26 14:47:41 2007
@@ -93,7 +93,7 @@
void EnvironmentCamera::getBasicCameraData(BasicCameraData& cam) const
{
// fov doesn't make sense for this camera - use a reasonable default
- cam = BasicCameraData(eye, lookat, up, 60);
+ cam = BasicCameraData(eye, lookat, up, 60, 60);
}
void EnvironmentCamera::setBasicCameraData(BasicCameraData cam)
@@ -118,13 +118,13 @@
direction=lookat - eye;
n=direction;
n.normalize();
-
+
v=Cross(direction, up);
if (v.length2()==0.0) {
std::cerr << __FILE__ << " line: " << __LINE__ << " Ambiguous up
direciton...\n";
}
v.normalize();
-
+
u=Cross(v, direction);
u.normalize();
Modified: trunk/Model/Cameras/FisheyeCamera.cc
==============================================================================
--- trunk/Model/Cameras/FisheyeCamera.cc (original)
+++ trunk/Model/Cameras/FisheyeCamera.cc Thu Jul 26 14:47:41 2007
@@ -23,12 +23,15 @@
using namespace std;
FisheyeCamera::FisheyeCamera(const Vector& eye_, const Vector& lookat_,
- const Vector& up_, Real hfov_)
- : eye( eye_ ), lookat( lookat_ ), up( up_ ), hfov( hfov_ )
+ const Vector& up_, Real hfov_, Real vfov_)
+ : eye( eye_ ), lookat( lookat_ ), up( up_ ), hfov( hfov_ ), vfov( vfov_)
{
haveCamera = true;
setup();
+ // NOTE(boulos): Someone (Andrew?) should mention why this division
+ // by 90 is being done.
hfov = hfov / 90;
+ vfov = vfov / 90;
}
FisheyeCamera::FisheyeCamera(const vector<string>& args)
@@ -59,16 +62,29 @@
} else if(arg == "-fov"){
if(!getArg<Real>(i, args, hfov))
throw IllegalArgument("FisheyeCamera -fov", i, args);
+ vfov = hfov;
+ gotFov = true;
+ haveCamera = true;
+ } else if(arg == "-hfov"){
+ if(!getArg<Real>(i, args, hfov))
+ throw IllegalArgument("FisheyeCamera -hfov", i, args);
+ gotFov = true;
+ haveCamera = true;
+ } else if(arg == "-vfov"){
+ if(!getArg<Real>(i, args, vfov))
+ throw IllegalArgument("FisheyeCamera -vfov", i, args);
gotFov = true;
haveCamera = true;
} else {
throw IllegalArgument("FisheyeCamera", i, args);
}
}
+ // TODO(boulos): Separate the gotFov into gotVfov and gotHfov
if(!gotEye || !gotLookat || !gotUp || !gotFov)
throw IllegalArgument("FisheyeCamera needs -eye -lookat -up and -fov",
0, args);
setup();
hfov /= 90;
+ vfov /= 90;
}
FisheyeCamera::~FisheyeCamera()
@@ -82,7 +98,6 @@
void FisheyeCamera::setup()
{
- vfov = hfov;
direction=lookat-eye;
nearZ=direction.length();
@@ -104,6 +119,7 @@
ASSERT(rays.getFlag(RayPacket::HaveImageCoordinates) );
rays.setFlag(RayPacket::ConstantOrigin|RayPacket::NormalizedDirections);
for(int i=rays.begin();i<rays.end();i++){
+ // TODO(boulos): Determine if vfov should be used in here...
Real imageX = rays.getImageCoordinates(i, 0);
Real imageY = rays.getImageCoordinates(i, 1);
Real z = Sqrt( 2 - imageX * imageX - imageY * imageY );
@@ -190,7 +206,9 @@
os << "fisheye( -eye " << eye
<< " -lookat " << lookat
<< " -up " << up
- << " -fov " << hfov*90 << " )"
+ << " -hfov " << hfov*90
+ << " -vfov " << vfov*90
+ << ")"
<< std::endl;
}
@@ -207,7 +225,7 @@
void FisheyeCamera::getBasicCameraData(BasicCameraData& cam) const
{
// fov doesn't make sense for this camera - use a reasonable default
- cam = BasicCameraData(eye, lookat, up, hfov);
+ cam = BasicCameraData(eye, lookat, up, hfov, vfov);
}
void FisheyeCamera::setBasicCameraData(BasicCameraData cam)
@@ -216,6 +234,7 @@
lookat = cam.lookat;
up = cam.up;
hfov = cam.hfov;
+ vfov = cam.vfov;
setup();
}
Modified: trunk/Model/Cameras/FisheyeCamera.h
==============================================================================
--- trunk/Model/Cameras/FisheyeCamera.h (original)
+++ trunk/Model/Cameras/FisheyeCamera.h Thu Jul 26 14:47:41 2007
@@ -14,12 +14,12 @@
class FisheyeCamera : public Camera {
private:
- void setup();
+ void setup();
public:
FisheyeCamera(const vector<string>& args);
FisheyeCamera(const Vector& eye_, const Vector& lookat_, const Vector&
up_,
- Real hfov_ = 60 );
-
+ Real hfov_ = 60, Real vfov_ = 60 );
+
virtual ~FisheyeCamera();
virtual void preprocess(const PreprocessContext& context);
virtual void makeRays(RayPacket&) const;
Modified: trunk/Model/Cameras/OrthogonalCamera.cc
==============================================================================
--- trunk/Model/Cameras/OrthogonalCamera.cc (original)
+++ trunk/Model/Cameras/OrthogonalCamera.cc Thu Jul 26 14:47:41 2007
@@ -17,8 +17,8 @@
using namespace SCIRun;
OrthogonalCamera::OrthogonalCamera(const Vector& eye_, const Vector& lookat_,
- const Vector& up_, Real hscale_ )
- : eye( eye_ ), lookat( lookat_ ), up( up_ ), hscale( hscale_ )
+ const Vector& up_, Real hscale_, Real
vscale_ )
+ : eye( eye_ ), lookat( lookat_ ), up( up_ ), hscale( hscale_ ),
vscale(vscale_)
{
haveCamera = true;
setup();
@@ -52,12 +52,25 @@
} else if(arg == "-scale"){
if(!getArg<Real>(i, args, hscale))
throw IllegalArgument("OrthogonalCamera -scale", i, args);
+ vscale = hscale;
+ gotScale = true;
+ haveCamera = true;
+ } else if(arg == "-hscale"){
+ if(!getArg<Real>(i, args, hscale))
+ throw IllegalArgument("OrthogonalCamera -hscale", i, args);
+ gotScale = true;
+ haveCamera = true;
+ } else if(arg == "-vscale"){
+ if(!getArg<Real>(i, args, vscale))
+ throw IllegalArgument("OrthogonalCamera -vscale", i, args);
gotScale = true;
haveCamera = true;
} else {
throw IllegalArgument("OrthogonalCamera", i, args);
}
}
+
+ // TODO(boulos): Separate gotScale into gotHScale and gotVScale
if(!gotEye || !gotLookat || !gotUp || !gotScale)
throw IllegalArgument("OrthogonalCamera needs -eye -lookat -up and
-scale", 0, args);
setup();
@@ -74,7 +87,6 @@
void OrthogonalCamera::setup()
{
- vscale = hscale;
direction=lookat-eye;
direction.normalize();
v=Cross(direction, up);
@@ -177,7 +189,9 @@
os << "orthogonal( -eye " << eye
<< " -lookat " << lookat
<< " -up " << up
- << " -scale " << hscale << " )"
+ << " -hscale " << hscale
+ << " -vscale " << vscale
+ << " )"
<< std::endl;
}
@@ -193,10 +207,10 @@
void OrthogonalCamera::getBasicCameraData(BasicCameraData& cam) const
{
- // fov doesn't make sense for this camera - use a reasonable default
- // hscale isn't the right thing to use for the fov. We should do the
- // math and fix this - Steve
- cam = BasicCameraData(eye, lookat, up, hscale);
+ // TODO(sparker): fov doesn't make sense for this camera - use a
+ // reasonable default hscale isn't the right thing to use for the
+ // fov. We should do the math and fix this.
+ cam = BasicCameraData(eye, lookat, up, hscale, vscale);
}
void OrthogonalCamera::setBasicCameraData(BasicCameraData cam)
@@ -205,6 +219,7 @@
lookat = cam.lookat;
up = cam.up;
hscale = cam.hfov;
+ vscale = cam.vfov;
setup();
}
Modified: trunk/Model/Cameras/OrthogonalCamera.h
==============================================================================
--- trunk/Model/Cameras/OrthogonalCamera.h (original)
+++ trunk/Model/Cameras/OrthogonalCamera.h Thu Jul 26 14:47:41 2007
@@ -14,7 +14,7 @@
class OrthogonalCamera : public Camera {
public:
OrthogonalCamera(const Vector& eye_, const Vector& lookat_,
- const Vector& up_, Real hscale_ );
+ const Vector& up_, Real hscale_, Real vscale_ );
OrthogonalCamera(const vector<string>& args);
virtual void preprocess(const PreprocessContext& context);
virtual ~OrthogonalCamera();
@@ -28,7 +28,7 @@
virtual void autoview(const BBox bbox);
virtual void output( std::ostream &os );
static Camera* create(const vector<string>& args);
-
+
virtual void getBasicCameraData(BasicCameraData& cam) const;
// This is not pass by reference because it needs to be used in a
transaction
virtual void setBasicCameraData(BasicCameraData cam);
@@ -36,10 +36,10 @@
virtual Vector getPosition() const { return eye; }
virtual Vector getLookAt() const { return lookat; }
virtual Vector getUp() const { return up; }
-
+
virtual void reset(const Vector& eye_, const Vector& up_,
const Vector& lookat_ );
-
+
private:
void setup();
Vector eye;
Modified: trunk/Model/Cameras/PinholeCamera.cc
==============================================================================
--- trunk/Model/Cameras/PinholeCamera.cc (original)
+++ trunk/Model/Cameras/PinholeCamera.cc Thu Jul 26 14:47:41 2007
@@ -21,9 +21,9 @@
using SCIRun::Abs;
PinholeCamera::PinholeCamera( const Vector& eye_, const Vector& lookat_,
- const Vector &up_, Real fov_ )
+ const Vector &up_, Real hfov_, Real vfov_ )
: eye( eye_ ), lookat( lookat_ ), up( up_ ),
- stereo_offset( 0.0 ), hfov( fov_ )
+ stereo_offset( 0.0 ), hfov( hfov_ ), vfov( vfov_)
{
haveCamera = true;
setup();
@@ -41,7 +41,7 @@
lookat = Vector ( 0, 0, (Real)0.3 );
up = Vector( 0, 0, 1 );
hfov = 60;
-
+ vfov = 60;
int argc = static_cast<int>(args.size());
for(int i=0; i< argc; i++){
string arg = args[i];
@@ -63,6 +63,15 @@
} else if(arg == "-fov"){
if(!getArg<Real>(i, args, hfov))
throw IllegalArgument("PinholeCamera -fov", i, args);
+ vfov = hfov;
+ haveCamera = true;
+ } else if(arg == "-hfov"){
+ if(!getArg<Real>(i, args, hfov))
+ throw IllegalArgument("PinholeCamera -hfov", i, args);
+ haveCamera = true;
+ } else if(arg == "-vfov"){
+ if(!getArg<Real>(i, args, vfov))
+ throw IllegalArgument("PinholeCamera -vfov", i, args);
haveCamera = true;
} else if(arg == "-normalizeRays"){
normalizeRays = true;
@@ -83,13 +92,15 @@
os << "pinhole( -eye " << eye
<< " -lookat " << lookat
<< " -up " << up
- << " -fov " << hfov;
+ << " -hfov " << hfov
+ << " -vfov " << vfov;
+
// Output the offset if one is set.
if (stereo_offset != 0.0) {
os << " -offset " << stereo_offset;
}
-
+
os << " )" << std::endl;
}
@@ -100,7 +111,6 @@
void PinholeCamera::setup()
{
- vfov = hfov; // set field of view
direction=lookat-eye; // the normal vector
nearZ=direction.length(); // lenghth to near plane
@@ -128,7 +138,7 @@
height=nearZ*tan(vfov*(Real)(0.5*M_PI/180.0));
u*=height;
width=nearZ*tan(hfov*(Real)(0.5*M_PI/180.0));
- v*=width;
+ v*=width;
}
@@ -199,19 +209,19 @@
Real u_vec[3] = { u[0], u[1], u[2] };
Real v_vec[3] = { v[0], v[1], v[2] };
Real d_vec[3] = { direction[0], direction[1], direction[2] };
-
+
for(int i=rays.begin();i<rays.end();i++)
{
data->origin[0][i] = eye.data[0];
data->origin[1][i] = eye.data[1];
data->origin[2][i] = eye.data[2];
-
+
const Real u_coord = data->image[1][i];
const Real v_coord = data->image[0][i];
-
+
data->direction[0][i] = d_vec[0] + u_coord * u_vec[0] + v_coord *
v_vec[0];
data->direction[1][i] = d_vec[1] + u_coord * u_vec[1] + v_coord *
v_vec[1];
- data->direction[2][i] = d_vec[2] + u_coord * u_vec[2] + v_coord *
v_vec[2];
+ data->direction[2][i] = d_vec[2] + u_coord * u_vec[2] + v_coord *
v_vec[2];
}
#endif
#ifdef VERSION1
@@ -322,19 +332,19 @@
Real u_vec[3] = { u[0], u[1], u[2] };
Real v_vec[3] = { v[0], v[1], v[2] };
Real d_vec[3] = { direction[0], direction[1], direction[2] };
-
+
for(int i=rays.begin();i<rays.end();i++)
{
data->origin[0][i] = eye.data[0];
data->origin[1][i] = eye.data[1];
data->origin[2][i] = eye.data[2];
-
+
const Real u_coord = data->image[1][i];
const Real v_coord = data->image[0][i];
-
+
data->direction[0][i] = d_vec[0] + u_coord * u_vec[0] + v_coord *
v_vec[0];
data->direction[1][i] = d_vec[1] + u_coord * u_vec[1] + v_coord *
v_vec[1];
- data->direction[2][i] = d_vec[2] + u_coord * u_vec[2] + v_coord *
v_vec[2];
+ data->direction[2][i] = d_vec[2] + u_coord * u_vec[2] + v_coord *
v_vec[2];
}
}
}
@@ -427,19 +437,20 @@
}
void PinholeCamera::reset(Vector const& eye_, Vector const& up_,
- Vector const& lookat_, Real const hfov_)
+ Vector const& lookat_, Real const hfov_,
+ Real const vfov_)
{
eye=eye_;
up=up_;
lookat=lookat_;
hfov=hfov_;
+ vfov=vfov_;
setup();
}
void PinholeCamera::getBasicCameraData(BasicCameraData& cam) const
{
- // fov doesn't make sense for this camera - use a reasonable default
- cam = BasicCameraData(eye, lookat, up, hfov);
+ cam = BasicCameraData(eye, lookat, up, hfov, vfov);
}
void PinholeCamera::setBasicCameraData(BasicCameraData cam)
@@ -448,6 +459,7 @@
lookat = cam.lookat;
up = cam.up;
hfov = cam.hfov;
+ vfov = cam.vfov;
setup();
}
@@ -464,6 +476,7 @@
lookat = Vector(0,0,0);
up = Vector(0, 0, 1);
hfov = 60;
+ vfov = 60;
BBox bbox;
scene->getObject()->computeBounds(context, bbox);
autoview(bbox);
Modified: trunk/Model/Cameras/PinholeCamera.h
==============================================================================
--- trunk/Model/Cameras/PinholeCamera.h (original)
+++ trunk/Model/Cameras/PinholeCamera.h Thu Jul 26 14:47:41 2007
@@ -16,7 +16,7 @@
class PinholeCamera : public Camera {
public:
PinholeCamera( const Vector& eye_, const Vector& lookat_,
- const Vector &up_, Real fov_ );
+ const Vector &up_, Real hfov_, Real vfov_ );
PinholeCamera(const vector<string>& args);
virtual ~PinholeCamera();
virtual void preprocess(const PreprocessContext& context);
@@ -35,15 +35,15 @@
virtual void setBasicCameraData(BasicCameraData cam);
static Camera* create(const vector<string>& args);
-
+
virtual Vector getPosition() const { return eye; }
virtual Vector getLookAt() const { return lookat; };
virtual Vector getUp() const { return up; };
-
+
virtual void reset( const Vector& eye_, const Vector& up_,
const Vector& lookat_ );
virtual void reset(Vector const& eye_, Vector const& up_,
- Vector const& lookat_, Real const hfov_);
+ Vector const& lookat_, Real const hfov_, Real const
vfov_ );
void setStereoOffset( Real stereo_offset_ ) { stereo_offset =
stereo_offset_; }
Real getStereoOffset() const { return stereo_offset; }
Modified: trunk/StandAlone/manta.cc
==============================================================================
--- trunk/StandAlone/manta.cc (original)
+++ trunk/StandAlone/manta.cc Thu Jul 26 14:47:41 2007
@@ -627,6 +627,6 @@
scene->setLights(lights);
scene->getRenderParameters().maxDepth = 5;
- scene->addBookmark("default view", Vector(3, 3, 2), Vector(0, 0, 0.3),
Vector(0, 0, 1), 60);
+ scene->addBookmark("default view", Vector(3, 3, 2), Vector(0, 0, 0.3),
Vector(0, 0, 1), 60, 60);
return scene;
}
Modified: trunk/scenes/0.cc
==============================================================================
--- trunk/scenes/0.cc (original)
+++ trunk/scenes/0.cc Thu Jul 26 14:47:41 2007
@@ -63,8 +63,8 @@
}
static void create_objs(Group* group, const Vector& center,
- double radius, const Vector& dir, int depth,
- Vector* objset, Material* matl)
+ double radius, const Vector& dir, int depth,
+ Vector* objset, Material* matl)
{
group->add(new Sphere(matl, center, radius));
@@ -90,7 +90,7 @@
}
static void make_box(Group* group, Material* matl,
- const Vector& corner, const Vector& x, const Vector& y,
const Vector& z)
+ const Vector& corner, const Vector& x, const Vector& y,
const Vector& z)
{
group->add(new Parallelogram(matl, corner, x*2, z*2));
group->add(new Parallelogram(matl, corner+y*2, z*2, x*2));
@@ -105,7 +105,7 @@
create_dirs(objset);
Material* matl0=new Lambertian(Color(RGBColor(.4,.4,.4)));
create_objs(group, Vector(0,0,.5), BV_RADIUS/2.0, Vector(0,0,1),
- size, objset, matl0);
+ size, objset, matl0);
world->add(group);
Vector diag1(1,1,0);
@@ -124,9 +124,9 @@
double planesize=15;
double scale = 2*planesize;
Material* matl2 = new Lambertian(new
CheckerTexture<Color>(Color(RGBColor(.95,.95,.95)),
-
Color(RGBColor(.7,.3,.3)),
-
Vector(1,1.1,0)*scale,
-
Vector(-1.1,1,0)*scale));
+
Color(RGBColor(.7,.3,.3)),
+
Vector(1,1.1,0)*scale,
+
Vector(-1.1,1,0)*scale));
Vector edge1(planesize, planesize*1.1, 0);
Vector edge2(-planesize*1.1, planesize, 0);
Object* obj1=new Parallelogram(matl2, Vector(0,0,0)-edge1-edge2, edge1*2,
edge2*2);
@@ -142,15 +142,15 @@
Group* group = 0;
Factory factory( context.manta_interface );
-
+
for(int i=0;i<argc;i++){
string arg = args[i];
if(arg == "-size"){
if(!getIntArg(i, args, scenesize))
- throw IllegalArgument("scene 0 -size", i, args);
+ throw IllegalArgument("scene 0 -size", i, args);
} else if(arg == "-light"){
if(!getDoubleArg(i, args, light_radius))
- throw IllegalArgument("scene 0 -light", i, args);
+ throw IllegalArgument("scene 0 -light", i, args);
} else if(arg == "-group"){
string s;
if(!getStringArg(i, args, s))
@@ -182,19 +182,19 @@
rtrt::Plane groundplane ( Vector(0, 0, 0), Vector(0, 0, 3) );
Scene* scene=new Scene(obj, cam,
- bgcolor, cdown, cup, groundplane,
- ambient_scale, Arc_Ambient);
+ bgcolor, cdown, cup, groundplane,
+ ambient_scale, Arc_Ambient);
scene->select_shadow_mode( Single_Soft_Shadow );
#endif
Scene* scene = new Scene();
scene->setBackground(new LinearBackground(Color(RGB(0.2, 0.4, 0.9)),
- Color::black(),
- Vector(0,0,1)));
+ Color::black(),
+ Vector(0,0,1)));
scene->setObject(world);
scene->addBookmark("default view", Vector(1.8,-5.53,1.25),
Vector(0.0,-.13,1.22),
- Vector(0,0,1), 28.2);
- scene->addBookmark("top view", Vector(-0.8, 0.1, 7), Vector(-1, 1, 1.5),
Vector(-1, 1, 0), 45);
+ Vector(0,0,1), 28.2, 28.2);
+ scene->addBookmark("top view", Vector(-0.8, 0.1, 7), Vector(-1, 1, 1.5),
Vector(-1, 1, 0), 45, 45);
NOT_FINISHED("soft shadows/area lights for scene 0");
LightSet* lights = new LightSet();
lights->add(new PointLight(Vector(5,-3,3), Color(RGB(1,1,.8))*2));
Modified: trunk/scenes/dynlt.cc
==============================================================================
--- trunk/scenes/dynlt.cc (original)
+++ trunk/scenes/dynlt.cc Thu Jul 26 14:47:41 2007
@@ -164,7 +164,7 @@
throw IllegalArgument("scene dynlt -shadetype", i , args);
} else if (arg=="-colormap") {
if (!getStringArg(i, args, colorMapType))
- throw IllegalArgument("scene dynlt -colormap", i, args);
+ throw IllegalArgument("scene dynlt -colormap", i, args);
} else {
cerr<<"Valid options for scene dynlt:\n";
// cerr<<" -bv <string> bounding volume
{bvh|grid|group}\n";
@@ -259,7 +259,7 @@
Thread::NotActivated);
thread->setStackSize(WORKER_THREAD_STACKSIZE);
thread->activate(false);
-
+
// Register termination callback
context.manta_interface->registerTerminationCallback(Callback::create(worker,
&DynLTWorker::terminate));
}
@@ -276,7 +276,7 @@
#ifdef USE_STATS_COLLECTOR
// Register DynLTStatsCollector::resetPerFrameStats to reset per-frame
stats
-
context.manta_interface->registerSerialPreRenderCallback(Callback::create(DynLTStatsCollector::resetPerFrameStats));
+
context.manta_interface->registerSerialPreRenderCallback(Callback::create(DynLTStatsCollector::resetPerFrameStats));
if (stats) {
// Register DynLTStatsCollector::dump to output statistics on exit
@@ -321,38 +321,38 @@
Vector(0.0258901, 0.0350857, 0.0101507),
Vector(0.0265856, -0.0189865, -0.00485091),
Vector(-0.987557, 0.157203, 0.00437984),
- 33.0838);
+ 33.0838, 33.0838);
scene->addBookmark("cylinder",
Vector(0.0341205, 0.0316136, -0.0175898),
Vector(0.0433734, -0.0201009, 0.00214181),
Vector(-1, 0, 0),
- 60.0);
+ 60.0, 60.0);
scene->addBookmark("thunder zoom",
Vector(-0.0243489, -0.0387558, -0.0511661),
Vector(0.0457378, -0.0446916, 0.0355259),
Vector(0, 1, 0),
- 45.0);
+ 45.0, 45.0);
scene->addBookmark("bullet",
Vector(-0.00660217, 0.0288114, 0.0100214),
Vector(0.00911079, -0.0242788, 0.000859511),
Vector(-0.161427, -0.0436313, 0.98592),
- 7.03459);
+ 7.03459, 7.03459);
*/
/*
scene->addBookmark("debug 0", Vector(0.06, 26.9721, 0.06),
- Vector(0.06, 0.06, 0.06), Vector(0, 0, 1), 0.59);
+ Vector(0.06, 0.06, 0.06), Vector(0, 0, 1), 0.59, 0.59);
scene->addBookmark("view 0", Vector(0.02, 1.02, 0.20),
Vector(0.02, 0.02, 0.20), Vector(0, 0, 1),
- 0.59);
+ 0.59, 0.59);
scene->addBookmark("view 1", Vector(0.83, 0.85, 4.71),
Vector(0.02, 0.01, 0.29), Vector(-0.54, -0.58, 0.59),
- 0.59);
+ 0.59, 0.59);
scene->addBookmark("view 2", Vector(-0.83, 0.85, 4.71),
Vector(0.02, 0.01, 0.29), Vector(-0.59, -0.59, 0.59),
- 0.59);
+ 0.59, 0.59);
scene->addBookmark("view 3", Vector(1.01349, 0.0783629, 0.297803),
Vector(0.02, 0.02, 0.2),
- Vector(-0.0890283, -0.13761, 0.986477), 0.204219);
+ Vector(-0.0890283, -0.13761, 0.986477), 0.204219, 0.204219);
*/
return scene;
Modified: trunk/scenes/pnrrd.cc
==============================================================================
--- trunk/scenes/pnrrd.cc (original)
+++ trunk/scenes/pnrrd.cc Thu Jul 26 14:47:41 2007
@@ -136,35 +136,35 @@
scene->addBookmark("foam 0", Vector(0.835869, -0.122922, 0.286287),
Vector(0.277762, 0.280163, 0.165134),
- Vector(-0.156483, 0.0792408, 0.984497), 58.4373);
+ Vector(-0.156483, 0.0792408, 0.984497), 58.4373,
58.4373);
scene->addBookmark("foam 1", Vector(-0.340352, -0.145661, 0.236622),
Vector(0.225205, 0.260603, 0.175516),
- Vector(0.0811998, 0.0367719, 0.996019), 6.8504);
+ Vector(0.0811998, 0.0367719, 0.996019), 6.8504, 6.8504);
scene->addBookmark("bullet", Vector(-0.0119308, -0.0248974, -0.0167165),
Vector(0.00851935, -0.0205668, 0.00802854),
- Vector(-0.562437, 0.757121, 0.332312), 32.6482);
+ Vector(-0.562437, 0.757121, 0.332312), 32.6482,
32.6482);
/*
scene->addBookmark("envmap debug", Vector(0.155849, 0.427053, 0.207308),
Vector(-0.0575852, 0.370596, 0.0405846),
- Vector(-0.615144, -0.00271556, 0.78841), 50.4702);
+ Vector(-0.615144, -0.00271556, 0.78841), 50.4702,
50.4702);
scene->addBookmark("debug 0", Vector(0.06, 26.9721, 0.06),
- Vector(0.06, 0.06, 0.06), Vector(0, 0, 1), 0.59);
+ Vector(0.06, 0.06, 0.06), Vector(0, 0, 1), 0.59, 0.59);
scene->addBookmark("debug 1", Vector(-10.3318,-2.88089, 24.71),
Vector(0.0812459, 0.0297618, 0.0654057),
- Vector(0.00678671, -0.993405, -0.114458), 0.0232642);
+ Vector(0.00678671, -0.993405, -0.114458), 0.0232642,
.0232642);
scene->addBookmark("shadow error", Vector(-4.5545, 25.4447, 7.71331),
Vector(0.0534778, 0.0592496, 0.0578184),
- Vector(-0.2524, -0.321088, 0.912796), 0.0877432);
+ Vector(-0.2524, -0.321088, 0.912796), 0.0877432,
.0877432);
scene->addBookmark("view 0", Vector(0.02, 1.02, 0.20),
Vector(0.02, 0.02, 0.20), Vector(0, 0, 1),
- 0.59);
+ 0.59, 0.59);
scene->addBookmark("view 1", Vector(0.83, 0.85, 4.71),
Vector(0.02, 0.01, 0.29), Vector(-0.54, -0.58, 0.59),
- 0.59);
+ 0.59, 0.59);
scene->addBookmark("view 2", Vector(-0.83, 0.85, 4.71),
Vector(0.02, 0.01, 0.29), Vector(-0.59, -0.59, 0.59),
- 0.59);
+ 0.59, 0.59);
*/
return scene;
- [MANTA] r1563 - in trunk: Interface Model/Cameras StandAlone scenes, boulos, 07/26/2007
Archive powered by MHonArc 2.6.16.