polygon_mesher.H

00001 /*
00002  * This file is part of the "Archon" framework.
00003  * (http://files3d.sourceforge.net)
00004  *
00005  * Copyright © 2002 by Kristian Spangsege and Brian Kristiansen.
00006  *
00007  * Permission to use, copy, modify, and distribute this software and
00008  * its documentation under the terms of the GNU General Public License is
00009  * hereby granted. No representations are made about the suitability of
00010  * this software for any purpose. It is provided "as is" without express
00011  * or implied warranty. See the GNU General Public License
00012  * (http://www.gnu.org/copyleft/gpl.html) for more details.
00013  *
00014  * The characters in this file are ISO8859-1 encoded.
00015  *
00016  * The documentation in this file is in "Doxygen" style
00017  * (http://www.doxygen.org).
00018  */
00019 
00020 #ifndef ARCHON_UTILITIES_POLYGON_MESHER_H
00021 #define ARCHON_UTILITIES_POLYGON_MESHER_H
00022 
00023 #include <string>
00024 #include <vector>
00025 
00026 #include <archon/math/vector.H>
00027 
00028 #include <archon/util/exception.H>
00029 
00030 namespace Archon
00031 {
00032   namespace Utilities
00033   {
00034     using namespace std;
00035     using namespace Math;
00036 
00037     struct MesherException: virtual Exception {};
00038 
00039     struct MesherContext
00040     {
00041       virtual int addVertex(const Vector3 &) = 0;
00042       virtual void addPolygon(const vector<int> &) = 0;
00043       virtual ~MesherContext() {}
00044     };
00045 
00185     void meshPolygon(const vector<Vector3> &polygon,
00186                      double maxPatchSize,
00187                      MesherContext *context);
00188 
00201     void meshPolygon(const vector<Vector3> &polygon,
00202                      double maxPatchSize,
00203                      vector<Vector3> &resultingVertices,
00204                      vector<int> &resultingPolygons);
00205   }
00206 }
00207 
00208 #endif // ARCHON_UTILITIES_POLYGON_MESHER_H
00209 

Generated on Sun Jul 30 22:55:45 2006 for Archon by  doxygen 1.4.4