World Builder  1.1.0-pre
A geodynamic initial conditions generator
utilities.cc File Reference
#include "world_builder/assert.h"
#include <algorithm>
#include <cmath>
#include <fstream>
#include <iomanip>
#include <iostream>
#include <limits>
#include <sstream>
#include "world_builder/nan.h"
#include "world_builder/utilities.h"
#include <world_builder/coordinate_system.h>
Include dependency graph for utilities.cc:

Go to the source code of this file.

Namespaces

 WorldBuilder
 
 WorldBuilder::Utilities
 

Functions

bool WorldBuilder::Utilities::polygon_contains_point (const std::vector< Point< 2 > > &point_list, const Point< 2 > &point)
 
bool WorldBuilder::Utilities::polygon_contains_point_implementation (const std::vector< Point< 2 > > &point_list, const Point< 2 > &point)
 
double WorldBuilder::Utilities::fraction_from_ellipse_center (const Point< 2 > &ellipse_center, const double semi_major_axis, const double eccentricity, const double theta, const Point< 2 > &point)
 
double WorldBuilder::Utilities::signed_distance_to_polygon (const std::vector< Point< 2 > > &point_list, const Point< 2 > &point)
 
std::array< double, 3 > WorldBuilder::Utilities::cartesian_to_spherical_coordinates (const Point< 3 > &position)
 
Point< 3 > WorldBuilder::Utilities::spherical_to_cartesian_coordinates (const std::array< double, 3 > &scoord)
 
CoordinateSystem WorldBuilder::Utilities::string_to_coordinate_system (const std::string &coordinate_system)
 
template<unsigned int dim>
std::array< double, dim > WorldBuilder::Utilities::convert_point_to_array (const Point< dim > &point_)
 
double WorldBuilder::Utilities::string_to_double (const std::string &string)
 
int WorldBuilder::Utilities::string_to_int (const std::string &string)
 
unsigned int WorldBuilder::Utilities::string_to_unsigned_int (const std::string &string)
 
Point< 3 > WorldBuilder::Utilities::cross_product (const Point< 3 > &a, const Point< 3 > &b)
 
PointDistanceFromCurvedPlanes WorldBuilder::Utilities::distance_point_from_curved_planes (const Point< 3 > &check_point, const Objects::NaturalCoordinate &natural_coordinate, const Point< 2 > &reference_point, const std::vector< Point< 2 > > &point_list, const std::vector< std::vector< double > > &plane_segment_lengths, const std::vector< std::vector< Point< 2 > > > &plane_segment_angles, const double start_radius, const std::unique_ptr< CoordinateSystems::Interface > &coordinate_system, const bool only_positive, const Objects::BezierCurve &bezier_curve)
 
double WorldBuilder::Utilities::wrap_angle (const double angle)
 
double WorldBuilder::Utilities::interpolate_angle_across_zero (const double angle_1, const double angle_2, const double fraction)
 
std::array< double, 3 > WorldBuilder::Utilities::euler_angles_from_rotation_matrix (const std::array< std::array< double, 3 >, 3 > &rotation_matrix)
 
std::array< std::array< double, 3 >, 3 > WorldBuilder::Utilities::euler_angles_to_rotation_matrix (double phi1_d, double theta_d, double phi2_d)
 
std::string WorldBuilder::Utilities::read_and_distribute_file_content (const std::string &filename)
 
template std::array< double, 2 > WorldBuilder::Utilities::convert_point_to_array< 2 > (const Point< 2 > &point_)
 
template std::array< double, 3 > WorldBuilder::Utilities::convert_point_to_array< 3 > (const Point< 3 > &point_)
 
std::vector< double > WorldBuilder::Utilities::calculate_ridge_distance_and_spreading (std::vector< std::vector< Point< 2 >>> mid_oceanic_ridges, std::vector< std::vector< double >> mid_oceanic_spreading_velocities, const std::unique_ptr< WorldBuilder::CoordinateSystems::Interface > &coordinate_system, const Objects::NaturalCoordinate &position_in_natural_coordinates_at_min_depth, const std::vector< std::vector< double >> &subducting_plate_velocities, const std::vector< double > &ridge_migration_times)
 
std::vector< double > WorldBuilder::Utilities::calculate_effective_trench_and_plate_ages (std::vector< double > ridge_parameters, double distance_along_plane)
 
std::array< std::array< double, 3 >, 3 > WorldBuilder::Utilities::multiply_3x3_matrices (const std::array< std::array< double, 3 >, 3 > mat1, const std::array< std::array< double, 3 >, 3 > mat2)