00001 // 3dsmesh.h 00002 // 00003 // Copyright (C) 2001, Chris Laurel <claurel@shatters.net> 00004 // 00005 // This program is free software; you can redistribute it and/or 00006 // modify it under the terms of the GNU General Public License 00007 // as published by the Free Software Foundation; either version 2 00008 // of the License, or (at your option) any later version. 00009 00010 #ifndef _CELENGINE_3DSMESH_H_ 00011 #define _CELENGINE_3DSMESH_H_ 00012 00013 #include <vector> 00014 #include <string> 00015 #include <celmath/frustum.h> 00016 #include <celengine/mesh.h> 00017 #include <celengine/vertexlist.h> 00018 #include <cel3ds/3dsmodel.h> 00019 00020 class Mesh3DS : public Mesh 00021 { 00022 public: 00023 Mesh3DS(const M3DScene& scene, const std::string& texturePath); 00024 ~Mesh3DS(); 00025 00026 void render(float lod); 00027 void render(unsigned int attributes, float lod); 00028 void render(unsigned int attributes, const Frustum&, float lod); 00029 bool pick(const Ray3d& ray, double& distance); 00030 void normalize(const Vec3f& centerOffset); 00031 00032 private: 00033 typedef std::vector<VertexList*> VertexListVec; 00034 VertexListVec vertexLists; 00035 }; 00036 00037 #endif // _CELENGINE_3DSMESH_H_
1.4.1