00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef IVT_SERVICES_H
00024 #define IVT_SERVICES_H
00025
00027
00028
00029
00031
00032 #include <IvTune/IvTuneExtender/IvtLibName.h>
00033
00034 #include <Inventor/SbBase.h>
00035
00036 #include <QObject>
00037
00038 #ifdef _WIN32
00039 # if !defined(IvTuneExtenderAPI_EXPORTS)
00040 # ifndef OIV_DISABLE_AUTOLINK
00041 # pragma comment(lib,__IVTEXLIB)
00042 # endif
00043 # endif
00044 #endif //win
00045
00046 class IvtEditor;
00047 class IvtCommand;
00048
00049 class SbName;
00050 class SoField;
00051 class SoFieldContainer;
00052 class SoNode;
00053 class SoType;
00054 class SoGuiRenderArea;
00055 class SoSceneManager;
00056
00073 class IVTEXTENDER_API IvtServices : public QObject
00074 {
00075 Q_OBJECT
00076
00077 public:
00078
00084 virtual void execute( IvtCommand* command ) = 0;
00085
00089 virtual SoNode* getSceneGraph() const = 0;
00090
00094 virtual SoField* getSelectedField() const = 0;
00095
00099 virtual SoFieldContainer* getSelectedNode() const = 0;
00100
00104 virtual void redo() = 0;
00105
00111 virtual void setSceneGraph( SoNode* sg ) =0;
00112
00118 virtual void setSelectedField( SoField* field ) = 0;
00119
00125 virtual void setSelectedNode( SoFieldContainer* node ) = 0;
00126
00130 virtual void undo() = 0;
00131
00135 static IvtServices* getInstance();
00136
00141 virtual SoSceneManager* getSceneManager() const = 0;
00142
00146 virtual SbBool isStandaloneApplication() const = 0;
00147
00148 Q_SIGNALS:
00149
00155 void sceneGraphChanged( SoNode* sg );
00156
00162 void selectedNodeChanged( SoFieldContainer* node );
00163
00169 void selectedFieldChanged( SoField* field );
00170
00171 private:
00172
00174 IvtServices();
00175
00179 virtual ~IvtServices();
00180
00182 static IvtServices* m_instance;
00183
00184 private:
00188 virtual SoGuiRenderArea* getRenderArea() const = 0;
00189 };
00190
00191 #endif // IVT_SERVICES_H
00192
00193
00194