00001 /* 00002 toxic - A Global Illumination Renderer 00003 Copyright (C) 2003-2004 Francois Beaune 00004 Contact: http://toxicengine.sourceforge.net/ 00005 00006 This file is part of toxic. 00007 00008 toxic is free software; you can redistribute it and/or modify 00009 it under the terms of the GNU General Public License as published by 00010 the Free Software Foundation; either version 2 of the License, or 00011 (at your option) any later version. 00012 00013 toxic is distributed in the hope that it will be useful, 00014 but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00016 GNU General Public License for more details. 00017 00018 You should have received a copy of the GNU General Public License 00019 along with toxic; if not, write to the Free Software 00020 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00021 */ 00022 00023 inline 00024 Map2::Map2(const Map2 &m) : 00025 m_width(m.m_width), 00026 m_height(m.m_height), 00027 m_texels(m.m_texels) 00028 { 00029 } 00030 00031 inline 00032 Color3 Map2::Evaluate(sheep::Real u, sheep::Real v) const { 00033 assert(u >= 0.0 && u <= 1.0); 00034 assert(v >= 0.0 && v <= 1.0); 00035 00036 int x = static_cast<int>(m_width * u); // discard fractional part 00037 int y = static_cast<int>(m_height * v); // discard fractional part 00038 00039 assert(x >= 0 && x <= m_width); 00040 assert(y >= 0 && y <= m_height); 00041 00042 if(x == m_width) --x; 00043 if(y == m_height) --y; 00044 00045 return m_texels[y * m_width + x]; 00046 }
1.3.6