source: GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE/src/OgreVisibilitySceneManagerDll.cpp @ 1273

Revision 1273, 3.3 KB checked in by szydlowski, 18 years ago (diff)

Added the KdTerrainSceneManager?, a subclass of the KdTreeSceneManager? capable of rendering terrain like the TerrainSceneManager? from Ogre.
All the *Kd*Terrain* classes are identical to their octree counterparts, save prefixing all classes and structures with Kd to avoid namespace clashes.
This was necessary, since the TerrainSceneManager? was hard coded in these classes, and all references had to be replaced with the KdTerrainSceneManager?.
Also added a comprehensive README for the demo application.

Line 
1/*
2-----------------------------------------------------------------------------
3This source file is part of OGRE
4    (Object-oriented Graphics Rendering Engine)
5For the latest info, see http://www.ogre3d.org/
6
7Copyright © 2000-2002 The OGRE Team
8Also see acknowledgements in Readme.html
9
10This program is free software; you can redistribute it and/or modify it under
11the terms of the GNU Lesser General Public License as published by the Free Software
12Foundation; either version 2 of the License, or (at your option) any later
13version.
14
15This program is distributed in the hope that it will be useful, but WITHOUT
16ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
17FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
18
19You should have received a copy of the GNU Lesser General Public License along with
20this program; if not, write to the Free Software Foundation, Inc., 59 Temple
21Place - Suite 330, Boston, MA 02111-1307, USA, or go to
22http://www.gnu.org/copyleft/lesser.txt.
23-----------------------------------------------------------------------------
24*/
25
26#include "OgreOcclusionCullingSceneManager.h"
27#include "OgreKdTreeSceneManager.h"
28#include "OgreKdTerrainSceneManager.h"
29#include <OgreRoot.h>
30#include <OgreLogManager.h>
31
32#include "VisibilityManager.h"
33#include "VisibilityEnvironment.h"
34               
35GtpVisibility::VisibilityEnvironment *visEnv;
36GtpVisibility::VisibilityManager *visManager;
37
38namespace Ogre {
39
40
41OcclusionCullingSceneManagerFactory *occlusionCullingPlugin;
42KdTreeSceneManagerFactory *kdTreeFactory;
43KdTerrainSceneManagerFactory *kdTerrainFactory;
44
45//-----------------------------------------------------------------------
46extern "C" void __declspec(dllexport) dllStartPlugin(void)
47{
48        // load visibility environment
49        visEnv = new GtpVisibility::VisibilityEnvironment();
50        visManager = new GtpVisibility::VisibilityManager(visEnv);
51
52        // Create new scene manager
53        occlusionCullingPlugin = new OcclusionCullingSceneManagerFactory(visManager);
54        kdTreeFactory = new KdTreeSceneManagerFactory(visManager);
55        kdTerrainFactory = new KdTerrainSceneManagerFactory(visManager);
56        // Construct listener manager singleton
57        new TerrainPageSourceListenerManager();
58        new KdTerrainPageSourceListenerManager();
59
60        // Register
61        Root::getSingleton().addSceneManagerFactory(occlusionCullingPlugin);
62        Root::getSingleton().addSceneManagerFactory(kdTreeFactory);
63        Root::getSingleton().addSceneManagerFactory(kdTerrainFactory);
64}
65//-----------------------------------------------------------------------
66extern "C" void __declspec(dllexport) dllShutdownPlugin()
67{
68        Root::getSingleton().removeSceneManagerFactory(occlusionCullingPlugin);
69        Root::getSingleton().removeSceneManagerFactory(kdTreeFactory);
70        Root::getSingleton().removeSceneManagerFactory(kdTerrainFactory);
71        // destroy listener manager
72        delete TerrainPageSourceListenerManager::getSingletonPtr();
73        delete KdTerrainPageSourceListenerManager::getSingletonPtr();
74}
75//-----------------------------------------------------------------------
76extern "C" void __declspec(dllexport) dllStopPlugin()
77{
78        //delete heightmapTerrainPageSource;
79        // BUG: crashes on delete!!!! FIX this
80        delete occlusionCullingPlugin;
81        delete kdTreeFactory;
82        delete kdTerrainFactory;
83
84        delete visManager;
85        delete visEnv;
86}
87
88
89
90} //namespace Ogre
Note: See TracBrowser for help on using the repository browser.