Public 型 | Public メソッド | Protected 型 | Protected メソッド | Static Protected メソッド | Protected 変数
クラス テンプレート mist::bitmap< BITS, Allocator >

要素数が可変のビットマップ画像を扱うクラス [詳細]

#include <bitmap.h>

+ mist::bitmap< BITS, Allocator >に対する継承グラフ

Public 型

typedef bitmap_type< BITS >
::value_type 
value_type
 内部データ型
typedef value_typepointer
 データ型のポインター型.data の場合,data * となる
typedef value_typereference
 データ型の参照.data の場合,data & となる
typedef const value_typeconst_reference
 MISTのコンテナ内に格納するデータ型の const 参照.mist::array< data > の場合,const data & となる
typedef const value_typeconst_pointer
 MISTのコンテナ内に格納するデータ型の const ポインター型.mist::array< data > の場合,const data * となる
typedef Allocator::size_type size_type
 符号なしの整数を表す型.コンテナ内の要素数や,各要素を指定するときなどに利用し,内部的には size_t 型と同じ
typedef Allocator::difference_type difference_type
 符号付きの整数を表す型.コンテナ内の要素数や,各要素を指定するときなどに利用し,内部的には ptrdiff_t 型と同じ
- Public 型 inherited from mist::array< unsigned char, Allocator >
typedef Allocator allocator_type
 MISTコンテナが利用するアロケータ型
typedef Allocator::reference reference
 MISTのコンテナ内に格納するデータ型の参照.mist::array< data > の場合,data & となる
typedef Allocator::const_reference const_reference
 MISTのコンテナ内に格納するデータ型の const 参照.mist::array< data > の場合,const data & となる
typedef Allocator::value_type value_type
 MISTのコンテナ内に格納するデータ型.mist::array< data > の data と同じ
typedef Allocator::size_type size_type
 符号なしの整数を表す型.コンテナ内の要素数や,各要素を指定するときなどに利用し,内部的には size_t 型と同じ
typedef Allocator::difference_type difference_type
 符号付きの整数を表す型.コンテナ内の要素数や,各要素を指定するときなどに利用し,内部的には ptrdiff_t 型と同じ
typedef Allocator::pointer pointer
 MISTのコンテナ内に格納するデータ型のポインター型.mist::array< data > の場合,data * となる
typedef Allocator::const_pointer const_pointer
 MISTのコンテナ内に格納するデータ型の const ポインター型.mist::array< data > の場合,const data * となる
typedef mist_iterator1
< unsigned char, ptrdiff_t,
pointer, reference
iterator
 MISTのコンテナ内を操作する,STLで言う順方向のランダムアクセスイテレータ
typedef mist_iterator1
< unsigned char, ptrdiff_t,
const_pointer, const_reference
const_iterator
 MISTのコンテナ内を操作する,順方向のランダムアクセスイテレータのコンスト版
typedef mist_reverse_iterator
< mist_iterator1< unsigned
char, ptrdiff_t, pointer,
reference > > 
reverse_iterator
 MISTのコンテナ内を操作する,逆方向のランダムアクセスイテレータ
typedef mist_reverse_iterator
< mist_iterator1< unsigned
char, ptrdiff_t, const_pointer,
const_reference > > 
const_reverse_iterator
 MISTのコンテナ内を操作する,逆方向のランダムアクセスイテレータのコンスト版

Public メソッド

bool resize (size_type num1, size_type num2, size_type dmy1=0)
 コンテナ内の要素数を変更する
bool trim (size_type x, size_type y, difference_type w=-1, difference_type h=-1)
 コンテナ内の要素をトリミングする
bool swap (bitmap &a)
 コンテナ内の全ての内容を入れ替える.
void clear ()
 コンテナの要素を空にする
size_type size1 () const
 X軸方向のコンテナに格納されているデータ数を返す
size_type size2 () const
 Y軸方向のコンテナに格納されているデータ数を返す
size_type width () const
 X軸方向のコンテナに格納されているデータ数を返す
size_type height () const
 Y軸方向のコンテナに格納されているデータ数を返す
size_type size () const
 コンテナに格納されているデータ数を返す
template<size_t BBITS, class AAlocator >
const bitmapoperator= (const bitmap< BBITS, AAlocator > &o)
 要素の型が異なるコンテナを代入する
template<class TT , class AAlocator >
const bitmapoperator= (const array2< TT, AAlocator > &o)
 要素の型が異なるコンテナを代入する
const bitmapoperator= (const bitmap &o)
 要素の型が異なるコンテナを代入する
reference operator[] (size_type index)
 index で示される位置の要素の参照を返す
reference operator[] (size_type index) const
 index で示される位置の要素の参照を返す
reference at (size_type i, size_type j, size_type dmy=0)
 ( i, j ) で示される位置の要素の参照を返す
const_reference at (size_type i, size_type j, size_type dmy=0) const
 ( i, j ) で示される位置の要素の const 参照を返す
reference operator() (size_type i, size_type j, size_type dmy=0)
 ( i, j ) で示される位置の要素の参照を返す
const_reference operator() (size_type i, size_type j, size_type dmy=0) const
 ( i, j ) で示される位置の要素の const 参照を返す
 bitmap ()
 ディフォルトコンストラクタ.要素数 0,解像度 1.0 × 1.0 のコンテナを作成する
 bitmap (const Allocator &a)
 アロケータ a のコピーを利用する
 bitmap (size_type num1, size_type num2)
 要素数 num1 × num2 個のコンテナを作成し,デフォルト値で要素を初期化する
 bitmap (size_type num1, size_type num2, const Allocator &a)
 要素数 num1 × num2 個のコンテナを作成し,使用するアロケータを a に設定する
 bitmap (size_type num1, size_type num2, const value_type &val)
 要素数 num1 × num2 個のコンテナを作成し,全要素を val で初期化する
 bitmap (size_type num1, size_type num2, const value_type &val, const Allocator &a)
 要素数 num1 × num2 個のコンテナを作成し,全要素を val で初期化し,使用するアロケータを a に設定する
 bitmap (size_type num1, size_type num2, void *ptr, size_type mem_available)
 ptr が指すメモリ領域に,要素数 num1 × num2 個のコンテナを作成する(ptr が指す先の利用可能なメモリ量は mem_available )
 bitmap (size_type num1, size_type num2, const value_type &val, void *ptr, size_type mem_available)
 ptr が指すメモリ領域に,要素数 num1 × num2 個のコンテナを作成し,全要素を val で初期化する(ptr が指す先の利用可能なメモリ量は mem_available )
template<size_t BBITS, class AAlocator >
 bitmap (const bitmap< BBITS, AAlocator > &o)
 他の bitmap 配列で要素の型が異なるものから同じ要素数の配列を作成する
template<class TT , class AAlocator >
 bitmap (const array2< TT, AAlocator > &o)
 他の array2 配列で要素の型が異なるものから同じ要素数の配列を作成する
 bitmap (const bitmap< BITS, Allocator > &o)
 他の bitmap 配列で同じ要素型のものを用いて初期化する
- Public メソッド inherited from mist::array< unsigned char, Allocator >
bool trim (array &out, size_type index, difference_type num=-1) const
 コンテナ内の要素をトリミングする
bool trim (size_type index, difference_type num=-1)
 コンテナ内の要素をトリミングする
bool swap (array &a)
 コンテナ内の全ての内容を入れ替える.
void fill ()
 コンテナ内のデータ要素をデフォルト値で初期化する
void fill (const value_type &val)
 コンテナ内のデータ要素を指定された値で初期化する
bool empty () const
 コンテナが空かどうかを判定
size_type size3 () const
 Z軸方向のコンテナに格納されているデータ数を返す(常に1を返す)
size_type depth () const
 Z軸方向のコンテナに格納されているデータ数を返す(常に1を返す)
double reso1 (double)
 X軸方向の解像度を返す
double reso1 () const
 X軸方向の解像度を設定する
double reso2 (double)
 Y軸方向の解像度を返す
double reso2 () const
 Y軸方向の解像度を設定する
double reso3 (double)
 Z軸方向の解像度を返す
double reso3 () const
 Z軸方向の解像度を設定する)
size_type byte () const
 コンテナ内の要素が占めるデータ量をバイト単位で返す
bool is_memory_shared () const
 外部で割り当てられたメモリ領域を使用しているかどうか
iterator begin ()
 コンテナの先頭を指すランダムアクセスイテレータを返す
const_iterator begin () const
 コンテナの先頭を指すコンスト型のコンテナを操作するランダムアクセスイテレータを返す
iterator end ()
 コンテナの末尾を指すランダムアクセスイテレータを返す
const_iterator end () const
 コンテナの末尾を指すコンスト型のコンテナを操作するランダムアクセスイテレータを返す
reverse_iterator rbegin ()
 コンテナの末尾を指す逆方向ランダムアクセスイテレータを返す
const_reverse_iterator rbegin () const
 コンテナの末尾を指すコンスト型のコンテナを操作する逆方向ランダムアクセスイテレータを返す
reverse_iterator rend ()
 コンテナの先頭を指す逆方向ランダムアクセスイテレータを返す
const_reverse_iterator rend () const
 コンテナの先頭を指すコンスト型のコンテナを操作する逆方向ランダムアクセスイテレータを返す
size_type max_size () const
 使用しているアロケータが確保可能なメモリの最大値を返す
const arrayoperator= (const array< TT, AAlocator > &o)
 要素の型が異なるコンテナを代入する
const arrayoperator= (const array &o)
 要素の型が異なるコンテナを代入する
 array ()
 ディフォルトコンストラクタ.要素数 0 のコンテナを作成する
 array (const Allocator &a)
 アロケータ a のコピーを利用する
 array (size_type num)
 要素数 num 個のコンテナを作成し,デフォルト値で要素を初期化する
 array (size_type num, const Allocator &a)
 要素数 num 個のコンテナを作成し,アロケータ a のコピーを利用する
 array (size_type num, const value_type &val)
 要素数 num 個のコンテナを作成し,値 val で初期化する
 array (size_type num, const value_type &val, const Allocator &a)
 要素数 num 個のコンテナを作成し,値 val で初期化し,アロケータ a のコピーを利用する
 array (const_iterator s, const_iterator e)
 イテレータ s と e の範囲の値を用いて,配列を初期化する
 array (const_iterator s, const_iterator e, const Allocator &a)
 イテレータ s と e の範囲の値を用いて,配列を初期化し,アロケータ a のコピーを利用する
 array (size_type num, pointer ptr, size_type mem_available)
 ptr が指すメモリ領域に,要素数 num 個のコンテナを作成する(ptr が指す先の利用可能なメモリ量は mem_available )
 array (size_type num, const value_type &val, pointer ptr, size_type mem_available)
 ptr が指すメモリ領域に,要素数 num 個のコンテナを作成し値 val で初期化する(ptr が指す先の利用可能なメモリ量は mem_available )
 array (const array< TT, AAlocator > &o)
 他の array 配列で要素の型が異なるものから同じ要素数の配列を作成する
 array (const array< unsigned char, Allocator > &o)
 他の array 配列で同じ要素型のものを用いて初期化する
 ~array ()
 コンテナが利用しているリソースを全て開放する

Protected 型

typedef array< unsigned char,
Allocator > 
base
 基底クラス

Protected メソッド

pointer paccess (size_type i, size_type j)
 index で示される位置の要素のポインタを返す
const_pointer paccess (size_type i, size_type j) const
 index で示される位置の要素の const ポインタを返す
- Protected メソッド inherited from mist::array< unsigned char, Allocator >
pointer paccess (size_type index)
 index で示される位置の要素のポインタを返す
const_pointer paccess (size_type index) const
 index で示される位置の要素の const ポインタを返す

Static Protected メソッド

static size_type pixel_bytes ()
 1画素を表現するのに用いるバイト数
static size_type num_bytes (size_type width)
 1行あたりに使用するバイト数

Protected 変数

size_type size1_
 X軸方向の要素数
size_type size2_
 Y軸方向の要素数
size_type nbytes_
 1行あたりのバイト数
- Protected 変数 inherited from mist::array< unsigned char, Allocator >
mist_allocator< unsigned char,
Allocator > 
allocator_
 各コンテナで利用するアロケータオブジェクト
unsigned char * data_
 コンテナで扱うデータの先頭を表すポインタ

説明

template<size_t BITS, class Allocator = std::allocator< unsigned char >>
class mist::bitmap< BITS, Allocator >

要素数が可変のビットマップ画像を扱うクラス

2次元画像を扱うための基本クラス (mist/bitmap.h をインクルードする)

注意
MISTで提供するほとんどのアルゴリズムに対して本コンテナを直接利用することはできません.
MISTのアルゴリズムを利用する場合は, mist::convert のコンバート関数を利用して,array2 型に変換してから行ってください.
引数
BITS… ビットマップで利用する1画素あたりのビット数(24ビットと32ビットのみをサポート)
Allocator… MISTコンテナが利用するアロケータ型.省略した場合は,STLのデフォルトアロケータを使用する

コンストラクタとデストラクタ

template<size_t BITS, class Allocator = std::allocator< unsigned char >>
template<size_t BBITS, class AAlocator >
mist::bitmap< BITS, Allocator >::bitmap ( const bitmap< BBITS, AAlocator > &  o)
inline

他の bitmap 配列で要素の型が異なるものから同じ要素数の配列を作成する

注意
異なる要素型間でデータの変換が可能でなくてはならない

参照先 mist::bitmap< BITS, Allocator >::size1(), と mist::bitmap< BITS, Allocator >::size2().

template<size_t BITS, class Allocator = std::allocator< unsigned char >>
template<class TT , class AAlocator >
mist::bitmap< BITS, Allocator >::bitmap ( const array2< TT, AAlocator > &  o)
inline

他の array2 配列で要素の型が異なるものから同じ要素数の配列を作成する

注意
異なる要素型間でデータの変換が可能でなくてはならない

参照先 mist::array2< T, Allocator >::size1(), と mist::array2< T, Allocator >::size2().

関数

template<size_t BITS, class Allocator = std::allocator< unsigned char >>
reference mist::bitmap< BITS, Allocator >::at ( size_type  i,
size_type  j,
size_type  dmy = 0 
)
inline

( i, j ) で示される位置の要素の参照を返す

DEBUG マクロを有効にした(NDEBUGマクロを定義しない)場合は,指定された ( i, j ) が有効な範囲内にあるかをチェックする

引数
[in]i… コンテナ内のX軸方向の位置
[in]j… コンテナ内のY軸方向の位置
[in]dmy… 使用しない
戻り値
指定された要素を示す参照

mist::array< unsigned char, Allocator >を再定義しています。

template<size_t BITS, class Allocator = std::allocator< unsigned char >>
const_reference mist::bitmap< BITS, Allocator >::at ( size_type  i,
size_type  j,
size_type  dmy = 0 
) const
inline

( i, j ) で示される位置の要素の const 参照を返す

DEBUG マクロを有効にした(NDEBUGマクロを定義しない)場合は,指定された ( i, j ) が有効な範囲内にあるかをチェックする

引数
[in]i… コンテナ内のX軸方向の位置
[in]j… コンテナ内のY軸方向の位置
[in]dmy… 使用しない
戻り値
指定された要素を示す const 参照

mist::array< unsigned char, Allocator >を再定義しています。

template<size_t BITS, class Allocator = std::allocator< unsigned char >>
void mist::bitmap< BITS, Allocator >::clear ( )
inline

コンテナの要素を空にする

コンテナに格納されているデータを全て削除し,コンテナを空(要素数0)にする

mist::array< unsigned char, Allocator >を再定義しています。

template<size_t BITS, class Allocator = std::allocator< unsigned char >>
reference mist::bitmap< BITS, Allocator >::operator() ( size_type  i,
size_type  j,
size_type  dmy = 0 
)
inline

( i, j ) で示される位置の要素の参照を返す

DEBUG マクロを有効にした(NDEBUGマクロを定義しない)場合は,指定された ( i, j ) が有効な範囲内にあるかをチェックする

引数
[in]i… コンテナ内のX軸方向の位置
[in]j… コンテナ内のY軸方向の位置
[in]dmy… 使用しない
戻り値
指定された要素を示す参照

mist::array< unsigned char, Allocator >を再定義しています。

template<size_t BITS, class Allocator = std::allocator< unsigned char >>
const_reference mist::bitmap< BITS, Allocator >::operator() ( size_type  i,
size_type  j,
size_type  dmy = 0 
) const
inline

( i, j ) で示される位置の要素の const 参照を返す

DEBUG マクロを有効にした(NDEBUGマクロを定義しない)場合は,指定された ( i, j ) が有効な範囲内にあるかをチェックする

引数
[in]i… コンテナ内のX軸方向の位置
[in]j… コンテナ内のY軸方向の位置
[in]dmy… 使用しない
戻り値
指定された要素を示す const 参照

mist::array< unsigned char, Allocator >を再定義しています。

template<size_t BITS, class Allocator = std::allocator< unsigned char >>
template<size_t BBITS, class AAlocator >
const bitmap& mist::bitmap< BITS, Allocator >::operator= ( const bitmap< BBITS, AAlocator > &  o)
inline

要素の型が異なるコンテナを代入する

コピー元であるコンテナ o と全く同じコンテナを作成する. コピー先(ここでは自分自身)の要素数が o と異なる場合は,自動的にサイズを調整する. コピー元とコピー先でデータ型(array< data > の data)が異なる場合の代入を行う.

引数
[in]o… コピー元のコンテナ
戻り値
自分自身

参照先 mist::bitmap< BITS, Allocator >::size1(), と mist::bitmap< BITS, Allocator >::size2().

template<size_t BITS, class Allocator = std::allocator< unsigned char >>
template<class TT , class AAlocator >
const bitmap& mist::bitmap< BITS, Allocator >::operator= ( const array2< TT, AAlocator > &  o)
inline

要素の型が異なるコンテナを代入する

コピー元であるコンテナ o と全く同じコンテナを作成する. コピー先(ここでは自分自身)の要素数が o と異なる場合は,自動的にサイズを調整する. コピー元とコピー先でデータ型(array< data > の data)が異なる場合の代入を行う.

引数
[in]o… コピー元のコンテナ
戻り値
自分自身

参照先 mist::array2< T, Allocator >::size1(), と mist::array2< T, Allocator >::size2().

template<size_t BITS, class Allocator = std::allocator< unsigned char >>
const bitmap& mist::bitmap< BITS, Allocator >::operator= ( const bitmap< BITS, Allocator > &  o)
inline

要素の型が異なるコンテナを代入する

コピー元であるコンテナ o と全く同じコンテナを作成する. コピー先(ここでは自分自身)の要素数が o と異なる場合は,自動的にサイズを調整する.

引数
[in]o… コピー元のコンテナ
戻り値
自分自身

参照先 mist::bitmap< BITS, Allocator >::size1_, と mist::bitmap< BITS, Allocator >::size2_.

template<size_t BITS, class Allocator = std::allocator< unsigned char >>
reference mist::bitmap< BITS, Allocator >::operator[] ( size_type  index)
inline

index で示される位置の要素の参照を返す

DEBUG マクロを有効にした(NDEBUGマクロを定義しない)場合は,指定された index が有効な範囲内にあるかをチェックする

引数
[in]index… コンテナ内の要素位置
戻り値
指定された要素を示す参照

mist::array< unsigned char, Allocator >を再定義しています。

template<size_t BITS, class Allocator = std::allocator< unsigned char >>
reference mist::bitmap< BITS, Allocator >::operator[] ( size_type  index) const
inline

index で示される位置の要素の参照を返す

DEBUG マクロを有効にした(NDEBUGマクロを定義しない)場合は,指定された index が有効な範囲内にあるかをチェックする

引数
[in]index… コンテナ内の要素位置
戻り値
指定された要素を示す参照

mist::array< unsigned char, Allocator >を再定義しています。

template<size_t BITS, class Allocator = std::allocator< unsigned char >>
pointer mist::bitmap< BITS, Allocator >::paccess ( size_type  i,
size_type  j 
)
inlineprotected

index で示される位置の要素のポインタを返す

引数
[in]i… コンテナ内のX軸方向の位置
[in]j… コンテナ内のY軸方向の位置
戻り値
指定された要素を示すポインタ
template<size_t BITS, class Allocator = std::allocator< unsigned char >>
const_pointer mist::bitmap< BITS, Allocator >::paccess ( size_type  i,
size_type  j 
) const
inlineprotected

index で示される位置の要素の const ポインタを返す

引数
[in]i… コンテナ内のX軸方向の位置
[in]j… コンテナ内のY軸方向の位置
戻り値
指定された要素を示すポインタ
template<size_t BITS, class Allocator = std::allocator< unsigned char >>
bool mist::bitmap< BITS, Allocator >::resize ( size_type  num1,
size_type  num2,
size_type  dmy1 = 0 
)
inline

コンテナ内の要素数を変更する

要素数を num1 × num2 個に変更し,要素数が変更された場合のみ全ての要素を値デフォルト値で初期化する.

注意
必ず要素を初期化するためには,fill 関数を利用してください.
引数
[in]num1… リサイズ後のX軸方向の要素数
[in]num2… リサイズ後のY軸方向の要素数
[in]dmy1… ダミー変数(使用しない)
戻り値
true… 正常にリサイズが終了
false… リサイズ後のメモリを確保できなかった場合

mist::array< unsigned char, Allocator >を再定義しています。

template<size_t BITS, class Allocator = std::allocator< unsigned char >>
bool mist::bitmap< BITS, Allocator >::swap ( bitmap< BITS, Allocator > &  a)
inline

コンテナ内の全ての内容を入れ替える.

入れ替え元のコンテナ a の中身と全て入れ替える

引数
[in]a… 内容を入れ替える対象
戻り値
true… データのスワップに成功
false… データのスワップに失敗

参照先 mist::bitmap< BITS, Allocator >::size1_, と mist::bitmap< BITS, Allocator >::size2_.

template<size_t BITS, class Allocator = std::allocator< unsigned char >>
bool mist::bitmap< BITS, Allocator >::trim ( size_type  x,
size_type  y,
difference_type  w = -1,
difference_type  h = -1 
)
inline

コンテナ内の要素をトリミングする

引数
[in]x… トリミングのX軸方向の開始位置(ゼロから始まるインデックス)
[in]y… トリミングのY軸方向の開始位置(ゼロから始まるインデックス)
[in]w… トリミング後のX軸方向の要素数(-1の場合は,最後までをコピーする)
[in]h… トリミング後のY軸方向の要素数(-1の場合は,最後までをコピーする)
戻り値
true… トリミングに成功した場合(元とサイズが変わらない場合も含む)
false… 不正なトリミングを行おうとした場合

このクラスの説明は次のファイルから生成されました:

Generated on Wed Nov 12 2014 19:44:28 for MIST by doxygen 1.8.1.2