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 #ifndef _OSGTYPEDGEOVECTORPROPERTY_H_
00038 #define _OSGTYPEDGEOVECTORPROPERTY_H_
00039 #ifdef __sgi
00040 #pragma once
00041 #endif
00042
00043 #include "OSGGL.h"
00044
00045 #include "OSGDrawableDef.h"
00046 #include "OSGVecMFields.h"
00047 #include "OSGBaseMFields.h"
00048 #include "OSGGeoVectorProperty.h"
00049
00050 OSG_BEGIN_NAMESPACE
00051
00059 template <class GeoPropertyDesc>
00060 class TypedGeoVectorProperty : public GeoVectorProperty
00061 {
00062
00063
00064 private:
00065
00066
00067
00068 public:
00069
00070 typedef GeoVectorProperty Inherited;
00071 typedef GeoVectorProperty ParentContainer;
00072
00073 typedef GeoPropertyDesc PropDesc;
00074
00075 typedef typename Inherited ::TypeObject TypeObject;
00076 typedef typename TypeObject::InitPhase InitPhase;
00077
00078 typedef TypedGeoVectorProperty<GeoPropertyDesc> Self;
00079
00080 OSG_GEN_INTERNALPTR(Self);
00081
00082 typedef typename GeoPropertyDesc::StoredType StoredType;
00083 typedef typename GeoPropertyDesc::StoredFieldType StoredFieldType;
00084 typedef typename StoredFieldType::EditHandle StoredEditHandle;
00085 typedef typename StoredFieldType::EditHandlePtr StoredEditHandlePtr;
00086 typedef typename StoredFieldType::GetHandle StoredGetHandle;
00087 typedef typename StoredFieldType::GetHandlePtr StoredGetHandlePtr;
00088 typedef typename GeoPropertyDesc::Converter Converter;
00089
00090 typedef typename StoredFieldType::reference reference;
00091 typedef typename StoredFieldType::const_reference const_reference;
00092
00093 enum
00094 {
00095 GeoPropDataFieldId = GeoVectorProperty::NextFieldId,
00096
00097 NextFieldId = GeoPropDataFieldId + 1
00098 };
00099
00100 static const BitVector GeoPropDataFieldMask =
00101 1 << static_cast<Int32>(GeoPropDataFieldId);
00102
00103
00104 OSG_FIELD_CONTAINER_TMPL_DECL;
00105
00106
00110 #ifdef OSG_1_GET_COMPAT
00111 StoredFieldType *getFieldPtr (void);
00112 StoredFieldType &getField (void);
00113 #endif
00114
00115 StoredFieldType *editFieldPtr(void);
00116 const StoredFieldType *getFieldPtr (void) const;
00117
00118 StoredFieldType &editField (void);
00119 const StoredFieldType &getField (void) const;
00120
00122
00126 inline reference operator [](UInt32 index);
00127 inline const_reference operator [](UInt32 index) const;
00128
00130
00134 virtual GeoVectorPropertyPtr clone(void);
00135
00137
00141 virtual UInt32 getFormat (void) const;
00142 virtual UInt32 getFormatSize(void) const;
00143 virtual UInt32 getStride (void) const;
00144 virtual UInt32 getDimension (void) const;
00145 virtual UInt32 size (void) const;
00146 virtual const UInt8 *getData (void) const;
00147
00148 const StoredFieldType &operator-> ( void ) const;
00149
00150 StoredType getValue (const UInt32 index ) const;
00151 void getValue ( StoredType &val,
00152 const UInt32 index ) const;
00153
00154 void setValue (const StoredType &val,
00155 const UInt32 index );
00156
00157 void addValue (const StoredType &val );
00158
00159 virtual void clear ( void );
00160 virtual void resize ( size_t newsize);
00161 virtual bool getNormalize( void ) const;
00162 virtual void push_back (const StoredType &val );
00163
00164 template <class ExternalType>
00165 ExternalType getValue(const UInt32 index) const
00166 {
00167 FDEBUG(("TypedGeoVectorProperty<>::getValue<>(%d)\n", index));
00168
00169 ExternalType val;
00170
00171 if(GeoPropertyDesc::normalize)
00172 {
00173 if(TypeTraits<typename ExternalType::ValueType>::MathProp ==
00174 IntValue)
00175 {
00176 GeoConvertNormalize::convertOut(val, _field[index],
00177 static_cast<Real64>(GeoPropertyDesc::scale) /
00178 TypeTraits<typename ExternalType::ValueType>::getMax(), 0);
00179 }
00180 else
00181 {
00182 GeoConvertNormalize::convertOut(val, _field[index],
00183 static_cast<Real64>(GeoPropertyDesc::scale), 0);
00184 }
00185 }
00186 else
00187 {
00188 GeoConvert::convertOut(val, _field[index]);
00189 }
00190
00191 return val;
00192 }
00193
00194 template <class ExternalType>
00195 void getValue(ExternalType &eval, const UInt32 index) const
00196 {
00197 FDEBUG(("TypedGeoVectorProperty<>::getValue<>(eval, %d)\n", index));
00198
00199 if(GeoPropertyDesc::normalize)
00200 {
00201 if(TypeTraits<typename ExternalType::ValueType>::MathProp ==
00202 IntValue)
00203 {
00204 GeoConvertNormalize::convertOut(
00205 eval,
00206 _field[index],
00207 static_cast<Real64>(GeoPropertyDesc::scale) /
00208 TypeTraits<typename ExternalType::ValueType>::getMax(),
00209 0);
00210 }
00211 else
00212 {
00213 GeoConvertNormalize::convertOut(
00214 eval,
00215 _field[index],
00216 static_cast<Real64>(GeoPropertyDesc::scale),
00217 0);
00218 }
00219 }
00220 else
00221 {
00222 GeoConvert::convertOut(eval, _field[index]);
00223 }
00224 }
00225
00226 template <class ExternalType>
00227 void setValue (ExternalType val, const UInt32 index)
00228 {
00229 FDEBUG(("TypedGeoVectorProperty<>::setValue<>(val, %d)\n", index));
00230
00231 StoredType ival;
00232
00233 if(GeoPropertyDesc::normalize)
00234 {
00235 if(TypeTraits<typename ExternalType::ValueType>::MathProp ==
00236 IntValue)
00237 {
00238 GeoConvertNormalize::convertIn(ival, val,
00239 static_cast<Real64>(GeoPropertyDesc::scale) /
00240 TypeTraits<typename ExternalType::ValueType>::getMax(), 0);
00241 }
00242 else
00243 {
00244 GeoConvertNormalize::convertIn(ival, val,
00245 static_cast<Real64>(GeoPropertyDesc::scale), 0);
00246 }
00247 }
00248 else
00249 {
00250 GeoConvert::convertIn(ival, val);
00251 }
00252
00253 setValue(ival, index);
00254 }
00255
00256
00257
00258
00259 template <class ExternalType>
00260 void addValue (const ExternalType &val)
00261 {
00262 push_back(val);
00263 }
00264
00265 template <class ExternalType>
00266 void push_back(const ExternalType &val)
00267 {
00268 resize(size() + 1);
00269 setValue(val, size() - 1);
00270 }
00271
00273
00277 TypedGeoVectorProperty &operator =(const TypedGeoVectorProperty &source);
00278
00280
00284 virtual void dump( UInt32 uiIndent = 0,
00285 const BitVector bvFlags = 0) const;
00286
00288
00289 protected:
00290
00291 friend class FieldContainer;
00292
00293 StoredFieldType _field;
00294
00295
00299 TypedGeoVectorProperty(void);
00300 TypedGeoVectorProperty(const TypedGeoVectorProperty &source);
00301
00303
00307 virtual ~TypedGeoVectorProperty(void);
00308
00310
00314 virtual void getGenericValue( MaxTypeT &val, const UInt32 index) const;
00315 virtual void setGenericValue(const MaxTypeT &val, const UInt32 index);
00316
00318
00322 #ifdef OSG_MT_CPTR_ASPECT
00323 virtual ObjPtr createAspectCopy(void) const;
00324 #endif
00325
00327
00331 #ifdef OSG_MT_CPTR_ASPECT
00332 virtual void execSyncV( FieldContainer &oFrom,
00333 ConstFieldMaskArg whichField,
00334 AspectOffsetStore &oOffsets,
00335 ConstFieldMaskArg syncMode ,
00336 const UInt32 uiSyncInfo);
00337
00338 void execSync ( Self *pFrom,
00339 ConstFieldMaskArg whichField,
00340 AspectOffsetStore &oOffsets,
00341 ConstFieldMaskArg syncMode ,
00342 const UInt32 uiSyncInfo);
00343
00345
00349 virtual void resolveLinks(void);
00350
00351 #endif
00352
00354
00358 EditFieldHandlePtr editHandleField(void);
00359 GetFieldHandlePtr getHandleField (void) const;
00360
00362
00366 virtual void changed (ConstFieldMaskArg whichField,
00367 UInt32 origin,
00368 BitVector detail);
00369
00371
00375 virtual UInt32 getBinSize (ConstFieldMaskArg whichField);
00376 virtual void copyToBin (BinaryDataHandler &pMem,
00377 ConstFieldMaskArg whichField);
00378 virtual void copyFromBin(BinaryDataHandler &pMem,
00379 ConstFieldMaskArg whichField);
00380
00382
00383
00384 private:
00385
00386 static void classDescInserter(TypeObject &oType);
00387
00388 static void initMethod(InitPhase ePhase);
00389
00390 static const ObjPtr NullPtr;
00391
00392 static TypeObject _type;
00393 };
00394
00395
00396 struct TypedGeoVectorPropertyDescBase
00397 {
00398 typedef GeoVectorProperty PropertParent;
00399
00400 typedef PropertParent::TypeObject TypeObject;
00401 typedef TypeObject::InitPhase InitPhase;
00402
00403 static const Char8 *getGroupName (void)
00404 {
00405 return "TypedGeoVectorProperty";
00406 }
00407
00408 static void initMethod(InitPhase OSG_CHECK_ARG(ePhase)) {}
00409
00410 static UInt32 getStride (void) { return 0; }
00411
00412 static const Char8 *getTypeName (void) { return "GeoVectorProperty"; }
00413
00414
00415 typedef GeoConvert Converter;
00416
00417 static const bool normalize = false;
00418 static const int scale = 1;
00419 static const int offset = 0;
00420 };
00421
00422
00423 struct TypedNormGeoVectorPropertyDescBase
00424 {
00425 typedef GeoVectorProperty PropertParent;
00426
00427 typedef PropertParent::TypeObject TypeObject;
00428 typedef TypeObject::InitPhase InitPhase;
00429
00430 static const Char8 *getGroupName (void)
00431 {
00432 return "TypedNormGeoVectorProperty";
00433 }
00434
00435 static void initMethod(InitPhase OSG_CHECK_ARG(ePhase)) {}
00436
00437 static UInt32 getStride (void) { return 0; }
00438
00439 static const Char8 *getTypeName (void) { return "GeoVectorProperty"; }
00440
00441
00442 typedef GeoConvertNormalize Converter;
00443 static const bool normalize = true;
00444 static const int offset = 0;
00445 };
00446
00447
00448
00449
00450 #undef makeProp
00451
00452 #if !defined(OSG_DO_DOC)
00453
00456 #define makeProp(typename, gltypename, gltype) \
00457 struct Geo##typename##PropertyDesc : \
00458 public TypedGeoVectorPropertyDescBase \
00459 { \
00460 \
00461 \
00462 \
00463 \
00464 static const Char8 *getTypeName (void) \
00465 { \
00466 return "Geo" #typename "Property"; \
00467 } \
00468 \
00469 static UInt32 getFormat (void) { return gltypename; }\
00470 static UInt32 getFormatSize(void) { return sizeof(gltype); }\
00471 static UInt32 getDimension (void) { return typename::_uiSize;}\
00472 \
00473 typedef typename StoredType; \
00474 typedef MF##typename StoredFieldType; \
00475 \
00476 }; \
00477 \
00478 typedef TypedGeoVectorProperty<Geo##typename##PropertyDesc> \
00479 Geo##typename##Property; \
00480 \
00481 typedef Geo##typename##Property::ObjPtr \
00482 Geo##typename##PropertyPtr; \
00483 typedef Geo##typename##Property::ObjPtrConst \
00484 Geo##typename##PropertyPtrConst; \
00485 typedef Geo##typename##Property::ObjPtrConstArg \
00486 Geo##typename##PropertyPtrConstArg
00487
00488
00489 #define makeNormProp(typename, propname, nscale, gltypename, gltype) \
00490 struct Geo##propname##PropertyDesc : \
00491 public TypedNormGeoVectorPropertyDescBase \
00492 { \
00493 \
00494 \
00495 \
00496 \
00497 static const Char8 *getTypeName (void) \
00498 { \
00499 return "Geo" #propname "Property"; \
00500 } \
00501 \
00502 static UInt32 getFormat (void) { return gltypename; }\
00503 static UInt32 getFormatSize(void) { return sizeof(gltype); }\
00504 static UInt32 getDimension (void) { return typename::_uiSize;}\
00505 \
00506 typedef typename StoredType; \
00507 typedef MF##typename StoredFieldType; \
00508 \
00509 static const int scale = nscale; \
00510 \
00511 }; \
00512 \
00513 typedef TypedGeoVectorProperty<Geo##propname##PropertyDesc> \
00514 Geo##propname##Property; \
00515 \
00516 typedef Geo##propname##Property::ObjPtr \
00517 Geo##propname##PropertyPtr; \
00518 typedef Geo##propname##Property::ObjPtrConst \
00519 Geo##propname##PropertyPtrConst; \
00520 typedef Geo##propname##Property::ObjPtrConstArg \
00521 Geo##propname##PropertyPtrConstArg
00522
00523 #else // !defined(OSG_DO_DOC)
00524
00525 #define makeProp(typename, gltypename, gltype) \
00526 struct Geo##typename##PropertyDesc : \
00527 public TypedGeoVectorPropertyDescBase \
00528 { \
00529 \
00530 \
00531 \
00532 \
00533 static const Char8 *getTypeName (void) \
00534 { \
00535 return "Geo" #typename "Property"; \
00536 } \
00537 \
00538 static UInt32 getFormat (void) { return gltypename; }\
00539 static UInt32 getFormatSize(void) { return sizeof(gltype); }\
00540 static UInt32 getDimension (void) { return typename::_uiSize;}\
00541 \
00542 typedef typename StoredType; \
00543 typedef MF##typename StoredFieldType; \
00544 \
00545 }
00546
00547 #define makeNormProp(typename, propname, nscale, gltypename, gltype) \
00548 struct Geo##propname##PropertyDesc : \
00549 public TypedNormGeoVectorPropertyDescBase \
00550 { \
00551 \
00552 \
00553 \
00554 \
00555 static const Char8 *getTypeName (void) \
00556 { \
00557 return "Geo" #propname "Property"; \
00558 } \
00559 \
00560 static UInt32 getFormat (void) { return gltypename; }\
00561 static UInt32 getFormatSize(void) { return sizeof(gltype); }\
00562 static UInt32 getDimension (void) { return typename::_uiSize;}\
00563 \
00564 typedef typename StoredType; \
00565 typedef MF##typename StoredFieldType; \
00566 \
00567 static const int scale = nscale; \
00568 \
00569 }
00570
00571 #endif
00572
00573
00574
00575
00576 #define make1to4dprop(tbase, ttype, gltypename, gltype) \
00577 makeProp(tbase##1##ttype, gltypename, gltype); \
00578 makeProp(tbase##2##ttype, gltypename, gltype); \
00579 makeProp(tbase##3##ttype, gltypename, gltype); \
00580 makeProp(tbase##4##ttype, gltypename, gltype)
00581
00582 #define maketypesprop(ttype, gltypename, gltype) \
00583 make1to4dprop(Vec, ttype, gltypename, gltype); \
00584 make1to4dprop(Pnt, ttype, gltypename, gltype); \
00585
00586 #define make1to4dnprop(tbase, ttype, scale, gltypename, gltype) \
00587 makeNormProp(tbase##1##ttype, tbase##1N##ttype, scale, gltypename, gltype); \
00588 makeNormProp(tbase##2##ttype, tbase##2N##ttype, scale, gltypename, gltype); \
00589 makeNormProp(tbase##3##ttype, tbase##3N##ttype, scale, gltypename, gltype); \
00590 makeNormProp(tbase##4##ttype, tbase##4N##ttype, scale, gltypename, gltype)
00591
00592 #define maketypesnprop(ttype, scale, gltypename, gltype) \
00593 make1to4dnprop(Vec, ttype, scale, gltypename, gltype); \
00594 make1to4dnprop(Pnt, ttype, scale, gltypename, gltype); \
00595 make1to4dprop(Vec, ttype, gltypename, gltype); \
00596 make1to4dprop(Pnt, ttype, gltypename, gltype)
00597
00598 #define makecolorprop(ttype, scale, gltypename, gltype) \
00599 makeProp(Color3##ttype, gltypename, gltype); \
00600 makeProp(Color4##ttype, gltypename, gltype); \
00601 makeNormProp(Color3##ttype, Color3N##ttype, scale, gltypename, gltype); \
00602 makeNormProp(Color4##ttype, Color4N##ttype, scale, gltypename, gltype)
00603
00604
00605
00606 maketypesnprop(ub, 255, GL_UNSIGNED_BYTE, GLubyte);
00607 maketypesnprop( b, 127, GL_BYTE, GLbyte);
00608 maketypesnprop(us, 65535, GL_UNSIGNED_SHORT, GLushort);
00609 maketypesnprop( s, 32767, GL_SHORT, GLshort);
00610
00611
00612
00613
00614 #ifndef OSG_WINCE
00615 maketypesprop(f, GL_FLOAT, GLfloat);
00616 #endif
00617
00618 #ifdef OSG_WINCE
00619 maketypesprop(fx, GL_FIXED, GLfixed);
00620 #endif
00621
00622 #ifndef OSG_WINCE
00623 maketypesprop(d, GL_DOUBLE, GLdouble);
00624 #endif
00625
00626 makecolorprop(ub, 255, GL_UNSIGNED_BYTE, GLubyte);
00627 makeProp(Color3f, GL_FLOAT, GLfloat);
00628 makeProp(Color4f, GL_FLOAT, GLfloat);
00629
00630 #ifdef OSG_WINCE
00631 makeProp(Color3fx, GL_FIXED, GLfixed);
00632 makeProp(Color4fx, GL_FIXED, GLfixed);
00633 #endif
00634
00635
00636 #ifdef OSG_DEPRECIATED_PROPS
00637
00640
00641 typedef GeoVectorPropertyPtr GeoPositionsPtr;
00642 typedef GeoVectorPropertyConstPtr GeoPositionsConstPtr;
00643 typedef GeoVectorPropertyPtrConst GeoPositionsPtrConst;
00644 typedef GeoVectorPropertyPtrConstArg GeoPositionsPtrConstArg;
00645
00646 typedef GeoPnt2sProperty GeoPositions2s;
00647 typedef GeoPnt3sProperty GeoPositions3s;
00648 typedef GeoPnt4sProperty GeoPositions4s;
00649 typedef GeoPnt2sPropertyPtr GeoPositions2sPtr;
00650 typedef GeoPnt3sPropertyPtr GeoPositions3sPtr;
00651 typedef GeoPnt4sPropertyPtr GeoPositions4sPtr;
00652
00653 #ifndef OSG_WINCE
00654 typedef GeoPnt2fProperty GeoPositions2f;
00655 typedef GeoPnt3fProperty GeoPositions3f;
00656 typedef GeoPnt4fProperty GeoPositions4f;
00657 typedef GeoPnt2fPropertyPtr GeoPositions2fPtr;
00658 typedef GeoPnt3fPropertyPtr GeoPositions3fPtr;
00659 typedef GeoPnt4fPropertyPtr GeoPositions4fPtr;
00660
00661 typedef GeoPnt2dProperty GeoPositions2d;
00662 typedef GeoPnt3dProperty GeoPositions3d;
00663 typedef GeoPnt4dProperty GeoPositions4d;
00664 typedef GeoPnt2dPropertyPtr GeoPositions2dPtr;
00665 typedef GeoPnt3dPropertyPtr GeoPositions3dPtr;
00666 typedef GeoPnt4dPropertyPtr GeoPositions4dPtr;
00667 #endif
00668
00669
00670 typedef GeoVectorPropertyPtr GeoNormalsPtr;
00671 typedef GeoVectorPropertyConstPtr GeoNormalsConstPtr;
00672 typedef GeoVectorPropertyPtrConst GeoNormalsPtrConst;
00673 typedef GeoVectorPropertyPtrConstArg GeoNormalsPtrConstArg;
00674
00675 #ifndef OSG_WINCE
00676 typedef GeoVec3fProperty GeoNormals3f;
00677 #endif
00678 typedef GeoVec3sProperty GeoNormals3s;
00679 typedef GeoVec3bProperty GeoNormals3b;
00680 #ifndef OSG_WINCE
00681 typedef GeoVec3fPropertyPtr GeoNormals3fPtr;
00682 #endif
00683 typedef GeoVec3sPropertyPtr GeoNormals3sPtr;
00684 typedef GeoVec3bPropertyPtr GeoNormals3bPtr;
00685
00686
00687 typedef GeoVectorPropertyPtr GeoColorsPtr;
00688 typedef GeoVectorPropertyConstPtr GeoColorsConstPtr;
00689 typedef GeoVectorPropertyPtrConst GeoColorsPtrConst;
00690 typedef GeoVectorPropertyPtrConstArg GeoColorsPtrConstArg;
00691
00692 #ifndef OSG_WINCE
00693 typedef GeoColor3fProperty GeoColors3f;
00694 typedef GeoColor4fProperty GeoColors4f;
00695 #endif
00696 typedef GeoColor3ubProperty GeoColors3ub;
00697 typedef GeoColor4ubProperty GeoColors4ub;
00698 #ifndef OSG_WINCE
00699 typedef GeoColor3fPropertyPtr GeoColors3fPtr;
00700 typedef GeoColor4fPropertyPtr GeoColors4fPtr;
00701 #endif
00702 typedef GeoColor3ubPropertyPtr GeoColors3ubPtr;
00703 typedef GeoColor4ubPropertyPtr GeoColors4ubPtr;
00704
00705
00706 typedef GeoVectorPropertyPtr GeoTexCoordsPtr;
00707 typedef GeoVectorPropertyConstPtr GeoTexCoordsConstPtr;
00708 typedef GeoVectorPropertyPtrConst GeoTexCoordsPtrConst;
00709 typedef GeoVectorPropertyPtrConstArg GeoTexCoordsPtrConstArg;
00710
00711 #ifndef OSG_WINCE
00712 typedef GeoVec1fProperty GeoTexCoords1f;
00713 typedef GeoVec2fProperty GeoTexCoords2f;
00714 typedef GeoVec3fProperty GeoTexCoords3f;
00715 typedef GeoVec4fProperty GeoTexCoords4f;
00716
00717 typedef GeoVec1fPropertyPtr GeoTexCoords1fPtr;
00718 typedef GeoVec2fPropertyPtr GeoTexCoords2fPtr;
00719 typedef GeoVec3fPropertyPtr GeoTexCoords3fPtr;
00720 typedef GeoVec4fPropertyPtr GeoTexCoords4fPtr;
00721
00722 typedef GeoVec1dProperty GeoTexCoords1d;
00723 typedef GeoVec2dProperty GeoTexCoords2d;
00724 typedef GeoVec3dProperty GeoTexCoords3d;
00725 typedef GeoVec4dProperty GeoTexCoords4d;
00726
00727 typedef GeoVec1dPropertyPtr GeoTexCoords1dPtr;
00728 typedef GeoVec2dPropertyPtr GeoTexCoords2dPtr;
00729 typedef GeoVec3dPropertyPtr GeoTexCoords3dPtr;
00730 typedef GeoVec4dPropertyPtr GeoTexCoords4dPtr;
00731 #endif
00732
00733 #endif
00734
00735 #ifdef OSG_GLES
00736 #ifdef OSG_FLOAT_PROFILE
00737 #else
00738 typedef GeoPnt3fxProperty GeoPnt3rProperty;
00739 typedef GeoVec2fxProperty GeoVec2rProperty;
00740 typedef GeoVec3fxProperty GeoVec3rProperty;
00741
00742 typedef GeoPnt3fxPropertyPtr GeoPnt3rPropertyPtr;
00743 typedef GeoVec2fxPropertyPtr GeoVec2rPropertyPtr;
00744 typedef GeoVec3fxPropertyPtr GeoVec3rPropertyPtr;
00745 #endif
00746 #else
00747 typedef GeoPnt3fProperty GeoPnt3rProperty;
00748 typedef GeoVec2fProperty GeoVec2rProperty;
00749 typedef GeoVec3fProperty GeoVec3rProperty;
00750
00751 typedef GeoPnt3fPropertyPtr GeoPnt3rPropertyPtr;
00752 typedef GeoVec2fPropertyPtr GeoVec2rPropertyPtr;
00753 typedef GeoVec3fPropertyPtr GeoVec3rPropertyPtr;
00754 #endif
00755
00756
00757 OSG_END_NAMESPACE
00758
00759 #include "OSGTypedGeoVectorProperty.inl"
00760
00761
00762 #endif
00763