Xmipp  v3.23.11-Nereus
Public Member Functions | Public Attributes | List of all members
Oriented_Feature Class Reference

#include <phantom.h>

Inheritance diagram for Oriented_Feature:
Inheritance graph
[legend]
Collaboration diagram for Oriented_Feature:
Collaboration graph
[legend]

Public Member Functions

void prepare_Euler ()
 
void assign (const Oriented_Feature &OF)
 
virtual void rotate (const Matrix2D< double > &E)
 
- Public Member Functions inherited from Feature
virtual void prepare ()=0
 
void assign (const Feature &F)
 
virtual void rotate_center (const Matrix2D< double > &E)
 
virtual int point_inside (const Matrix1D< double > &r, Matrix1D< double > &aux) const =0
 
int point_inside (const Matrix1D< double > &r) const
 
virtual double density_inside (const Matrix1D< double > &r, Matrix1D< double > &aux) const =0
 
int voxel_inside (const Matrix1D< double > &r, Matrix1D< double > &aux1, Matrix1D< double > &aux2) const
 
int voxel_inside (const Matrix1D< double > &r) const
 
double voxel_inside_by_normalized_density (const Matrix1D< double > &r, Matrix1D< double > &aux1, Matrix1D< double > &aux2) const
 
int intersects_sphere (const Matrix1D< double > &r, double radius, Matrix1D< double > &aux1, Matrix1D< double > &aux2, Matrix1D< double > &aux3) const
 
int intersects_sphere (const Matrix1D< double > &r, double radius) const
 
Featureencircle (double radius=0) const
 
virtual Featurescale (double factor) const =0
 
Featurebackground (int back_mode, double back_param) const
 
virtual double intersection (const Matrix1D< double > &direction, const Matrix1D< double > &passing_point, Matrix1D< double > &r, Matrix1D< double > &u) const =0
 
double intersection (const Matrix1D< double > &direction, const Matrix1D< double > &passing_point) const
 
virtual double volume () const =0
 
void mean_variance_in_plane (Image< double > *V, double z, double &mean, double &var)
 
void project_to (Projection &P, const Matrix2D< double > &VP, const Matrix2D< double > &PV) const
 
void corners (const MultidimArray< double > &V, Matrix1D< double > &corner1, Matrix1D< double > &corner2)
 
void draw_in (MultidimArray< double > &V, int color_mode=INTERNAL, double colour=-1)
 
void sketch_in (MultidimArray< double > &V, double colour=2)
 
void shift (double shiftX, double shiftY, double shiftZ)
 
void selfApplyGeometry (const Matrix2D< double > &A)
 
virtual void feat_printf (FILE *fh) const =0
 
virtual void feat_printm (MetaData &MD, size_t id)=0
 
void readCommon (char *line)
 
void readCommon (MDRow &row)
 
void read (MDRow &row)
 
virtual void read_specific (const std::vector< double > &vector)=0
 

Public Attributes

double rot
 First Euler angle. More...
 
double tilt
 Second Euler angle. More...
 
double psi
 Third Euler angle. More...
 
Matrix2D< double > euler
 Euler matrix. More...
 
Matrix2D< double > eulert
 Inverse Euler matrix. More...
 
- Public Attributes inherited from Feature
std::string type
 
char add_assign
 
double density
 
Matrix1D< double > center
 
double max_distance
 

Detailed Description

Oriented Features. The oriented features are defined in a canonical position (usually along Z axis) and then they are rotated after the 3 Euler angles. The corresponding Euler matrix is stored in the field "euler" while its inverse is in "eulert".

Definition at line 423 of file phantom.h.

Member Function Documentation

◆ assign()

void Oriented_Feature::assign ( const Oriented_Feature OF)

Another function for assignment.

Definition at line 97 of file phantom.cpp.

98 {
99  *this = OF;
100 }

◆ prepare_Euler()

void Oriented_Feature::prepare_Euler ( )

Compute Euler and inverse Euler matrices from the Euler angles.

Definition at line 102 of file phantom.cpp.

103 {
105  eulert = euler.transpose();
106 }
Matrix2D< double > eulert
Inverse Euler matrix.
Definition: phantom.h:439
void Euler_angles2matrix(T alpha, T beta, T gamma, Matrix2D< T > &A, bool homogeneous)
Definition: geometry.cpp:624
double tilt
Second Euler angle.
Definition: phantom.h:430
Matrix2D< double > euler
Euler matrix.
Definition: phantom.h:436
Matrix2D< T > transpose() const
Definition: matrix2d.cpp:1314
double rot
First Euler angle.
Definition: phantom.h:427
double psi
Third Euler angle.
Definition: phantom.h:433

◆ rotate()

void Oriented_Feature::rotate ( const Matrix2D< double > &  E)
virtual

Rotate. Rotate this feature. The center as well as the feature itself are rotated.

Reimplemented from Feature.

Definition at line 164 of file phantom.cpp.

165 {
166  rotate_center(E);
167  prepare();
168  euler = euler * E;
169  eulert = E.transpose() * eulert;
171 }
Matrix2D< double > eulert
Inverse Euler matrix.
Definition: phantom.h:439
double tilt
Second Euler angle.
Definition: phantom.h:430
Matrix2D< double > euler
Euler matrix.
Definition: phantom.h:436
Matrix2D< T > transpose() const
Definition: matrix2d.cpp:1314
virtual void rotate_center(const Matrix2D< double > &E)
Definition: phantom.cpp:151
virtual void prepare()=0
double rot
First Euler angle.
Definition: phantom.h:427
void Euler_matrix2angles(const Matrix2D< double > &A, double &alpha, double &beta, double &gamma, bool homogeneous)
Definition: geometry.cpp:839
double psi
Third Euler angle.
Definition: phantom.h:433

Member Data Documentation

◆ euler

Matrix2D<double> Oriented_Feature::euler

Euler matrix.

Definition at line 436 of file phantom.h.

◆ eulert

Matrix2D<double> Oriented_Feature::eulert

Inverse Euler matrix.

Definition at line 439 of file phantom.h.

◆ psi

double Oriented_Feature::psi

Third Euler angle.

Definition at line 433 of file phantom.h.

◆ rot

double Oriented_Feature::rot

First Euler angle.

Definition at line 427 of file phantom.h.

◆ tilt

double Oriented_Feature::tilt

Second Euler angle.

Definition at line 430 of file phantom.h.


The documentation for this class was generated from the following files: