MHydrax code example        

This code example shows how you can use the Managed Hydrax Wrapper under Mogre 1.7.

The code was written by user Jo0oker for his game engine Tehadon.

help For questions use this forum topic.

Overview

  • THydraxItem.cs
    ... TODO ...
  • ITHydraxItem.cs
    ... TODO ...
  • THydraxManager.cs
    ... TODO ...



TODO:

  • Add a short description for the classes
  • Attach code files as zip archive to wiki page




THydraxItem.cs

Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports MHydrax
Imports Mogre

Namespace Tehadon.Gfx.THydrax
	Public Class THydraxItem
		Implements ITHydraxItem
		#Region "Private Members"

		'Manager
		Private myTHydraxManager As THydraxManager

		'Hydrax
		Private myNoise As MNoise
		Private myOptions As MProjectedGrid.MOptions
		Private myModule As MModule
		Private myHydrax As MHydrax.MHydrax

		Private myConfigFile As String
		Private myPlane As Plane
		Private myDoUpdate As Boolean
		#End Region

		#Region "Constructor"
		''' <summary>
		''' Constructor
		''' </summary>
		''' <param name="THydraxManager"></param>
		Public Sub New(THydraxManager As THydraxManager)
			myTHydraxManager = THydraxManager
			myDoUpdate = True
		End Sub
		#End Region

		#Region "Update"
		''' <summary>
		''' Update
		''' </summary>
		''' <param name="evt"></param>
		''' <returns></returns>
		Public Function Update(evt As FrameEvent) As Boolean
			If Not myDoUpdate Then
				Return True
			End If

			If myHydrax IsNot Nothing Then
				myHydrax.Update(evt.timeSinceLastFrame)
			End If
			Return True
		End Function
		#End Region

		#Region "Create Grid"
		''' <summary>
		''' Create the Projectiongrid
		''' </summary>
		Public Sub CreateProjectedGrid()
			myOptions = New MProjectedGrid.MOptions()
		End Sub
		#End Region

		#Region "Create Plane"
		''' <summary>
		''' Create the Ogre-Plaine
		''' </summary>
		Public Sub CreatePlane()
			myPlane = New Plane(New Vector3(0, 1, 0), New Vector3(0, 0, 0))
		End Sub
		#End Region

		#Region "Create Noise"
		''' <summary>
		''' Create Noise
		''' </summary>
		Public Sub CreateNoise()
			myNoise = New MPerlin()
		End Sub
		#End Region

		#Region "Create Module"
		''' <summary>
		''' Create the Main-Modul for Hydrax
		''' </summary>
		Public Sub CreateModule()
			myModule = New MProjectedGrid(myHydrax, myNoise, myPlane, 
                                MMaterialManager.MNormalMode.NM_VERTEX, myOptions)
		End Sub
		#End Region

		#Region "Create"
		''' <summary>
		''' Create MHyydrax
		''' </summary>
		Public Sub Create()
			' create Hydrax instance
			myHydrax = New MHydrax.MHydrax(myTHydraxManager.GfxManager.TOgreManager.Singelton.SceneManager,
                                myTHydraxManager.GfxManager.TOgreManager.Singelton.Camera,
                                myTHydraxManager.GfxManager.TOgreManager.Singelton.Viewport)

			CreateModule()

			' set module and load settings
			myHydrax.SetModule(myModule)
			myHydrax.LoadCfg(myConfigFile)

			' create water
			myHydrax.Create()
		End Sub
		#End Region

		#Region "Public Members"
		Public Property Hydrax() As MHydrax.MHydrax
			Get
				Return myHydrax
			End Get
			Set
				myHydrax = value
			End Set
		End Property

		Public Property Noise() As MNoise
			Get
				Return myNoise
			End Get
			Set
				myNoise = value
			End Set
		End Property

		Public Property Options() As MProjectedGrid.MOptions
			Get
				Return myOptions
			End Get
			Set
				myOptions = value
			End Set
		End Property

		Public Property Module() As MModule
			Get
				Return myModule
			End Get
			Set
				myModule = value
			End Set
		End Property

		Public Property ConfigFile() As String
			Get
				Return myConfigFile
			End Get
			Set
				myConfigFile = value
			End Set
		End Property

		Public Property Plane() As Plane
			Get
				Return myPlane
			End Get
			Set
				myPlane = value
			End Set
		End Property
		#End Region
	End Class
End Namespace



ITHydraxItem.cs

Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports Mogre
Imports MHydrax

Namespace Tehadon.Gfx.THydrax
	Public Interface ITHydraxItem
		#Region "Update"
		''' <summary>
		''' Update
		''' </summary>
		''' <param name="evt"></param>
		''' <returns></returns>
		Function Update(evt As FrameEvent) As Boolean
		#End Region

		#Region "Create Grid"
		''' <summary>
		''' Create the Projectiongrid
		''' </summary>
		Sub CreateProjectedGrid()
		#End Region

		#Region "Create Plane"
		''' <summary>
		''' Create the Ogre-Plaine
		''' </summary>
		Sub CreatePlane()
		#End Region

		#Region "Create Noise"
		''' <summary>
		''' Create Noise
		''' </summary>
		Sub CreateNoise()
		#End Region

		#Region "Create Module"
		''' <summary>
		''' Create the Main-Modul for Hydrax
		''' </summary>
		Sub CreateModule()
		#End Region

		#Region "Create"
		''' <summary>
		''' Create MHyydrax
		''' </summary>
		Sub Create()
		#End Region

		#Region "Public Members"
		Property Noise() As MNoise

		Property Options() As MProjectedGrid.MOptions

		Property [Module]() As MModule

		Property ConfigFile() As String

		Property Plane() As Plane

		Property Hydrax() As MHydrax.MHydrax
		#End Region
	End Interface
End Namespace



THydraxManager.cs


Imports System.Collections.Generic
Imports System.Linq
Imports System.Text

Namespace Tehadon.Gfx.THydrax
	Public Class THydraxManager
		#Region "Private Members"
		Private myGfxManager As GfxManager
		#End Region

		#Region "Constructor"
		''' <summary>
		''' Constructor
		''' </summary>
		''' <param name="GfxManager"></param>
		Public Sub New(GfxManager As GfxManager)
			myGfxManager = GfxManager
		End Sub
		#End Region

		#Region "GetNew"
		Public Function GetNew() As ITHydraxItem
			Return New THydraxItem(Me)
		End Function
		#End Region

		#Region "Public Members"
		Public Property GfxManager() As GfxManager
			Get
				Return myGfxManager
			End Get
			Set
				myGfxManager = value
			End Set
		End Property
		#End Region
	End Class
End Namespace