/*****************************************************************************
 * $LastChangedDate: 2011-04-23 21:07:07 -0400 (Sat, 23 Apr 2011) $
 * @file
 * @author  Jim E. Brooks  http://www.palomino3d.org
 * @brief   Vector/vertex types.
 *//*
 * LEGAL:   COPYRIGHT (C) 2004 JIM E. BROOKS
 *          THIS SOURCE CODE IS RELEASED UNDER THE TERMS
 *          OF THE GNU GENERAL PUBLIC LICENSE VERSION 2 (GPL 2).
 *****************************************************************************/

#ifndef MATH_VERTEX_HH
#define MATH_VERTEX_HH 1

#include "base/stream.hh"
#include "math/defs_vector.hh"
#include <osg/Vec2>
#include <osg/Vec2f>
#include <osg/Vec2d>
#include <osg/Vec3>
#include <osg/Vec3f>
#include <osg/Vec3d>

namespace math {

typedef osg::Vec2f Vector2;         ///< 2D vector
typedef osg::Vec3f Vector3;         ///< 3D vector
typedef osg::Vec3f LocalVertex;     ///< 3D vertex in local/object space
typedef osg::Vec3f WorldVertex;     ///< 3D vertex in world space
typedef osg::Vec3f EyeVertex;       ///< 3D vertex in eye space

} // namespace math

//------------------------------------------------------------------------------
// KLUDGE: To compile operator<<(osg::Vec3), place inside the osg namespace.
#if ! DOXYGEN
namespace osg {
std::ostream& operator<<( std::ostream& strm, const math::Vector2& v );
std::ostream& operator<<( std::ostream& strm, const math::Vector3& v );
} // namespace osg
#endif // ! DOXYGEN
//------------------------------------------------------------------------------

#endif // MATH_VERTEX_HH
