rem: class OSG_SYSTEMLIB_DLLTMPLMAPPING GeoPropertyInterface
add: class GeoPropertyInterface
context: OSG_BEGIN_NAMESPACE/*! \ingroup GeometryLib *  \brief GeoPropertyInterface defines the interface used by the geometry to  *  access its attributes. It's an abstract class and not to be instantiated. *  Properties are one implementation of this interface, *  but not necessarily the only one. In fact, the main purpose of the  *  interface layer is the ability to be able to create simplified geometry *  nodes that don't need the properties' flexibility and can't stand the *  overhead. */#ifndef OSG_SUPPORT_NO_GEO_INTERFACEtemplate <class GeoPropertyDesc>class OSG_SYSTEMLIB_DLLTMPLMAPPING GeoPropertyInterface{    /*==========================  PUBLIC  =================================*/  public:    typedef          GeoPropertyInterface<GeoPropertyDesc> InterfaceType;    typedef typename GeoPropertyDesc::GenericType          GenericType;    /*---------------------------------------------------------------------*/    /*! \name                       Get                                    */    /*! \{                                                                 */    virtual UInt32  getFormat    (void) const = 0;    virtual UInt32  getFormatSize(void) const = 0;    virtual UInt32  getStride    (void) const = 0;    virtual UInt32  getDimension (void) const = 0;    virtual UInt32  getSize      (void) const = 0;    virtual UInt32  size         (void) const = 0;    virtual UInt8  *getData      (void) const = 0;    /*! \}                                                                 */    /*---------------------------------------------------------------------*/    /*! \name                       Generic Access                         */    /*! \{                                                                 */    virtual GenericType getValue (const UInt32       index )       = 0;    virtual GenericType getValue (const UInt32       index ) const = 0;    virtual void        getValue (      GenericType &val,                                  const UInt32       index )       = 0;    virtual void        getValue (      GenericType &val,                                  const UInt32       index ) const = 0;    virtual void        setValue (const GenericType &val,                                  const UInt32       index )       = 0;    virtual void        addValue (const GenericType &val   )       = 0;    virtual void        clear    (      void               )       = 0;    virtual void        resize   (      size_t      newsize)       = 0;    virtual void        push_back(const GenericType &val   )       = 0;    /*! \}                                                                 */    /*---------------------------------------------------------------------*/    /*! \name                   Constructors                               */    /*! \{                                                                 */    GeoPropertyInterface(void);    GeoPropertyInterface(const GeoPropertyInterface &source);    /*! \}                                                                 */    /*---------------------------------------------------------------------*/    /*! \name                   Destructors                                */    /*! \{                                                                 */    virtual ~GeoPropertyInterface(void);    /*! \}                                                                 */};