Boost GIL


Classes | Namespaces | Macros | Functions
gil_concept.hpp File Reference

Concept check classes for GIL concepts. More...

#include <functional>
#include "gil_config.hpp"
#include <boost/type_traits.hpp>
#include <boost/utility/enable_if.hpp>
#include <boost/concept_check.hpp>
#include <boost/iterator/iterator_concepts.hpp>
#include <boost/mpl/and.hpp>
#include <boost/mpl/size.hpp>

Go to the source code of this file.

Classes

struct  channel_traits< T >
 Traits for channels. Contains the following members: More...
 
class  point2< T >
 2D point both axes of which have the same dimension typeModels: Point2DConcept More...
 
struct  kth_semantic_element_reference_type< ColorBase, K >
 Specifies the return type of the mutable semantic_at_c<K>(color_base);. More...
 
struct  kth_semantic_element_const_reference_type< ColorBase, K >
 Specifies the return type of the constant semantic_at_c<K>(color_base);. More...
 
struct  size< ColorBase >
 Returns an MPL integral type specifying the number of elements in a color base. More...
 
struct  element_type< ColorBase >
 Specifies the element type of a homogeneous color base. More...
 
struct  num_channels< T >
 Returns the number of channels of a pixel-based GIL construct. More...
 
struct  const_iterator_type< It >
 Returns the type of an iterator just like the input iterator, except operating over immutable values. More...
 
struct  iterator_is_mutable< It >
 Metafunction predicate returning whether the given iterator allows for changing its values. More...
 
struct  is_iterator_adaptor< It >
 metafunction predicate determining whether the given iterator is a plain one or an adaptor over another iterator. Examples of adaptors are the step iterator and the dereference iterator adaptor. More...
 
struct  iterator_adaptor_rebind< It, NewBaseIt >
 Changes the base iterator of an iterator adaptor. Provide an specialization when introducing new iterator adaptors. More...
 
struct  iterator_adaptor_get_base< It >
 returns the base iterator for a given iterator adaptor. Provide an specialization when introducing new iterator adaptors More...
 
struct  packed_pixel< P, C, L >
 Heterogeneous pixel value whose channel references can be constructed from the pixel bitfield and their index. Models ColorBaseValueConcept, PixelValueConcept, PixelBasedConcept Typical use for this is a model of a packed pixel (like 565 RGB) More...
 
struct  bit_aligned_pixel_reference< BitField, ChannelBitSizes, Layout, IsMutable >
 Heterogeneous pixel reference corresponding to non-byte-aligned bit range. Models ColorBaseConcept, PixelConcept, PixelBasedConcept. More...
 
struct  DefaultConstructible< T >
 
struct  CopyConstructible< T >
 
struct  Assignable< T >
 
struct  EqualityComparable< T >
 
struct  SameType< T, U >
 
struct  Swappable< T >
 
struct  Regular< T >
 
struct  Metafunction< T >
 
struct  PointNDConcept< P >
 N-dimensional point concept. More...
 
struct  Point2DConcept< P >
 2-dimensional point concept More...
 
struct  ColorSpaceConcept< Cs >
 Color space type concept. More...
 
struct  ColorSpacesCompatibleConcept< Cs1, Cs2 >
 Two color spaces are compatible if they are the same. More...
 
struct  ChannelMappingConcept< CM >
 Channel mapping concept. More...
 
struct  ChannelConcept< T >
 A channel is the building block of a color. Color is defined as a mixture of primary colors and a channel defines the degree to which each primary color is used in the mixture. More...
 
struct  MutableChannelConcept< T >
 A channel that allows for modifying its value. More...
 
struct  ChannelValueConcept< T >
 A channel that supports default construction. More...
 
struct  channels_are_compatible< T1, T2 >
 Predicate metafunction returning whether two channels are compatibleChannels are considered compatible if their value types (ignoring constness and references) are the same. More...
 
struct  ChannelsCompatibleConcept< T1, T2 >
 Channels are compatible if their associated value types (ignoring constness and references) are the same. More...
 
struct  ChannelConvertibleConcept< SrcChannel, DstChannel >
 A channel is convertible to another one if the channel_convert algorithm is defined for the two channels. More...
 
struct  ColorBaseConcept< ColorBase >
 A color base is a container of color elements (such as channels, channel references or channel pointers) More...
 
struct  MutableColorBaseConcept< ColorBase >
 Color base which allows for modifying its elements. More...
 
struct  ColorBaseValueConcept< ColorBase >
 Color base that also has a default-constructor. Refines Regular. More...
 
struct  HomogeneousColorBaseConcept< ColorBase >
 Color base whose elements all have the same type. More...
 
struct  MutableHomogeneousColorBaseConcept< ColorBase >
 Homogeneous color base that allows for modifying its elements. More...
 
struct  HomogeneousColorBaseValueConcept< ColorBase >
 Homogeneous color base that also has a default constructor. Refines Regular. More...
 
struct  ColorBasesCompatibleConcept< ColorBase1, ColorBase2 >
 Two color bases are compatible if they have the same color space and their elements are compatible, semantic-pairwise. More...
 
struct  PixelBasedConcept< P >
 Concept for all pixel-based GIL constructs, such as pixels, iterators, locators, views and images whose value type is a pixel. More...
 
struct  HomogeneousPixelBasedConcept< P >
 Concept for homogeneous pixel-based GIL constructs. More...
 
struct  PixelConcept< P >
 Pixel concept - A color base whose elements are channels. More...
 
struct  MutablePixelConcept< P >
 Pixel concept that allows for changing its channels. More...
 
struct  HomogeneousPixelConcept< P >
 Homogeneous pixel concept. More...
 
struct  MutableHomogeneousPixelConcept< P >
 Homogeneous pixel concept that allows for changing its channels. More...
 
struct  PixelValueConcept< P >
 Pixel concept that is a Regular type. More...
 
struct  HomogeneousPixelValueConcept< P >
 Homogeneous pixel concept that is a Regular type. More...
 
struct  pixels_are_compatible< P1, P2 >
 Returns whether two pixels are compatible. More...
 
struct  PixelsCompatibleConcept< P1, P2 >
 Concept for pixel compatibility Pixels are compatible if their channels and color space types are compatible. Compatible pixels can be assigned and copy constructed from one another. More...
 
struct  PixelConvertibleConcept< SrcP, DstP >
 Pixel convertible concept. More...
 
struct  PixelDereferenceAdaptorConcept< D >
 Represents a unary function object that can be invoked upon dereferencing a pixel iterator. More...
 
struct  HasDynamicXStepTypeConcept< T >
 Concept for iterators, locators and views that can define a type just like the given iterator/locator/view, except it supports runtime specified step along the X navigation. More...
 
struct  HasDynamicYStepTypeConcept< T >
 Concept for locators and views that can define a type just like the given locator or view, except it supports runtime specified step along the Y navigation. More...
 
struct  HasTransposedTypeConcept< T >
 Concept for locators and views that can define a type just like the given locator or view, except X and Y is swapped. More...
 
struct  PixelIteratorConcept< Iterator >
 An STL random access traversal iterator over a model of PixelConcept. More...
 
struct  MutablePixelIteratorConcept< Iterator >
 Pixel iterator that allows for changing its pixel. More...
 
struct  MemoryBasedIteratorConcept< Iterator >
 Concept of a random-access iterator that can be advanced in memory units (bytes or bits) More...
 
struct  StepIteratorConcept< Iterator >
 Step iterator concept. More...
 
struct  MutableStepIteratorConcept< Iterator >
 Step iterator that allows for modifying its current value. More...
 
struct  IteratorAdaptorConcept< Iterator >
 Iterator adaptor is a forward iterator adapting another forward iterator. More...
 
struct  MutableIteratorAdaptorConcept< Iterator >
 Iterator adaptor that is mutable. More...
 
struct  RandomAccessNDLocatorConcept< Loc >
 N-dimensional locator over immutable values. More...
 
struct  RandomAccess2DLocatorConcept< Loc >
 2-dimensional locator over immutable values More...
 
struct  PixelLocatorConcept< Loc >
 GIL's 2-dimensional locator over immutable GIL pixels. More...
 
struct  MutableRandomAccessNDLocatorConcept< Loc >
 N-dimensional locator over mutable pixels. More...
 
struct  MutableRandomAccess2DLocatorConcept< Loc >
 2-dimensional locator over mutable pixels More...
 
struct  MutablePixelLocatorConcept< Loc >
 GIL's 2-dimensional locator over mutable GIL pixels. More...
 
struct  RandomAccessNDImageViewConcept< View >
 N-dimensional view over immutable values. More...
 
struct  RandomAccess2DImageViewConcept< View >
 2-dimensional view over immutable values More...
 
struct  ImageViewConcept< View >
 GIL's 2-dimensional view over immutable GIL pixels. More...
 
struct  MutableRandomAccessNDImageViewConcept< View >
 N-dimensional view over mutable values. More...
 
struct  MutableRandomAccess2DImageViewConcept< View >
 2-dimensional view over mutable values More...
 
struct  MutableImageViewConcept< View >
 GIL's 2-dimensional view over mutable GIL pixels. More...
 
struct  views_are_compatible< V1, V2 >
 Returns whether two views are compatible. More...
 
struct  ViewsCompatibleConcept< V1, V2 >
 Views are compatible if they have the same color spaces and compatible channel values. Constness and layout are not important for compatibility. More...
 
struct  RandomAccessNDImageConcept< Img >
 N-dimensional container of values. More...
 
struct  RandomAccess2DImageConcept< Img >
 2-dimensional container of values More...
 
struct  ImageConcept< Img >
 2-dimensional image whose value type models PixelValueConcept More...
 

Namespaces

 boost
 Pixel 2D LOCATOR.
 

Macros

#define GIL_CLASS_REQUIRE(T, NS, C)
 

Functions

template<typename dstT , typename srcT >
channel_traits< dstT >::value_type channel_convert (const srcT &val)
 
template<std::size_t K, typename T >
const T & axis_value (const point2< T > &p)
 
template<std::size_t K, typename T >
T & axis_value (point2< T > &p)
 
template<int K, typename E , typename L , int N>
add_reference< E >::type at_c (detail::homogeneous_color_base< E, L, N > &p)
 Provides mutable access to the K-th element, in physical order.
 
template<int K, typename E , typename L , int N>
add_reference< typename
add_const< E >::type >::type 
at_c (const detail::homogeneous_color_base< E, L, N > &p)
 Provides constant access to the K-th element, in physical order.
 
template<int K, typename P , typename C , typename L >
kth_element_reference_type
< packed_pixel< P, C, L >, K >
::type 
at_c (packed_pixel< P, C, L > &p)
 
template<int K, typename P , typename C , typename L >
kth_element_const_reference_type
< packed_pixel< P, C, L >, K >
::type 
at_c (const packed_pixel< P, C, L > &p)
 
template<int K, typename B , typename C , typename L , bool M>
kth_element_reference_type
< bit_aligned_pixel_reference
< B, C, L, M >, K >::type 
at_c (const bit_aligned_pixel_reference< B, C, L, M > &p)
 
template<int K, typename ColorBase >
disable_if< is_const
< ColorBase >, typename
kth_semantic_element_reference_type
< ColorBase, K >::type >::type 
semantic_at_c (ColorBase &p)
 A mutable accessor to the K-th semantic element of a color base.
 
template<int K, typename ColorBase >
kth_semantic_element_const_reference_type
< ColorBase, K >::type 
semantic_at_c (const ColorBase &p)
 A constant accessor to the K-th semantic element of a color base.
 
template<typename T >
void initialize_it (T &)
 
template<typename C >
void gil_function_requires ()
 

Detailed Description

Concept check classes for GIL concepts.

Author
Lubomir Bourdev and Hailin Jin
Adobe Systems Incorporated
Date
2005-2007
Last updated on February 12, 2007