Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

square.inl

Go to the documentation of this file.
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 const sheep::AABB3 &Square::GetAABB() const {
00025     return m_aabb;
00026 }
00027 
00028 inline
00029 sheep::Real Square::ComputeSurfaceArea() const {
00030     const sheep::Real ex_norm2 = m_ex.SquareNorm();
00031     const sheep::Vector3 h(m_ez - (m_ex * m_ez) * m_ex / ex_norm2);
00032     return sqrt(ex_norm2) * h.Norm();
00033 }
00034 
00035 inline
00036 void Square::EvaluateSurface(const sheep::Point2 &input,
00037                              sheep::Point3 *point,
00038                              sheep::Vector3 *geometric_normal) const
00039 {
00040     assert(point);
00041     assert(geometric_normal);
00042 
00043     *point =
00044         m_center +
00045         (input.m_x - 0.5) * m_ex +
00046         (input.m_y - 0.5) * m_ez;
00047 
00048     *geometric_normal = m_normal;
00049 }

Generated on Tue May 11 01:31:52 2004 for toxic by doxygen 1.3.6