Terrain Vertices

A place for users of OGRE to discuss ideas and experiences of utilitising OGRE in their games / demos / applications.
Post Reply
Sir
Gnoblar
Posts: 4
Joined: Mon Feb 21, 2005 11:58 am

Terrain Vertices

Post by Sir »

Hi.
How to get all vertices from terrain. I need this to construct my terrain collisions to NovodeX. When I loading terrain witch procedures from NovodeX demos my terrain don't cover terrain from OGRE. How to load terrain just as OGRE?

I search on forum but I don't find anything about this.

Sorry, my English. I'm from Poland :)
User avatar
DWORD
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 1365
Joined: Tue Sep 07, 2004 12:43 pm
Location: Aalborg, Denmark
Contact:

Post by DWORD »

The easiest way I think is to register a TerrainPageSourceListener that will get called when the terrain is loaded. It will give you the raw terrain data as an array of normalised [0..1] Reals.
Sir
Gnoblar
Posts: 4
Joined: Mon Feb 21, 2005 11:58 am

Post by Sir »

Any code, demo anything because api reference don't say too more :(.
User avatar
DWORD
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 1365
Joined: Tue Sep 07, 2004 12:43 pm
Location: Aalborg, Denmark
Contact:

Post by DWORD »

Sorry, try something like this before your setWorldGeometry() call (didn't test it):

Code: Select all

MyListener* myListener = new MyListener; // your custom page source listener class
TerrainPageSourceListenerManager::getSingleton().addListener(myListener)
And be sure to delete myListener again on program termination.
User avatar
sinbad
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 19269
Joined: Sun Oct 06, 2002 11:19 pm
Location: Guernsey, Channel Islands
x 66
Contact:

Post by sinbad »

Actually it's just

Code: Select all

TerrainPageSource::addListener(myListener);
It's pretty straight forward - you just get callbacks as defined in TerrainPageSourceListener (parameters etc are in the docs).
Sir
Gnoblar
Posts: 4
Joined: Mon Feb 21, 2005 11:58 am

Post by Sir »

It's pretty straight forward - you just get callbacks as defined in TerrainPageSourceListener (parameters etc are in the docs).
But in TerrainPageSourceListener is only abstract pageConstructed(). I don't know yet how to do this. Please give me complete code with geting this array.

What is MyListener? I must create new class from TerrainPageSourceListener???

Sorry, maybe I'm silly :D
User avatar
sinbad
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 19269
Joined: Sun Oct 06, 2002 11:19 pm
Location: Guernsey, Channel Islands
x 66
Contact:

Post by sinbad »

But in TerrainPageSourceListener is only abstract pageConstructed(). I don't know yet how to do this. Please give me complete code with geting this array.
It's a virtual member function which you override in your subclass of TerrainPageSourceListener, which DWORD called MyListener. Ie

Code: Select all

class MyListener : public TerrainPageSourceListener
{
  void pageConstructed(size_t pagex, size_t pagez, Real* heightData)
  {
    // Do what you want
  }
};
This is such a common idiom that I didn't think it needed explaining. If this still confuses you, you probably need to get a little more C++ experience before tackling something like Ogre & Novodex integration.
Sir
Gnoblar
Posts: 4
Joined: Mon Feb 21, 2005 11:58 am

Post by Sir »

My C++ is enough to do this but probably acquaintance of OGRE is too small, now I understand all.

Thx for help :)
Post Reply