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-2014 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 );

114
/// Set the internal data root node pointers ( DO NOT USE!! )
Jan Möbius's avatar
 
Jan Möbius committed
115
DLLEXPORT
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