public static AppendX ( |
||
original | ||
addition | ||
return |
/// <summary> /// 頂点座標の一括更新 /// </summary> /// <param name="isDirty"></param> private void UpdatePositions(bool isDirty = true) { UpdatePosition(0, position_); UpdatePosition(1, Utility.AppendY(position_, size_)); UpdatePosition(2, Utility.AppendXY(position_, size_)); UpdatePosition(3, Utility.AppendX(position_, size_)); if (isDirty) { SetVerticesDirty(); } }
/// <summary> /// 頂点変換 /// </summary> /// <param name="leftTop"></param> /// <param name="rightTop"></param> /// <param name="leftBottom"></param> /// <param name="rightBottom"></param> public void TransformVertices(Vector2 leftTop, Vector2 rightTop, Vector2 leftBottom, Vector2 rightBottom) { // テクスチャのひずみを減らすために4ポリゴンで Vector3 v0 = Utility.AppendXY(position_, leftBottom); Vector3 v1 = Utility.AppendXY(Utility.AppendY(position_, size_), leftTop); Vector3 v2 = Utility.AppendXY(Utility.AppendXY(position_, size_), rightTop); Vector3 v3 = Utility.AppendXY(Utility.AppendX(position_, size_), rightBottom); Vector3 v4 = new Vector3((v1.x + v2.x) * 0.5f, (v1.y + v2.y) * 0.5f, v1.z); Vector3 v5 = new Vector3((v1.x + v0.x) * 0.5f, (v1.y + v0.y) * 0.5f, v1.z); Vector3 v7 = new Vector3((v2.x + v3.x) * 0.5f, (v2.y + v3.y) * 0.5f, v1.z); Vector3 v8 = new Vector3((v0.x + v3.x) * 0.5f, (v0.y + v3.y) * 0.5f, v1.z); Vector3 v6 = new Vector3((v4.x + v8.x) * 0.5f, (v5.y + v7.y) * 0.5f, v1.z); // v1 v4 v2 // v5 v6 v7 // v0 v8 v3 if (vertices_.Count == 4) { for (int i = 0; i < 3 * 4; ++i) { vertices_.Add(UIVertex.simpleVert); } } // 左下 UpdatePosition(0, v0); UpdatePosition(1, v5); UpdatePosition(2, v6); UpdatePosition(3, v8); // 左上 UpdatePosition(4, v5); UpdatePosition(5, v1); UpdatePosition(6, v4); UpdatePosition(7, v6); // 右上 UpdatePosition(8, v6); UpdatePosition(9, v4); UpdatePosition(10, v2); UpdatePosition(11, v7); // 右下 UpdatePosition(12, v8); UpdatePosition(13, v6); UpdatePosition(14, v7); UpdatePosition(15, v3); UpdateTextureCoords(); //UpdatePosition( 0, Utility.AppendXY( position_, leftBottom ) ); //UpdatePosition( 1, Utility.AppendXY( Utility.AppendY( position_, size_ ), leftTop ) ); //UpdatePosition( 2, Utility.AppendXY( Utility.AppendXY( position_, size_ ), rightTop ) ); //UpdatePosition( 3, Utility.AppendXY( Utility.AppendX( position_, size_ ), rightBottom ) ); //SetVerticesDirty(); }