Ejemplo n.º 1
0
        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;
        }