plucker_line Interface

public interface plucker_line

Contents


Module Procedures

private pure function pl_from_2pts(pt1, pt2) result(rst)

Constructs a new plucker_line from two points.

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: pt1(3)

The first point.

real(kind=real64), intent(in) :: pt2(3)

The second point.

Return Value type(plucker_line)

The resulting line.

private pure function pl_from_line(ln) result(rst)

Constructs a new plucker_line from a line object.

Arguments

Type IntentOptional Attributes Name
class(line), intent(in) :: ln

The line.

Return Value type(plucker_line)

The equivalent plucker_line.

private pure function pl_from_2_planes(p1, p2) result(rst)

Constructs a new plucker_line from the intersection of two planes.

Arguments

Type IntentOptional Attributes Name
class(plane), intent(in) :: p1

The first plane.

class(plane), intent(in) :: p2

The second plane.

Return Value type(plucker_line)

The resulting line. NaN's are returned in the event that the two planes are parallel.

private pure function pl_from_array(x, nrm) result(rst)

Constructs a new plucker_line from the supplied array.

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: x(6)

A 6-element array containing the Plücker coordinates.

logical, intent(in), optional :: nrm

An optional input that specifies if the first three coordinates (the unit vector) should be normalized (true), or left as-is (false). The default is true such that the vector is normalized.

Return Value type(plucker_line)

The resulting line.