Example #1
0
        public FVec4 Project(FMat4 projectionMatrix, FMat4 viewMatrix, Fix64 viewX, Fix64 viewY, Fix64 viewWidth, Fix64 viewHeight)
        {
            FVec4 result = this;

            result = result.Multiply(viewMatrix);
            result = result.Multiply(projectionMatrix);

            Fix64 wDelta = Fix64.One / result.w;

            result.x *= wDelta;
            result.y *= wDelta;
            result.z *= wDelta;

            result.x = result.x * Fix64.Half + Fix64.Half;
            result.y = result.y * Fix64.Half + Fix64.Half;
            result.z = result.z * Fix64.Half + Fix64.Half;

            result.x = result.x * viewWidth + viewX;
            result.y = result.y * viewHeight + viewY;

            return(result);
        }