source: Packages/nr3d/nr3D.h @ 1

Revision 1, 2.6 KB checked in by art, 13 years ago (diff)
Line 
1/***************************************************************************
2 *                                                                         *
3 *   (c) Art Tevs, MPI Informatik Saarbruecken                             *
4 *       mailto: <tevs@mpi-sb.mpg.de>                                      *
5 *                                                                         *
6 *   This program is free software; you can redistribute it and/or modify  *
7 *   it under the terms of the GNU General Public License as published by  *
8 *   the Free Software Foundation; either version 2 of the License, or     *
9 *   (at your option) any later version.                                   *
10 *                                                                         *
11 ***************************************************************************/
12
13#ifndef __NR3D_PACKAGE_H_
14#define __NR3D_PACKAGE_H_
15
16//----------------------------------------------------------------------------------
17// Includes
18//----------------------------------------------------------------------------------
19#include <nrEngine/nrEngine.h>
20
21namespace nrEngine {
22
23        namespace nr3D {
24               
25                //! Main class which is a root class for 3D-Engine part of nrEngine
26                /**
27                * This is the main class of nr3D-Package for nrEngine. nr3D is a 3D engine
28                * based on the nrEngine core package providing the user with a powerfull
29                * 3d engine.
30                *
31                * This is a main class for the nr3D package. It declared as singleton. You have
32                * to create this root part, to get functionality of 3D-package for nrEngine.
33                **/
34                class _NRPackageExport nr3D : public nrEngine::Package{
35
36                        public:
37
38                                /**
39                                * Default constructor used, to create instance and
40                                * to initialize all underlying systems.
41                                *
42                                * NOTE: You have to instantiate a class after initialization
43                                *               of the engine, otherwise exception will be thrown
44                                **/
45                                nr3D();
46
47                                /**
48                                * Release used memory.
49                                **/
50                                ~nr3D();
51
52                                /**
53                                 * @see nrEngine::Binding::getName()
54                                 **/
55                                const std::string& getName();
56
57                                /**
58                                 * @see nrEngine::Binding::getFullName()
59                                 **/
60                                const std::string& getFullName();
61
62                                /**
63                                 * Access to the singleton object
64                                 **/
65                                static nr3D* instance();
66       
67                                /**
68                                 * Release the singleton object
69                                 **/
70                                static void release();
71                                 
72                                 /**
73                                 * Check whenever the engine'S singleton was created before
74                                 */
75                                 static bool valid();
76
77                        private:
78
79                                //! Singleton to hold the binding
80                                static SharedPtr<nr3D> sSingleton;
81
82                                //! Name of the binding
83                                std::string mName;
84
85                                //! Full name
86                                std::string mFullName;
87
88                };
89
90        };
91};
92
93#endif
94
Note: See TracBrowser for help on using the repository browser.