IMP
2.2.1
The Integrative Modeling Platform
|
See IMP.algebra for more information.
Classes | |
class | BoundedGridRangeD |
class | BoundingBoxD |
An axis-aligned bounding box. More... | |
class | Cone3D |
class | ConnollySurfacePoint |
class | Cylinder3D |
class | DefaultEmbeddingD |
struct | DenseFloatLogGridKD |
struct | DenseGrid3D |
class | DenseGridStorageD |
struct | DenseIntLogGrid3D |
class | DynamicNearestNeighbor3D |
class | Ellipsoid3D |
class | EuclideanVectorKDMetric |
class | ExtendedGridIndexD |
An index in an infinite grid on space. More... | |
class | FixedXYZ |
A simple class for returning XYZ Euler angles. More... | |
class | Gaussian3D |
class | GeometricPrimitiveD |
class | GridD |
A voxel grid in d-dimensional space space. More... | |
class | GridIndexD |
Represent a real cell in a grid (one within the bounding box) More... | |
class | LinearFit2D |
Calculate line that fits best the input data points (Linear least squares) More... | |
class | LogEmbeddingD |
class | MaxVectorKDMetric |
class | NearestNeighborD |
class | ParabolicFit2D |
Calculate parabola that fits best the input data points. More... | |
class | Plane3D |
class | PrincipalComponentAnalysisD |
class | ReferenceFrame3D |
A reference frame in 3D. More... | |
class | Reflection3D |
Reflect about a plane in 3D. More... | |
class | Rotation2D |
Stores a 2D rotation matrix. More... | |
class | Rotation3D |
3D rotation class. More... | |
class | Segment3D |
struct | SparseGrid3D |
class | SparseGridStorageD |
struct | SparseUnboundedGrid3D |
struct | SparseUnboundedGridD |
class | SphereD |
class | SpherePatch3D |
class | SphericalVector3D |
Class to represent a 3D point in spherical coordinates. More... | |
class | Transformation2D |
Simple 2D transformation class. More... | |
class | Transformation3D |
Simple 3D transformation class. More... | |
class | Triangle3D |
class | UnboundedGridRangeD |
class | VectorBaseD |
A Cartesian vector in D-dimensions. More... | |
class | VectorD |
A Cartesian vector in D-dimensions. More... | |
class | VectorKDMetric |
Functions | |
template<int D> | |
int | compare (const VectorD< D > &a, const VectorD< D > &b) |
lexicographic comparison of two vectors More... | |
Rotation2D | compose (const Rotation2D &a, const Rotation2D &b) |
compose two rotations a and b More... | |
Transformation3D | compose (const Transformation3D &a, const Transformation3D &b) |
compose two transformations More... | |
Transformation2D | compose (const Transformation2D &a, const Transformation2D &b) |
compose two transformations More... | |
Rotation3D | compose (const Rotation3D &a, const Rotation3D &b) |
Transformation3Ds | get_alignments_from_first_to_second (const PrincipalComponentAnalysisD< 3 > &pca1, const PrincipalComponentAnalysisD< 3 > &pca2) |
bool | get_are_almost_equal (const double a, const double b, const double epsilon) |
Compares two values (intended for doubles) More... | |
bool | get_are_colinear (const Vector3D &p1, const Vector3D &p2, const Vector3D &p3) |
Return true if the three points are co-linear. | |
double | get_area (const SpherePatch3D &g) |
double | get_area (const Plane3D &g) |
template<class Geometry > | |
double | get_area (const Geometry &) |
Compute the area of any surface object. | |
std::pair< Vector3D, double > | get_axis_and_angle (const Rotation3D &rot) |
Decompose a Rotation3D object into a rotation around an axis. More... | |
double | get_ball_radius_from_volume_3d (double volume) |
Return the radius of a sphere with a given volume. More... | |
template<int D> | |
VectorD< D > | get_basis_vector_d (unsigned int coordinate) |
Return the basis vector for the given coordinate. More... | |
VectorD<-1 > | get_basis_vector_kd (int D, unsigned int coordinate) |
Return a dynamically sized basis vector. | |
BoundingBoxD< 3 > | get_bounding_box (const SpherePatch3D &g) |
BoundingBoxD< 3 > | get_bounding_box (const Segment3D &g) |
BoundingBoxD< 3 > | get_bounding_box (const Cone3D &g) |
BoundingBoxD< 3 > | get_bounding_box (const Ellipsoid3D &g) |
BoundingBoxD< 3 > | get_bounding_box (const Cylinder3D &g) |
BoundingBoxD< 3 > | get_bounding_box (const Plane3D &g) |
template<int D> | |
BoundingBoxD< D > | get_bounding_box (const SphereD< D > &g) |
template<int D> | |
BoundingBoxD< D > | get_bounding_box (const BoundingBoxD< D > &g) |
template<class Geometry > | |
BoundingBoxD< 3 > | get_bounding_box (const Geometry &) |
Compute the bounding box of any geometric object. | |
template<int D, class Storage , class Value , class Embedding > | |
BoundingBoxD< D > | get_bounding_box (const GridD< D, Storage, Value, Embedding > &g) |
template<int D> | |
const BoundingBoxD< D > & | get_bounding_box_d_geometry (const BoundingBoxD< D > &g) |
double | get_closer_power_of_2 (double x) |
Closest power of 2 for a number, not necessarily higher. | |
const Cone3D & | get_cone_3d_geometry (const Cone3D &g) |
ConnollySurfacePoints | get_connolly_surface (const algebra::Sphere3Ds &spheres, double density, double probe_radius) |
template<typename T > | |
T | get_constrained (const T x, const T x0, const T xF) |
Constrains a value between two given limits. | |
IMP_Eigen::Matrix3d | get_covariance (const Gaussian3D &g) |
template<unsigned int D> | |
BoundingBoxD< D > | get_cube_d (double radius) |
Cube with radius of length radius . More... | |
BoundingBoxD<-1 > | get_cube_kd (unsigned int d, double radius) |
Cube with radius of length side . More... | |
const Cylinder3D & | get_cylinder_3d_geometry (const Cylinder3D &g) |
std::string | get_data_path (std::string file_name) |
Return the full path to installed data. More... | |
double | get_distance (const Plane3D &pln, const Vector3D &p) |
Return the distance between a plane and a point in 3D. More... | |
double | get_distance (const Segment3D &s, const Vector3D &p) |
Get the distance between a segment and a point. More... | |
double | get_distance (const Segment3D &a, const Segment3D &b) |
Get the distance between two segments. More... | |
template<int D> | |
double | get_distance (const SphereD< D > &a, const SphereD< D > &b) |
Return the distance between the two spheres if they are disjoint. More... | |
template<int D> | |
double | get_distance (const VectorD< D > &v1, const VectorD< D > &v2) |
compute the distance between two vectors More... | |
double | get_distance (const Rotation3D &r0, const Rotation3D &r1) |
Return a distance between the two rotations. More... | |
IntPairs | get_edges (const BoundingBoxD< 3 > &) |
Return the edges of the box as indices into the vertices list. More... | |
template<int D> | |
VectorD< D > | get_elementwise_product (const algebra::VectorD< D > &a, const algebra::VectorD< D > &b) |
template<int D> | |
VectorD< D > | get_elementwise_product (const Ints &a, const algebra::VectorD< D > &b) |
const Ellipsoid3D & | get_ellipsoid_3d_geometry (const Ellipsoid3D &g) |
Sphere3D | get_enclosing_sphere (const Sphere3Ds &ss) |
Return a sphere containing the listed spheres. More... | |
Sphere3D | get_enclosing_sphere (const Vector3Ds &ss) |
Return a sphere containing the listed spheres. More... | |
std::string | get_example_path (std::string file_name) |
Return the path to installed example data for this module. More... | |
Gaussian3D | get_gaussian_from_covariance (const IMP_Eigen::Matrix3d &covariance, const Vector3D ¢er) |
Rotation2D | get_identity_rotation_2d () |
Builds an identity rotation in 2D. | |
Rotation3D | get_identity_rotation_3d () |
Return a rotation that does not do anything. More... | |
Transformation2D | get_identity_transformation_2d () |
Returns a transformation that does not do anything. More... | |
Transformation3D | get_identity_transformation_3d () |
Return a transformation that does not do anything. More... | |
template<int D> | |
bool | get_interiors_intersect (const SphereD< D > &a, const SphereD< D > &b) |
Return true if the two balls bounded by the two spheres interesect. More... | |
template<int D> | |
bool | get_interiors_intersect (const BoundingBoxD< D > &a, const BoundingBoxD< D > &b) |
Return true if they intersect. More... | |
Rotation3D | get_interpolated (const Rotation3D &a, const Rotation3D &b, double f) |
Interpolate between two rotations. More... | |
template<int D> | |
BoundingBoxD< D > | get_intersection (const BoundingBoxD< D > &a, const BoundingBoxD< D > &b) |
Return the intersecting bounding box. More... | |
Triangle3D | get_largest_triangle (const Vector3Ds &points) |
Return the largest triangle defined by 3 points from the input. More... | |
template<int D, class Storage , class Value , class Embedding > | |
Value | get_linearly_interpolated (const GridD< D, Storage, Value, Embedding > &g, const VectorD< D > &pt) |
template<int D> | |
double | get_maximum_length (const BoundingBoxD< D > &a) |
Return the maximum axis aligned extent. More... | |
float | get_next_larger_power_of_2 (float x) |
Closest power of 2 that can contain a number x. | |
double | get_next_larger_power_of_2 (double x) |
Closest power of 2 that can contain a number x. | |
template<int D> | |
VectorD< D > | get_ones_vector_d (double v=1) |
Return a vector of ones (or another constant) | |
template<int D> | |
VectorD< D > | get_ones_vector_kd (unsigned int Di, double v=1) |
Return a vector of ones (or another constant) More... | |
const Plane3D & | get_plane_3d_geometry (const Plane3D &g) |
template<int D> | |
double | get_power_distance (const SphereD< D > &a, const SphereD< D > &b) |
Return the power distance between the two spheres. More... | |
template<int D> | |
PrincipalComponentAnalysisD< D > | get_principal_components (const base::Vector< VectorD< D > > &ps) |
Perform principal components analysis on a set of vectors. More... | |
Transformation3D | get_random_local_transformation (Vector3D origin, double max_translation=5., double max_angle_in_rad=0.26) |
Get a local transformation. More... | |
Rotation2D | get_random_rotation_2d () |
Builds an identity rotation in 2D. | |
Rotation3D | get_random_rotation_3d () |
Pick a rotation at random from all possible rotations. More... | |
Rotation3D | get_random_rotation_3d (const Rotation3D ¢er, double distance) |
Pick a rotation at random near the provided one. More... | |
DenseGrid3D< float > | get_rasterized (const Gaussian3Ds &gmm, const Floats &weights, double cell_width, const BoundingBox3D &bb) |
Vector3D | get_reflected (const Plane3D &pln, const Vector3D &p) |
return the point reflected about the plane | |
double | get_relative_projection_on_segment (const Segment3D &s, const algebra::Vector3D &p) |
template<class Vector3DsOrXYZs0 , class Vector3DsOrXYZs1 > | |
double | get_rmsd (const Vector3DsOrXYZs0 &m1, const Vector3DsOrXYZs1 &m2) |
template<class Vector3DsOrXYZs0 , class Vector3DsOrXYZs1 > | |
double | get_rmsd_transforming_first (const Transformation3D &tr, const Vector3DsOrXYZs0 &m1, const Vector3DsOrXYZs1 &m2) |
Calculate the root mean square deviation between two sets of 3D points. More... | |
Rotation3D | get_rotation_about_axis (const Vector3D &axis, double angle) |
Generate a Rotation3D object from a rotation around an axis. More... | |
Rotation3D | get_rotation_about_normalized_axis (const Vector3D &axis_norm, double angle) |
Transformation3D | get_rotation_about_point (const Vector3D &point, const Rotation3D &rotation) |
Generate a Transformation3D object from a rotation around a point. More... | |
Transformation2D | get_rotation_about_point (const Vector2D &point, const Rotation2D &rotation) |
Generates a Transformation2D object from a rotation around a point. More... | |
Rotation3D | get_rotation_from_matrix (double m00, double m01, double m02, double m10, double m11, double m12, double m20, double m21, double m22) |
Generate a Rotation3D object from a rotation matrix. More... | |
Rotation3D | get_rotation_from_matrix (IMP_Eigen::Matrix3d m) |
Generate a Rotation3D object from a rotation matrix. More... | |
Rotation3D | get_rotation_from_vector4d (const VectorD< 4 > &v) |
Compute a rotatation from an unnormalized quaternion. More... | |
Rotation3D | get_rotation_from_x_y_axes (const Vector3D &x, const Vector3D &y) |
Rotation3D | get_rotation_taking_first_to_second (const Vector3D &v1, const Vector3D &v2) |
Create a rotation from the first vector to the second one. More... | |
Rotation2D | get_rotation_to_x_axis (const Vector2D &v) |
template<typename T > | |
int | get_rounded (const T &x) |
Rounds a number to next integer. More... | |
const Segment3D & | get_segment_3d_geometry (const Segment3D &g) |
template<typename T > | |
int | get_sign (const T &x) |
Sign of a number. 1 if the number is higher or equal to 0 and -1 otherwise. | |
Sphere3Ds | get_simplified_from_volume (Sphere3Ds in, double maximum_allowed_error_angstroms) |
template<int D> | |
const SphereD< D > & | get_sphere_d_geometry (const SphereD< D > &g) |
const SpherePatch3D & | get_sphere_patch_3d_geometry (const SpherePatch3D &g) |
double | get_squared (double x) |
template<int D> | |
double | get_squared_distance (const VectorD< D > &v1, const VectorD< D > &v2) |
compute the squared distance between two vectors More... | |
double | get_surface_area (const Cone3D &g) |
double | get_surface_area (const Ellipsoid3D &g) |
double | get_surface_area (const Cylinder3D &g) |
double | get_surface_area (const SphereD< 3 > &g) |
double | get_surface_area (const BoundingBoxD< 3 > &g) |
template<class Geometry > | |
double | get_surface_area (const Geometry &) |
Compute the surface area of any volumetric object. | |
FloatPair | get_surface_area_and_volume (const algebra::Sphere3Ds &ss) |
Transformation3D | get_transformation_3d (const Transformation2D &t2d) |
Builds a 3D transformation from a 2D one. More... | |
template<class Vector3DsOrXYZs0 , class Vector3DsOrXYZs1 > | |
IMP::algebra::Transformation3D | get_transformation_aligning_first_to_second (const Vector3DsOrXYZs0 &source, const Vector3DsOrXYZs1 &target) |
Compute the rigid transform bringing the first point set to the second. More... | |
Transformation2D | get_transformation_aligning_pair (const Vector2Ds &set_from, const Vector2Ds &set_to) |
Transformation3D | get_transformation_from_first_to_second (const ReferenceFrame3D &a, const ReferenceFrame3D &b) |
Transformation3D | get_transformation_from_first_triangle_to_second (Triangle3D first_tri, Triangle3D second_tri) |
Return a transformation between two triangles. | |
ReferenceFrame3D | get_transformed (const ReferenceFrame3D &rf, const Transformation3D &tr) |
BoundingBoxD< 3 > | get_transformed (const BoundingBoxD< 3 > &bb, const Transformation3D &tr) |
Return a bounding box containing the transformed box. | |
template<class Storage , class Embedding > | |
const Storage::Value | get_trilinearly_interpolated (const GridD< 3, Storage, typename Storage::Value, Embedding > &g, const Vector3D &v, const typename Storage::Value &outside=0) |
Use trilinear interpolation to compute a smoothed value at v. More... | |
Rotation3Ds | get_uniform_cover_rotations_3d (unsigned int num_points) |
Cover the space of rotations evenly. More... | |
Vector3Ds | get_uniform_surface_cover (const Sphere3Ds &in, double points_per_square_angstrom) |
algebra::Rotation3Ds | get_uniformly_sampled_rotations (double delta) |
Generates a nondegenerate set of Euler angles with a delta resolution. More... | |
template<int D> | |
BoundingBoxD< D > | get_union (BoundingBoxD< D > a, const BoundingBoxD< D > &b) |
Return the union bounding box. More... | |
template<unsigned int D> | |
BoundingBoxD< D > | get_unit_bounding_box_d () |
Box with radius one. More... | |
BoundingBoxD<-1 > | get_unit_bounding_box_kd (unsigned int d) |
Box with radius one. More... | |
template<unsigned int D> | |
SphereD< D > | get_unit_sphere_d () |
SphereD<-1 > | get_unit_sphere_kd (unsigned int d) |
template<class VT > | |
VT | get_unit_vector (VT vt) |
template<int D> | |
VectorD< D > | get_vector_geometry (const SphereD< D > &s) |
template<class C > | |
const VectorD< C::DIMENSION > & | get_vector_geometry (const C &g) |
template<int D> | |
base::Vector< VectorD< D > > | get_vertices (const BoundingBoxD< D > &bb) |
Return a list of the 8 bounding points for the bounding box. More... | |
double | get_volume (const Cone3D &g) |
double | get_volume (const Ellipsoid3D &g) |
double | get_volume (const Cylinder3D &g) |
double | get_volume (const SphereD< 3 > &g) |
template<int D> | |
double | get_volume (const BoundingBoxD< D > &bb) |
double | get_volume (const BoundingBoxD< 3 > &g) |
template<class Geometry > | |
double | get_volume (const Geometry &) |
Compute the volume of any volumetric object. | |
template<int D> | |
VectorD< D > | get_zero_vector_d () |
Return a vector of zeros. | |
template<int D> | |
VectorD< D > | get_zero_vector_kd (int Di) |
Return a dynamically sized vector of zeros. | |
template<int D> | |
VectorD< D > | operator* (double s, VectorD< D > o) |
template<int D> | |
void | set_bounding_box_d_geometry (BoundingBoxD< D > &g, const BoundingBoxD< D > &v) |
void | set_cone_3d_geometry (Cone3D &g, const Cone3D &v) |
void | set_cylinder_3d_geometry (Cylinder3D &g, const Cylinder3D &v) |
void | set_ellipsoid_3d_geometry (Ellipsoid3D &g, const Ellipsoid3D &v) |
void | set_plane_3d_geometry (Plane3D &g, const Plane3D &v) |
void | set_segment_3d_geometry (Segment3D &g, const Segment3D &gi) |
template<int D> | |
void | set_sphere_d_geometry (SphereD< D > &g, const SphereD< D > &v) |
void | set_sphere_patch_3d_geometry (SpherePatch3D &g, const SpherePatch3D &v) |
template<class C , class E > | |
void | set_vector_geometry (C &g, const E &v) |
Variables | |
static const double | PI = 3.1415926535897931 |
the constant pi | |
Endian | |
| |
void | reversed_read (void *dest, size_t size, size_t nitems, std::ifstream &f, bool reverse) |
Reads from file in normal or reverse order. More... | |
void | reversed_write (const void *src, size_t size, size_t nitems, std::ofstream &f, bool reverse=false) |
Writes to a file in normal or reversed order. More... | |
template<class T > | |
void | get_swapped_endian (T &x) |
Conversion between little and big endian. Goes both ways. | |
bool | get_is_big_endian () |
Returns 1 if machine is big endian else 0. | |
bool | get_is_little_endian () |
Returns 1 if machine is little endian else 0. | |
Simple geometric IO | |
These functions write geometry to text files, one line per geometric primitive. Each line has the form “x y z” for points or “x y z r” for spheres. We can easily add general dimension support if requested.. Lines beginning with "#" are treated as comments. | |
void | write_pts (const Vector3Ds &vs, base::TextOutput out) |
Write a set of 3D vectors to a file. More... | |
Vector3Ds | read_pts (base::TextInput input) |
Read a set of 3D vectors from a file. More... | |
void | write_spheres (const Sphere3Ds &vs, base::TextOutput out) |
Write a set of 3d spheres to a file. More... | |
Sphere3Ds | read_spheres (base::TextInput input) |
Read a set of 3d spheres from a file. More... | |
Python Only | |
The following functions are only availale in Python as the equivalent C++ functionality is provided via template functions or in other ways that don't directly map to python. | |
typedef Grid3D< int, SparseGridStorage3D< int, BoundedGridStorage3D > > | SparseIntGrid3D |
typedef Grid3D< int, SparseGridStorage3D< int, UnboundedGridStorage3D > > | SparseUnboundedIntGrid3D |
typedef Grid3D< double, DenseGridStorage3D< double > > | DenseDoubleGrid3D |
typedef Grid3D< float, DenseGridStorage3D< float > > | DenseFloatGrid3D |
Transformation3D | get_transformation_aligning_first_to_second (Vector3Ds a, Vector3Ds b) |
Euler Angles | |
There are many conventions for how to define Euler angles, based on choices of which of the x,y,z axis to use in what order and whether the rotation axis is in the body frame (and hence affected by previous rotations) or in in a fixed frame. See http://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles for a general description.
| |
typedef IMP::base::Vector < FixedXYZ > | FixedXYZs |
Rotation3D | get_rotation_from_fixed_xyz (double xr, double yr, double zr) |
Initialize a rotation in x-y-z order from three angles. More... | |
Rotation3D | get_rotation_from_fixed_zxz (double phi, double theta, double psi) |
Initialize a rotation from euler angles. More... | |
Rotation3D | get_rotation_from_fixed_zyz (double Rot, double Tilt, double Psi) |
Generate a rotation object from Euler Angles. More... | |
FixedXYZ | get_fixed_xyz_from_rotation (const Rotation3D &r) |
The inverse of rotation_from_fixed_xyz() More... | |
Shortest segments | |
These methods return the shortest segment connecting two geometric objects. Such segments can be used to give the direction of the derivative of the distance between the two objects. The 0 point on the segment is in the first passed object and the 1 point is in the second. | |
Segment3D | get_shortest_segment (const Segment3D &s, const Vector3D &p) |
Segment3D | get_shortest_segment (const Segment3D &sa, const Segment3D &sb) |
3D Vectors | |
We provide a specialization of VectorD for 3-space and several additional functions on it. | |
Vector3D | get_vector_product (const Vector3D &p1, const Vector3D &p2) |
Returns the vector product (cross product) of two vectors. More... | |
Vector3D | get_orthogonal_vector (const Vector3D &v) |
Return a vector that is perpendicular to the given vector. More... | |
Vector3D | get_centroid (const Vector3Ds &ps) |
Returns the centroid of a set of vectors. More... | |
double | get_radius_of_gyration (const Vector3Ds &ps) |
Return the radius of gyration of a set of points. More... | |
Vector Generators | |
These functions generate vector objects. Some of the methods, those with random in their name, generate a single vector chosen uniformly from the specified domain. Others, the cover methods, generate a set of points distributed (somewhat) evenly over the domain. | |
template<int D> | |
VectorD< D > | get_random_vector_in (const BoundingBoxD< D > &bb) |
Generate a random vector in a box with uniform density. More... | |
template<int D> | |
VectorD< D > | get_random_vector_on (const BoundingBoxD< D > &bb) |
Generate a random vector on a box with uniform density. More... | |
template<int D> | |
VectorD< D > | get_random_vector_in (const SphereD< D > &s) |
Generate a random vector in a sphere with uniform density. More... | |
VectorD< 2 > | get_random_vector_in (const SphereD< 2 > &s) |
Vector3D | get_random_vector_in (const Cylinder3D &c) |
Generate a random vector in a cylinder with uniform density. More... | |
VectorD< 3 > | get_random_vector_on_unit_sphere () |
template<int D> | |
VectorD< D > | get_random_vector_on (const SphereD< D > &s) |
Generate a random vector on a sphere with uniform density. More... | |
template<int D> | |
base::Vector< VectorD< D > > | get_uniform_surface_cover (const SphereD< D > &s, unsigned int n) |
Generate a set of vectors which covers a sphere uniformly. More... | |
Vector3Ds | get_uniform_surface_cover (const Cylinder3D &cyl, int number_of_points) |
Generate a set of 3d points that uniformly cover a cylinder. More... | |
template<int D> | |
base::Vector< VectorD< D > > | get_uniform_upper_hemisphere_cover (const SphereD< D > &s, unsigned int n) |
Generate a set of 3D points that uniformly cover a hemisphere. More... | |
Vector3Ds | get_grid_surface_cover (const Cylinder3D &cyl, int number_of_cycles, int number_of_points_on_cycle) |
Generate a grid of 3d points on a cylinder surface. More... | |
Vector3Ds | get_uniform_surface_cover (const SpherePatch3D &sph, unsigned int number_of_points) |
Generate a set of 3d points that uniformly cover a patch of a sphere. More... | |
Vector3Ds | get_uniform_surface_cover (const Cone3D &cone, unsigned int number_of_points) |
template<int D> | |
base::Vector< VectorD< D > > | get_grid_interior_cover_by_spacing (const BoundingBoxD< D > &bb, double s) |
Vector3Ds | get_random_chain (unsigned int n, double r, const Vector3D &start=Vector3D(0, 0, 0), const Sphere3Ds &obstacles=Sphere3Ds()) |
Generate a random chain with no collisions. More... | |
Norms | |
We define a number of standard, \(L^p\), norms on VectorD.
| |
template<int D> | |
double | get_l2_norm (const VectorD< D > &v) |
template<int D> | |
double | get_l1_norm (const VectorD< D > &v) |
template<int D> | |
double | get_linf_norm (const VectorD< D > &v) |
typedef BoundingBoxD<1> IMP::algebra::BoundingBox1D |
Typedef for python.
Definition at line 160 of file BoundingBoxD.h.
Pass or store a set of BoundingBox1D .
Definition at line 160 of file BoundingBoxD.h.
typedef BoundingBoxD<2> IMP::algebra::BoundingBox2D |
Typedef for python.
Definition at line 160 of file BoundingBoxD.h.
Pass or store a set of BoundingBox2D .
Definition at line 160 of file BoundingBoxD.h.
typedef BoundingBoxD<3> IMP::algebra::BoundingBox3D |
Typedef for python.
Definition at line 160 of file BoundingBoxD.h.
Pass or store a set of BoundingBox3D .
Definition at line 160 of file BoundingBoxD.h.
typedef BoundingBoxD<4> IMP::algebra::BoundingBox4D |
Typedef for python.
Definition at line 160 of file BoundingBoxD.h.
Pass or store a set of BoundingBox4D .
Definition at line 160 of file BoundingBoxD.h.
typedef BoundingBoxD<5> IMP::algebra::BoundingBox5D |
Typedef for python.
Definition at line 160 of file BoundingBoxD.h.
Pass or store a set of BoundingBox5D .
Definition at line 160 of file BoundingBoxD.h.
typedef BoundingBoxD<6> IMP::algebra::BoundingBox6D |
Typedef for python.
Definition at line 160 of file BoundingBoxD.h.
Pass or store a set of BoundingBox6D .
Definition at line 160 of file BoundingBoxD.h.
typedef BoundingBoxD<-1> IMP::algebra::BoundingBoxKD |
Typedef for python.
Definition at line 160 of file BoundingBoxD.h.
Pass or store a set of BoundingBoxKD .
Definition at line 160 of file BoundingBoxD.h.
typedef IMP::base::Vector< Cone3D > IMP::algebra::Cone3Ds |
Pass or store a set of ConnollySurfacePoint .
Definition at line 46 of file algebra/connolly_surface.h.
typedef IMP::base::Vector< Cylinder3D > IMP::algebra::Cylinder3Ds |
Pass or store a set of Cylinder3D .
Definition at line 77 of file Cylinder3D.h.
typedef Grid3D<double, DenseGridStorage3D<double> > IMP::algebra::DenseDoubleGrid3D |
A grid of doubles over a region of space.
Definition at line 91 of file algebra/python_only.h.
typedef Grid3D<float, DenseGridStorage3D<float> > IMP::algebra::DenseFloatGrid3D |
A grid of floats over a region of space.
Definition at line 94 of file algebra/python_only.h.
Pass or store a set of Ellipsoid3D .
Definition at line 65 of file Ellipsoid3D.h.
typedef IMP::base::Vector< FixedXYZ > IMP::algebra::FixedXYZs |
Pass or store a set of FixedXYZ .
Definition at line 430 of file Rotation3D.h.
typedef IMP::base::Vector< Gaussian3D > IMP::algebra::Gaussian3Ds |
Pass or store a set of Gaussian3D .
Definition at line 41 of file Gaussian3D.h.
Pass or store a set of LinearFit2D .
Definition at line 52 of file LinearFit.h.
Pass or store a set of ParabolicFit2D .
Definition at line 54 of file ParabolicFit.h.
typedef IMP::base::Vector< Plane3D > IMP::algebra::Plane3Ds |
Pass or store a set of ReferenceFrame3D .
Definition at line 80 of file ReferenceFrame3D.h.
Pass or store a set of Reflection3D .
Definition at line 34 of file Reflection3D.h.
typedef IMP::base::Vector< Rotation2D > IMP::algebra::Rotation2Ds |
Pass or store a set of Rotation2D .
Definition at line 114 of file Rotation2D.h.
typedef IMP::base::Vector< Rotation3D > IMP::algebra::Rotation3Ds |
Pass or store a set of Rotation3D .
Definition at line 224 of file Rotation3D.h.
typedef IMP::base::Vector< Segment3D > IMP::algebra::Segment3Ds |
Pass or store a set of Segment3D .
Definition at line 51 of file Segment3D.h.
typedef Grid3D<int, SparseGridStorage3D<int, BoundedGridStorage3D> > IMP::algebra::SparseIntGrid3D |
A sparse grid of integers over a bounded region of space.
Definition at line 84 of file algebra/python_only.h.
typedef Grid3D<int, SparseGridStorage3D<int, UnboundedGridStorage3D> > IMP::algebra::SparseUnboundedIntGrid3D |
A sparse grid of integers over all of space.
Definition at line 88 of file algebra/python_only.h.
typedef SphereD<1> IMP::algebra::Sphere1D |
typedef IMP::base::Vector< Sphere1D > IMP::algebra::Sphere1Ds |
typedef SphereD<2> IMP::algebra::Sphere2D |
typedef IMP::base::Vector< Sphere2D > IMP::algebra::Sphere2Ds |
typedef SphereD<3> IMP::algebra::Sphere3D |
typedef IMP::base::Vector< Sphere3D > IMP::algebra::Sphere3Ds |
typedef SphereD<4> IMP::algebra::Sphere4D |
typedef IMP::base::Vector< Sphere4D > IMP::algebra::Sphere4Ds |
typedef SphereD<5> IMP::algebra::Sphere5D |
typedef IMP::base::Vector< Sphere5D > IMP::algebra::Sphere5Ds |
typedef SphereD<6> IMP::algebra::Sphere6D |
typedef IMP::base::Vector< Sphere6D > IMP::algebra::Sphere6Ds |
typedef SphereD<-1> IMP::algebra::SphereKD |
typedef IMP::base::Vector< SphereKD > IMP::algebra::SphereKDs |
Pass or store a set of SpherePatch3D .
Definition at line 50 of file SpherePatch3D.h.
Pass or store a set of SphericalVector3D .
Definition at line 80 of file SphericalVector3D.h.
Pass or store a set of Transformation2D .
Definition at line 117 of file Transformation2D.h.
Pass or store a set of Transformation3D .
Definition at line 85 of file Transformation3D.h.
typedef IMP::base::Vector< Triangle3D > IMP::algebra::Triangle3Ds |
Pass or store a set of Triangle3D .
Definition at line 41 of file Triangle3D.h.
typedef VectorD<1> IMP::algebra::Vector1D |
typedef base::Vector<VectorD<1> > IMP::algebra::Vector1Ds |
typedef VectorD<2> IMP::algebra::Vector2D |
typedef base::Vector<VectorD<2> > IMP::algebra::Vector2Ds |
typedef VectorD<3> IMP::algebra::Vector3D |
typedef base::Vector<VectorD<3> > IMP::algebra::Vector3Ds |
typedef VectorD<4> IMP::algebra::Vector4D |
typedef base::Vector<VectorD<4> > IMP::algebra::Vector4Ds |
typedef VectorD<5> IMP::algebra::Vector5D |
typedef base::Vector<VectorD<5> > IMP::algebra::Vector5Ds |
typedef VectorD<6> IMP::algebra::Vector6D |
typedef base::Vector<VectorD<6> > IMP::algebra::Vector6Ds |
typedef VectorD<-1> IMP::algebra::VectorKD |
Store a set of objects.
Definition at line 32 of file vector_metrics.h.
typedef IMP::base::Vector<IMP::base::WeakPointer< VectorKDMetric > > IMP::algebra::VectorKDMetricsTemp |
Pass a set of objects. See VectorKDMetric
Definition at line 32 of file vector_metrics.h.
typedef base::Vector<VectorD<-1> > IMP::algebra::VectorKDs |
int IMP::algebra::compare | ( | const VectorD< D > & | a, |
const VectorD< D > & | b | ||
) |
Rotation2D IMP::algebra::compose | ( | const Rotation2D & | a, |
const Rotation2D & | b | ||
) |
For any vector v (a*b)*v = a*(b*v).
Definition at line 108 of file Rotation2D.h.
Transformation3D IMP::algebra::compose | ( | const Transformation3D & | a, |
const Transformation3D & | b | ||
) |
For any vector v (a*b)*v = a*(b*v). See Transformation3D
Definition at line 109 of file Transformation3D.h.
Transformation2D IMP::algebra::compose | ( | const Transformation2D & | a, |
const Transformation2D & | b | ||
) |
For any vector v (a*b)*v = a*(b*v). See Transformation2D
Definition at line 144 of file Transformation2D.h.
Rotation3D IMP::algebra::compose | ( | const Rotation3D & | a, |
const Rotation3D & | b | ||
) |
See Rotation3D
Definition at line 348 of file Rotation3D.h.
Transformation3Ds IMP::algebra::get_alignments_from_first_to_second | ( | const PrincipalComponentAnalysisD< 3 > & | pca1, |
const PrincipalComponentAnalysisD< 3 > & | pca2 | ||
) |
Get all possible alignments of the first principal component system to the second one
bool IMP::algebra::get_are_almost_equal | ( | const double | a, |
const double | b, | ||
const double | epsilon | ||
) |
epsilon is the tolerance allowed to consider the values as equal
Definition at line 108 of file algebra/utility.h.
double IMP::algebra::get_area | ( | const SpherePatch3D & | g | ) |
See SpherePatch3D
Definition at line 50 of file SpherePatch3D.h.
double IMP::algebra::get_area | ( | const Plane3D & | g | ) |
std::pair<Vector3D, double> IMP::algebra::get_axis_and_angle | ( | const Rotation3D & | rot | ) |
Decompose a Rotation3D object into a rotation around an axis. For all identity rotations, returns the axis [1,0,0] and the angle 0.0.
double IMP::algebra::get_ball_radius_from_volume_3d | ( | double | volume | ) |
See Sphere3D
Definition at line 35 of file Sphere3D.h.
VectorD<D> IMP::algebra::get_basis_vector_d | ( | unsigned int | coordinate | ) |
BoundingBoxD<3> IMP::algebra::get_bounding_box | ( | const SpherePatch3D & | g | ) |
See SpherePatch3D
Definition at line 50 of file SpherePatch3D.h.
BoundingBoxD<3> IMP::algebra::get_bounding_box | ( | const Segment3D & | g | ) |
See Segment3D
Definition at line 51 of file Segment3D.h.
BoundingBoxD<3> IMP::algebra::get_bounding_box | ( | const Cone3D & | g | ) |
BoundingBoxD<3> IMP::algebra::get_bounding_box | ( | const Ellipsoid3D & | g | ) |
See Ellipsoid3D
Definition at line 65 of file Ellipsoid3D.h.
BoundingBoxD<3> IMP::algebra::get_bounding_box | ( | const Cylinder3D & | g | ) |
See Cylinder3D
Definition at line 77 of file Cylinder3D.h.
BoundingBoxD<3> IMP::algebra::get_bounding_box | ( | const Plane3D & | g | ) |
BoundingBoxD<D> IMP::algebra::get_bounding_box | ( | const SphereD< D > & | g | ) |
BoundingBoxD<D> IMP::algebra::get_bounding_box | ( | const BoundingBoxD< D > & | g | ) |
See BoundingBox
Definition at line 160 of file BoundingBoxD.h.
const BoundingBoxD<D>& IMP::algebra::get_bounding_box_d_geometry | ( | const BoundingBoxD< D > & | g | ) |
See BoundingBox
Definition at line 160 of file BoundingBoxD.h.
Vector3D IMP::algebra::get_centroid | ( | const Vector3Ds & | ps | ) |
See Vector3D
Definition at line 56 of file Vector3D.h.
const Cone3D& IMP::algebra::get_cone_3d_geometry | ( | const Cone3D & | g | ) |
ConnollySurfacePoints IMP::algebra::get_connolly_surface | ( | const algebra::Sphere3Ds & | spheres, |
double | density, | ||
double | probe_radius | ||
) |
The algorithm is taken from Connolly's original MS program, which is freely distributable and Copyright 1983, Michael Connolly.
M.L. Connolly, "Solvent-accessible surfaces of proteins and nucleic acids", Science, 221, p709-713 (1983).
M.L. Connolly, "Analytical molecular surface calculation", J. Appl. Cryst. 16, p548-558 (1983).
See also get_uniform_surface_cover(const IMP::algebra::Sphere3Ds&, double) for a faster alternative.
IMP_Eigen::Matrix3d IMP::algebra::get_covariance | ( | const Gaussian3D & | g | ) |
Return the covariance matrix from a given set of standard deviations in the passed reference frame.
BoundingBoxD<D> IMP::algebra::get_cube_d | ( | double | radius | ) |
See BoundingBoxD
Definition at line 178 of file BoundingBoxD.h.
BoundingBoxD<-1> IMP::algebra::get_cube_kd | ( | unsigned int | d, |
double | radius | ||
) |
See BoundingBoxD
Definition at line 185 of file BoundingBoxD.h.
const Cylinder3D& IMP::algebra::get_cylinder_3d_geometry | ( | const Cylinder3D & | g | ) |
See Cylinder3D
Definition at line 77 of file Cylinder3D.h.
std::string IMP::algebra::get_data_path | ( | std::string | file_name | ) |
Each module has its own data directory, so be sure to use the version of this function in the correct module. To read the data file "data_library" that was placed in the data
directory of module "mymodule", do something like
This will ensure that the code works when IMP
is installed or used via the setup_environment.sh
script.
double IMP::algebra::get_distance | ( | const Plane3D & | pln, |
const Vector3D & | p | ||
) |
double IMP::algebra::get_distance | ( | const Segment3D & | s, |
const Vector3D & | p | ||
) |
See Segment3D
double IMP::algebra::get_distance | ( | const Segment3D & | a, |
const Segment3D & | b | ||
) |
See Segment3D
double IMP::algebra::get_distance | ( | const SphereD< D > & | a, |
const SphereD< D > & | b | ||
) |
double IMP::algebra::get_distance | ( | const VectorD< D > & | v1, |
const VectorD< D > & | v2 | ||
) |
double IMP::algebra::get_distance | ( | const Rotation3D & | r0, |
const Rotation3D & | r1 | ||
) |
The distance runs between 0 and 1. More precisely, the distance returned is distance between the two quaternion vectors properly normalized, divided by sqrt(2).
A vector with distance d from the unit vector represents a rotation of
\( \theta= \cos^{-1}\left(1-\sqrt{2}d\right)\) See Rotation3D
Definition at line 242 of file Rotation3D.h.
IntPairs IMP::algebra::get_edges | ( | const BoundingBoxD< 3 > & | ) |
See BoundingBoxD
Definition at line 289 of file BoundingBoxD.h.
VectorD<D> IMP::algebra::get_elementwise_product | ( | const algebra::VectorD< D > & | a, |
const algebra::VectorD< D > & | b | ||
) |
VectorD<D> IMP::algebra::get_elementwise_product | ( | const Ints & | a, |
const algebra::VectorD< D > & | b | ||
) |
const Ellipsoid3D& IMP::algebra::get_ellipsoid_3d_geometry | ( | const Ellipsoid3D & | g | ) |
See Ellipsoid3D
Definition at line 65 of file Ellipsoid3D.h.
Sphere3D IMP::algebra::get_enclosing_sphere | ( | const Sphere3Ds & | ss | ) |
See Sphere3D
Sphere3D IMP::algebra::get_enclosing_sphere | ( | const Vector3Ds & | ss | ) |
See Sphere3D See Vector3D
std::string IMP::algebra::get_example_path | ( | std::string | file_name | ) |
Each module has its own example directory, so be sure to use the version of this function in the correct module. For example to read the file example_protein.pdb
located in the examples
directory of the IMP::atom module, do
This will ensure that the code works when IMP
is installed or used via the setup_environment.sh
script.
FixedXYZ IMP::algebra::get_fixed_xyz_from_rotation | ( | const Rotation3D & | r | ) |
Gaussian3D IMP::algebra::get_gaussian_from_covariance | ( | const IMP_Eigen::Matrix3d & | covariance, |
const Vector3D & | center | ||
) |
Return a Gaussian centered at the origin from a covariance matrix.
base::Vector<VectorD<D> > IMP::algebra::get_grid_interior_cover_by_spacing | ( | const BoundingBoxD< D > & | bb, |
double | s | ||
) |
Cover the interior of the bounding box by equal sized parallelograms of approximately full-width s, returning the list of centers of the cubes.
Definition at line 170 of file vector_generators.h.
Vector3Ds IMP::algebra::get_grid_surface_cover | ( | const Cylinder3D & | cyl, |
int | number_of_cycles, | ||
int | number_of_points_on_cycle | ||
) |
See Vector3D See Cylinder3D
Rotation3D IMP::algebra::get_identity_rotation_3d | ( | ) |
See Rotation3D
Definition at line 228 of file Rotation3D.h.
Transformation2D IMP::algebra::get_identity_transformation_2d | ( | ) |
See Transformation2D
Definition at line 123 of file Transformation2D.h.
Transformation3D IMP::algebra::get_identity_transformation_3d | ( | ) |
See Transformation3D
Definition at line 89 of file Transformation3D.h.
bool IMP::algebra::get_interiors_intersect | ( | const SphereD< D > & | a, |
const SphereD< D > & | b | ||
) |
bool IMP::algebra::get_interiors_intersect | ( | const BoundingBoxD< D > & | a, |
const BoundingBoxD< D > & | b | ||
) |
See BoundingBoxD
Definition at line 193 of file BoundingBoxD.h.
Rotation3D IMP::algebra::get_interpolated | ( | const Rotation3D & | a, |
const Rotation3D & | b, | ||
double | f | ||
) |
It f ==0, return b, if f==1 return a. See Rotation3D
Definition at line 445 of file Rotation3D.h.
BoundingBoxD<D> IMP::algebra::get_intersection | ( | const BoundingBoxD< D > & | a, |
const BoundingBoxD< D > & | b | ||
) |
See BoundingBoxD
Definition at line 207 of file BoundingBoxD.h.
Triangle3D IMP::algebra::get_largest_triangle | ( | const Vector3Ds & | points | ) |
See Triangle3D
Value IMP::algebra::get_linearly_interpolated | ( | const GridD< D, Storage, Value, Embedding > & | g, |
const VectorD< D > & | pt | ||
) |
Get the value from the grid with linear interpolation. Values outside the bounding box are snapped to the bounding box (effectively extending the boundary values out to infinity).
Definition at line 23 of file grid_utility.h.
double IMP::algebra::get_maximum_length | ( | const BoundingBoxD< D > & | a | ) |
See BoundingBoxD
Definition at line 244 of file BoundingBoxD.h.
VectorD<-1 > IMP::algebra::get_ones_vector_kd | ( | unsigned int | Di, |
double | v = 1 |
||
) |
Vector3D IMP::algebra::get_orthogonal_vector | ( | const Vector3D & | v | ) |
Or, if you are Israeli, it is a vertical vector. See Vector3D
Definition at line 39 of file Vector3D.h.
const Plane3D& IMP::algebra::get_plane_3d_geometry | ( | const Plane3D & | g | ) |
double IMP::algebra::get_power_distance | ( | const SphereD< D > & | a, |
const SphereD< D > & | b | ||
) |
PrincipalComponentAnalysisD<D> IMP::algebra::get_principal_components | ( | const base::Vector< VectorD< D > > & | ps | ) |
See PrincipalComponentAnalysis
Definition at line 109 of file eigen_analysis.h.
double IMP::algebra::get_radius_of_gyration | ( | const Vector3Ds & | ps | ) |
Vector3Ds IMP::algebra::get_random_chain | ( | unsigned int | n, |
double | r, | ||
const Vector3D & | start = Vector3D(0, 0, 0) , |
||
const Sphere3Ds & | obstacles = Sphere3Ds() |
||
) |
This function generates a random chain, starting at (0,0,0) with n particles each with radius r. Consecutive particles are approximately distance 2r apart and no pair of particles is closer than 2r.
If an obstacles parameter is provided then chain spheres also don't intersect the obstacle spheres.
Transformation3D IMP::algebra::get_random_local_transformation | ( | Vector3D | origin, |
double | max_translation = 5. , |
||
double | max_angle_in_rad = 0.26 |
||
) |
[in] | origin | the origin of the rotation |
[in] | max_translation | detault value is 5 |
[in] | max_angle_in_rad | default value is 15 degree in radians |
Rotation3D IMP::algebra::get_random_rotation_3d | ( | ) |
See Rotation3D
Rotation3D IMP::algebra::get_random_rotation_3d | ( | const Rotation3D & | center, |
double | distance | ||
) |
This method generates a rotation that is within the provided distance of center.
[in] | center | The center of the rotational volume |
[in] | distance | See get_distance(const Rotation3D&,const Rotation3D&) for a full definition. |
See Rotation3D
VectorD<D> IMP::algebra::get_random_vector_in | ( | const BoundingBoxD< D > & | bb | ) |
See BoundingBoxD See VectorD
Definition at line 39 of file vector_generators.h.
VectorD<D> IMP::algebra::get_random_vector_in | ( | const SphereD< D > & | s | ) |
VectorD<2> IMP::algebra::get_random_vector_in | ( | const SphereD< 2 > & | s | ) |
Vector3D IMP::algebra::get_random_vector_in | ( | const Cylinder3D & | c | ) |
See VectorD See Cylinder3D
VectorD<D> IMP::algebra::get_random_vector_on | ( | const BoundingBoxD< D > & | bb | ) |
See BoundingBoxD See VectorD
Definition at line 48 of file vector_generators.h.
VectorD<D> IMP::algebra::get_random_vector_on | ( | const SphereD< D > & | s | ) |
Definition at line 100 of file vector_generators.h.
VectorD<3> IMP::algebra::get_random_vector_on_unit_sphere | ( | ) |
returns a random vector on a sphere of radius 1 with uniform density and implementation optimized for the 3D + unit vector case
Definition at line 91 of file vector_generators.h.
DenseGrid3D<float> IMP::algebra::get_rasterized | ( | const Gaussian3Ds & | gmm, |
const Floats & | weights, | ||
double | cell_width, | ||
const BoundingBox3D & | bb | ||
) |
Rasterize the gaussians to a grid.
double IMP::algebra::get_relative_projection_on_segment | ( | const Segment3D & | s, |
const algebra::Vector3D & | p | ||
) |
Returns f, the 'relative' projection of a point p onto the line that contains s. Formally, the projection of p onto the line through s is s[0]+f*(s[1]-s[0]) f is in the range [0..1] if the projection of p is inside s.
s | segment in 3D |
p | point in 3D |
double IMP::algebra::get_rmsd | ( | const Vector3DsOrXYZs0 & | m1, |
const Vector3DsOrXYZs1 & | m2 | ||
) |
Se get_rmsd_transforming_first().
Definition at line 47 of file algebra/distance.h.
double IMP::algebra::get_rmsd_transforming_first | ( | const Transformation3D & | tr, |
const Vector3DsOrXYZs0 & | m1, | ||
const Vector3DsOrXYZs1 & | m2 | ||
) |
See generic geometry for more information.
Definition at line 27 of file algebra/distance.h.
Rotation3D IMP::algebra::get_rotation_about_axis | ( | const Vector3D & | axis, |
double | angle | ||
) |
[in] | axis | the rotation axis passes through (0,0,0) |
[in] | angle | the rotation angle in radians in the clockwise direction |
Rotation3D IMP::algebra::get_rotation_about_normalized_axis | ( | const Vector3D & | axis_norm, |
double | angle | ||
) |
Generate a Rotation3D object from a rotation around an axis that is assumed to be normalized
[in] | axis_norm | the normalized rotation axis passing through (0,0,0) |
[in] | angle | the rotation angle in radians in the clockwise direction |
Transformation3D IMP::algebra::get_rotation_about_point | ( | const Vector3D & | point, |
const Rotation3D & | rotation | ||
) |
Rotate about a point rather than the origin.
[in] | point | Center to rotate about |
[in] | rotation | The rotation to perform |
See Transformation3D
Definition at line 100 of file Transformation3D.h.
Transformation2D IMP::algebra::get_rotation_about_point | ( | const Vector2D & | point, |
const Rotation2D & | rotation | ||
) |
Generates a Transformation2D to rotate about a point rather than the origin.
[in] | point | Center to rotate about |
[in] | rotation | The rotation to perform (defined taking the origin as reference, not the new point). See Transformation2D |
Definition at line 135 of file Transformation2D.h.
Rotation3D IMP::algebra::get_rotation_from_fixed_xyz | ( | double | xr, |
double | yr, | ||
double | zr | ||
) |
[in] | xr | Rotation around the X axis in radians |
[in] | yr | Rotation around the Y axis in radians |
[in] | zr | Rotation around the Z axis in radians |
Rotation3D IMP::algebra::get_rotation_from_fixed_zxz | ( | double | phi, |
double | theta, | ||
double | psi | ||
) |
[in] | phi | Rotation around the Z axis in radians |
[in] | theta | Rotation around the X axis in radians |
[in] | psi | Rotation around the Z axis in radians |
Rotation3D IMP::algebra::get_rotation_from_fixed_zyz | ( | double | Rot, |
double | Tilt, | ||
double | Psi | ||
) |
[in] | Rot | First Euler angle (radians) defining the rotation (Z axis) |
[in] | Tilt | Second Euler angle (radians) defining the rotation (Y axis) |
[in] | Psi | Third Euler angle (radians) defining the rotation (Z axis) See Rotation3D |
Rotation3D IMP::algebra::get_rotation_from_matrix | ( | double | m00, |
double | m01, | ||
double | m02, | ||
double | m10, | ||
double | m11, | ||
double | m12, | ||
double | m20, | ||
double | m21, | ||
double | m22 | ||
) |
See Rotation3D
Rotation3D IMP::algebra::get_rotation_from_matrix | ( | IMP_Eigen::Matrix3d | m | ) |
See Rotation3D
Rotation3D IMP::algebra::get_rotation_from_vector4d | ( | const VectorD< 4 > & | v | ) |
See Rotation3D
Definition at line 341 of file Rotation3D.h.
Rotation3D IMP::algebra::get_rotation_from_x_y_axes | ( | const Vector3D & | x, |
const Vector3D & | y | ||
) |
Return the rotation which takes the native x and y axes to the given x and y axes. The two axis must be perpendicular unit vectors.
Rotation3D IMP::algebra::get_rotation_taking_first_to_second | ( | const Vector3D & | v1, |
const Vector3D & | v2 | ||
) |
See Rotation3D
Rotation2D IMP::algebra::get_rotation_to_x_axis | ( | const Vector2D & | v | ) |
Builds the rotation that transforms the vector X of the origin of coordinates into the given vector
Definition at line 100 of file Rotation2D.h.
int IMP::algebra::get_rounded | ( | const T & | x | ) |
The result is of type integer but the argument can be of any type. Some examples:
Definition at line 43 of file algebra/utility.h.
const Segment3D& IMP::algebra::get_segment_3d_geometry | ( | const Segment3D & | g | ) |
See Segment3D
Definition at line 51 of file Segment3D.h.
Segment3D IMP::algebra::get_shortest_segment | ( | const Segment3D & | s, |
const Vector3D & | p | ||
) |
See Segment3D See Vector3D
Segment3D IMP::algebra::get_shortest_segment | ( | const Segment3D & | sa, |
const Segment3D & | sb | ||
) |
See Segment3D
Sphere3Ds IMP::algebra::get_simplified_from_volume | ( | Sphere3Ds | in, |
double | maximum_allowed_error_angstroms | ||
) |
Return a set of balls that approximates the surface of the passed set within the error tolerance.
The any point in the old surface will be within roughly maximum_allowed_error_angstroms of a point in the new surface and any point outside the old volume will be within roughly maximum_allowed_error_angstroms of a point outside the new volume.
const SphereD<D>& IMP::algebra::get_sphere_d_geometry | ( | const SphereD< D > & | g | ) |
const SpherePatch3D& IMP::algebra::get_sphere_patch_3d_geometry | ( | const SpherePatch3D & | g | ) |
See SpherePatch3D
Definition at line 50 of file SpherePatch3D.h.
double IMP::algebra::get_squared_distance | ( | const VectorD< D > & | v1, |
const VectorD< D > & | v2 | ||
) |
double IMP::algebra::get_surface_area | ( | const Cone3D & | g | ) |
double IMP::algebra::get_surface_area | ( | const Ellipsoid3D & | g | ) |
See Ellipsoid3D
Definition at line 65 of file Ellipsoid3D.h.
double IMP::algebra::get_surface_area | ( | const Cylinder3D & | g | ) |
See Cylinder3D
Definition at line 77 of file Cylinder3D.h.
double IMP::algebra::get_surface_area | ( | const SphereD< 3 > & | g | ) |
double IMP::algebra::get_surface_area | ( | const BoundingBoxD< 3 > & | g | ) |
See BoundingBox
Definition at line 160 of file BoundingBoxD.h.
FloatPair IMP::algebra::get_surface_area_and_volume | ( | const algebra::Sphere3Ds & | ss | ) |
Return the surface area and volume of the union of the balls bounded by the spheres. This method requires CGAL to work.
Transformation3D IMP::algebra::get_transformation_3d | ( | const Transformation2D & | t2d | ) |
IMP::algebra::Transformation3D IMP::algebra::get_transformation_aligning_first_to_second | ( | const Vector3DsOrXYZs0 & | source, |
const Vector3DsOrXYZs1 & | target | ||
) |
The points are assumed to be corresponding (that is, from[0] is aligned to to[0] etc.). The alignment computed is that which minimized the sum of squared distances between corresponding points. Return the
\[ \textit{argmin}_T \sum \left|T\left(f\left[i\right]\right)-t[i]\right|^2 \]
If the point sets lie in a 1 or 2 dimensional subspace, the alignment algorithm is unstable and not guaranteed to work. A warning is printed in this case.
See generic geometry for more information.
See Transformation3D
Definition at line 42 of file geometric_alignment.h.
Transformation3D IMP::algebra::get_transformation_aligning_first_to_second | ( | Vector3Ds | a, |
Vector3Ds | b | ||
) |
Equivalent to
Transformation2D IMP::algebra::get_transformation_aligning_pair | ( | const Vector2Ds & | set_from, |
const Vector2Ds & | set_to | ||
) |
Builds the transformation required to obtain a set of points from the first one
const Storage::Value IMP::algebra::get_trilinearly_interpolated | ( | const GridD< 3, Storage, typename Storage::Value, Embedding > & | g, |
const Vector3D & | v, | ||
const typename Storage::Value & | outside = 0 |
||
) |
The voxel values are assumed to be at the center of the voxel and the passed outside value is used for voxels outside the grid. The type Voxel must support get_linearly_interpolated().
Definition at line 36 of file grid_utility.h.
Rotation3Ds IMP::algebra::get_uniform_cover_rotations_3d | ( | unsigned int | num_points | ) |
If you care about the distance between samples instead of the number of samples, the "surface area" of the set of rotations is pi^2. If you allocate each sample a volume of 4/3 pi d^3 (to space them d apart), Then you want 3/4 pi/d^3 points.
Creates at least num_points rotations.
base::Vector<VectorD<D> > IMP::algebra::get_uniform_surface_cover | ( | const SphereD< D > & | s, |
unsigned int | n | ||
) |
The function is currently pretty slow, especially in non-optimized builds. Complain if this bugs you. We might be able to do better, at least in 3D.
Creates at least the requested number of points.
Definition at line 116 of file vector_generators.h.
Vector3Ds IMP::algebra::get_uniform_surface_cover | ( | const Cylinder3D & | cyl, |
int | number_of_points | ||
) |
See VectorD See Cylinder3D
Vector3Ds IMP::algebra::get_uniform_surface_cover | ( | const SpherePatch3D & | sph, |
unsigned int | number_of_points | ||
) |
Vector3Ds IMP::algebra::get_uniform_surface_cover | ( | const Cone3D & | cone, |
unsigned int | number_of_points | ||
) |
Vector3Ds IMP::algebra::get_uniform_surface_cover | ( | const Sphere3Ds & | in, |
double | points_per_square_angstrom | ||
) |
Return a cover of the surface of the volume defined by a union of balls bounded by the spheres.
This is effectively a sampling of the solvent exposed surface of a set of spheres. The density of points has approximately the passed value.
This method is much faster than get_connolly_surface().
base::Vector<VectorD<D> > IMP::algebra::get_uniform_upper_hemisphere_cover | ( | const SphereD< D > & | s, |
unsigned int | n | ||
) |
The points all lie on the upper hemisphere, eg, all their z coordinates are greater than those of the center of the sphere.
Definition at line 134 of file vector_generators.h.
algebra::Rotation3Ds IMP::algebra::get_uniformly_sampled_rotations | ( | double | delta | ) |
[in] | delta | sample every delta angles in radians. |
BoundingBoxD<D> IMP::algebra::get_union | ( | BoundingBoxD< D > | a, |
const BoundingBoxD< D > & | b | ||
) |
This is the same as doing a+b. See BoundingBoxD
Definition at line 236 of file BoundingBoxD.h.
BoundingBoxD<D> IMP::algebra::get_unit_bounding_box_d | ( | ) |
See BoundingBoxD
Definition at line 165 of file BoundingBoxD.h.
BoundingBoxD<-1> IMP::algebra::get_unit_bounding_box_kd | ( | unsigned int | d | ) |
See BoundingBoxD
Definition at line 171 of file BoundingBoxD.h.
VT IMP::algebra::get_unit_vector | ( | VT | vt | ) |
Returns a unit vector pointing at the same direction as this vector.
Definition at line 242 of file VectorBaseD.h.
const VectorD<C::DIMENSION>& IMP::algebra::get_vector_geometry | ( | const C & | g | ) |
See VectorD See generic geometry for more information.
Vector3D IMP::algebra::get_vector_product | ( | const Vector3D & | p1, |
const Vector3D & | p2 | ||
) |
See Vector3D
Definition at line 31 of file Vector3D.h.
base::Vector<VectorD<D> > IMP::algebra::get_vertices | ( | const BoundingBoxD< D > & | bb | ) |
See BoundingBoxD
Definition at line 256 of file BoundingBoxD.h.
double IMP::algebra::get_volume | ( | const Cone3D & | g | ) |
double IMP::algebra::get_volume | ( | const Ellipsoid3D & | g | ) |
See Ellipsoid3D
Definition at line 65 of file Ellipsoid3D.h.
double IMP::algebra::get_volume | ( | const Cylinder3D & | g | ) |
See Cylinder3D
Definition at line 77 of file Cylinder3D.h.
double IMP::algebra::get_volume | ( | const SphereD< 3 > & | g | ) |
double IMP::algebra::get_volume | ( | const BoundingBoxD< D > & | bb | ) |
See BoundingBoxD
Definition at line 147 of file BoundingBoxD.h.
double IMP::algebra::get_volume | ( | const BoundingBoxD< 3 > & | g | ) |
See BoundingBox
Definition at line 160 of file BoundingBoxD.h.
VectorD<D> IMP::algebra::operator* | ( | double | s, |
VectorD< D > | o | ||
) |
void IMP::algebra::reversed_read | ( | void * | dest, |
size_t | size, | ||
size_t | nitems, | ||
std::ifstream & | f, | ||
bool | reverse | ||
) |
If the reverse parameter is true, the data will be read in reverse order.
void IMP::algebra::reversed_write | ( | const void * | src, |
size_t | size, | ||
size_t | nitems, | ||
std::ofstream & | f, | ||
bool | reverse = false |
||
) |
This function is the same as fread from C, but at the end there is a flag saying if data should be read in reverse order or not.
If the reverse parameter is true, the data will be written in reverse order.
void IMP::algebra::set_bounding_box_d_geometry | ( | BoundingBoxD< D > & | g, |
const BoundingBoxD< D > & | v | ||
) |
See BoundingBox
Definition at line 160 of file BoundingBoxD.h.
void IMP::algebra::set_cone_3d_geometry | ( | Cone3D & | g, |
const Cone3D & | v | ||
) |
void IMP::algebra::set_cylinder_3d_geometry | ( | Cylinder3D & | g, |
const Cylinder3D & | v | ||
) |
See Cylinder3D
Definition at line 77 of file Cylinder3D.h.
void IMP::algebra::set_ellipsoid_3d_geometry | ( | Ellipsoid3D & | g, |
const Ellipsoid3D & | v | ||
) |
See Ellipsoid3D
Definition at line 65 of file Ellipsoid3D.h.
void IMP::algebra::set_plane_3d_geometry | ( | Plane3D & | g, |
const Plane3D & | v | ||
) |
void IMP::algebra::set_sphere_d_geometry | ( | SphereD< D > & | g, |
const SphereD< D > & | v | ||
) |
void IMP::algebra::set_sphere_patch_3d_geometry | ( | SpherePatch3D & | g, |
const SpherePatch3D & | v | ||
) |
See SpherePatch3D
Definition at line 50 of file SpherePatch3D.h.
void IMP::algebra::set_vector_geometry | ( | C & | g, |
const E & | v | ||
) |
See VectorD See generic geometry for more information.
void IMP::algebra::write_pts | ( | const Vector3Ds & | vs, |
base::TextOutput | out | ||
) |