#include <HomgOperator3D.h>
Static Public Member Functions | |
static double | angle_between_oriented_lines (const HomgLine3D &line1, const HomgLine3D &line2) |
Return the angle between the (oriented) lines (in radians). | |
static double | distance_squared (const HomgPoint3D &point1, const HomgPoint3D &point2) |
Return the squared distance between the points. | |
static HomgPoint3D | intersect_line_and_plane (const HomgLine3D &, const HomgPlane3D &) |
Return the intersection point of the line and plane. | |
static HomgPoint3D | lines_to_point (const HomgLine3D &line1, const HomgLine3D &line2) |
static HomgPoint3D | lines_to_point (const vcl_vector< HomgLine3D > &line_list) |
static double | perp_dist_squared (const HomgPoint3D &point, const HomgLine3D &line) |
static HomgLine3D | perp_line_through_point (const HomgLine3D &line, const HomgPoint3D &point) |
static HomgPoint3D | perp_projection (const HomgLine3D &line, const HomgPoint3D &point) |
static HomgLine3D | planes_to_line (const HomgPlane3D &plane1, const HomgPlane3D &plane2) |
Return the intersection line of the planes. | |
static HomgLine3D | planes_to_line (const vcl_vector< HomgPlane3D > &plane_list) |
static HomgLine3D | points_to_line (const HomgPoint3D &point1, const HomgPoint3D &point2) |
static HomgLine3D | points_to_line (const vcl_vector< HomgPoint3D > &point_list) |
static HomgPlane3D | points_to_plane (const HomgPoint3D &, const HomgPoint3D &, const HomgPoint3D &) |
static HomgPlane3D | points_to_plane (const vcl_vector< HomgPoint3D > &point_list) |
static HomgPoint3D | intersection_point (const HomgPlane3D &, const HomgPlane3D &, const HomgPlane3D &) |
Compute best-fit intersection of planes in a point. | |
static HomgPoint3D | intersection_point (const vcl_vector< HomgPlane3D > &) |
static void | sort_points (HomgPoint3D *p, int n) |
Given collinear 3D points in random order, sort them. | |
static double | CrossRatio (const Homg3D &p1, const Homg3D &p2, const Homg3D &p3, const Homg3D &p4) |
Calculates the crossratio of four collinear points p1, p2, p3 and p4. |
Definition at line 20 of file HomgOperator3D.h.
double HomgOperator3D::angle_between_oriented_lines | ( | const HomgLine3D & | line1, |
const HomgLine3D & | line2 | ||
) | [static] |
Return the angle between the (oriented) lines (in radians).
Definition at line 98 of file HomgOperator3D.cxx.
double HomgOperator3D::CrossRatio | ( | const Homg3D & | a, |
const Homg3D & | b, | ||
const Homg3D & | c, | ||
const Homg3D & | d | ||
) | [static] |
Calculates the crossratio of four collinear points p1, p2, p3 and p4.
This number is projectively invariant, and it is the coordinate of p4 in the reference frame where p2 is the origin (coordinate 0), p3 is the unity (coordinate 1) and p1 is the point at infinity. This cross ratio is often denoted as ((p1, p2; p3, p4)) (which also equals ((p3, p4; p1, p2)) or ((p2, p1; p4, p3)) or ((p4, p3; p2, p1)) ) and is calculated as p1 - p3 p2 - p3 (p1-p3)(p2-p4) ------- : -------- = -------------- p1 - p4 p2 - p4 (p1-p4)(p2-p3)
In principle, any single nonhomogeneous coordinate from the four points can be used as parameters for CrossRatio (but of course the same for all points). The most reliable answer will be obtained when the coordinate with the largest spacing is used, i.e., the one with smallest slope.
Definition at line 336 of file HomgOperator3D.cxx.
double HomgOperator3D::distance_squared | ( | const HomgPoint3D & | point1, |
const HomgPoint3D & | point2 | ||
) | [static] |
Return the squared distance between the points.
Definition at line 115 of file HomgOperator3D.cxx.
HomgPoint3D HomgOperator3D::intersect_line_and_plane | ( | const HomgLine3D & | line, |
const HomgPlane3D & | plane | ||
) | [static] |
Return the intersection point of the line and plane.
Definition at line 125 of file HomgOperator3D.cxx.
HomgPoint3D HomgOperator3D::intersection_point | ( | const HomgPlane3D & | plane1, |
const HomgPlane3D & | plane2, | ||
const HomgPlane3D & | plane3 | ||
) | [static] |
Compute best-fit intersection of planes in a point.
Definition at line 280 of file HomgOperator3D.cxx.
HomgPoint3D HomgOperator3D::intersection_point | ( | const vcl_vector< HomgPlane3D > & | planes | ) | [static] |
Definition at line 303 of file HomgOperator3D.cxx.
HomgPoint3D HomgOperator3D::lines_to_point | ( | const HomgLine3D & | line1, |
const HomgLine3D & | line2 | ||
) | [static] |
Definition at line 151 of file HomgOperator3D.cxx.
HomgPoint3D HomgOperator3D::lines_to_point | ( | const vcl_vector< HomgLine3D > & | line_list | ) | [static] |
Definition at line 163 of file HomgOperator3D.cxx.
double HomgOperator3D::perp_dist_squared | ( | const HomgPoint3D & | point, |
const HomgLine3D & | line | ||
) | [static] |
Definition at line 174 of file HomgOperator3D.cxx.
HomgLine3D HomgOperator3D::perp_line_through_point | ( | const HomgLine3D & | line, |
const HomgPoint3D & | point | ||
) | [static] |
Definition at line 186 of file HomgOperator3D.cxx.
HomgPoint3D HomgOperator3D::perp_projection | ( | const HomgLine3D & | line, |
const HomgPoint3D & | point | ||
) | [static] |
Definition at line 195 of file HomgOperator3D.cxx.
HomgLine3D HomgOperator3D::planes_to_line | ( | const HomgPlane3D & | plane1, |
const HomgPlane3D & | plane2 | ||
) | [static] |
Return the intersection line of the planes.
Definition at line 207 of file HomgOperator3D.cxx.
HomgLine3D HomgOperator3D::planes_to_line | ( | const vcl_vector< HomgPlane3D > & | plane_list | ) | [static] |
Definition at line 225 of file HomgOperator3D.cxx.
HomgLine3D HomgOperator3D::points_to_line | ( | const HomgPoint3D & | point1, |
const HomgPoint3D & | point2 | ||
) | [static] |
Definition at line 237 of file HomgOperator3D.cxx.
HomgLine3D HomgOperator3D::points_to_line | ( | const vcl_vector< HomgPoint3D > & | point_list | ) | [static] |
Definition at line 248 of file HomgOperator3D.cxx.
HomgPlane3D HomgOperator3D::points_to_plane | ( | const HomgPoint3D & | , |
const HomgPoint3D & | , | ||
const HomgPoint3D & | |||
) | [static] |
Definition at line 259 of file HomgOperator3D.cxx.
HomgPlane3D HomgOperator3D::points_to_plane | ( | const vcl_vector< HomgPoint3D > & | point_list | ) | [static] |
Definition at line 271 of file HomgOperator3D.cxx.
void HomgOperator3D::sort_points | ( | HomgPoint3D * | p, |
int | n | ||
) | [static] |
Given collinear 3D points in random order, sort them.
Definition at line 22 of file HomgOperator3D.cxx.