Cartesius Library
points.f90 File Reference

Data Types

type  points::point
 Contains the coordinates of a point relative to the local affine frame. More...
 
type  points::point_ptr
 
type  points::pointarray
 
interface  points::assignment(=)
 
interface  points::operator(*)
 
interface  points::operator(==)
 
interface  points::operator(.eqf.)
 
interface  points::operator(.eqt.)
 
interface  points::operator(.eqft.)
 
interface  points::point_list_to_array
 
interface  points::point_array_to_list
 
interface  points::index_of_eqv_action
 
interface  points::index_of_eqv_action_frac
 

Modules

module  points
 Implements points in different spaces and coordinate systems.
 

Functions/Subroutines

subroutine points::point_to_point (p1, p2)
 Assigns the fields of one point to another. More...
 
subroutine points::tocartesian (this)
 Tranforms the coordinate system and coordinates to cartesian. More...
 
subroutine points::tospherical (this)
 Tranforms the coordinate system and coordinates to cartesian. More...
 
subroutine points::init_laboratory_frame (laboratory, system)
 Unified initializer for laboratory frame. Creates a laboratory frame with no displacement (r = [0,0,0]) and identity rotation (o = E3). Creates a new spaceTree and adds the new laboratory frame as its root. More...
 
subroutine points::add_child_point (parent_point, id, system, r, o, result_point)
 Adds a point as a child to the given point. Initailzes all fields of the point. More...
 
type(point) function, pointer points::getpointfromspacetree (tree, pointID)
 
type(node) function, pointer points::get_point_node (pPoint)
 Returns the node of the point in the spaceTree. More...
 
type(point) function, pointer points::getparentpoint (pPoint)
 
subroutine points::normalize_point_frac (pnt)
 Returns the point with shift coordinates between 0 and 1. If the shift is close to 1, it is assumed to be equal to 0. More...
 
type(point) function points::invert_point (pnt)
 Returns a point whose action on the original point produces the identity transformation. More...
 
type(point) function points::apply_point (point_a, point_b)
 Returns the combined affine transform given by the composition A ○ B. More...
 
logical function points::points_equal (point_a, point_b)
 Returns true if the affine transformations given by the two points are the same. More...
 
logical function points::points_equal_translation (point_a, point_b)
 Returns true if the translational part of the two points is the same. More...
 
logical function points::points_equal_wrapper (xpoint_a, xpoint_b)
 Wrapper for points_equal for calls with lists and trees. More...
 
logical function points::points_equal_fractional (point_a, point_b)
 Returns true if the affine transformations given by the two points are the same, up to fractional coordinates. More...
 
logical function points::points_equal_fractional_translation (point_a, point_b)
 Returns true if the translational part of the two points is the same, up to fractional coordinates. More...
 
logical function points::points_equal_fractional_wrapper (xpoint_a, xpoint_b)
 Wrapper for points_equal_fractional for calls with lists and trees. More...
 
integer function points::index_of_eqv_action_ptr (point_array, ref_action, orig_point)
 Returns the index of the element of point_array which sends orig_point to the same coordinates as ref_action. More...
 
integer function points::index_of_eqv_action_type (point_array, ref_action, orig_point)
 Returns the index of the element of point_array which sends orig_point to the same coordinates as ref_action. More...
 
integer function points::index_of_eqv_action_frac_ptr (point_array, ref_action, orig_point)
 Returns the index of the element of point_array which sends orig_point to the same coordinates as ref_action (up to translation) More...
 
integer function points::index_of_eqv_action_frac_type (point_array, ref_action, orig_point)
 Returns the index of the element of point_array which sends orig_point to the same coordinates as ref_action (up to translation) More...
 
subroutine points::reduce (somePoint)
 
type(point) function points::reducedaffinetransform_node (point_node)
 Returns the total affine transform from the given point's frame (contained in the given node) to the laboratory frame. More...
 
type(point) function points::reducedaffinetransform (somePoint)
 Returns the total affine transform from the given point's frame to the laboratory frame. More...
 
type(point) function points::localaffinetransform (somePoint)
 Returns the total affine transform from the laboratory frame to the given point's frame. More...
 
real function, dimension(3) points::reducedcoords (somePoint)
 Returns the coordinates of the point in the laboratory frame without changing the spaceTree structure. More...
 
real function, dimension(3) points::localcoords (somePoint, vec)
 Converts the coordinates of a point, given by vec, from the laboratory frame to the somePoint local frame. More...
 
real function, dimension(3, 3) points::reducedtransformmatrix_node (point_node)
 
real function, dimension(3, 3) points::reducedtransformmatrix (somePoint)
 Returns the total transformation matrix from the local frame to the laboratory frame. More...
 
real function, dimension(3, 3) points::localtransformmatrix (somePoint)
 Returns the total transformation matrix from the laboratory frame to the local frame. More...
 
real function, dimension(1:3) points::reducedtransform (somePoint, vec)
 Converts the given vector coordinates from the somePoint local frame to the laboratory frame by applying all spaceTree coordinate transformations successively. More...
 
real function, dimension(3) points::localtransform (somePoint, vec)
 Converts the given vector coordinates from the laboratory frame to the somePoint local frame by applying inverse spaceTree coordinate transformations successively. More...
 
subroutine points::reducecoordinates (somePoint)
 
subroutine points::reducetothesame (point1, point2)
 
subroutine points::reducecoordinatestothesame (point1, point2)
 
subroutine points::reducethreepointstothesame (point1, point2, point3)
 
subroutine points::reducethreepointscoordstothesame (point1, point2, point3)
 
real function points::distance (point1, point2)
 Returns the distance between two points. More...
 
real function points::distance_with_reducing (point1, point2)
 Returns the distance between the points, reducing them to the same spaceTree node. More...
 
real function points::angle (point1, point2, point3)
 Returns the angle formed by points 123. More...
 
real function points::angle_with_reducing (point1, point2, point3)
 Returns the angle formed by points 123, reducing them to the same spaceTree node. More...
 
subroutine points::write_spacetree_node_to_gnuplot (tree, handle)
 
subroutine points::write_spacetree_to_gnuplot (tree, filename)
 
subroutine points::print_spacetree (somePoint)
 
subroutine points::print_point_node_new (pNode, arg)
 
type(point) function, pointer points::point_from_polymorphic (x)
 Converts a polymorpihc pointer to a point pointer if possible, else returns a null-pointer. More...
 
subroutine points::point_list_to_array_alloc (point_list, point_array)
 
subroutine points::point_list_to_array_ptr_alloc (point_list, point_array)
 
subroutine points::point_list_to_array_type (point_list, point_array)
 
subroutine points::point_array_alloc_to_list (point_array, point_list)
 
subroutine points::point_array_ptr_alloc_to_list (point_array, point_list)
 
subroutine points::point_array_type_to_list (point_array, point_list)
 
subroutine points::deallocate_point (pValue)
 Deallocates the given point. Does not deallocate its spaceTree. More...
 

Variables

character(len=9), parameter, public points::key_cartesian = 'cartesian'
 
character(len=9), parameter, public points::key_spherical = 'spherical'
 
character(len=11), parameter, public points::key_cylindrical = 'cylindrical'