クラス DrawHelpers

2D/3Dの基本的な描画関数を提供します。このクラスは主にデバッグシェーダーを使った ImmediateMode のオブジェクトです。 パフォーマンスが良くないため、デバッグ以外の用途で DrawHelpers を使用することは推奨しません。 [詳細]

すべてのメンバ一覧

構成

class  ArrowParams
 DrawArrow に渡される矢印のパラメータ。 [詳細]
struct  Vertex
 DrawHelpers で使用される頂点 (V4F_C4F)。 [詳細]

Public メソッド

 DrawHelpers (GraphicsContextAlpha gl, uint max_vertices)
void Dispose ()
 Dispose の実装。
void ImmBegin (DrawMode mode, uint max_vertices_intended)
 新しいイミーディエイトプリミティブを開始します。
void ImmVertex (Vertex v)
 頂点を現在のプリミティブに追加します。
void ImmVertex (Vector4 pos)
 直近のSetColor() で設定された色を使い、現在のプリミティブに頂点を追加します。
void ImmVertex (Vector2 pos)
 直近のSetColor() で設定された色を使い、現在のプリミティブに頂点を追加します。 (z,w) は (0,1)でセットします。
void ImmEnd ()
 現在のプリミティブを終了します。この関数は、実際の描画呼び出しをトリガー(引き起こし)します。
void ShaderPush ()
 ShaderPush() は現在のMVP行列を読み、現在のシェーダーをセットします。 DrawHelpers ではネストで処理できます。シェーダーのパラメータは内部的に更新されます。
void ShaderPop ()
 シェーダーをポップします。 ShaderPush()の回数は、ShaderPush()の回数に一致しなければなりません。
void SetColor (Vector4 value)
 次の ImmVertex の呼び出しで使われる色をセットします。
void DrawBounds2Fill (Bounds2 bounds)
 四角形を描画します。
void DrawBounds2 (Bounds2 bounds)
 線で四角形を描画します。
void DrawConvexPoly2 (ConvexPoly2 convex_poly)
 凸ポリゴンを描画します。
void DrawDisk (Vector2 center, float radius, uint n)
 塗りつぶした円盤を描画します。
void DrawCircle (Vector2 center, float radius, uint n)
 塗りつぶした円を描画します。
void DrawCoordinateSystem2D (Matrix3 mat, ArrowParams ap=null)
 矢印を使用し、変換行列であらわされる座標系を描画します。 xのベクトルは赤色の矢印で表され、yのベクトルは、緑の矢印で表されます。
void DrawCoordinateSystem2D ()
 x軸とy軸に矢印を描画します。xの矢印は赤 (1,0,0)であり、yの矢印は緑 (0,1,0)です。
void DrawArrow (Vector2 start_point, Vector2 end_point, ArrowParams ap)
 2Dの矢印を描画します。 いくつかの矢印を描画する必要があり、かつ、描画呼び出しの数を制限したい場合には、この関数は ImmBegin()/ ImmEnd()でラップすることができます。 各矢印は、多くとも9頂点を消費します。
void DrawLineSegment (Vector2 A, Vector2 B)
 ひとつの線分を描画します。処理が重いので、多くの線を描画する場合、この関数は使用しないでください。
void DrawInfiniteLine (Vector2 A, Vector2 v)
 単一の線分を描画します。この関数は処理が重いため、多くの線を描画する場合、この関数の使用は避けてください。
void DrawRulers (Bounds2 bounds, float step_x, float step_y)
 指定された矩形内に、垂直および水平の線を等間隔で描画します。 step_x, step_y を小さくすると、より多くのラインプリミティブが生成されるため、イミーディエイト描画モードの頂点バッファが容易にあふれてしまします。そのため、引数の指定には注意してください。
void DrawAxis (Bounds2 clipping_bounds, float thickness)
 厚みのある軸線(x = 0 と y= 0 ライン)を描画します。
void DrawDefaultGrid (Bounds2 clipping_bounds, Vector2 step, Vector4 rulers_color, Vector4 axis_color)
 この関数は、引数'clipping_bounds'の内部に、'step'の値で規則的に垂直・水平の線を描画します。 また、厚みのある2つの軸線を描画します。描画されるすべての線が'clipping_bounds'でクリップされます。 ルーラーを描画するとき、ブレンドモードは変更されません。軸線を描画するとき、ブレンドはDisableになっています。
void DrawDefaultGrid (Bounds2 clipping_bounds, float step)
 デフォルトの色/ブレンドを使ったDrawDefaultGrid()。

プロパティ

bool Disposed [get]
 このオブジェクトが破棄されていれば、trueを返します。

説明

2D/3Dの基本的な描画関数を提供します。このクラスは主にデバッグシェーダーを使った ImmediateMode のオブジェクトです。 パフォーマンスが良くないため、デバッグ以外の用途で DrawHelpers を使用することは推奨しません。


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

DrawHelpers ( GraphicsContextAlpha  gl,
uint  max_vertices 
)
引数:
glコアグラフィックスのコンテキスト。
max_verticesこの DrawHelpers オブジェクトを使って、1フレームで描画する頂点の最大数。

メソッド

void DrawArrow ( Vector2  start_point,
Vector2  end_point,
ArrowParams  ap 
)

2Dの矢印を描画します。 いくつかの矢印を描画する必要があり、かつ、描画呼び出しの数を制限したい場合には、この関数は ImmBegin()/ ImmEnd()でラップすることができます。 各矢印は、多くとも9頂点を消費します。

引数:
start_point矢印の開始位置。
end_point矢印の先端。
ap矢印の幾何情報。
void DrawCircle ( Vector2  center,
float  radius,
uint  n 
)

塗りつぶした円を描画します。

引数:
center中心。
radius半径。
n分割数。
void DrawDefaultGrid ( Bounds2  clipping_bounds,
Vector2  step,
Vector4  rulers_color,
Vector4  axis_color 
)

この関数は、引数'clipping_bounds'の内部に、'step'の値で規則的に垂直・水平の線を描画します。 また、厚みのある2つの軸線を描画します。描画されるすべての線が'clipping_bounds'でクリップされます。 ルーラーを描画するとき、ブレンドモードは変更されません。軸線を描画するとき、ブレンドはDisableになっています。

引数:
clipping_boundsクリッピングの矩形。
stepルーラーの間隔。
rulers_colorルーラーの色。
axis_color軸線の色。
void DrawDisk ( Vector2  center,
float  radius,
uint  n 
)

塗りつぶした円盤を描画します。

引数:
center中心。
radius半径。
n分割数。