Xmipp  v3.23.11-Nereus
Classes | Macros
geometry.h File Reference
#include "multidim_array.h"
#include "multidim_array_generic.h"
#include <vector>
#include <iostream>
Include dependency graph for geometry.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  FitPoint
 
struct  fit_point2D
 
class  Bspline_model
 

Macros

#define FLT_EPSILON   1.19209e-07
 

Functions

Geometrical operations
void Uproject_to_plane (const Matrix1D< double > &point, const Matrix1D< double > &direction, double distance, Matrix1D< double > &result)
 
void Uproject_to_plane (const Matrix1D< double > &r, double rot, double tilt, double psi, Matrix1D< double > &result)
 
void Uproject_to_plane (const Matrix1D< double > &r, const Matrix2D< double > &euler, Matrix1D< double > &result)
 
double spherical_distance (const Matrix1D< double > &r1, const Matrix1D< double > &r2)
 
double point_line_distance_3D (const Matrix1D< double > &p, const Matrix1D< double > &a, const Matrix1D< double > &v)
 
double point_plane_distance_3D (const Matrix1D< double > &p, const Matrix1D< double > &a, const Matrix1D< double > &v)
 
void least_squares_plane_fit (FitPoint *IN_points, int Npoints, double &plane_A, double &plane_B, double &plane_C)
 
void least_squares_plane_fit_All_Points (const MultidimArray< double > &Image, double &plane_A, double &plane_B, double &plane_C)
 
void least_squares_line_fit (const std::vector< fit_point2D > &IN_points, double &line_A, double &line_B)
 
void Bspline_model_fitting (const std::vector< FitPoint > &IN_points, int SplineDegree, int l0, int lF, int m0, int mF, double h_x, double h_y, double x0, double y0, Bspline_model &result)
 
void rectangle_enclosing (const Matrix1D< double > &v0, const Matrix1D< double > &vF, const Matrix2D< double > &V, Matrix1D< double > &corner1, Matrix1D< double > &corner2)
 
void box_enclosing (const Matrix1D< double > &v0, const Matrix1D< double > &vF, const Matrix2D< double > &V, Matrix1D< double > &corner1, Matrix1D< double > &corner2)
 
bool point_inside_polygon (const std::vector< Matrix1D< double > > &polygon, const Matrix1D< double > &point)
 
void def_affinity (double u1x, double u1y, double u2x, double u2y, double u3x, double u3y, double t1x, double t1y, double t2x, double t2y, double t3x, double t3y, Matrix2D< double > &A, Matrix1D< double > &T, Matrix2D< double > &invW)
 
double triangle_area (double x1, double y1, double x2, double y2, double x3, double y3)
 
int line_plane_intersection (const Matrix1D< double > normal_plane, const Matrix1D< double > vector_line, Matrix1D< double > &intersection_point, const Matrix1D< double > point_line, double point_plane_at_x_y_zero=0.)
 
Intersections
double intersection_unit_sphere (const Matrix1D< double > &u, const Matrix1D< double > &r)
 
double intersection_unit_cylinder (const Matrix1D< double > &u, const Matrix1D< double > &r)
 
double intersection_unit_cube (const Matrix1D< double > &u, const Matrix1D< double > &r)
 

Euler operations

#define EULER_CLIPPING(rot, tilt, psi)
 
#define EULER_CLIPPING_RAD(rot, tilt, psi)
 
template<typename T >
void Euler_angles2matrix (T a, T b, T g, Matrix2D< T > &A, bool homogeneous=false)
 
void Euler_anglesZXZ2matrix (double a, double b, double g, Matrix2D< double > &A, bool homogeneous=false)
 
double Euler_distanceBetweenMatrices (const Matrix2D< double > &E1, const Matrix2D< double > &E2)
 
template<typename T >
Euler_distanceBetweenAngleSets (T rot1, T tilt1, T psi1, T rot2, T tilt2, T psi2, bool only_projdir)
 
template<typename T >
Euler_distanceBetweenAngleSets_fast (const Matrix2D< T > &E1, T rot2, T tilt2, T psi2, bool only_projdir, Matrix2D< T > &E2)
 
void Euler_Angles_after_compresion (const double rot, double tilt, double psi, double &new_rot, double &new_tilt, double &new_psi, Matrix2D< double > &D)
 
void Euler_direction (double alpha, double beta, double gamma, Matrix1D< double > &v)
 
void Euler_direction2angles (Matrix1D< double > &v, double &alpha, double &beta, double &gamma)
 
void Euler_matrix2angles (const Matrix2D< double > &A, double &alpha, double &beta, double &gamma, bool homogeneous=false)
 
void Euler_up_down (double rot, double tilt, double psi, double &newrot, double &newtilt, double &newpsi)
 
void Euler_another_set (double rot, double tilt, double psi, double &newrot, double &newtilt, double &newpsi)
 
void Euler_mirrorY (double rot, double tilt, double psi, double &newrot, double &newtilt, double &newpsi)
 
void Euler_mirrorX (double rot, double tilt, double psi, double &newrot, double &newtilt, double &newpsi)
 
void Euler_mirrorXY (double rot, double tilt, double psi, double &newrot, double &newtilt, double &newpsi)
 
void Euler_apply_transf (const Matrix2D< double > &L, const Matrix2D< double > &R, double rot, double tilt, double psi, double &newrot, double &newtilt, double &newpsi)
 
void Euler_rotate (const MultidimArray< double > &V, double rot, double tilt, double psi, MultidimArray< double > &result)
 
void Euler_rotate (const MultidimArrayGeneric &V, double rot, double tilt, double psi, MultidimArray< double > &result)
 
void computeCircleAroundE (const Matrix2D< double > &E, double angCircle, double angStep, std::vector< double > &outputEulerAngles)
 

Macro Definition Documentation

◆ FLT_EPSILON

#define FLT_EPSILON   1.19209e-07

Definition at line 33 of file geometry.h.