x
Yes
No
Do you want to visit DriveHQ English website?
首页
产品服务
价格
免费试用
下载客户端
关于我们
云文件服务
|
云备份服务
|
FTP服务
|
企业邮箱服务
|
网站托管
|
客户端软件
云文件服务
云备份服务
FTP服务
企业级邮箱服务
网站托管
客户端软件
pixel_iterator.hpp - Hosted on DriveHQ Cloud IT Platform
返回上层目录
上传
下载
共享
发布
新建文件夹
新建文件
复制
剪切
删除
粘贴
评论
升级服务
路径: \\game3dprogramming\materials\GameFactory\GameFactoryDemo\references\boost_1_35_0\boost\gil\pixel_iterator.hpp
旋转
特效
属性
历史版本
/* Copyright 2005-2007 Adobe Systems Incorporated Use, modification and distribution are subject to the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt). See http://opensource.adobe.com/gil for most recent version including documentation. */ /*************************************************************************************************/ #ifndef GIL_PIXEL_ITERATOR_H #define GIL_PIXEL_ITERATOR_H //////////////////////////////////////////////////////////////////////////////////////// /// \file /// \brief pixel iterator support /// \author Lubomir Bourdev and Hailin Jin \n /// Adobe Systems Incorporated /// \date 2005-2007 \n May 16, 2006 /// //////////////////////////////////////////////////////////////////////////////////////// #include
#include
#include "gil_config.hpp" #include "gil_concept.hpp" #include "utilities.hpp" #include "pixel.hpp" namespace boost { namespace gil { //forwarded declaration (as this file is included in step_iterator.hpp) template
class memory_based_step_iterator; template
struct dynamic_x_step_type; /// \brief 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. template
struct is_iterator_adaptor : public mpl::false_{}; /// \brief returns the base iterator for a given iterator adaptor. Provide an specialization when introducing new iterator adaptors template
struct iterator_adaptor_get_base; /// \brief Changes the base iterator of an iterator adaptor. Provide an specialization when introducing new iterator adaptors template
struct iterator_adaptor_rebind; /// \brief Returns the type of an iterator just like the input iterator, except operating over immutable values template
struct const_iterator_type; // The default implementation when the iterator is a C pointer is to use the standard constness semantics template
struct const_iterator_type< T*> { typedef const T* type; }; template
struct const_iterator_type
{ typedef const T* type; }; /// \brief Metafunction predicate returning whether the given iterator allows for changing its values /// \ingroup GILIsMutable template
struct iterator_is_mutable{}; // The default implementation when the iterator is a C pointer is to use the standard constness semantics template
struct iterator_is_mutable< T*> : public mpl::true_{}; template
struct iterator_is_mutable
: public mpl::false_{}; /// \defgroup PixelIteratorModelInterleavedPtr C pointer to a pixel /// \ingroup PixelIteratorModel /// \brief Iterators over interleaved pixels. /// A C pointer to a model of PixelValueConcept is used as an iterator over interleaved pixels. Models PixelIteratorConcept, HomogeneousPixelBasedConcept, HasDynamicXStepTypeConcept, MemoryBasedIteratorConcept ///////////////////////////// // HasDynamicXStepTypeConcept ///////////////////////////// /// \ingroup PixelIteratorModelInterleavedPtr template
struct dynamic_x_step_type
{ typedef memory_based_step_iterator
type; }; /// \ingroup PixelIteratorModelInterleavedPtr template
struct dynamic_x_step_type
{ typedef memory_based_step_iterator
type; }; ///////////////////////////// // PixelBasedConcept ///////////////////////////// template
struct color_space_type< Pixel*> : public color_space_type
{}; template
struct color_space_type
: public color_space_type
{}; template
struct channel_mapping_type< Pixel*> : public channel_mapping_type
{}; template
struct channel_mapping_type
: public channel_mapping_type
{}; template
struct is_planar< Pixel*> : public is_planar
{}; template
struct is_planar
: public is_planar
{}; ///////////////////////////// // HomogeneousPixelBasedConcept ///////////////////////////// template
struct channel_type
: public channel_type
{}; template
struct channel_type
: public channel_type
{}; //////////////////////////////////////////////////////////////////////////////////////// /// /// Support for pixel iterator movement measured in memory units (bytes or bits) as opposed to pixel type. \n /// Necessary to handle image row alignment and channel plane alignment. /// //////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////// // MemoryBasedIteratorConcept ///////////////////////////// template
struct byte_to_memunit : public mpl::int_<1> {}; template
inline std::ptrdiff_t memunit_step(const P*) { return sizeof(P); } template
inline std::ptrdiff_t memunit_distance(const P* p1, const P* p2) { return (gil_reinterpret_cast_c
(p2)-gil_reinterpret_cast_c
(p1)); } template
inline void memunit_advance(P* &p, std::ptrdiff_t diff) { p=(P*)((unsigned char*)(p)+diff); } template
inline P* memunit_advanced(const P* p, std::ptrdiff_t diff) { return (P*)((char*)(p)+diff); } // memunit_advanced_ref // (shortcut to advancing a pointer by a given number of memunits and taking the reference in case the compiler is not smart enough) template
inline P& memunit_advanced_ref(P* p, std::ptrdiff_t diff) { return *memunit_advanced(p,diff); } } } // namespace boost::gil #endif
pixel_iterator.hpp
网页地址
文件地址
上一页
24/34
下一页
下载
( 5 KB )
Comments
Total ratings:
0
Average rating:
无评论
of 10
Would you like to comment?
Join now
, or
Logon
if you are already a member.