public Edge(Vertex v1, Vertex v2, bool perspectiveCorrection) { this.perspectiveCorrection = perspectiveCorrection; Ymax = (int)Math.Round(v2.ScreenPosition.Y); Ymin = (int)Math.Round(v1.ScreenPosition.Y); X = (int)Math.Round(v1.ScreenPosition.X); D = (float)(v2.ScreenPosition.X - v1.ScreenPosition.X) / (v2.ScreenPosition.Y - v1.ScreenPosition.Y); Next = null; qDiff = 1f / (Ymax - Ymin); q = 0; Z = v1.ScreenPosition.Z; zDiff = Interpolation.Diff(v1.ScreenPosition.Z, v2.ScreenPosition.Z, qDiff); W = v1.ClipW; wDiff = Interpolation.Diff(v1.ClipW, v2.ClipW, qDiff); w1 = v1.ClipW; w2 = v2.ClipW; Normal = v1.Normal; Tangent = v1.Tangent; Binormal = v1.Binormal; Position = v1.WorldPosition; TextureCoords = v1.TextureCoords; normal1 = v1.Normal; normal2 = v2.Normal; tangent1 = v1.Tangent; tangent2 = v2.Tangent; binormal1 = v1.Binormal; binormal2 = v2.Binormal; position1 = v1.WorldPosition; position2 = v2.WorldPosition; texCoords1 = v1.TextureCoords; texCoords2 = v2.TextureCoords; }