basetypes.h File Reference


Detailed Description

Basic types for representing data in VRML/X3D worlds (color, rotations, vectors, etc.).

#include <openvrml-common.h>
#include <cassert>
#include <cstddef>
#include <algorithm>
#include <iosfwd>
#include <vector>
#include <sys/types.h>

Include dependency graph for basetypes.h:

This graph shows which files directly or indirectly include this file:


Namespaces

namespace  openvrml
namespace  std

Classes

class  openvrml::color
 A color. More...
class  openvrml::color_rgba
 A color with alpha channel. More...
class  openvrml::vec2f
 Two-component single-precision vector. More...
class  openvrml::vec2d
 Two-component double-precision vector. More...
class  openvrml::vec3f
 Three-component single-precision vector. More...
class  openvrml::vec3d
 Three-component double-precision vector. More...
class  openvrml::rotation
 A rotation. More...
class  openvrml::mat4f
 A class for all matrix operations. More...
class  openvrml::quatf
 A quaternion. More...
class  openvrml::image
 Pixmap data. More...

Typedefs

typedef int32_t openvrml::int32
 32-bit signed integer.

Functions

std::istream & openvrml::operator>> (std::istream &in, color &c)
 Stream input.
bool openvrml::operator== (const color &lhs, const color &rhs) throw ()
 Compare for equality.
bool openvrml::operator!= (const color &lhs, const color &rhs) throw ()
 Compare for inequality.
std::ostream & openvrml::operator<< (std::ostream &out, const color &c)
 Stream output.
std::istream & openvrml::operator>> (std::istream &in, color_rgba &c)
 Stream input.
bool openvrml::operator== (const color_rgba &lhs, const color_rgba &rhs) throw ()
 Compare for equality.
bool openvrml::operator!= (const color_rgba &lhs, const color_rgba &rhs) throw ()
 Compare for inequality.
std::ostream & openvrml::operator<< (std::ostream &out, const color_rgba &c)
 Stream output.
std::istream & openvrml::operator>> (std::istream &in, vec2f &v)
 Stream input.
const openvrml::vec2f openvrml::operator * (const vec2f &lhs, const float rhs) throw ()
 Multiply a vector by a scalar.
const openvrml::vec2f openvrml::operator * (const float lhs, const vec2f &rhs) throw ()
 Multiply a vector by a scalar.
const openvrml::vec2f openvrml::operator/ (const vec2f &lhs, const float rhs) throw ()
 Divide a vector by a scalar.
const openvrml::vec2f openvrml::operator+ (const vec2f &lhs, const vec2f &rhs) throw ()
 Add two vectors.
const openvrml::vec2f openvrml::operator- (const vec2f &lhs, const vec2f &rhs) throw ()
 Subtract two vectors.
bool openvrml::operator== (const vec2f &lhs, const vec2f &rhs) throw ()
 Compare for equality.
bool openvrml::operator!= (const vec2f &lhs, const vec2f &rhs) throw ()
 Compare for inequality.
std::ostream & openvrml::operator<< (std::ostream &out, const vec2f &v)
 Stream output.
std::istream & openvrml::operator>> (std::istream &in, vec2d &v)
 Stream input.
const openvrml::vec2d openvrml::operator * (const vec2d &lhs, const double rhs) throw ()
 Multiply a vector by a scalar.
const openvrml::vec2d openvrml::operator * (const double lhs, const vec2d &rhs) throw ()
 Multiply a vector by a scalar.
const openvrml::vec2d openvrml::operator/ (const vec2d &lhs, const double rhs) throw ()
 Divide a vector by a scalar.
const openvrml::vec2d openvrml::operator+ (const vec2d &lhs, const vec2d &rhs) throw ()
 Add two vectors.
const openvrml::vec2d openvrml::operator- (const vec2d &lhs, const vec2d &rhs) throw ()
 Subtract two vectors.
bool openvrml::operator== (const vec2d &lhs, const vec2d &rhs) throw ()
 Compare for equality.
bool openvrml::operator!= (const vec2d &lhs, const vec2d &rhs) throw ()
 Compare for inequality.
std::ostream & openvrml::operator<< (std::ostream &out, const vec2d &v)
 Stream output.
std::istream & openvrml::operator>> (std::istream &in, vec3f &v)
 Stream input.
const openvrml::vec3f openvrml::operator * (const vec3f &lhs, const vec3f &rhs) throw ()
 Cross multiply two vectors.
const openvrml::vec3f openvrml::operator * (const vec3f &lhs, const float rhs) throw ()
 Multiply a vector by a scalar.
const openvrml::vec3f openvrml::operator * (const float lhs, const vec3f &rhs) throw ()
 Multiply a vector by a scalar.
const openvrml::vec3f openvrml::operator * (const vec3f &vec, const mat4f &mat) throw ()
 Multiply a vector by a matrix.
const openvrml::vec3f openvrml::operator * (const mat4f &mat, const vec3f &vec) throw ()
 Multiply a matrix by a vector.
const openvrml::vec3f openvrml::operator/ (const vec3f &lhs, const float rhs) throw ()
 Divide a vector by a scalar.
const openvrml::vec3f openvrml::operator+ (const vec3f &lhs, const vec3f &rhs) throw ()
 Add two vectors.
const openvrml::vec3f openvrml::operator- (const vec3f &lhs, const vec3f &rhs) throw ()
 Subtract two vectors.
bool openvrml::operator== (const vec3f &lhs, const vec3f &rhs) throw ()
 Compare for equality.
bool openvrml::operator!= (const vec3f &lhs, const vec3f &rhs) throw ()
 Compare for inequality.
std::ostream & openvrml::operator<< (std::ostream &out, const vec3f &v)
 Stream output.
std::istream & openvrml::operator>> (std::istream &in, vec3d &v)
 Stream input.
const openvrml::vec3d openvrml::operator * (const vec3d &lhs, const vec3d &rhs) throw ()
 Cross multiply two vectors.
const openvrml::vec3d openvrml::operator * (const vec3d &lhs, const double rhs) throw ()
 Multiply a vector by a scalar.
const openvrml::vec3d openvrml::operator * (const double lhs, const vec3d &rhs) throw ()
 Multiply a vector by a scalar.
const openvrml::vec3d openvrml::operator * (const vec3d &vec, const mat4f &mat) throw ()
 Multiply a vector by a matrix.
const openvrml::vec3d openvrml::operator * (const mat4f &mat, const vec3d &vec) throw ()
 Multiply a matrix by a vector.
const openvrml::vec3d openvrml::operator/ (const vec3d &lhs, const double rhs) throw ()
 Divide a vector by a scalar.
const openvrml::vec3d openvrml::operator+ (const vec3d &lhs, const vec3d &rhs) throw ()
 Add two vectors.
const openvrml::vec3d openvrml::operator- (const vec3d &lhs, const vec3d &rhs) throw ()
 Subtract two vectors.
bool openvrml::operator== (const vec3d &lhs, const vec3d &rhs) throw ()
 Compare for equality.
bool openvrml::operator!= (const vec3d &lhs, const vec3d &rhs) throw ()
 Compare for inequality.
std::ostream & openvrml::operator<< (std::ostream &out, const vec3d &v)
 Stream output.
const openvrml::rotation openvrml::operator * (const rotation &lhs, const rotation &rhs) throw ()
 Multiply rotations.
bool openvrml::operator== (const rotation &lhs, const rotation &rhs) throw ()
 Compare for equality.
bool openvrml::operator!= (const rotation &lhs, const rotation &rhs) throw ()
 Compare for inequality.
std::istream & openvrml::operator>> (std::istream &in, rotation &rot)
 Stream input.
std::ostream & openvrml::operator<< (std::ostream &out, const rotation &r)
 Stream output.
bool openvrml::operator== (const mat4f &lhs, const mat4f &rhs) throw ()
 Equality comparison operator.
bool openvrml::operator!= (const mat4f &lhs, const mat4f &rhs) throw ()
 Inequality comparison operator.
 openvrml::float (&mat4f::operator[](size_t index) throw())[4]
const openvrml::float (&mat4f::operator[](size_t index) const throw())[4]
const openvrml::mat4f openvrml::operator * (const mat4f &lhs, const mat4f &rhs) throw ()
 Multiply two matrices.
const openvrml::mat4f openvrml::operator * (const mat4f &mat, const float scalar) throw ()
 Multiply a matrix by a scalar value.
const openvrml::mat4f openvrml::operator * (const float scalar, const mat4f &mat) throw ()
 Multiply a scalar value by matrix.
std::istream & openvrml::operator>> (std::istream &in, mat4f &m)
 Stream input.
std::ostream & openvrml::operator<< (std::ostream &out, const mat4f &mat)
 Stream output.
std::istream & openvrml::operator>> (std::istream &in, quatf &q)
 Stream input.
const openvrml::quatf openvrml::operator * (const quatf &lhs, const quatf &rhs) throw ()
 Multiply two quaternions.
const openvrml::quatf openvrml::operator * (const quatf &quat, const float scalar) throw ()
 Multiply a quaternion by a scalar.
const openvrml::quatf openvrml::operator * (const float scalar, const quatf &quat) throw ()
 Multiply a scalar by a quaternion.
const openvrml::quatf openvrml::operator/ (const quatf &quat, const float scalar) throw ()
 Divide a quaternion by a scalar.
const openvrml::quatf openvrml::operator+ (const quatf &lhs, const quatf &rhs) throw ()
 Add two quaternions.
const openvrml::quatf openvrml::operator- (const quatf &lhs, const quatf &rhs) throw ()
 Take the difference between two quaternions.
bool openvrml::operator== (const quatf &lhs, const quatf &rhs) throw ()
 Compare for equality.
bool openvrml::operator!= (const quatf &lhs, const quatf &rhs) throw ()
 Compare for inequality.
std::ostream & openvrml::operator<< (std::ostream &out, const quatf &quat)
 Stream output.
bool openvrml::operator== (const image &lhs, const image &rhs) throw ()
 Compare for equality.
bool openvrml::operator!= (const image &lhs, const image &rhs) throw ()
 Compare for inequality.
std::istream & openvrml::operator>> (std::istream &in, image &img)
 Stream input.
std::ostream & openvrml::operator<< (std::ostream &out, const image &img)
 Stream output.
template<>
void std::swap (openvrml::image &a, openvrml::image &b)
 Swap the values of and b.