概要

SWIGというツールを使ってC++を呼び出す.NETのラッパが作られています。 ほとんどの場合、本家Irrlichtと同名のクラス、同名メソッドを使うことが出来ます。

変更点

1. 名前空間は全てIrrlichtNetSwigになります。

2. グローバル関数はIrrlichtNetクラスのメソッドになっています。

3. SWIGTYPE_p_voidなど、"SWIGTYPE_"で始まる型はポインタの戻り値やポインタのポインタなど.NETで対応できない型が使われているため使えません。

4. "I"から始まるクラスであってもinterfaceではなくclassです。これは本家Irrlichtの命名規則のためです。

5. drop、dropOwnメソッドはDisposeメソッドから呼ばれます。自ら使う必要はありません。

6. 継承関係があってもC#側でキャストは出来ません。「クラス名.cast(オブジェクト)」を使用してください。

7. "_"で始まるクラス・メソッドは非推奨です。内部的に使用しているものです。

8. 以下のクラスは.NET側で継承してIrrlichtに渡すことができます。

  • IEventReceiver
  • ISceneNode_ForInheritance
  • IShaderConstantSetCallBack
  • IMeshLoader
  • ISceneNodeAnimator
  • IFileReadCallBack_ForInheritance
  • IFileSystem_ForInheritance
  • IReadFile_ForInheritance
  • IWriteFile_ForInheritance

9. 以下のメソッド名を変更しています。(.NETで名前がかぶるため)

オリジナル変更後
lockLock

10. 以下のメソッドを追加しています。

追加先クラス 追加メソッド メソッドの説明
IrrlichtDevice BindEventRecieveControl .NET側のボタンにIrrlichtから描画させる場合にイベントをIrrlichtが受け取れるようにします
ITexture ImageDotNet .NETのBitmapとテクスチャを相互変換します。
ITexture Modify 引数に渡されたコールバック関数に従ってテクスチャを加工します。
ITexture Retrieve テクスチャ上の各点の色を取り出します。
SMaterial CopyFrom 引数に渡されたオブジェクトのメンバから値をコピーします。

11. 以下のメソッドにインデクサを追加しています。

  • IVertexBuffer
  • CVertexBuffer
  • SMD3QuaterionTagList
  • arrayByte
  • arrayInt
  • arrayRectInt
  • IrrStringc
  • IrrStringw
  • arrayVector3df
  • arraySGUISpriteFrame
  • arraySGUISprite
  • arrayQuake3SShader
  • arrayQuake3SVarGroup
  • arrayQuake3SVariable
  • arraySMD3QuaterionTag
  • arraySMD3TexCoord
  • arraySMD3Vertex
  • arraySJoystickInfo
  • arrayS3DVertex2TCoords
  • arrayS3DVertexTangents
  • arrayS3DVertex
  • arrayUInt
  • arrayUShort
  • arraySJoint
  • arraySRotationKey
  • arraySScaleKey
  • arraySPositionKey
  • arraySWeight
  • CMatrix4f
  • arrayMeshBuffer
  • arrayTexture
  • arraySMD3MeshBuffer
  • arrayMesh
  • arraySceneNode
  • arraySSkinMeshBuffer

12. 以下のクラス名を変更しています。

オリジナルクラス名 変更後クラス名
irr::core::aabbox3d<float> aabbox3df
irr::core::array<byte> arrayByte
irr::core::array<int> arrayInt
irr::core::array<rectInt> arrayRectInt
irr::core::array<irr::core::stringc> arrayStringc
irr::core::array<irr::core::stringw> arrayStringw
irr::core::array<irr::core::vector3df> arrayVector3df
irr::core::array<irr::gui::SGUISpriteFrame> arraySGUISpriteFrame
irr::core::array<irr::gui::SGUISprite> arraySGUISprite
irr::core::array<irr::scene::IMeshBuffer*> arrayMeshBuffer
irr::core::array<irr::scene::IMesh*> arrayMesh
irr::core::array<irr::scene::ISceneNode*> arraySceneNode
irr::core::array<irr::scene::quake3::SShader> arrayQuake3SShader
irr::core::array<irr::scene::quake3::SVarGroup> arrayQuake3SVarGroup
irr::core::array<irr::scene::quake3::SVariable> arrayQuake3SVariable
irr::core::array<irr::scene::SMD3MeshBuffer*> arraySMD3MeshBuffer
irr::core::array<irr::scene::SMD3QuaterionTag> arraySMD3QuaterionTag
irr::core::array<irr::scene::SMD3TexCoord> arraySMD3TexCoord
irr::core::array<irr::scene::SMD3Vertex> arraySMD3Vertex
irr::core::array<irr::SJoystickInfo> arraySJoystickInfo
irr::core::array<irr::video::ITexture*> arrayTexture
irr::core::array<irr::video::S3DVertex2TCoords> arrayS3DVertex2TCoords
irr::core::array<irr::video::S3DVertexTangents> arrayS3DVertexTangents
irr::core::array<irr::video::S3DVertex> arrayS3DVertex
irr::core::array<unsigned int> arrayUInt
irr::core::array<unsigned short> arrayUShort
irr::core::array<SJoint> arraySJoint
irr::core::array<SRotationKey> arraySRotationKey
irr::core::array<SScaleKey> arraySScaleKey
irr::core::array<SPositionKey> arraySPositionKey
irr::core::array<SWeight> arraySWeight
irr::core::array<SSkinMeshBuffer> arraySSkinMeshBuffer
irr::core::CMatrix4<float> CMatrix4f
irr::core::dimension2d<float> dimension2df
irr::core::dimension2d<int> dimension2di
irr::core::dimension2d<unsigned int> dimension2dui
irr::core::line2d<float> line2df
irr::core::line3d<float> line3df
irr::core::list<irr::gui::IGUIElement*> listGUIElement
irr::core::list<irr::scene::ISceneNodeAnimator*> listSceneNodeAnimator
irr::core::list<irr::scene::ISceneNode*> listSceneNode
irr::core::plane3d<float> plane3df
irr::core::position2d<float> position2df
irr::core::position2d<int> position2di
irr::core::rect<float> rectf
irr::core::rect<int> recti
irr::core::triangle3d<float> triangle3df
irr::core::vector2d<float> vector2df
irr::core::vector3d<float> vector3df
irr::io::IIrrXMLReader<char,irr::io::IXMLBase> IIrrXMLReaderCXMLBase
irr::io::IIrrXMLReader<char,irr::IReferenceCounted> IIrrXMLReaderCReferenceCounted
irr::io::IIrrXMLReader<unsigned long,irr::io::IXMLBase> IIrrXMLReaderLXMLBase
irr::io::IIrrXMLReader<unsigned short,irr::io::IXMLBase> IIrrXMLReaderUSXMLBase
irr::io::IIrrXMLReader<wchar_t, irr::IReferenceCounted> IIrrXMLReaderReferenceCounted