10#include <bnb/utils/defs.hpp>
14namespace bnb {
namespace interfaces {
28 static std::shared_ptr<transformation>
make_data(
const std::vector<float> & mat);
31 static std::shared_ptr<transformation>
make_rot(rotation rot);
34 static std::shared_ptr<transformation>
make_affine(
float scale_x,
float scale_y,
float t_x,
float t_y, rotation rot,
bool flip_x,
bool flip_y);
46 virtual std::shared_ptr<transformation>
chain_right(
const std::shared_ptr<transformation> & t)
const = 0;
53 virtual bool equals(
const std::shared_ptr<transformation> & t)
const = 0;
59 virtual std::shared_ptr<transformation>
inverse_j()
const = 0;
62 virtual std::shared_ptr<transformation>
clone_j()
const = 0;