PluginFunctionsCore.hh 6.49 KB
Newer Older
1
/*===========================================================================*\
Jan Möbius's avatar
Jan Möbius committed
2
3
*                                                                            *
*                              OpenFlipper                                   *
Jan Möbius's avatar
Jan Möbius committed
4
*      Copyright (C) 2001-2011 by Computer Graphics Group, RWTH Aachen       *
Jan Möbius's avatar
Jan Möbius committed
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
*                           www.openflipper.org                              *
*                                                                            *
*--------------------------------------------------------------------------- *
*  This file is part of OpenFlipper.                                         *
*                                                                            *
*  OpenFlipper is free software: you can redistribute it and/or modify       *
*  it under the terms of the GNU Lesser General Public License as            *
*  published by the Free Software Foundation, either version 3 of            *
*  the License, or (at your option) any later version with the               *
*  following exceptions:                                                     *
*                                                                            *
*  If other files instantiate templates or use macros                        *
*  or inline functions from this file, or you compile this file and          *
*  link it with other files to produce an executable, this file does         *
*  not by itself cause the resulting executable to be covered by the         *
*  GNU Lesser General Public License. This exception does not however        *
*  invalidate any other reasons why the executable file might be             *
*  covered by the GNU Lesser General Public License.                         *
*                                                                            *
*  OpenFlipper is distributed in the hope that it will be useful,            *
*  but WITHOUT ANY WARRANTY; without even the implied warranty of            *
*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             *
*  GNU Lesser General Public License for more details.                       *
*                                                                            *
*  You should have received a copy of the GNU LesserGeneral Public           *
*  License along with OpenFlipper. If not,                                   *
*  see <http://www.gnu.org/licenses/>.                                       *
*                                                                            *
33
34
35
\*===========================================================================*/

/*===========================================================================*\
Jan Möbius's avatar
Jan Möbius committed
36
37
38
39
40
*                                                                            *
*   $Revision$                                                       *
*   $LastChangedBy$                                                *
*   $Date$                     *
*                                                                            *
41
\*===========================================================================*/
Jan Möbius's avatar
 
Jan Möbius committed
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61




//=============================================================================
//
//  Standard Functions
//
//=============================================================================

/**
 * \file PluginFunctions.hh
 * This file contains functions to setup the internal structures for PluginFunctions.
 * Dont Use these Functions in your Plugins!
 */

//
#ifndef PLUGINFUNCTIONSCORE_HH
#define PLUGINFUNCTIONSCORE_HH

62
63
64
65
66
67
68
69
70
71
72
73
#ifndef OPENFLIPPERCORE
  #ifndef OPENFLIPPERPLUGINLIB
    #ifdef WIN32
      #pragma message("PluginFunctionsCore is only allowed to be used from within OpenFlippers Core application!")
      
    #else
      #warning PluginFunctionsCore is only allowed to be used from within OpenFlippers Core application!
      #error Bla
    #endif
  #endif
#endif

Jan Möbius's avatar
 
Jan Möbius committed
74
75
76
#include <OpenFlipper/common/GlobalDefines.hh>

#include <OpenFlipper/widgets/glWidget/QtBaseViewer.hh>
Dirk Wilden's avatar
Dirk Wilden committed
77
#include <OpenFlipper/common/ViewerProperties.hh>
Jan Möbius's avatar
 
Jan Möbius committed
78

79
80
#include <ACG/QtWidgets/QtSceneGraphWidget.hh>

Jan Möbius's avatar
 
Jan Möbius committed
81
82
83
84
85
86
87
namespace PluginFunctions {

//=======================================
// Set pointers for global handling in PluginFunctions without exporting them to the Plugins
    /** @name Setup Functions
    * @{ */
//=======================================
88
/// Set the internal Viewer pointer ( DO NOT USE!! )
Jan Möbius's avatar
 
Jan Möbius committed
89
DLLEXPORT
90
91
92
93
94
void setViewers( std::vector< glViewer* > _viewerWidgets );

/// Get a Viewer
DLLEXPORT
glViewer* viewer(int  _viewerId );
Jan Möbius's avatar
 
Jan Möbius committed
95

Dirk Wilden's avatar
Dirk Wilden committed
96
97
98
99
/// Set the internal viewerProperties pointer ( DO NOT USE!! )
DLLEXPORT
void setViewerProperties( std::vector< Viewer::ViewerProperties* > _viewerProperties );

100
101
102
/** Set the internal scenegraph root node pointer. This is the topmost
* node of the whole scenegraph ( DO NOT USE!! )
*/
Jan Möbius's avatar
 
Jan Möbius committed
103
104
105
DLLEXPORT
void setSceneGraphRootNode( SeparatorNode* _root_node );

106
107
108
109
110
111
112
113
/** Set the internal scenegraph root node pointer for global nodes 
*
* This node is below the global status nodes and takes global nodes
* at one level. ( DO NOT USE!! )
*/
DLLEXPORT
void setSceneGraphRootNodeGlobal( SeparatorNode* _root_node );

Jan Möbius's avatar
Jan Möbius committed
114
/// Set the internal data root node pointers ( DO NOT USE!! )
Jan Möbius's avatar
 
Jan Möbius committed
115
DLLEXPORT
Jan Möbius's avatar
Jan Möbius committed
116
void setDataSeparatorNodes( SeparatorNode* _dataRootNode );
Jan Möbius's avatar
 
Jan Möbius committed
117
118
119

/** @} */

120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
//=======================================
// Handle object count internally
/** @name Internal Counters
* @{ */
//=======================================
/// Decrease the number of current Object
DLLEXPORT
void increaseObjectCount();

/// Increase the number of current Object
DLLEXPORT
void decreaseObjectCount();

/// Decrease the number of current Object
DLLEXPORT
void increaseTargetCount();

/// Increase the number of current Object
DLLEXPORT
void decreaseTargetCount();

/** @} */

143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
//=======================================
// Object container functions
/** @name Internal object handle container
* @{ */
//=======================================

/// Add object to internal object map
DLLEXPORT
void addObjectToMap(int _objectId, BaseObject* _object);

/// Remove object from internal object map
DLLEXPORT
void removeObjectFromMap(int _objectId);

/** @} */

159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
//=======================================
// SceneGraph Generator Map
/** @name Internal container for scenegraph widget generators
* @{ */
//=======================================

/// Add a scenegraph generator ( the handled type will be extracted from the generator)
DLLEXPORT 
void addSceneGraphGenerator(ACG::QtWidgets::SceneGraphWidgetGenerator* _generator);

DLLEXPORT
QMap< std::string ,ACG::QtWidgets::SceneGraphWidgetGenerator* > getSceneGraphGeneratorList();

/** @} */

Jan Möbius's avatar
 
Jan Möbius committed
174
175
176
}

#endif //PLUGINFUNCTIONSCORE_HH