PerspectiveTransform PerspectiveTransform::QuadrilateralToSquare(Point2i a, Point2i b, Point2i c, Point2i d) { PerspectiveTransform p = SquareToQuadrilateral(a, b, c, d); return p.BuildAdjoint(); }
CBC_CommonPerspectiveTransform* CBC_CommonPerspectiveTransform::QuadrilateralToSquare(FX_FLOAT x0, FX_FLOAT y0, FX_FLOAT x1, FX_FLOAT y1, FX_FLOAT x2, FX_FLOAT y2, FX_FLOAT x3, FX_FLOAT y3) { std::unique_ptr<CBC_CommonPerspectiveTransform> temp1( SquareToQuadrilateral(x0, y0, x1, y1, x2, y2, x3, y3)); return temp1->BuildAdjoint(); }
CBC_CommonPerspectiveTransform* CBC_CommonPerspectiveTransform::QuadrilateralToQuadrilateral(FX_FLOAT x0, FX_FLOAT y0, FX_FLOAT x1, FX_FLOAT y1, FX_FLOAT x2, FX_FLOAT y2, FX_FLOAT x3, FX_FLOAT y3, FX_FLOAT x0p, FX_FLOAT y0p, FX_FLOAT x1p, FX_FLOAT y1p, FX_FLOAT x2p, FX_FLOAT y2p, FX_FLOAT x3p, FX_FLOAT y3p) { std::unique_ptr<CBC_CommonPerspectiveTransform> qToS( QuadrilateralToSquare(x0, y0, x1, y1, x2, y2, x3, y3)); std::unique_ptr<CBC_CommonPerspectiveTransform> sToQ( SquareToQuadrilateral(x0p, y0p, x1p, y1p, x2p, y2p, x3p, y3p)); return sToQ->Times(*(qToS.get())); }