00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040 #ifndef _OSGVRMLNODEDESCS_H_
00041 #define _OSGVRMLNODEDESCS_H_
00042 #ifdef __sgi
00043 #pragma once
00044 #endif
00045
00046 #include <OSGSystemDef.h>
00047 #include <OSGBaseTypes.h>
00048 #include <OSGBaseFunctions.h>
00049 #include <vector>
00050 #include <string>
00051
00052 #ifdef OSG_STL_HAS_HASH_MAP
00053 #ifdef OSG_HASH_MAP_AS_EXT
00054 #include <ext/hash_map>
00055 #else
00056 #include <hash_map>
00057 #endif
00058 #else
00059 #include <map>
00060 #endif
00061
00062 #include <OSGFieldContainerPtr.h>
00063 #include <OSGField.h>
00064 #include <OSGFieldContainer.h>
00065 #include <OSGAttachment.h>
00066 #include <OSGGeoProperty.h>
00067 #include <OSGSFSysTypes.h>
00068 #include <OSGSimpleMaterial.h>
00069 #include <OSGImageFields.h>
00070 #include <OSGSFVecTypes.h>
00071 #include <OSGSFFieldContainerPtr.h>
00072 #include <OSGComponentTransform.h>
00073 #include <OSGAttachmentFieldDataType.h>
00074
00075 OSG_BEGIN_NAMESPACE
00076
00077 class VRMLAppearanceDesc;
00078 class VRMLMaterialDesc;
00079 class VRMLImageTextureDesc;
00080
00081
00082
00083
00084
00087 struct GenericAttDesc
00088 {
00089 typedef Attachment Parent;
00090 typedef AttachmentPtr ParentPtr;
00091
00092 static const Char8 *getTypeName (void) { return "GenericAtt"; }
00093 static const Char8 *getParentTypeName(void) { return "Attachment"; }
00094 static const Char8 *getGroupName (void) { return "VRMLGenAtt"; }
00095
00096 static InitContainerF getInitMethod(void) { return NULL; }
00097
00098 static FieldDescription **getDesc (void) { return NULL; }
00099 };
00100
00101 typedef DynFieldAttachment<GenericAttDesc> GenericAtt;
00102 typedef GenericAtt::PtrType GenericAttPtr;
00103
00104 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00105
00106 #ifndef OSG_COMPILEVRMLNODEDESCINST
00107 #if defined(OSG_WIN32_CL) && _MSC_VER > 1300
00108 OSG_ABSTR_FC_DLLEXPORT_DECL(DynFieldAttachment,
00109 GenericAttDesc,
00110 )
00111 #else
00112 OSG_ABSTR_FC_DLLEXPORT_DECL(DynFieldAttachment,
00113 GenericAttDesc,
00114 OSG_SYSTEMLIB_DLLTMPLMAPPING)
00115 #endif
00116 #endif
00117
00118 #endif
00119
00120 #if !defined(OSG_DO_DOC) || (OSG_DOC_LEVEL >= 3)
00121
00124 #if !defined(OSG_DOC_DEV_TRAITS)
00125
00126 #endif
00127
00128 template <>
00129 struct FieldDataTraits<GenericAttPtr> :
00130 public FieldTraitsRecurseMapper<GenericAttPtr, true>
00131 {
00132 static DataType _type;
00133 enum { StringConvertable = 0x00 };
00134 enum { bHasParent = 0x01 };
00135
00136 static DataType &getType (void) { return _type; }
00137 static Char8 *getSName(void) { return "SFGenericAttPtr"; }
00138 static Char8 *getMName(void) { return "MFGenericAttPtr"; }
00139 };
00140
00141 #if !defined(OSG_DOC_DEV_TRAITS)
00142
00144 #endif
00145
00146 #endif // !defined(OSG_DO_DOC) || (OSG_DOC_LEVEL >= 3)
00147
00148 #if !defined(OSG_DO_DOC) || defined(OSG_DOC_FIELD_TYPEDEFS)
00149
00151 typedef SField<GenericAttPtr> SFGenericPtr;
00152 #endif
00153
00154 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00155
00156 #ifndef OSG_COMPILEVRMLNODEDESCINST
00157 OSG_DLLEXPORT_DECL1(SField, GenericAttPtr, OSG_SYSTEMLIB_DLLTMPLMAPPING)
00158 #endif
00159
00160 #endif
00161
00162 #if !defined(OSG_DO_DOC) || defined(OSG_DOC_FIELD_TYPEDEFS)
00163
00165 typedef MField<GenericAttPtr> MFGenericAttPtr;
00166 #endif
00167
00168 #ifndef OSG_COMPILEVRMLNODEDESCINST
00169 OSG_DLLEXPORT_DECL1(MField, GenericAttPtr, OSG_SYSTEMLIB_DLLTMPLMAPPING)
00170 #endif
00171
00172
00173
00174
00175
00179 class OSG_SYSTEMLIB_DLLMAPPING VRMLNodeDesc
00180 {
00181
00182 public :
00183
00184
00188 static UInt32 getIndent (void);
00189 static void incIndent (void);
00190 static void decIndent (void);
00191 static void resetIndent(void);
00192
00194
00198 VRMLNodeDesc(void);
00199
00201
00205 virtual ~VRMLNodeDesc (void);
00206
00208
00212 virtual void init (const Char8 *szName);
00213
00214 virtual void reset (void);
00215
00216 virtual void setOnEndSave (const Char8 *szName);
00217 virtual void clearOnEndSave (void);
00218 virtual bool getOnEndSave (void);
00219 virtual const Char8 *getSavename (void);
00220 virtual FieldContainerPtr getSaveFieldContainer(void);
00221
00222
00224
00228 virtual Field *getField (const Char8 * szFieldname);
00229
00230 virtual void getFieldAndDesc( FieldContainerPtr pFC,
00231 const Char8 * szFieldname,
00232 Field *&pField,
00233 const FieldDescription *&pDesc);
00234
00235
00237
00241 virtual bool prototypeAddField (const Char8 *szFieldType,
00242 const UInt32 uiFieldTypeId,
00243 const Char8 *szFieldName);
00244
00245 virtual void prototypeAddFieldValue(const Char8 *szFieldVal);
00246
00247 virtual void endProtoInterface (void);
00248
00250
00254 virtual FieldContainerPtr beginNode(const Char8 *szTypename,
00255 const Char8 *szName,
00256 FieldContainerPtr pCurrentFC);
00257
00258 virtual void endNode ( FieldContainerPtr );
00259
00261
00265 virtual void addFieldValue( Field *pField,
00266 const Char8 *szFieldVal);
00267
00268 virtual bool use ( FieldContainerPtr );
00269
00271
00275 virtual void dump(const Char8 *szNodeName);
00276
00278
00279 protected:
00280
00281 #ifdef OSG_STL_HAS_HASH_MAP
00282 #ifdef OSG_USE_HASH_COMPARE
00283 typedef
00284 OSG_STDEXTENSION_NAMESPACE::hash_map<
00285 const Char8 *,
00286 UInt32,
00287 HashCmpString> FieldNameTypeHash;
00288 #else
00289 typedef
00290 OSG_STDEXTENSION_NAMESPACE::hash_map<
00291 const Char8 *,
00292 UInt32,
00293 OSG_STDEXTENSION_NAMESPACE::hash<const Char8 *>,
00294 EQString > FieldNameTypeHash;
00295 #endif
00296 #else
00297 typedef
00298 std::map< const Char8 *, UInt32, LTString> FieldNameTypeHash;
00299 #endif
00300
00301
00305 static UInt32 _uiIndent;
00306
00307 FieldNameTypeHash _mFieldTypes;
00308
00309 GenericAttPtr _pGenAtt;
00310
00311 FieldContainerPtr _pNodeProto;
00312 FieldContainerPtr _pNodeCoreProto;
00313
00314 Field *_pCurrField;
00315
00316 std::string _szCurrentName;
00317 bool _bSaveOnEnd;
00318
00319
00320
00321 Field *getField( FieldContainerPtr pFC1,
00322 FieldContainerPtr pFC2,
00323 GenericAttPtr pGenAtt,
00324 const Char8 *szFieldname);
00325
00327
00328 private:
00329
00331 VRMLNodeDesc(const VRMLNodeDesc &source);
00333 void operator =(const VRMLNodeDesc &source);
00334 };
00335
00336
00337
00338
00339
00340
00344 class OSG_SYSTEMLIB_DLLMAPPING VRMLShapeDesc : public VRMLNodeDesc
00345 {
00346
00347 public :
00348
00349
00353 VRMLShapeDesc(void);
00354
00356
00360 virtual ~VRMLShapeDesc(void);
00361
00363
00367 virtual void init (const Char8 *szName);
00368
00369 void setMaterialDesc( VRMLMaterialDesc *pMaterialDesc);
00370
00372
00376 virtual bool prototypeAddField(const Char8 *szFieldType,
00377 const UInt32 uiFieldTypeId,
00378 const Char8 *szFieldName);
00379
00380 virtual void getFieldAndDesc ( FieldContainerPtr pFC,
00381 const Char8 * szFieldname,
00382 Field *&pField,
00383 const FieldDescription *&pDesc);
00384
00385
00387
00391 virtual FieldContainerPtr beginNode(const Char8 *szTypename,
00392 const Char8 *szName,
00393 FieldContainerPtr pCurrentFC);
00394
00395 virtual void endNode (FieldContainerPtr pFC);
00396
00398
00402 virtual void dump(const Char8 *szNodeName);
00403
00405
00406 protected:
00407
00408
00412 VRMLMaterialDesc *_pMaterialDesc;
00413
00415
00416 private:
00417
00418 typedef VRMLNodeDesc Inherited;
00419
00421 VRMLShapeDesc(const VRMLShapeDesc &source);
00423 void operator =(const VRMLShapeDesc &source);
00424 };
00425
00426
00427
00428
00429
00430
00434 class OSG_SYSTEMLIB_DLLMAPPING VRMLGeometryDesc : public VRMLNodeDesc
00435 {
00436
00437 public :
00438
00439
00443 VRMLGeometryDesc(bool bIsFaceSet);
00444
00446
00450 virtual ~VRMLGeometryDesc(void);
00451
00453
00457 virtual void init(const Char8 *szName);
00458
00460
00464 virtual bool prototypeAddField(const Char8 * szFieldType,
00465 const UInt32 uiFieldTypeId,
00466 const Char8 * szFieldName);
00467
00468 virtual void getFieldAndDesc ( FieldContainerPtr pFC,
00469 const Char8 * szFieldname,
00470 Field *&pField,
00471 const FieldDescription *&pDesc);
00472
00474
00478 virtual FieldContainerPtr beginNode(const Char8 *szTypename,
00479 const Char8 *szName,
00480 FieldContainerPtr pCurrentFC);
00481
00482 virtual void endNode ( FieldContainerPtr pFC);
00483
00485
00489 virtual void addFieldValue( Field *pField,
00490 const Char8 *szFieldVal);
00491
00493
00497 virtual void dump(const Char8 *szNodeName);
00498
00500
00501 protected:
00502
00503
00507 bool _bIsFaceSet;
00508
00509 bool _bInIndex;
00510 UInt32 _uiNumVertices;
00511
00512 GeoPTypesPtr _pTypeField;
00513 GeoPLengthsPtr _pLengthField;
00514
00516
00517 private:
00518
00519 typedef VRMLNodeDesc Inherited;
00520
00522 VRMLGeometryDesc(const VRMLGeometryDesc &source);
00524 void operator =(const VRMLGeometryDesc &source);
00525 };
00526
00527
00528
00529
00530
00531
00535 class OSG_SYSTEMLIB_DLLMAPPING VRMLGeometryPointSetDesc : public VRMLNodeDesc
00536 {
00537
00538 public :
00539
00540
00544 VRMLGeometryPointSetDesc(void);
00545
00547
00551 virtual ~VRMLGeometryPointSetDesc(void);
00552
00554
00558 virtual void init(const Char8 *szName);
00559
00561
00565 virtual bool prototypeAddField(const Char8 * szFieldType,
00566 const UInt32 uiFieldTypeId,
00567 const Char8 * szFieldName);
00568
00569 virtual void getFieldAndDesc ( FieldContainerPtr pFC,
00570 const Char8 * szFieldname,
00571 Field *&pField,
00572 const FieldDescription *&pDesc);
00573
00575
00579 virtual FieldContainerPtr beginNode(const Char8 *szTypename,
00580 const Char8 *szName,
00581 FieldContainerPtr pCurrentFC);
00582
00583 virtual void endNode ( FieldContainerPtr pFC);
00584
00586
00590 virtual void addFieldValue( Field *pField,
00591 const Char8 *szFieldVal);
00592
00594
00598 virtual void dump(const Char8 *szNodeName);
00599
00601
00602 protected:
00603
00604
00608 bool _bInIndex;
00609 UInt32 _uiNumVertices;
00610
00611 GeoPTypesPtr _pTypeField;
00612 GeoPLengthsPtr _pLengthField;
00613
00615
00616 private:
00617
00618 typedef VRMLNodeDesc Inherited;
00619
00621 VRMLGeometryPointSetDesc(const VRMLGeometryPointSetDesc &source);
00623 void operator =(const VRMLGeometryPointSetDesc &source);
00624 };
00625
00626
00627
00628
00629
00630
00634 class OSG_SYSTEMLIB_DLLMAPPING VRMLGeometryPartDesc : public VRMLNodeDesc
00635 {
00636
00637 public :
00638
00639
00643 VRMLGeometryPartDesc(Char8 *szVRMLPartname,
00644 Char8 *szOSGPartname,
00645 Char8 *szOSGProtoname);
00646
00648
00652 virtual ~VRMLGeometryPartDesc(void);
00653
00655
00659 virtual void init(const Char8 *szName);
00660
00662
00666 virtual bool prototypeAddField(const Char8 * szFieldType,
00667 const UInt32 uiFieldTypeId,
00668 const Char8 * szFieldName);
00669
00670 virtual void getFieldAndDesc ( FieldContainerPtr pFC,
00671 const Char8 * szFieldname,
00672 Field *&pField,
00673 const FieldDescription *&pDesc);
00674
00676
00680 virtual FieldContainerPtr beginNode(const Char8 *szTypename,
00681 const Char8 *szName,
00682 FieldContainerPtr pCurrentFC);
00683
00685
00689 virtual void dump(const Char8 *szNodeName);
00690
00692
00693 protected:
00694
00695
00699 Char8 *_szVRMLPartname;
00700 Char8 *_szOSGPartname;
00701 Char8 *_szOSGProtoname;
00702
00704
00705 private:
00706
00707 typedef VRMLNodeDesc Inherited;
00708
00710 VRMLGeometryPartDesc(const VRMLGeometryPartDesc &source);
00712 void operator =(const VRMLGeometryPartDesc &source);
00713 };
00714
00715
00716
00717
00718
00719
00723 class OSG_SYSTEMLIB_DLLMAPPING VRMLGeometryObjectDesc : public VRMLNodeDesc
00724 {
00725
00726 public :
00727
00728
00732 VRMLGeometryObjectDesc(Char8 *szVRMLObjectname);
00733
00735
00739 virtual ~VRMLGeometryObjectDesc(void);
00740
00742
00746 virtual void init(const Char8 *szName);
00747
00749
00753 virtual bool prototypeAddField(const Char8 * szFieldType,
00754 const UInt32 uiFieldTypeId,
00755 const Char8 * szFieldName);
00756
00757 virtual void getFieldAndDesc ( FieldContainerPtr pFC,
00758 const Char8 * szFieldname,
00759 Field *&pField,
00760 const FieldDescription *&pDesc);
00761
00763
00767 virtual FieldContainerPtr beginNode(const Char8 *szTypename,
00768 const Char8 *szName,
00769 FieldContainerPtr pCurrentFC);
00770
00771 virtual void endNode ( FieldContainerPtr );
00772
00774
00778 virtual void dump(const Char8 *szNodeName);
00779
00781
00782 protected:
00783
00784
00788 Char8 *_szVRMLObjectname;
00789
00791
00792 private:
00793
00794 typedef VRMLNodeDesc Inherited;
00795
00797 VRMLGeometryObjectDesc(const VRMLGeometryObjectDesc &source);
00799 void operator =(const VRMLGeometryObjectDesc &source);
00800 };
00801
00802
00803
00804
00805
00806
00810 class OSG_SYSTEMLIB_DLLMAPPING VRMLAppearanceDesc : public VRMLNodeDesc
00811 {
00812
00813 public :
00814
00815
00819 VRMLAppearanceDesc(void);
00820
00822
00826 virtual ~VRMLAppearanceDesc(void);
00827
00829
00833 virtual void init (const Char8 *szName);
00834
00835 virtual void setMaterialDesc( VRMLMaterialDesc *pMaterialDesc);
00836
00837
00838 virtual FieldContainerPtr getSaveFieldContainer(void);
00839
00841
00845 virtual bool prototypeAddField(const Char8 * szFieldType,
00846 const UInt32 uiFieldTypeId,
00847 const Char8 * szFieldName);
00848
00849 virtual void getFieldAndDesc ( FieldContainerPtr pFC,
00850 const Char8 * szFieldname,
00851 Field *&pField,
00852 const FieldDescription *&pDesc);
00853
00855
00859 virtual FieldContainerPtr beginNode(const Char8 *szTypename,
00860 const Char8 *szName,
00861 FieldContainerPtr pCurrentFC);
00862
00863 virtual void endNode ( FieldContainerPtr );
00864
00866
00870 virtual bool use(FieldContainerPtr pFC);
00871
00873
00877 virtual void dump(const Char8 *szNodeName);
00878
00880
00881 protected:
00882
00883
00887 VRMLMaterialDesc *_pMaterialDesc;
00888
00890
00891 private:
00892
00893 typedef VRMLNodeDesc Inherited;
00894
00896 VRMLAppearanceDesc(const VRMLAppearanceDesc &source);
00898 void operator =(const VRMLAppearanceDesc &source);
00899 };
00900
00901
00902
00903
00904
00905
00909 class OSG_SYSTEMLIB_DLLMAPPING VRMLMaterialDesc : public VRMLNodeDesc
00910 {
00911
00912 public :
00913
00914
00918 VRMLMaterialDesc(void);
00919
00921
00925 virtual ~VRMLMaterialDesc(void);
00926
00928
00932 virtual void init (const Char8 *szName);
00933
00934 virtual void reset ( void);
00935
00936 virtual MaterialPtr getDefaultMaterial( void);
00937
00939
00943 virtual bool prototypeAddField(const Char8 * szFieldType,
00944 const UInt32 uiFieldTypeId,
00945 const Char8 * szFieldName);
00946
00947 virtual void endProtoInterface( void);
00948
00949 virtual void getFieldAndDesc ( FieldContainerPtr pFC,
00950 const Char8 * szFieldname,
00951 Field *&pField,
00952 const FieldDescription *&pDesc);
00953
00955
00959 virtual FieldContainerPtr beginNode(const Char8 *szTypename,
00960 const Char8 *szName,
00961 FieldContainerPtr pCurrentFC);
00962
00963 virtual void endNode ( FieldContainerPtr );
00964
00966
00970 virtual void dump(const Char8 *szNodeName);
00971
00973
00974 protected:
00975
00976
00980 SFReal32 _defaultAmbientIntensity;
00981 SFColor3f _defaultDiffuseColor;
00982 SFColor3f _defaultEmissiveColor;
00983 SFReal32 _defaultShininess;
00984 SFColor3f _defaultSpecularColor;
00985 SFReal32 _defaultTransparency;
00986
00987 SFReal32 _ambientIntensity;
00988 SFColor3f _diffuseColor;
00989 SFColor3f _emissiveColor;
00990 SFReal32 _shininess;
00991 SFColor3f _specularColor;
00992 SFReal32 _transparency;
00993
00994 ChunkMaterialPtr _pDefMat;
00995 MaterialChunkPtr _pMat;
00996
00998
00999 private:
01000
01001 typedef VRMLNodeDesc Inherited;
01002
01004 VRMLMaterialDesc(const VRMLMaterialDesc &source);
01006 void operator =(const VRMLMaterialDesc &source);
01007 };
01008
01009
01010
01011
01012
01016 class OSG_SYSTEMLIB_DLLMAPPING VRMLTextureTransformDesc : public VRMLNodeDesc
01017 {
01018
01019 public :
01020
01021
01025 VRMLTextureTransformDesc(void);
01026
01028
01032 virtual ~VRMLTextureTransformDesc(void);
01033
01035
01039 virtual void init (const Char8 *szName);
01040
01041 virtual void reset( void);
01042
01044
01048 virtual bool prototypeAddField(const Char8 * szFieldType,
01049 const UInt32 uiFieldTypeId,
01050 const Char8 * szFieldName);
01051
01052 virtual void endProtoInterface(void);
01053
01054 virtual void getFieldAndDesc ( FieldContainerPtr pFC,
01055 const Char8 * szFieldname,
01056 Field *&pField,
01057 const FieldDescription *&pDesc);
01058
01060
01064 virtual FieldContainerPtr beginNode(const Char8 *szTypename,
01065 const Char8 *szName,
01066 FieldContainerPtr pCurrentFC);
01067
01068 virtual void endNode ( FieldContainerPtr );
01069
01071
01075 virtual void dump(const Char8 *szNodeName);
01076
01078
01079 protected:
01080
01081
01085 SFVec2f _defaultCenter;
01086 SFReal32 _defaultRotation;
01087 SFVec2f _defaultScale;
01088 SFVec2f _defaultTranslation;
01089
01090 SFVec2f _center;
01091 SFReal32 _rotation;
01092 SFVec2f _scale;
01093 SFVec2f _translation;
01094
01096
01097 private:
01098
01099 typedef VRMLNodeDesc Inherited;
01100
01102 VRMLTextureTransformDesc(const VRMLTextureTransformDesc &source);
01104 void operator =(const VRMLTextureTransformDesc &source);
01105 };
01106
01107
01108
01109
01110
01114 class OSG_SYSTEMLIB_DLLMAPPING VRMLImageTextureDesc : public VRMLNodeDesc
01115 {
01116
01117 public :
01118
01119
01123 VRMLImageTextureDesc(void);
01124
01126
01130 virtual ~VRMLImageTextureDesc(void);
01131
01133
01137 virtual void init (const Char8 *szName);
01138
01139 virtual void reset( void);
01140
01142
01146 virtual bool prototypeAddField(const Char8 * szFieldType,
01147 const UInt32 uiFieldTypeId,
01148 const Char8 * szFieldName);
01149
01150 virtual void endProtoInterface(void);
01151
01152 virtual void getFieldAndDesc ( FieldContainerPtr pFC,
01153 const Char8 * szFieldname,
01154 Field *&pField,
01155 const FieldDescription *&pDesc);
01156
01158
01162 virtual FieldContainerPtr beginNode(const Char8 *szTypename,
01163 const Char8 *szName,
01164 FieldContainerPtr pCurrentFC);
01165
01166 virtual void endNode ( FieldContainerPtr );
01167
01169
01173 virtual void dump(const Char8 *szNodeName);
01174
01176
01177 protected:
01178
01179
01183 SFString _defaultURL;
01184 SFBool _defaultRepeatS;
01185 SFBool _defaultRepeatT;
01186
01187 MFString _url;
01188 SFBool _repeatS;
01189 SFBool _repeatT;
01190
01192
01193 private:
01194
01195 typedef VRMLNodeDesc Inherited;
01196
01198 VRMLImageTextureDesc(const VRMLImageTextureDesc &source);
01200 void operator =(const VRMLImageTextureDesc &source);
01201 };
01202
01203
01204
01205
01206
01210 class OSG_SYSTEMLIB_DLLMAPPING VRMLPixelTextureDesc : public VRMLNodeDesc
01211 {
01212
01213 public :
01214
01215
01219 VRMLPixelTextureDesc(void);
01220
01222
01226 virtual ~VRMLPixelTextureDesc(void);
01227
01229
01233 virtual void init (const Char8 *szName);
01234
01235 virtual void reset( void);
01236
01238
01242 virtual bool prototypeAddField(const Char8 * szFieldType,
01243 const UInt32 uiFieldTypeId,
01244 const Char8 * szFieldName);
01245
01246 virtual void endProtoInterface( void);
01247
01248 virtual void getFieldAndDesc ( FieldContainerPtr pFC,
01249 const Char8 * szFieldname,
01250 Field *&pField,
01251 const FieldDescription *&pDesc);
01252
01254
01258 virtual FieldContainerPtr beginNode(const Char8 *szTypename,
01259 const Char8 *szName,
01260 FieldContainerPtr pCurrentFC);
01261
01262 virtual void endNode ( FieldContainerPtr );
01263
01265
01269 virtual void addFieldValue( Field *pField,
01270 const Char8 *szFieldVal);
01271
01273
01277 virtual void dump(const Char8 *szNodeName);
01278
01280
01281 protected:
01282
01283
01287 SFImagePtr _defaultImage;
01288 SFBool _defaultRepeatS;
01289 SFBool _defaultRepeatT;
01290
01291 SFImagePtr _image;
01292 SFBool _repeatS;
01293 SFBool _repeatT;
01294
01296
01297 private:
01298
01299 typedef VRMLNodeDesc Inherited;
01300
01302 VRMLPixelTextureDesc(const VRMLPixelTextureDesc &source);
01304 void operator =(const VRMLPixelTextureDesc &source);
01305 };
01306
01307
01308
01309
01310
01311
01315 class OSG_SYSTEMLIB_DLLMAPPING VRMLLODDesc : public VRMLNodeDesc
01316 {
01317
01318 public :
01319
01320
01324 VRMLLODDesc(void);
01325
01327
01331 virtual ~VRMLLODDesc(void);
01332
01334
01338 virtual void init(const Char8 *szName);
01339
01341
01345 virtual bool prototypeAddField(const Char8 * szFieldType,
01346 const UInt32 uiFieldTypeId,
01347 const Char8 * szFieldName);
01348
01349 virtual void endProtoInterface(void);
01350
01351 virtual void getFieldAndDesc ( FieldContainerPtr pFC,
01352 const Char8 * szFieldname,
01353 Field *&pField,
01354 const FieldDescription *&pDesc);
01355
01357
01361 virtual FieldContainerPtr beginNode(const Char8 *szTypename,
01362 const Char8 *szName,
01363 FieldContainerPtr pCurrentFC);
01364
01365 virtual void endNode ( FieldContainerPtr );
01366
01368
01372 virtual void dump(const Char8 *szNodeName);
01373
01375
01376 protected:
01377
01378
01379 private:
01380
01381 typedef VRMLNodeDesc Inherited;
01382
01384 VRMLLODDesc(const VRMLLODDesc &source);
01386 void operator =(const VRMLLODDesc &source);
01387 };
01388
01389
01390
01391
01392
01393
01397 class OSG_SYSTEMLIB_DLLMAPPING VRMLSwitchDesc : public VRMLNodeDesc
01398 {
01399
01400 public :
01401
01402
01406 VRMLSwitchDesc(void);
01407
01409
01413 virtual ~VRMLSwitchDesc(void);
01414
01416
01420 virtual void init(const Char8 *szName);
01421
01423
01427 virtual bool prototypeAddField(const Char8 * szFieldType,
01428 const UInt32 uiFieldTypeId,
01429 const Char8 * szFieldName);
01430
01431 virtual void endProtoInterface( void);
01432
01433 virtual void getFieldAndDesc (