Represent a collinear line segment, a collinear line segment is inherited from an Line_segment.
More...
|
| Collinear_segment_chain (const std::vector< Line_segment > &segments) |
| Constructs a new Collinear_segment_chain. More...
|
|
| Collinear_segment_chain (const Collinear_segment_chain &csc) |
| Copy Constructor constructrs a new Collinear_segment_chain from an existing Collinear_segment_chain. More...
|
|
Collinear_segment_chain & | operator= (const Collinear_segment_chain &csc) |
| Assignment operator Assigns a Collinear_segment_chain to another Collinear_segment_chain. More...
|
|
| ~Collinear_segment_chain () |
| Nothing. More...
|
|
const std::vector< Line_segment > & | get_segments () const |
| Returns underlying vector of Line_segment's. More...
|
|
void | read (std::istream &in) |
| Reads this Collinear_segment_chain from an input stream. More...
|
|
void | write (std::ostream &out) const |
| Writes this Collinear_segment_chain to an output stream. More...
|
|
| Line_segment () |
| Constructor without initializations. More...
|
|
| Line_segment (double icentre_x, double icentre_y, double iorientation, double ilength) |
| Constructs a new Line_segment from centre, orientation, length. More...
|
|
| Line_segment (const Vector &start, const Vector &end) |
| Constructs a new Line_segment from a starting and ending point. More...
|
|
| Line_segment (std::istream &in) |
| Constructs this line segment by reading from an input stream. More...
|
|
| Line_segment (const Line_segment &ls) |
| Copy constructor. More...
|
|
Line_segment & | operator= (const Line_segment &ls) |
| Assignment operator. More...
|
|
bool | operator== (const Line_segment &ls) const |
|
bool | operator< (const Line_segment &ls) const |
|
void | init_from_slope_and_intercept (double x_start, double x_end, double islope, double iintercept) |
| Initialize from x_start, x_end, slope, y_axis intercept. More...
|
|
void | init_vertical_segment (double y_start, double y_end, double x) |
| Initialize a vertical Line_segment from y_start, y_end, x coord. More...
|
|
void | init_from_end_points (double x_1, double y_1, double x_2, double y_2) |
| Initialize a new Line_segment from position of its end points. More...
|
|
void | init_from_centre_and_orientation (double icentre_x, double icentre_y, double iorientation, double ilength) |
|
double | get_centre_x () const |
| Returns the x-coordinate of the mid-point. More...
|
|
double | get_centre_y () const |
| Returns the y-coordinate of the mid-point. More...
|
|
bool | point_outside_segment (const Vector &point) const |
| Check whether point is inside the ending points of this segment Note point is collinear with this line segment. More...
|
|
const kjb::Vector & | get_centre () const |
| Returns the mid-point. More...
|
|
double | get_start_x () const |
| Returns the x-coordinate of the leftmost point of the segment. More...
|
|
double | get_start_y () const |
| Returns the y-coordinate of the leftmost point of the segment. More...
|
|
const kjb::Vector & | get_start () const |
| Returns the leftmost point of the segment. More...
|
|
double | get_end_x () const |
| Returns the x-coordinate of the rightmost point of the segment. More...
|
|
double | get_end_y () const |
| Returns the y-coordinate of the rightmost point of the segment. More...
|
|
const kjb::Vector & | get_end () const |
| Returns the rightmost point of the segment. More...
|
|
double | get_slope () const |
| Returns the slope of the line segment. More...
|
|
double | get_y_intercept () const |
| Returns the y-intercept of the line segment. More...
|
|
double | get_x_intercept () const |
| Returns the x-intercept of the line segment. More...
|
|
const Vector & | get_line_params () const |
|
const Line & | get_line () const |
|
double | get_orientation () const |
| Returns the orientation. More...
|
|
double | get_length () const |
| Returns the length. More...
|
|
void | read (std::istream &in) |
| Reads this Line segment from an input stream. More...
|
|
void | write (std::ostream &out) const |
| Writes this Line segment to an output stream. More...
|
|
void | draw (kjb::Image &img, double ir, double ig, double ib, double width=1.0) const |
| Draws this line segment. More...
|
|
void | randomly_color (kjb::Image &img, double width=1.0) const |
| Randomly colors this line segment on an image. More...
|
|
bool | get_intersection (const Line_segment &line, kjb::Vector &point) const |
| Finds the intersection point of the this line_segment and the input Line_segment line. Return false if these two lines are parallel and therefore do not intersect. More...
|
|
double | get_distance_from_point (const kjb::Vector &point) const |
| Returns distance between this line segment and the input point. More...
|
|
double | get_angle_between_line (const Line_segment &line) const |
| Returns the angle between this line segment and the input line. More...
|
|
double | find_t (const kjb::Vector &point) const |
|
double | get_distance_from_point (const kjb::Vector &point, double *perp_dist) const |
| Returns distance between this line segment and the input point. More...
|
|
double | get_dx () const |
| Returns the dx of this segment. More...
|
|
double | get_dy () const |
| Returns the dy of this segment. More...
|
|
bool | is_horizontal () const |
| Function object of testing whehter a line is horizontal. More...
|
|
bool | is_vertical () const |
| Function object of testing whehter a line is horizontal. More...
|
|
void | get_direction (kjb::Vector &idirection) const |
| Returns a vector representing the normalized direction of this line_segment. More...
|
|
bool | is_line_segment_consistent () |
|
bool | is_collinear (const Line_segment &ls, double collinear_threshold) const |
|
virtual | ~Readable () |
| Deletes this Readable. More...
|
|
virtual void | read (const char *fname) |
| Reads this Readable from a file. More...
|
|
virtual | ~Writeable () |
| Deletes this Writeable. More...
|
|
virtual void | write (const char *fname) const |
| Writes this Writeable to a file. More...
|
|
|
static std::pair< Vector, Vector > | project_line_segment_onto_line (const Line_segment &segment, const Line &iline) |
| Project a line segment onto a line. More...
|
|
static bool | project_line_segment_onto_line_segment (const Line_segment &segment_project, const Line_segment &segment_target, std::pair< Vector, Vector > &projected_points, double &length_inside, double &length_outside) |
| Project a line segment onto a line segment. More...
|
|
static bool | less_than (const Vector &point1, const Vector &point2) |
| Returns true if point1.x < point2.x || (point1.x == point2.x && point1.y < point2.y. More...
|
|
static bool | collision_detection (double start_1, double end_1, double start_2, double end_2, int &direction, double &delta) |
|
static bool | collision_detection_with_direction (double start_1, double end_1, double start_2, double end_2, int &direction, double &delta, int idirection) |
|
static double | get_overlap (double start_1, double end_1, double start_2, double end_2) |
|
static const char * | read_field_value (std::istream &in, const char *field_name, char *field_buf, size_t buf_len, char separator=':') |
| Reads a line off in into a buffer and returns a pointer to the field value in the buffer. More...
|
|
static const char * | read_field_value (std::istream &in, const char *field_name, char separator=':') |
| Reads a line off in into an internal buffer and returns a pointer to the field value in the buffer. More...
|
|
void | compute_extrema () |
| Computes the extrema of this line segments from centre, orientation, and length. This information is redundant, but it can be very useful to have them pre-computed. More...
|
|
void | compute_line_parameters () |
|
kjb::Vector | centre |
| X coordinate of the centre of this line segment. More...
|
|
double | orientation |
| Orientation of this line segment, defined as the angle between the x axis and the segment, positive angle meaning counter clockwise. Ranges between 0 and 180 degrees. Stored in radian. More...
|
|
double | length |
| length of the line segment More...
|
|
kjb::Vector | start_point |
|
kjb::Vector | end_point |
|
Line | line |
|
static Matrix | _line_segment_rotation |
|
Represent a collinear line segment, a collinear line segment is inherited from an Line_segment.