GraphicLibrary  0.5.0
tadah_fussy::gl::draw 名前空間

描画機能用名前空間 [詳解]

名前空間

 paint
 ペイント用関数
 

クラス

struct  DrawFuncIF
 描画用関数オブジェクト I/F [詳解]
 
struct  DrawFuncIF_1p
 描画用関数オブジェクト 一座標指定 I/F [詳解]
 
struct  DrawFuncIF_2p
 描画用関数オブジェクト 二座標指定 I/F [詳解]
 
struct  DrawFuncIF_3p
 描画用関数オブジェクト 三座標指定 I/F [詳解]
 
struct  DrawFuncIF_Multiple
 描画用関数オブジェクト 任意の数の座標指定 I/F [詳解]
 
class  DrawFuncAdapter_1p
 描画用関数オブジェクト 一座標指定 アダプタ [詳解]
 
class  DrawFuncAdapter_2p
 描画用関数オブジェクト 二座標指定 アダプタ [詳解]
 
class  DrawFuncAdapter_3p
 描画用関数オブジェクト 三座標指定 アダプタ [詳解]
 
class  DrawFuncAdapter_Multiple
 描画用関数オブジェクト 任意の数の座標指定 アダプタ [詳解]
 
class  DrawLine
 描画用関数オブジェクト 線分描画 [詳解]
 
class  DrawBox
 描画用関数オブジェクト 矩形描画 [詳解]
 
class  DrawCross
 描画用関数オブジェクト 十字描画 [詳解]
 
class  DrawEllipse
 描画用関数オブジェクト 楕円描画 [詳解]
 
class  DrawCircle
 描画用関数オブジェクト 真円描画 [詳解]
 
class  DrawCircle_2p
 描画用関数オブジェクト 真円描画 [詳解]
 
class  DrawTriangle
 描画用関数オブジェクト 三角形描画 [詳解]
 
class  DrawCircle_3p
 描画用関数オブジェクト 真円描画 [詳解]
 
class  DrawCircleWithLine
 描画用関数オブジェクト 線分・真円の描画 [詳解]
 
class  DrawCircleWithTriangle
 描画用関数オブジェクト 三角形・真円描画 [詳解]
 
class  DrawArc
 描画用関数オブジェクト 円弧描画 [詳解]
 
class  DrawMultipleLine
 描画用関数オブジェクト 複数の直線描画 [詳解]
 
class  DrawPolygon
 描画用関数オブジェクト ポリゴン描画 [詳解]
 
struct  DrawCatmullRomSpline
 描画用関数オブジェクト Catmull-Rom 曲線描画 [詳解]
 
class  DrawBezierSpline
 描画用関数オブジェクト ベジェ曲線描画 [詳解]
 
class  DrawUniformBSpline
 描画用関数オブジェクト 一様スプライン曲線描画 [詳解]
 
class  DrawOpenUniformBSpline
 描画用関数オブジェクト 開一様スプライン曲線描画 [詳解]
 
class  DrawCircleBrush
 描画用関数オブジェクト 円形ブラシ形状の描画 [詳解]
 
class  DrawEllipsePen
 描画用関数オブジェクト 楕円ペン形状の描画 [詳解]
 
struct  RectangleOperator
 矩形領域への操作用関数オブジェクト [詳解]
 
class  RectangleCopy
 矩形領域のコピー [詳解]
 
struct  RectangleFill
 矩形領域の塗りつぶし [詳解]
 

関数

void Put (const canvas::DrawingArea_IF &pattern, canvas::DrawingArea_IF &draw, pen::GPixelDraw &pixelDraw, Coord< int > s, bool reverseX, bool reverseY, bool swapXY)
 パターンの描画 [詳解]
 
void ResizePut (const canvas::DrawingArea_IF &pattern, canvas::DrawingArea_IF &draw, pen::GPixelDraw &pixelDraw, Coord< int > s, Coord< int > e, bool reverseX, bool reverseY, bool swapXY, const interpolation::Base &ipF)
 パターンの拡大・縮小描画 [詳解]
 
void TransPut (const canvas::DrawingArea_IF &pattern, canvas::DrawingArea_IF &draw, pen::GPixelDraw &pixelDraw, Coord< int > lu, Coord< int > ru, Coord< int > rd, Coord< int > ld, const interpolation::Base &ipF, bool priorFirst)
 パターンの自由変形 [詳解]
 
void RotPut (const canvas::DrawingArea_IF &pattern, canvas::DrawingArea_IF &draw, pen::GPixelDraw &pixelDraw, Coord< int > o, double r, const interpolation::Base &ipF, double scale=1)
 パターンの回転描画 [詳解]
 

詳解

描画機能用名前空間

関数詳解

◆ Put()

void tadah_fussy::gl::draw::Put ( const canvas::DrawingArea_IF pattern,
canvas::DrawingArea_IF draw,
pen::GPixelDraw pixelDraw,
Coord< int >  s,
bool  reverseX,
bool  reverseY,
bool  swapXY 
)

パターンの描画

reverseX, reverseY, swapXY はパターンの向きを変えたり反転させる場合に利用できる。 全て false なら通常の描画になる。その他、よく利用する例は

Put( pattern, draw, pixelDraw, s, true, false, false ); // 水平方向の鏡像
Put( pattern, draw, pixelDraw, s, false, true, false ); // 垂直方向の鏡像
Put( pattern, draw, pixelDraw, s, true, true, false ); // 180度回転
Put( pattern, draw, pixelDraw, s, true, false, true ); // 反時計回りに90度回転
Put( pattern, draw, pixelDraw, s, false, true, true ); // 時計回りに90度回転
void Put(const canvas::DrawingArea_IF &pattern, canvas::DrawingArea_IF &draw, pen::GPixelDraw &pixelDraw, Coord< int > s, bool reverseX, bool reverseY, bool swapXY)
パターンの描画

など。swapXY は、描画する座標を単純に ( x, y ) から ( y, x ) にするだけなので、これだけでは回転処理にならないことに注意。 また、swapXY が true の場合、reverseX は垂直方向、reverseY は水平方向に適用される。

パターン pattern、描画領域 draw のいずれかが未定義の場合は assert を実行する。

パターン pattern と描画領域 draw が等しい場合、処理は行わないことに注意。

引数
pattern描画するパターン
drawパターンを描画する領域
pixelDrawピクセル描画用関数オブジェクト
sパターンの描画開始位置
reverseXX 方向の描画を反転させるか
reverseYY 方向の描画を反転させるか
swapXYX,Y の描画を反転させるか

◆ ResizePut()

void tadah_fussy::gl::draw::ResizePut ( const canvas::DrawingArea_IF pattern,
canvas::DrawingArea_IF draw,
pen::GPixelDraw pixelDraw,
Coord< int >  s,
Coord< int >  e,
bool  reverseX,
bool  reverseY,
bool  swapXY,
const interpolation::Base ipF 
)

パターンの拡大・縮小描画

reverseX, reverseY, swapXY はパターンの向きを変えたり反転させる場合に利用できる。 全て false なら通常の描画になる。その他、よく利用する例は

ResizePut( pattern, draw, pixelDraw, s, e, true, false, false, ipF ); // 水平方向の鏡像
ResizePut( pattern, draw, pixelDraw, s, e, false, true, false, ipF ); // 垂直方向の鏡像
ResizePut( pattern, draw, pixelDraw, s, e, true, true, false, ipF ); // 180度回転
ResizePut( pattern, draw, pixelDraw, s, e, true, false, true, ipF ); // 反時計回りに90度回転
ResizePut( pattern, draw, pixelDraw, s, e, false, true, true, ipF ); // 時計回りに90度回転
void ResizePut(const canvas::DrawingArea_IF &pattern, canvas::DrawingArea_IF &draw, pen::GPixelDraw &pixelDraw, Coord< int > s, Coord< int > e, bool reverseX, bool reverseY, bool swapXY, const interpolation::Base &ipF)
パターンの拡大・縮小描画

など。swapXY は、描画する座標を単純に ( x, y ) から ( y, x ) にするだけなので、これだけでは回転処理にならないことに注意。 また、swapXY が true の場合、reverseX は垂直方向、reverseY は水平方向に適用される。

ipF はサンプル補間用の関数オブジェクト GInterpolation_IF を指定するために利用する。例えば

GInterpolation_NN nn;
ResizePut( pattern, draw, pixelDraw, s, e, false, false, false, nn ); // NN 法による補間

によって「最近傍法 (Nearest Neighbour)」によるサンプル補間が行われる。

パターン pattern、描画領域 draw のいずれかが未定義の場合は assert を実行する。

パターン pattern と描画領域 draw が等しい場合、処理は行わないことに注意。

引数
pattern描画するパターン
drawパターンを描画する領域
pixelDrawピクセル描画用関数オブジェクト
s,eパターンの描画開始・終了位置
reverseXX 方向の描画を反転させるか
reverseYY 方向の描画を反転させるか
swapXYX,Y の描画を反転させるか
ipFサンプル補間用関数オブジェクト

◆ RotPut()

void tadah_fussy::gl::draw::RotPut ( const canvas::DrawingArea_IF pattern,
canvas::DrawingArea_IF draw,
pen::GPixelDraw pixelDraw,
Coord< int >  o,
double  r,
const interpolation::Base ipF,
double  scale = 1 
)

パターンの回転描画

ipF はサンプル補間用の関数オブジェクト GInterpolation_IF を指定するために利用する。例えば

GInterpolation_NN nn;
RotPut( pattern, draw, pixelDraw, o, r, nn ); // NN 法による補間
void RotPut(const canvas::DrawingArea_IF &pattern, canvas::DrawingArea_IF &draw, pen::GPixelDraw &pixelDraw, Coord< int > o, double r, const interpolation::Base &ipF, double scale=1)
パターンの回転描画

によって「最近傍法 (Nearest Neighbour)」によるサンプル補間が行われる。

パターン pattern、描画領域 draw のいずれかが未定義の場合は assert を実行する。

パターン pattern と描画領域 draw が等しい場合、処理は行わないことに注意。

引数
pattern描画するパターン
draw描画領域
pixelDrawピクセル描画用関数オブジェクト
oパターンの中心位置
r回転角度
ipFサンプル補間用関数オブジェクト
scale拡大・縮小率

◆ TransPut()

void tadah_fussy::gl::draw::TransPut ( const canvas::DrawingArea_IF pattern,
canvas::DrawingArea_IF draw,
pen::GPixelDraw pixelDraw,
Coord< int >  lu,
Coord< int >  ru,
Coord< int >  rd,
Coord< int >  ld,
const interpolation::Base ipF,
bool  priorFirst 
)

パターンの自由変形

処理の性格上、一つのピクセルを複数回描画する場合がある。priorFirst を true にすると最初に描画されたときの色が優先される。 描画はパターンの上側から順に行われるので、重なった部分は priorFirst が true なら先に描画される上側の方が、false なら 後で描画される下側の方が残ることになる。 priorFirst を true にした場合、内部で座標をキャッシュするため処理速度は落ちることになるが、点描画のコストが高い場合は 重複した描画がなくなる分、逆に早く描画できるようになる。

ipF はサンプル補間用の関数オブジェクト GInterpolation_IF を指定するために利用する。例えば

GInterpolation_NN nn;
TransPut( pattern, draw, pixelDraw, lu, ru, rd, ld, nn, false ); // NN 法による補間
void TransPut(const canvas::DrawingArea_IF &pattern, canvas::DrawingArea_IF &draw, pen::GPixelDraw &pixelDraw, Coord< int > lu, Coord< int > ru, Coord< int > rd, Coord< int > ld, const interpolation::Base &ipF, bool priorFirst)
パターンの自由変形

によって「最近傍法 (Nearest Neighbour)」によるサンプル補間が行われる。

パターン pattern、描画領域 draw のいずれかが未定義の場合は assert を実行する。

パターン pattern と描画領域 draw が等しい場合、処理は行わないことに注意。

引数
pattern描画するパターン
draw描画領域
pixelDrawピクセル描画用関数オブジェクト
lu,ru,rd,ld変形後の各頂点(パターンの左上・右上・右下・左下にそれぞれ対応)
ipFサンプル補間用関数オブジェクト
priorFirst先に描画されたときの色を優先するなら true