openvrml::vec2f Struct Reference

A POD-struct comprising a two-component single-precision vector. More...

#include <openvrml/basetypes.h>

List of all members.

Public Member Functions

vec2foperator*= (float scalar) throw ()
 Multiply by a scalar.
vec2foperator/= (float scalar) throw ()
 Divide by a scalar.
vec2foperator+= (const vec2f &vec) throw ()
 Add a vector.
vec2foperator-= (const vec2f &vec) throw ()
 Subtract a vector.
const vec2f operator- () const throw ()
 Negate.
const float & operator[] (std::size_t index) const throw ()
 Index-based component access.
float x () const throw ()
 Get the x component.
void x (float value) throw ()
 Set the x component.
float y () const throw ()
 Get the y component.
void y (float value) throw ()
 Set the y component.
float dot (const vec2f &vec) const throw ()
 Dot product.
float length () const throw ()
 Geometric length.
const vec2f normalize () const throw ()
 Normalize.

Public Attributes

float vec [2]
 Vector components.

Related Functions

(Note that these are not member functions.)

const openvrml::vec2f make_vec2f () throw()
 Create a vec2f.
const openvrml::vec2f make_vec2f (const float(&vec)[2]) throw()
 Create a vec2f from an array.
const openvrml::vec2f make_vec2f (const float x, const float y) throw()
 Create a vec2f from x and y components.
const openvrml::vec2f operator* (const vec2f &lhs, const float rhs) throw()
 Multiply a vector by a scalar.
const openvrml::vec2f operator* (const float lhs, const vec2f &rhs) throw()
 Multiply a vector by a scalar.
const openvrml::vec2f operator/ (const vec2f &lhs, const float rhs) throw()
 Divide a vector by a scalar.
const openvrml::vec2f operator+ (const vec2f &lhs, const vec2f &rhs) throw()
 Add two vectors.
const openvrml::vec2f operator- (const vec2f &lhs, const vec2f &rhs) throw()
 Subtract two vectors.
bool operator== (const vec2f &lhs, const vec2f &rhs) throw()
 Compare for equality.
bool operator!= (const vec2f &lhs, const vec2f &rhs) throw()
 Compare for inequality.
std::istream & operator>> (std::istream &in, vec2f &v)
 Stream input.
std::ostream & operator<< (std::ostream &out, const vec2f &v)
 Stream output.

Detailed Description

A POD-struct comprising a two-component single-precision vector.


Member Function Documentation

openvrml::vec2f & openvrml::vec2f::operator*= ( float  scalar) throw ()

Multiply by a scalar.

Parameters:
[in]scalarfactor by which to multiply.
Returns:
a reference to the object.
openvrml::vec2f & openvrml::vec2f::operator/= ( float  scalar) throw ()

Divide by a scalar.

Precondition:
scalar is nonzero.
Parameters:
[in]scalardivisor.
Returns:
a reference to the object.
openvrml::vec2f & openvrml::vec2f::operator+= ( const vec2f vec) throw ()

Add a vector.

Parameters:
[in]vecthe vector to add.
Returns:
a reference to the object.
openvrml::vec2f & openvrml::vec2f::operator-= ( const vec2f vec) throw ()

Subtract a vector.

Parameters:
[in]vecthe vector to subtract.
Returns:
a reference to the object.
const openvrml::vec2f openvrml::vec2f::operator- ( ) const throw ()

Negate.

Returns:
the additive inverse of the vector.
const float & openvrml::vec2f::operator[] ( std::size_t  index) const throw () [inline]

Index-based component access.

Parameters:
[in]index0 corresponds to the x component; 1 corresponds to the y component.
Returns:
a const reference to the component corresponding to index.
Precondition:
index is less than 2.
float openvrml::vec2f::x ( ) const throw () [inline]

Get the x component.

Returns:
the x component.
void openvrml::vec2f::x ( float  value) throw () [inline]

Set the x component.

Precondition:
value is a valid numeric value (i.e., not NaN).
Parameters:
[in]valuenew x component value.
float openvrml::vec2f::y ( ) const throw () [inline]

Get the y component.

Returns:
the y component.
void openvrml::vec2f::y ( float  value) throw () [inline]

Set the y component.

Precondition:
value is a valid numeric value (i.e., not NaN).
Parameters:
[in]valuenew y component value.
float openvrml::vec2f::dot ( const vec2f vec) const throw ()

Dot product.

Parameters:
[in]vec
Returns:
the dot product of the vector and vec.
float openvrml::vec2f::length ( ) const throw ()

Geometric length.

Returns:
the length of the vector.
const openvrml::vec2f openvrml::vec2f::normalize ( ) const throw ()

Normalize.

Returns:
the vector normalized.

Friends And Related Function Documentation

const openvrml::vec2f make_vec2f ( ) throw() [related]

Create a vec2f.

Returns:
a zero-initialized vec2f.
const openvrml::vec2f make_vec2f ( const float(&)  vec[2]) throw() [related]

Create a vec2f from an array.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Precondition:
Elements of vec are valid numeric values (i.e., not NaN).
Parameters:
[in]vecan array comprising the vector components.
Returns:
a vec2f with the values in vec.
const openvrml::vec2f make_vec2f ( const float  x,
const float  y 
) throw() [related]

Create a vec2f from x and y components.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Precondition:
x and y are valid numeric values (i.e., not NaN).
Parameters:
[in]xx component.
[in]yy component.
Returns:
a vec2f with the values x and y.
const openvrml::vec2f operator* ( const vec2f lhs,
const float  rhs 
) throw() [related]

Multiply a vector by a scalar.

Parameters:
[in]lhsleft-hand operand (the vector).
[in]rhsright-hand operand (the scalar).
Returns:
the result vector.
const openvrml::vec2f operator* ( const float  lhs,
const vec2f rhs 
) throw() [related]

Multiply a vector by a scalar.

Parameters:
[in]lhsleft-hand operand (the scalar).
[in]rhsright-hand operand (the vector).
Returns:
the result vector.
const openvrml::vec2f operator/ ( const vec2f lhs,
const float  rhs 
) throw() [related]

Divide a vector by a scalar.

Precondition:
rhs is nonzero.
Parameters:
[in]lhsleft-hand operand (the vector).
[in]rhsright-hand operand (the scalar).
Returns:
the result vector.
const openvrml::vec2f operator+ ( const vec2f lhs,
const vec2f rhs 
) throw() [related]

Add two vectors.

Parameters:
[in]lhsleft-hand operand.
[in]rhsright-hand operand.
Returns:
the result vector.
const openvrml::vec2f operator- ( const vec2f lhs,
const vec2f rhs 
) throw() [related]

Subtract two vectors.

Parameters:
[in]lhsleft-hand operand.
[in]rhsright-hand operand.
Returns:
the result vector.
bool operator== ( const vec2f lhs,
const vec2f rhs 
) throw() [related]

Compare for equality.

Parameters:
[in]lhsleft-hand operand.
[in]rhsright-hand operand.
Returns:
true if lhs and rhs have the same value; false otherwise.
bool operator!= ( const vec2f lhs,
const vec2f rhs 
) throw() [related]

Compare for inequality.

Parameters:
[in]lhsleft-hand operand.
[in]rhsright-hand operand.
Returns:
true if lhs and rhs dot not have the same value; false otherwise.
std::istream & operator>> ( std::istream &  in,
vec2f v 
) [related]

Stream input.

Consistent with the VRML97 convention, commas (“,”) in the input are treated as whitespace.

Parameters:
[in,out]ininput stream.
[out]va vec2f.
Returns:
in.
std::ostream & operator<< ( std::ostream &  out,
const vec2f v 
) [related]

Stream output.

Parameters:
[in,out]outoutput stream.
[in]va 2-component vector.
Returns:
out.

Member Data Documentation

Vector components.