Shapes
C# + OpenTK を使用して編集可能な 2D をレンダリングするコードを 1 年前に書きました。それぞれshape
に独自の頂点があり、編集するとShape
頂点値が直接変更されます。
すべてを反復し、頂点情報を大きな配列に結合し、以下のスニペットを使用して一度に描画するCollectVertices()
display_callback_func に があります。Shapes
GL.EnableClientState(ArrayCap.VertexArray);
GL.EnableClientState(ArrayCap.ColorArray);
// draw fills (triangles)
GL.ColorPointer<byte>(3, ColorPointerType.UnsignedByte, 0, fillColor);
GL.VertexPointer<double>(2, VertexPointerType.Double, 0, fillArray);
GL.DrawArrays(BeginMode.Triangles, 0, fillArray.Length / 2);
// draw lines
GL.ColorPointer<byte>(3, ColorPointerType.UnsignedByte, 0, lineColor);
GL.VertexPointer<double>(2, VertexPointerType.Double, 0, lineArray);
GL.DrawArrays(BeginMode.Lines, 0, lineArray.Length / 2);
GL.DisableClientState(ArrayCap.ColorArray);
GL.DisableClientState(ArrayCap.VertexArray);
struct Transform
1年後の今日、私はオブジェクトに新しいものを紹介したいと思いShape
ます. と が含まれVector2 Center
ますMatrix Orientation
。現在編集するShape
と、代わりに値が変更されTransform
ます (ただし、スケーリングは論理的にそうあるべきであるため、頂点データで引き続き行われます)。
上記のスニペットに最小限の変更を加えて、変換マトリックスを含めるためのきちんとした方法は何ですか?