Adobe Systems, Inc.

algorithm.hpp File Reference

Some basic STL-style algorithms when applied to image views. More...

#include <cassert>
#include <cstddef>
#include <algorithm>
#include "gil_config.hpp"
#include "gil_concept.hpp"
#include "pixel_algorithm.hpp"
#include "image_view.hpp"
#include "image_view_factory.hpp"

Go to the source code of this file.


Namespaces

namespace  detail
namespace  std

Classes

struct  binary_operation_obj< DERIVED, RESULT_T >
 A generic binary operation on views

Use this class as a convenience superclass when defining an operation for any image views. Many operations have different behavior when the two views are compatible. This class checks for compatibility and invokes apply_compatible(V1,V2) or apply_incompatible(V1,V2) of the subclass. You must provide apply_compatible(V1,V2) method in your subclass, but apply_incompatible(V1,V2) is not required and the default throws std::bad_cast. More...

struct  detail::copier_n< I, O >
struct  detail::copier_n< GIL::pixel_image_iterator< IL >, GIL::pixel_image_iterator< OL > >
struct  detail::copier_n< GIL::pixel_image_iterator< IL >, O >
struct  detail::copier_n< I, GIL::pixel_image_iterator< OL > >
struct  detail::copy_and_convert_pixels_fn
struct  detail::copy_fn< I, O >
struct  detail::equal_n_fn< I1, I2 >
struct  detail::equal_n_fn< const pixel< T, CS > *, const pixel< T, CS > * >
 Equal when both ranges are interleaved and of the same type. GIL pixels are bitwise comparable, so memcmp is used. User-defined pixels that are not bitwise comparable need to provide an overload. More...
struct  detail::equal_n_fn< GIL::pixel_image_iterator< LOC >, I2 >
struct  detail::equal_n_fn< GIL::pixel_image_iterator< LOC1 >, GIL::pixel_image_iterator< LOC2 > >
struct  detail::equal_n_fn< I1, GIL::pixel_image_iterator< LOC > >
struct  detail::equal_n_fn< pixel< T, CS > *, pixel< T, CS > * >
struct  detail::equal_n_fn< planar_ptr< IC, CS >, planar_ptr< IC, CS > >
 Equal when both ranges are planar pointers of the same type. memcmp is invoked for each channel plane User-defined channels that are not bitwise comparable need to provide an overload. More...
struct  detail::equal_pixels_fn
struct  error_t

Functions

template<typename IL, typename OL>
GIL_FORCEINLINE GIL::pixel_image_iterator<
OL > 
std::copy (GIL::pixel_image_iterator< IL > first, GIL::pixel_image_iterator< IL > last, GIL::pixel_image_iterator< OL > dst)
template<typename IC1, typename CS1, typename IC2, typename CS2>
GIL_FORCEINLINE GIL::planar_ptr<
IC2, CS2 > 
std::copy (GIL::planar_ptr< IC1, CS1 > first, GIL::planar_ptr< IC1, CS1 > last, GIL::planar_ptr< IC2, CS2 > dst)
template<typename T, typename CS>
GIL_FORCEINLINE GIL::pixel<
T, CS > * 
std::copy (const GIL::pixel< T, CS > *first, const GIL::pixel< T, CS > *last, GIL::pixel< T, CS > *dst)
template<typename T, typename CS>
GIL_FORCEINLINE GIL::pixel<
T, CS > * 
std::copy (GIL::pixel< T, CS > *first, GIL::pixel< T, CS > *last, GIL::pixel< T, CS > *dst)
template<typename V1, typename V2>
GIL_FORCEINLINE void copy_and_convert_pixels (const V1 &src, const V2 &dst)
template<typename V1, typename V2>
ADOBE_GIL_NAMESPACE_BEGIN
GIL_FORCEINLINE void 
copy_pixels (const V1 &src, const V2 &dst)
template<typename LOC1, typename LOC2>
GIL_FORCEINLINE bool std::equal (GIL::pixel_image_iterator< LOC1 > first, GIL::pixel_image_iterator< LOC1 > last, GIL::pixel_image_iterator< LOC2 > first2)
template<typename I1, typename I2>
ADOBE_GIL_NAMESPACE_BEGIN
GIL_FORCEINLINE bool 
equal_n (I1 i1, std::ptrdiff_t n, I2 i2)
template<typename V1, typename V2>
GIL_FORCEINLINE bool equal_pixels (const V1 &v1, const V2 &v2)
template<typename IL, typename V>
void std::fill (GIL::pixel_image_iterator< IL > first, GIL::pixel_image_iterator< IL > last, const V &val)
template<typename V, typename VAL>
ADOBE_GIL_NAMESPACE_BEGIN
GIL_FORCEINLINE void 
fill_pixels (const V &img_view, const VAL &val)
template<typename V, typename F>
ADOBE_GIL_NAMESPACE_BEGIN F for_each_pixel (const V &img, F fun)
template<typename VIEW, typename F>
for_each_pixel_position (const VIEW &img, F fun)
template<typename V1, typename V2, typename V3, typename F>
GIL_FORCEINLINE F transform_pixel_positions (const V1 &src1, const V2 &src2, const V3 &dst, F fun)
template<typename V1, typename V2, typename F>
GIL_FORCEINLINE F transform_pixel_positions (const V1 &src, const V2 &dst, F fun)
template<typename V1, typename V2, typename V3, typename F>
GIL_FORCEINLINE F transform_pixels (const V1 &src1, const V2 &src2, const V3 &dst, F fun)
template<typename V1, typename V2, typename F>
ADOBE_GIL_NAMESPACE_BEGIN
GIL_FORCEINLINE F 
transform_pixels (const V1 &src, const V2 &dst, F fun)

Detailed Description

Author:
Lubomir Bourdev and Hailin Jin
Adobe Systems Incorporated
Date:
2005-2006
Last updated on May 18, 2006

Definition in file gil/core/algorithm.hpp.

Copyright © 2006 Adobe Systems Incorporated.

Use of this website signifies your agreement to the Terms of Use and Online Privacy Policy.

Search powered by Google