00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
#ifndef COIN_SOWWWINLINE_H
00021
#define COIN_SOWWWINLINE_H
00022
00023
#include <Inventor/nodes/SoSubNode.h>
00024
#include <Inventor/fields/SoSFString.h>
00025
#include <Inventor/fields/SoSFVec3f.h>
00026
#include <Inventor/fields/SoSFNode.h>
00027
00028
00029
class SbColor;
00030
class SoGroup;
00031
00032
00033
00034
class SoWWWInline;
00035
typedef void SoWWWInlineFetchURLCB(
const SbString & url,
void * userData,
00036
SoWWWInline * node);
00037
00038
00039
00040 class COIN_DLL_API SoWWWInline :
public SoNode {
00041
typedef SoNode inherited;
00042
00043 SO_NODE_HEADER(SoWWWInline);
00044
00045
public:
00046
static void initClass(
void);
00047 SoWWWInline(
void);
00048
00049
SoSFString name;
00050
SoSFVec3f bboxCenter;
00051
SoSFVec3f bboxSize;
00052
SoSFNode alternateRep;
00053
00054 enum BboxVisibility {
00055 NEVER,
00056 UNTIL_LOADED,
00057 ALWAYS
00058 };
00059
00060
void setFullURLName(
const SbString & url);
00061
const SbString & getFullURLName(
void);
00062
00063
SoGroup * copyChildren(
void) const;
00064
00065
void requestURLData(
void);
00066 SbBool isURLDataRequested(
void) const;
00067 SbBool isURLDataHere(
void) const;
00068
void cancelURLDataRequest(
void);
00069
00070
void setChildData(
SoNode * urldata);
00071
SoNode * getChildData(
void) const;
00072
00073 virtual
SoChildList * getChildren(
void) const;
00074
00075 static
void setFetchURLCallBack(SoWWWInlineFetchURLCB * f,
void * userdata);
00076
00077 static
void setBoundingBoxVisibility(BboxVisibility b);
00078 static BboxVisibility getBoundingBoxVisibility(
void);
00079
00080 static
void setBoundingBoxColor(
SbColor & c);
00081 static const
SbColor & getBoundingBoxColor(
void);
00082
00083 static
void setReadAsSoFile(SbBool onoff);
00084 static SbBool getReadAsSoFile(
void);
00085
00086 virtual
void doAction(
SoAction * action);
00087 virtual
void doActionOnKidsOrBox(
SoAction * action);
00088 virtual
void callback(
SoCallbackAction * action);
00089 virtual
void GLRender(
SoGLRenderAction * action);
00090 virtual
void getBoundingBox(
SoGetBoundingBoxAction * action);
00091 virtual
void getMatrix(
SoGetMatrixAction * action);
00092 virtual
void handleEvent(
SoHandleEventAction * action);
00093 virtual
void search(
SoSearchAction * action);
00094 virtual
void pick(
SoPickAction * action);
00095 virtual
void getPrimitiveCount(
SoGetPrimitiveCountAction * action);
00096
00097 protected:
00098 virtual ~SoWWWInline();
00099
00100 virtual
void addBoundingBoxChild(
SbVec3f center,
SbVec3f size);
00101 virtual SbBool readInstance(
SoInput * in,
unsigned short flags);
00102 virtual
void copyContents(const
SoFieldContainer * fromfC,
00103 SbBool copyconnections);
00104
00105 private:
00106 friend class SoWWWInlineP;
00107 static SoWWWInlineFetchURLCB * fetchurlcb;
00108 static
void * fetchurlcbdata;
00109 static SbBool readassofile;
00110 static
SbColor * bboxcolor;
00111 static BboxVisibility bboxvisibility;
00112
00113 static
void cleanup(
void);
00114 };
00115
00116 #endif