// Copyright (C) 2002-2006 Nikolaus Gebhardt // This file is part of the "Irrlicht Engine". // For conditions of distribution and use, see copyright notice in irrlicht.h #pragma once #using using namespace System; #pragma unmanaged #include "..\\..\\include\\irrlicht.h" #pragma managed #include "Box3D.h" #include "Material.h" namespace Irrlicht { namespace Scene { /// /// Interface for an static Mesh. /// public __gc class IMesh { public: /// /// You should create an IMesh /// through the Irrlicht::IrrlichtDevice::SceneManager::getMesh method. Simply don't use /// this constructor. /// ///The real, unmanaged C++ mesh IMesh(irr::scene::IMesh* realMesh); /// destructor ~IMesh(); /// /// Returns the amount of mesh buffers in this mesh /// __property int get_MeshBufferCount(); /// Returns pointer to a mesh buffer. /// \param Zero based index of the mesh buffer. The maximum value is /// getMeshBufferCount() - 1; /// \return Returns the pointer to the mesh buffer or /// NULL if there is no such mesh buffer. // virtual IMeshBuffer* getMeshBuffer(s32 nr) = 0; /// /// Gets or sets the axis aligned bounding box of the mesh. /// __property Core::Box3D get_BoundingBox(); /// /// Gets or sets the axis aligned bounding box of the mesh. /// __property void set_BoundingBox(Core::Box3D box); /// /// Sets a flag of all contained materials to a new value. /// /// Flag to set in all materials. /// New value to set in all materials. void setMaterialFlag(Video::MaterialFlag flag, bool newvalue); /// /// Returns the internal pointer to the native C++ irrlicht mesh. /// Do not use this, only needed by the internal .NET wrapper. /// __property irr::scene::IMesh* get_NativeMesh(); private: irr::scene::IMesh* Mesh; }; } }