Skip to main content

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}
        

History

Information Version
Tue 13 of Sep, 2011 11:20 GMT-0000 mcdonte 5
Tue 13 of Sep, 2011 11:13 GMT-0000 mcdonte 4
Tue 13 of Sep, 2011 11:12 GMT-0000 mcdonte 3
Tue 13 of Sep, 2011 11:09 GMT-0000 mcdonte 2
Mon 12 of Sep, 2011 23:06 GMT-0000 Beauty NEW PAGE 1