History: MHydrax code example
Source of version: 1
- «
- »
Copy to clipboard
This code example shows how you can use the ((Managed Hydrax Wrapper)) under ((Mogre)) 1.7.
The code was written by user [http://www.ogre3d.org/addonforums/memberlist.php?mode=viewprofile&u=13985|Jo0oker] for his game engine [http://eggers-sw.de/index.php/news|Tehadon].
%help% For questions use [http://www.ogre3d.org/addonforums/viewtopic.php?f=8&t=13934|this forum topic].
!! Overview
* THydraxItem.cs
+ ... ''TODO'' ...
* ITHydraxItem.cs
+ ... ''TODO'' ...
* THydraxManager.cs
+ ... ''TODO'' ...
__TODO:__
* Add a short description for the classes
* Translate comments/regions to English
* Attach code files as zip archive to wiki page
! THydraxItem.cs
{CODE(wrap="1", colors="c#")}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MHydrax;
using Mogre;
namespace Tehadon.Gfx.THydrax
{
public class THydraxItem : ITHydraxItem
{
#region Private Member
//Manager
private THydraxManager myTHydraxManager;
//Hydrax
private MNoise myNoise;
private MProjectedGrid.MOptions myOptions;
private MModule myModule;
private MHydrax.MHydrax myHydrax;
private string myConfigFile;
private Plane myPlane;
private bool myDoUpdate;
#endregion
#region Konstruktor
/// <summary>
/// Konsturktor
/// </summary>
/// <param name="THydraxManager"></param>
public THydraxItem(THydraxManager THydraxManager)
{
myTHydraxManager = THydraxManager;
myDoUpdate = true;
}
#endregion
#region Update
/// <summary>
/// Update
/// </summary>
/// <param name="evt"></param>
/// <returns></returns>
public bool Update(FrameEvent evt)
{
if (!myDoUpdate)
{
return true;
}
if (myHydrax != null)
{
myHydrax.Update(evt.timeSinceLastFrame);
}
return true;
}
#endregion
#region Grid erstellen
/// <summary>
/// Create the Projectiongrid
/// </summary>
public void CreateProjectedGrid()
{
myOptions = new MProjectedGrid.MOptions();
}
#endregion
#region Plane erstellen
/// <summary>
/// Create the Ogre-Plaine
/// </summary>
public void CreatePlane()
{
myPlane = new Plane(new Vector3(0, 1, 0), new Vector3(0, 0, 0));
}
#endregion
#region Noise erstellen
/// <summary>
/// Create Noise
/// </summary>
public void CreateNoise()
{
myNoise = new MPerlin();
}
#endregion
#region Module erstellen
/// <summary>
/// Create the Main-Modul for Hydrax
/// </summary>
public void CreateModule()
{
myModule = new MProjectedGrid(myHydrax, myNoise, myPlane, MMaterialManager.MNormalMode.NM_VERTEX, myOptions);
}
#endregion
#region Erstellen
/// <summary>
/// Create MHyydrax
/// </summary>
public void Create()
{
//Hydrax instanzieren
myHydrax = new MHydrax.MHydrax(myTHydraxManager.GfxManager.TOgreManager.Singelton.SceneManager,
myTHydraxManager.GfxManager.TOgreManager.Singelton.Camera,
myTHydraxManager.GfxManager.TOgreManager.Singelton.Viewport);
CreateModule();
//Modul setzten und Einstellungen laden
myHydrax.SetModule(myModule);
myHydrax.LoadCfg(myConfigFile);
//Wasser erstellen
myHydrax.Create();
}
#endregion
#region Public Member
public MHydrax.MHydrax Hydrax
{
get { return myHydrax; }
set { myHydrax = value; }
}
public MNoise Noise
{
get { return myNoise; }
set { myNoise = value; }
}
public MProjectedGrid.MOptions Options
{
get { return myOptions; }
set { myOptions = value; }
}
public MModule Module
{
get { return myModule; }
set { myModule = value; }
}
public string ConfigFile
{
get { return myConfigFile; }
set { myConfigFile = value; }
}
public Plane Plane
{
get { return myPlane; }
set { myPlane = value; }
}
#endregion
}
}
{CODE}
%%%
! ITHydraxItem.cs
{CODE(wrap="1", colors="c#")}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Mogre;
using MHydrax;
namespace Tehadon.Gfx.THydrax
{
public interface ITHydraxItem
{
#region Update
/// <summary>
/// Update
/// </summary>
/// <param name="evt"></param>
/// <returns></returns>
bool Update(FrameEvent evt);
#endregion
#region Grid erstellen
/// <summary>
/// Create the Projectiongrid
/// </summary>
void CreateProjectedGrid();
#endregion
#region Plane erstellen
/// <summary>
/// Create the Ogre-Plaine
/// </summary>
void CreatePlane();
#endregion
#region Noise erstellen
/// <summary>
/// Create Noise
/// </summary>
void CreateNoise();
#endregion
#region Module erstellen
/// <summary>
/// Create the Main-Modul for Hydrax
/// </summary>
void CreateModule();
#endregion
#region Erstellen
/// <summary>
/// Create MHyydrax
/// </summary>
void Create();
#endregion
#region Public Member
MNoise Noise
{
get;
set;
}
MProjectedGrid.MOptions Options
{
get;
set;
}
MModule Module
{
get;
set;
}
string ConfigFile
{
get;
set;
}
Plane Plane
{
get;
set;
}
MHydrax.MHydrax Hydrax
{
get;
set;
}
#endregion
}
}
{CODE}
%%%
! THydraxManager.cs
{CODE(wrap="1", colors="c#")}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Tehadon.Gfx.THydrax
{
public class THydraxManager
{
#region Private Member
private GfxManager myGfxManager;
#endregion
#region Konstruktor
/// <summary>
/// Konstruktor
/// </summary>
/// <param name="GfxManager"></param>
public THydraxManager(GfxManager GfxManager)
{
myGfxManager = GfxManager;
}
#endregion
#region GetNew
public ITHydraxItem GetNew()
{
return new THydraxItem(this);
}
#endregion
#region Public Member
public GfxManager GfxManager
{
get { return myGfxManager; }
set { myGfxManager = value; }
}
#endregion
}
}
{CODE}