+ std::vector<Vec2> Evaluate(const std::vector<BReal> & u) const;
+
+ std::vector<BReal> SolveXParam(const BReal & x) const;
+ std::vector<BReal> SolveYParam(const BReal & x) const;
+
+ // Get points with same X
+ inline std::vector<Vec2> SolveX(const BReal & x) const
+ {
+ return Evaluate(SolveXParam(x));
+ }
+ // Get points with same Y
+ inline std::vector<Vec2> SolveY(const BReal & y) const
+ {
+ return Evaluate(SolveYParam(y));
+ }
+
+ bool operator==(const Bezier & equ) const
+ {
+ return (x0 == equ.x0 && y0 == equ.y0
+ && x1 == equ.x1 && y1 == equ.y1
+ && x2 == equ.x2 && y2 == equ.y2
+ && x3 == equ.x3 && y3 == equ.y3);
+ }
+ bool operator!=(const Bezier & equ) const {return !this->operator==(equ);}