Developer Documentation
PluginFunctionsCore.hh
1 /*===========================================================================*\
2 * *
3 * OpenFlipper *
4  * Copyright (c) 2001-2015, RWTH-Aachen University *
5  * Department of Computer Graphics and Multimedia *
6  * All rights reserved. *
7  * www.openflipper.org *
8  * *
9  *---------------------------------------------------------------------------*
10  * This file is part of OpenFlipper. *
11  *---------------------------------------------------------------------------*
12  * *
13  * Redistribution and use in source and binary forms, with or without *
14  * modification, are permitted provided that the following conditions *
15  * are met: *
16  * *
17  * 1. Redistributions of source code must retain the above copyright notice, *
18  * this list of conditions and the following disclaimer. *
19  * *
20  * 2. Redistributions in binary form must reproduce the above copyright *
21  * notice, this list of conditions and the following disclaimer in the *
22  * documentation and/or other materials provided with the distribution. *
23  * *
24  * 3. Neither the name of the copyright holder nor the names of its *
25  * contributors may be used to endorse or promote products derived from *
26  * this software without specific prior written permission. *
27  * *
28  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS *
29  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED *
30  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A *
31  * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER *
32  * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, *
33  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, *
34  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR *
35  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF *
36  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING *
37  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS *
38  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *
39 * *
40 \*===========================================================================*/
41 
42 
43 
44 
45 //=============================================================================
46 //
47 // Standard Functions
48 //
49 //=============================================================================
50 
57 #pragma once
58 
59 #ifndef OPENFLIPPERCORE
60  #ifndef OPENFLIPPERPLUGINLIB
61  #error PluginFunctionsCore is only allowed to be used from within OpenFlippers Core application!
62  #endif
63 #endif
64 
66 
67 #include <OpenFlipper/widgets/glWidget/QtBaseViewer.hh>
69 
70 #include <ACG/QtWidgets/QtSceneGraphWidget.hh>
72 
73 namespace PluginFunctions {
74 
75 //=======================================
76 // Set pointers for global handling in PluginFunctions without exporting them to the Plugins
79 //=======================================
82 void setViewers( std::vector< glViewer* > _viewerWidgets );
83 
86 glViewer* viewer(int _viewerId );
87 
90 void setViewerProperties( std::vector< Viewer::ViewerProperties* > _viewerProperties );
91 
96 void setSceneGraphRootNode( SeparatorNode* _root_node );
97 
103 DLLEXPORT
104 void setSceneGraphRootNodeGlobal( SeparatorNode* _root_node );
105 
107 DLLEXPORT
108 void setDataSeparatorNodes( SeparatorNode* _dataRootNode );
109 
112 //=======================================
113 // Handle object count internally
116 //=======================================
118 DLLEXPORT
119 void increaseObjectCount();
120 
122 DLLEXPORT
123 void decreaseObjectCount();
124 
126 DLLEXPORT
127 void increaseTargetCount();
128 
130 DLLEXPORT
131 void decreaseTargetCount();
132 
135 //=======================================
136 // Object container functions
139 //=======================================
140 
142 DLLEXPORT
143 void addObjectToMap(int _objectId, BaseObject* _object);
144 
146 DLLEXPORT
147 void removeObjectFromMap(int _objectId);
148 
151 //=======================================
152 // Object container functions
155 //=======================================
156 
158 DLLEXPORT
159 QVector<QPair<QString, QString>> const& pluginCommandLineOptions();
160 
163 DLLEXPORT
164 void setPluginCommandLineOptions(QVector<QPair<QString, QString>> const& _pluginCommandLineOptions);
165 
166 //=======================================
167 // SceneGraph Generator Map
170 //=======================================
171 
172 DLLEXPORT
173 QMap< std::string ,ACG::QtWidgets::SceneGraphWidgetGenerator* > getSceneGraphGeneratorList();
174 
177 }
178 
void addObjectToMap(int _objectId, BaseObject *_object)
Add object to internal object map.
void setViewers(std::vector< glViewer * > _viewerWidgets)
Set the internal Viewer pointer ( DO NOT USE!! )
void setViewerProperties(std::vector< Viewer::ViewerProperties * > _viewerProperties)
Set the internal viewerProperties pointer ( DO NOT USE!! )
void setSceneGraphRootNodeGlobal(SeparatorNode *_root_node)
void setDataSeparatorNodes(SeparatorNode *_dataSeparatorNode)
Set the internal data root node pointers ( DO NOT USE!! )
void removeObjectFromMap(int _objectId)
Remove object from internal object map.
void setSceneGraphRootNode(SeparatorNode *_root_node)
void increaseTargetCount()
Decrease the number of current Object.
void increaseObjectCount()
Decrease the number of current Object.
void decreaseObjectCount()
Increase the number of current Object.
void decreaseTargetCount()
Increase the number of current Object.
glViewer * viewer(int _viewerId)
Get a Viewer.
const QVector< QPair< QString, QString > > & pluginCommandLineOptions()
Get command line plugin settings as key-value pairs.
#define DLLEXPORT