KJB
|
#include <m2_spline.h>
Public Types | |
enum | Point_type { CURVE_POINT = 0, HANDLE_2_POINT = 1, HANDLE_1_POINT = 2 } |
Public Member Functions | |
Polybezier_curve (int dimension) | |
Polybezier_curve (const std::vector< kjb::Vector > &control_points) | |
Polybezier_curve * | clone () const |
Processes an Option from program command-line arguments. More... | |
size_t | size () const |
size_t | dimension () const |
void | swap (Polybezier_curve &other) |
kjb::Vector | evaluate (double u) const |
kjb::Vector | gradient (double u) const |
void | insert_curve_point (int index, const kjb::Vector &curve_pt) |
void | insert (int index, const kjb::Vector &curve_pt, const kjb::Vector &handle_pt_1, const kjb::Vector &handle_pt_2) |
void | set_curve_point (int index, const kjb::Vector &pt) |
void | set_handle_point_1 (int index, const kjb::Vector &pt) |
void | set_handle_point_2 (int index, const kjb::Vector &pt) |
void | delete_curve_point (int index) |
void | reverse () |
void | symmetrize_handle_1 (int index) |
void | symmetrize_handle_2 (int index) |
kjb::Vector & | get_curve_point (int index) |
const kjb::Vector & | get_curve_point (int index) const |
kjb::Vector & | get_handle_point_1 (int index) |
const kjb::Vector & | get_handle_point_1 (int index) const |
kjb::Vector & | get_handle_point_2 (int index) |
const kjb::Vector & | get_handle_point_2 (int index) const |
kjb::Vector & | get_control_point (int index) |
const kjb::Vector & | get_control_point (int index) const |
virtual Nurbs_curve | to_nurbs () const |
Convert to a mathematically equivalent nurbs curve. More... | |
Public Member Functions inherited from kjb::Cloneable | |
virtual | ~Cloneable () |
Deletes this Cloneable. More... | |
Static Public Member Functions | |
static void | decode_control_point (size_t i, size_t &curve_i, Point_type &point_type) |
static size_t | encode_control_point (size_t curve_i, Point_type point_type) |
Friends | |
bool | operator== (const Polybezier_curve &op1, const Polybezier_curve &op2) |
Sequence of cubic bezier curves of arbitrary dimension, connected end-to-end. In 2D, this is equivalent to paths in common graphics packages, and the API is designed to mimick this representation, using "handles" and "curve points" instead of the more generic "control points".
kjb::Polybezier_curve::Polybezier_curve | ( | int | dimension | ) |
kjb::Polybezier_curve::Polybezier_curve | ( | const std::vector< kjb::Vector > & | control_points | ) |
|
virtual |
Processes an Option from program command-line arguments.
Implements kjb::Cloneable.
|
static |
void kjb::Polybezier_curve::delete_curve_point | ( | int | index | ) |
size_t kjb::Polybezier_curve::dimension | ( | ) | const |
|
static |
|
virtual |
Implements kjb::Spline_curve.
Vector & kjb::Polybezier_curve::get_control_point | ( | int | index | ) |
const Vector & kjb::Polybezier_curve::get_control_point | ( | int | index | ) | const |
Vector & kjb::Polybezier_curve::get_curve_point | ( | int | index | ) |
const Vector & kjb::Polybezier_curve::get_curve_point | ( | int | index | ) | const |
Vector & kjb::Polybezier_curve::get_handle_point_1 | ( | int | index | ) |
const Vector & kjb::Polybezier_curve::get_handle_point_1 | ( | int | index | ) | const |
Vector & kjb::Polybezier_curve::get_handle_point_2 | ( | int | index | ) |
const Vector & kjb::Polybezier_curve::get_handle_point_2 | ( | int | index | ) | const |
|
virtual |
Implements kjb::Spline_curve.
void kjb::Polybezier_curve::insert | ( | int | index, |
const kjb::Vector & | curve_pt, | ||
const kjb::Vector & | handle_pt_1, | ||
const kjb::Vector & | handle_pt_2 | ||
) |
void kjb::Polybezier_curve::insert_curve_point | ( | int | index, |
const kjb::Vector & | curve_pt | ||
) |
void kjb::Polybezier_curve::reverse | ( | ) |
void kjb::Polybezier_curve::set_curve_point | ( | int | index, |
const kjb::Vector & | pt | ||
) |
void kjb::Polybezier_curve::set_handle_point_1 | ( | int | index, |
const kjb::Vector & | pt | ||
) |
void kjb::Polybezier_curve::set_handle_point_2 | ( | int | index, |
const kjb::Vector & | pt | ||
) |
size_t kjb::Polybezier_curve::size | ( | ) | const |
void kjb::Polybezier_curve::swap | ( | Polybezier_curve & | other | ) |
void kjb::Polybezier_curve::symmetrize_handle_1 | ( | int | index | ) |
set handle point based on location of 2nd handle point so curve is infinituely differentiable at the curve point
Set handle 1 to make symmetric to handle 2
index | the index of the curve point corresponding to the handle to be set |
void kjb::Polybezier_curve::symmetrize_handle_2 | ( | int | index | ) |
Set handle 2 to make symmetric to handle 1
index | the index of the curve point corresponding to the handle to be set |
|
virtual |
Convert to a mathematically equivalent nurbs curve.
|
friend |