Ion
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
range.h File Reference
#include <algorithm>
#include <istream>
#include <ostream>
#include "ion/base/logging.h"
#include "ion/base/static_assert.h"
#include "ion/base/stringutils.h"
#include "ion/math/vector.h"
#include "ion/math/vectorutils.h"
Include dependency graph for range.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  ion::math::Range1TWrapper< T, N >
 This struct allows the Endpoint and Size types in a Range<1, T> to be treated like those of higher-dimension Range classes (specifically the use of index operators) to simplify templated functions that use them. More...
 
class  ion::math::RangeBase< Dimension, T >
 The RangeBase class makes it possible to treat Ranges with Dimension=1 specially. More...
 
class  ion::math::RangeBase< 1, T >
 Specialize for Dimension=1. More...
 
class  ion::math::Range< Dimension, T >
 The Range class defines an N-dimensional interval defined by minimum and maximum N-dimensional endpoints. More...
 

Namespaces

 ion
 Copyright 2016 Google Inc.
 
 ion::math
 

Typedefs

typedef Range< 1, int8 > ion::math::Range1i8
 Dimension- and type-specific typedefs. More...
 
typedef Range< 1, uint8 > ion::math::Range1ui8
 
typedef Range< 1, int16 > ion::math::Range1i16
 
typedef Range< 1, uint16 > ion::math::Range1ui16
 
typedef Range< 1, int32 > ion::math::Range1i
 
typedef Range< 1, uint32 > ion::math::Range1ui
 
typedef Range< 1, float > ion::math::Range1f
 
typedef Range< 1, double > ion::math::Range1d
 
typedef Range< 2, int8 > ion::math::Range2i8
 
typedef Range< 2, uint8 > ion::math::Range2ui8
 
typedef Range< 2, int16 > ion::math::Range2i16
 
typedef Range< 2, uint16 > ion::math::Range2ui16
 
typedef Range< 2, int32 > ion::math::Range2i
 
typedef Range< 2, uint32 > ion::math::Range2ui
 
typedef Range< 2, float > ion::math::Range2f
 
typedef Range< 2, double > ion::math::Range2d
 
typedef Range< 3, int8 > ion::math::Range3i8
 
typedef Range< 3, uint8 > ion::math::Range3ui8
 
typedef Range< 3, int16 > ion::math::Range3i16
 
typedef Range< 3, uint16 > ion::math::Range3ui16
 
typedef Range< 3, int32 > ion::math::Range3i
 
typedef Range< 3, uint32 > ion::math::Range3ui
 
typedef Range< 3, float > ion::math::Range3f
 
typedef Range< 3, double > ion::math::Range3d
 
typedef Range< 4, int8 > ion::math::Range4i8
 
typedef Range< 4, uint8 > ion::math::Range4ui8
 
typedef Range< 4, int16 > ion::math::Range4i16
 
typedef Range< 4, uint16 > ion::math::Range4ui16
 
typedef Range< 4, int32 > ion::math::Range4i
 
typedef Range< 4, uint32 > ion::math::Range4ui
 
typedef Range< 4, float > ion::math::Range4f
 
typedef Range< 4, double > ion::math::Range4d
 

Functions

template<typename T >
std::istream & ion::math::operator>> (std::istream &in, Range1TWrapper< T, 0 > &w)
 
template<int Dimension, typename T >
std::ostream & ion::math::operator<< (std::ostream &out, const Range< Dimension, T > &r)
 Prints a Range to a stream. More...
 
template<int Dimension, typename T >
std::istream & ion::math::operator>> (std::istream &in, Range< Dimension, T > &r)
 Reads a Range from a stream. More...