From Paul Obermeier, "Please find enclosed some changed OSG header files.

The changes are more or less just beautifications
(when looked at them from the C++ view), but make
wrapping OSG with SWIG easier.
I have tested the changes with both 2.8.1-rc4 and the
current head and would appreciate to incorporate the
changes in both branches.

Here is a description of the changes:

osg/BoundingSphere:
   Use the following typedef (like used in BoundingBox)
       typedef typename VT::value_type value_type;
   instead of
       typedef typename vec_type::value_type value_type;

   SWIG reports errors on the latter construct.
   Also makes it consistent with BoundingBox.


osg/Vec4ub:
   Consistent use of "value_type" throughout the file.


osg/Vec?b:
   Consistent use of "value_type" throughout the files.

   Also changed
       typedef char value_type;
   to
       typedef signed char value_type;

   In the case of a simple "char", SWIG assumes a string.
   Using "signed char" instead of "char" does not change
   the behaviour of the class.
"
This commit is contained in:
Robert Osfield 2009-05-18 10:37:03 +00:00
parent 47c922b0e5
commit 7dead3f52d
5 changed files with 31 additions and 31 deletions

View File

@ -35,7 +35,7 @@ class BoundingSphereImpl
{
public:
typedef VT vec_type;
typedef typename vec_type::value_type value_type;
typedef typename VT::value_type value_type;
vec_type _center;
value_type _radius;

View File

@ -29,7 +29,7 @@ class Vec2b
// Methods are defined here so that they are implicitly inlined
/** Type of Vec class.*/
typedef char value_type;
typedef signed char value_type;
/** Number of vector components. */
enum { num_components = 2 };
@ -39,7 +39,7 @@ class Vec2b
Vec2b() { _v[0]=0; _v[1]=0; }
Vec2b(char r, char g)
Vec2b(value_type r, value_type g)
{
_v[0]=r; _v[1]=g;
}
@ -94,8 +94,8 @@ class Vec2b
/** Unary multiply by scalar. */
inline Vec2b& operator *= (float rhs)
{
_v[0]=(char)((float)_v[0]*rhs);
_v[1]=(char)((float)_v[1]*rhs);
_v[0]=(value_type)((float)_v[0]*rhs);
_v[1]=(value_type)((float)_v[1]*rhs);
return *this;
}

View File

@ -27,7 +27,7 @@ class Vec3b
public:
/** Type of Vec class.*/
typedef char value_type;
typedef signed char value_type;
/** Number of vector components. */
enum { num_components = 3 };
@ -94,9 +94,9 @@ class Vec3b
/** Unary multiply by scalar. */
inline Vec3b& operator *= (float rhs)
{
_v[0]=(char)((float)_v[0]*rhs);
_v[1]=(char)((float)_v[1]*rhs);
_v[2]=(char)((float)_v[2]*rhs);
_v[0]=(value_type)((float)_v[0]*rhs);
_v[1]=(value_type)((float)_v[1]*rhs);
_v[2]=(value_type)((float)_v[2]*rhs);
return *this;
}

View File

@ -27,7 +27,7 @@ class Vec4b
public:
/** Type of Vec class.*/
typedef char value_type;
typedef signed char value_type;
/** Number of vector components. */
enum { num_components = 4 };
@ -101,10 +101,10 @@ class Vec4b
/** Unary multiply by scalar. */
inline Vec4b& operator *= (float rhs)
{
_v[0]=(char)((float)_v[0]*rhs);
_v[1]=(char)((float)_v[1]*rhs);
_v[2]=(char)((float)_v[2]*rhs);
_v[3]=(char)((float)_v[3]*rhs);
_v[0]=(value_type)((float)_v[0]*rhs);
_v[1]=(value_type)((float)_v[1]*rhs);
_v[2]=(value_type)((float)_v[2]*rhs);
_v[3]=(value_type)((float)_v[3]*rhs);
return *this;
}

View File

@ -62,26 +62,26 @@ class Vec4ub
else return (_v[3]<v._v[3]);
}
inline unsigned char* ptr() { return _v; }
inline const unsigned char* ptr() const { return _v; }
inline value_type* ptr() { return _v; }
inline const value_type* ptr() const { return _v; }
inline void set(unsigned char r, unsigned char g, unsigned char b, unsigned char a)
inline void set(value_type r, value_type g, value_type b, value_type a)
{
_v[0]=r; _v[1]=g; _v[2]=b; _v[3]=a;
}
inline unsigned char& operator [] (unsigned int i) { return _v[i]; }
inline unsigned char operator [] (unsigned int i) const { return _v[i]; }
inline value_type& operator [] (unsigned int i) { return _v[i]; }
inline value_type operator [] (unsigned int i) const { return _v[i]; }
inline unsigned char& r() { return _v[0]; }
inline unsigned char& g() { return _v[1]; }
inline unsigned char& b() { return _v[2]; }
inline unsigned char& a() { return _v[3]; }
inline value_type& r() { return _v[0]; }
inline value_type& g() { return _v[1]; }
inline value_type& b() { return _v[2]; }
inline value_type& a() { return _v[3]; }
inline unsigned char r() const { return _v[0]; }
inline unsigned char g() const { return _v[1]; }
inline unsigned char b() const { return _v[2]; }
inline unsigned char a() const { return _v[3]; }
inline value_type r() const { return _v[0]; }
inline value_type g() const { return _v[1]; }
inline value_type b() const { return _v[2]; }
inline value_type a() const { return _v[3]; }
/** Multiply by scalar. */
inline Vec4ub operator * (float rhs) const
@ -94,10 +94,10 @@ class Vec4ub
/** Unary multiply by scalar. */
inline Vec4ub& operator *= (float rhs)
{
_v[0]=(unsigned char)((float)_v[0]*rhs);
_v[1]=(unsigned char)((float)_v[1]*rhs);
_v[2]=(unsigned char)((float)_v[2]*rhs);
_v[3]=(unsigned char)((float)_v[3]*rhs);
_v[0]=(value_type)((float)_v[0]*rhs);
_v[1]=(value_type)((float)_v[1]*rhs);
_v[2]=(value_type)((float)_v[2]*rhs);
_v[3]=(value_type)((float)_v[3]*rhs);
return *this;
}