00001 #ifndef IPSA_SO_PREFIX_NODE_H
00002 #define IPSA_SO_PREFIX_NODE_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00028 #include "IPSA.h"
00029
00030 #include <Inventor/nodes/SoSeparator.h>
00031 #include <Inventor/actions/SoCallbackAction.h>
00032
00033 class SoSFString;
00034
00035 class IPSA_IMPORT_EXPORT SoPrefixNode : public SoSeparator {
00036
00037 SO_NODE_HEADER(SoPrefixNode);
00038
00039 public:
00040
00041 SoPrefixNode();
00042
00043 virtual ~SoPrefixNode();
00044
00045 virtual SoNode* copy(SbBool copyConnections) const;
00046 static void initClass();
00047
00048 void updatePrefixes();
00049
00050 SoSFString prefix;
00051
00052 private:
00053 static SbString PrependPrefixToString(const SbString& aPrefix, const SbString& oldString);
00054 static SoCallbackAction::Response UpdatePrefixesCB(void* userdata, SoCallbackAction*, const SoNode* node);
00055 static SoCallbackAction::Response UpdateJointsCB(void* userdata, SoCallbackAction*, const SoNode* node);
00056 };
00057
00058 #endif // IPSA_SO_PREFIX_NODE_H