/* === S Y N F I G ========================================================= */
/*! \file warp.cpp
-** \brief Template File
+** \brief Implementation of the "Warp" layer
**
** $Id$
**
** \legal
** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
-** Copyright (c) 2007 Chris Moore
+** Copyright (c) 2007, 2008 Chris Moore
**
** This package is free software; you can redistribute it and/or
** modify it under the terms of the GNU General Public License as
Point min_point(bounding_rect.get_min());
Point max_point(bounding_rect.get_max());
- // we're going to divide by the different of these pairs soon;
+ // we're going to divide by the difference of these pairs soon;
// if they're the same, we'll be dividing by zero, and we don't
// want to do that!
// \todo what should we do in this case?
- if (min_point[0] == max_point[0] || min_point[1] == max_point[1])
- {
- surface->set_wh(renddesc.get_w(),renddesc.get_h());
- surface->clear();
- return true;
- }
+ if (min_point[0] == max_point[0]) max_point[0] += 0.001;
+ if (min_point[1] == max_point[1]) max_point[1] += 0.001;
if(tl[0]>br[0])
{
else
(*surface)[y][x]=source.cubic_sample(u,v);
}
- if(y&31==0 && cb)
+ if((y&31)==0 && cb)
{
if(!stagetwo.amount_complete(y,surface->get_h()))
return false;
else
(*surface)[y][x]=source.linear_sample(u,v);
}
- if(y&31==0 && cb)
+ if((y&31)==0 && cb)
{
if(!stagetwo.amount_complete(y,surface->get_h()))
return false;
//pen.set_value(source[v][u]);
(*surface)[y][x]=source[floor_to_int(v)][floor_to_int(u)];
}
- if(y&31==0 && cb)
+ if((y&31)==0 && cb)
{
if(!stagetwo.amount_complete(y,surface->get_h()))
return false;