00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00027
00029 #ifndef __X3DURLOBJECT_H__
00030 #define __X3DURLOBJECT_H__
00031
00032 #include "Node.h"
00033 #include "FieldTemplates.h"
00034 #include "MFString.h"
00035
00036 namespace H3D {
00052 class H3DAPI_API X3DUrlObject {
00053 public:
00054
00056 X3DUrlObject( Inst< MFString> _url = 0 );
00057
00058 virtual ~X3DUrlObject() {}
00059
00060 typedef enum {
00062 INIT,
00064 LOADED,
00066 LOADING,
00068 FAILED
00069 } LoadStatus;
00070
00074 virtual LoadStatus loadStatus() {
00075 if( url_used != "" ) return X3DUrlObject::LOADED;
00076 else return X3DUrlObject::FAILED;
00077 }
00078
00084 virtual H3DFloat loadProgress() {
00085 if( loadStatus() == LOADED ) return 1;
00086 else return 0;
00087 }
00088
00090 inline void setURLUsed( const string &_url_used ) {
00091 url_used = _url_used;
00092 }
00093
00095 inline const string &getURLUsed() {
00096 return url_used;
00097 }
00098
00100 inline void setURLBase( const string &_url_base ) {
00101 url_base = _url_base;
00102 }
00103
00105 inline const string &getURLBase() {
00106 return url_base;
00107 }
00108
00109 string resolveURLAsFile( const string &url );
00110
00112 auto_ptr< MFString > url;
00113 protected:
00117 string url_used;
00118
00122 string url_base;
00123 };
00124 }
00125
00126 #endif