| Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members |
00001 // Copyright (C) 2002-2008 Nikolaus Gebhardt 00002 // This file is part of the "Irrlicht Engine". 00003 // For conditions of distribution and use, see copyright notice in irrlicht.h 00004 00005 #ifndef __I_MESH_MANIPULATOR_H_INCLUDED__ 00006 #define __I_MESH_MANIPULATOR_H_INCLUDED__ 00007 00008 #include "IReferenceCounted.h" 00009 #include "vector3d.h" 00010 #include "aabbox3d.h" 00011 #include "matrix4.h" 00012 #include "IAnimatedMesh.h" 00013 #include "SColor.h" 00014 00015 namespace irr 00016 { 00017 namespace scene 00018 { 00019 00020 class IMesh; 00021 class IMeshBuffer; 00022 struct SMesh; 00023 00025 00030 class IMeshManipulator : public virtual IReferenceCounted 00031 { 00032 public: 00033 00035 virtual ~IMeshManipulator() {} 00036 00038 00041 virtual void flipSurfaces(IMesh* mesh) const = 0; 00042 00044 00046 virtual void setVertexColorAlpha(IMesh* mesh, s32 alpha) const = 0; 00047 00049 00051 virtual void setVertexColors(IMesh* mesh, video::SColor color) const = 0; 00052 00054 00056 virtual void recalculateNormals(IMesh* mesh, bool smooth = false) const = 0; 00057 00059 00061 virtual void recalculateNormals(IMeshBuffer* buffer, bool smooth = false) const = 0; 00062 00064 00066 virtual void scaleMesh(IMesh* mesh, const core::vector3df& scale) const = 0; 00067 00069 00071 virtual void transformMesh(IMesh* mesh, const core::matrix4& m) const = 0; 00072 00074 00080 virtual SMesh* createMeshCopy(IMesh* mesh) const = 0; 00081 00083 00087 virtual void makePlanarTextureMapping(IMesh* mesh, f32 resolution=0.001f) const = 0; 00088 00090 00098 virtual IMesh* createMeshWithTangents(IMesh* mesh) const = 0; 00099 00101 00106 virtual IMesh* createMeshWith2TCoords(IMesh* mesh) const = 0; 00107 00109 00114 virtual IMesh* createMeshUniquePrimitives(IMesh* mesh) const = 0; 00115 00117 00122 virtual IMesh* createMeshWelded(IMesh* mesh, f32 tolerance=core::ROUNDING_ERROR_32) const = 0; 00123 00125 00127 virtual s32 getPolyCount(IMesh* mesh) const = 0; 00128 00130 00132 virtual s32 getPolyCount(IAnimatedMesh* mesh) const = 0; 00133 00135 00141 virtual IAnimatedMesh * createAnimatedMesh(IMesh* mesh, 00142 scene::E_ANIMATED_MESH_TYPE type = scene::EAMT_UNKNOWN) const = 0; 00143 }; 00144 00145 } // end namespace scene 00146 } // end namespace irr 00147 00148 00149 #endif 00150
| The Irrlicht
Engine Documentation © 2003-2008 by Nikolaus Gebhardt. Generated
on Sun Jun 1 07:59:07 2008 by Doxygen
(1.4.2) |