Skip to content

Commit

Permalink
Merge for 2.6.2 release.
Browse files Browse the repository at this point in the history
  • Loading branch information
benmwebb committed May 23, 2016
2 parents e487c2c + 0e48b7e commit d37a95a
Show file tree
Hide file tree
Showing 66 changed files with 375 additions and 332 deletions.
6 changes: 6 additions & 0 deletions ChangeLog.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
ChangeLog {#changelog}
=========

# 2.6.2 - 2016-05-25 # {#changelog_2_6_2}
- Add support for SWIG 3.0.8.
- Add support for Ubuntu 16.04, Xenial Xerus.
- Minor documentation fixes.
- Bugfix: fix detection of termini in IMP::atom::Selection.

# 2.6.1 - 2016-04-14 # {#changelog_2_6_1}
- The 'cluster' binary is now called 'rmsd_cluster' to avoid conflicts with
other packages (e.g. graphviz also provides a 'cluster' binary).
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.6.1
2.6.2
2 changes: 1 addition & 1 deletion doc/manual/install_windows.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ that you're going to use to build %IMP. The basic procedure is as follows:
- Install Microsoft Visual Studio Express (it is free, but registration with
Microsoft is required).
- Get and install [cmake](http://www.cmake.org).
- Get [Python 2](http://www.python.org) (not Python 3)
- Get [Python](http://www.python.org)
(make sure you get the
32-bit version if you're going to build %IMP for 32-bit Windows).
- Get and install the
Expand Down
3 changes: 1 addition & 2 deletions doc/manual/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,7 @@ In order to build %IMP from source, you will need:
- [HDF5](http://www.hdfgroup.org/HDF5/) (1.8 or later)
- [Python](http://www.python.org) (2.6 or later, or any version of Python 3)
- [SWIG](http://www.swig.org) (1.3.40 or later; 2.0.4 or later is needed
if you want to use Python 3; note that 3.0.8 does not
[currently work](https://github.com/swig/swig/issues/583))
if you want to use Python 3)

The following prerequisites are _optional_; without them some parts of %IMP
will not build, and some will not function optimally.
Expand Down
2 changes: 1 addition & 1 deletion modules/algebra/include/Cylinder3D.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/**
* \file IMP/algebra/Cylinder3D.h
* \brief stores a cylinder
* \brief Represent a cylinder in 3D.
*
* Copyright 2007-2016 IMP Inventors. All rights reserved.
*/
Expand Down
3 changes: 2 additions & 1 deletion modules/algebra/include/GeometricPrimitiveD.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/**
* \file IMP/algebra/GeometricPrimitiveD.h \brief Basic types used by IMP.
* \file IMP/algebra/GeometricPrimitiveD.h
* \brief Base class for geometric types.
*
* Copyright 2007-2016 IMP Inventors. All rights reserved.
*
Expand Down
2 changes: 1 addition & 1 deletion modules/algebra/include/ParabolicFit.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/**
* \file IMP/algebra/ParabolicFit.h
* \brief fit the data with parabola
* \brief Fit data with parabola
*
* Copyright 2007-2016 IMP Inventors. All rights reserved.
*
Expand Down
10 changes: 6 additions & 4 deletions modules/algebra/include/ReferenceFrame3D.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/**
* \file IMP/algebra/ReferenceFrame3D.h \brief Simple 3D rotation class.
* \file IMP/algebra/ReferenceFrame3D.h
* \brief A reference frame in 3D.
*
* Copyright 2007-2016 IMP Inventors. All rights reserved.
*
Expand All @@ -13,7 +14,7 @@

IMPALGEBRA_BEGIN_NAMESPACE

//! A reference frame in 3D.
//! A reference frame in 3D.
/**
\geometry
*/
Expand All @@ -32,10 +33,11 @@ class IMPALGEBRAEXPORT ReferenceFrame3D {
public:
IMP_CXX11_DEFAULT_COPY_CONSTRUCTOR(ReferenceFrame3D);
//! Create the default reference frame
/** That is, the origin with x,y,z axis as the principal axes.*/
/** That is, the origin with x,y,z axis as the principal axes. */
ReferenceFrame3D()
: tr_(get_identity_transformation_3d()), has_inverse_(true), tri_(tr_) {}
//! a reference frame specified by a transformation matrix

//! A reference frame specified by a transformation matrix
/** Constructs a reference frame using transformation tr
@param tr a transformation from local coordinates in this
Expand Down
2 changes: 0 additions & 2 deletions modules/algebra/include/Reflection3D.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@
IMPALGEBRA_BEGIN_NAMESPACE

//! Reflect about a plane in 3D
/**
*/
class Reflection3D : public GeometricPrimitiveD<3> {
Plane3D pl_;

Expand Down
27 changes: 14 additions & 13 deletions modules/algebra/include/Rotation2D.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/**
* \file IMP/algebra/Rotation2D.h
* \brief Classes and operations related with rotations
* \brief Represent a rotation in 2D space.
*
* Copyright 2007-2016 IMP Inventors. All rights reserved.
*/
Expand All @@ -25,7 +25,7 @@ class Rotation2D;
Rotation2D compose(const Rotation2D &a, const Rotation2D &b);
#endif

//! Stores a 2D rotation matrix
//! Represent a rotation in 2D space.
/**
\note This class requires the angles to be given in radians, and the
convention used is that the rotations are performed rotating counterclockwise
Expand All @@ -37,10 +37,10 @@ class Rotation2D : public GeometricPrimitiveD<2> {
public:
Rotation2D() : angle_(std::numeric_limits<double>::quiet_NaN()) {};

//! Builds the matrix for the given angle
//! Build the matrix for the given angle
Rotation2D(double angle) { set_angle(angle); }

//! rotates a 2D point
//! Rotate a 2D point
/**
* \param[in] o a 2D vector to be rotated
*/
Expand All @@ -50,21 +50,21 @@ class Rotation2D : public GeometricPrimitiveD<2> {
return get_rotated(o[0], o[1]);
}

//! rotates a 2D point
//! Rotate a 2D point
Vector2D get_rotated(const double x, const double y) const {
IMP_INTERNAL_CHECK(!IMP::isnan(angle_),
"Attempting to use uninitialized rotation");
return Vector2D(c_ * x - s_ * y, s_ * x + c_ * y);
}

//! Returns the matrix for the inverse rotation
//! Return the matrix for the inverse rotation
Rotation2D get_inverse() const {
IMP_INTERNAL_CHECK(!IMP::isnan(angle_),
"Attempting to use uninitialized rotation");
return Rotation2D(-angle_);
}

//! sets the angle for the rotation
//! Set the angle for the rotation
/**
* \param[in] angle the angle
*/
Expand All @@ -74,10 +74,10 @@ class Rotation2D : public GeometricPrimitiveD<2> {
s_ = sin(angle);
}

//! gets the angle
//! Get the angle
double get_angle() const { return angle_; }

//! Prints the angle
//! Print the angle
IMP_SHOWABLE_INLINE(Rotation2D, out << "Rotation2D (radians): " << angle_;);

private:
Expand All @@ -86,22 +86,22 @@ class Rotation2D : public GeometricPrimitiveD<2> {
double s_; // sine of the angle
};

//! Builds an identity rotation in 2D
//! Build an identity rotation in 2D
inline Rotation2D get_identity_rotation_2d() { return Rotation2D(0.0); }

//! Builds an identity rotation in 2D
//! Build an identity rotation in 2D
inline Rotation2D get_random_rotation_2d() {
return Rotation2D(2 * PI *
boost::uniform_01<>()(random_number_generator));
}

//! Builds the rotation that transforms the vector X of the origin
//! Build the rotation that transforms the vector X of the origin
//! of coordinates into the given vector
inline Rotation2D get_rotation_to_x_axis(const Vector2D &v) {
return Rotation2D(atan2(v[1], v[0]));
}

//! compose two rotations a and b
//! Compose two rotations a and b.
/**
For any vector v (a*b)*v = a*(b*v).
*/
Expand All @@ -114,4 +114,5 @@ inline Rotation2D compose(const Rotation2D &a, const Rotation2D &b) {
IMP_VALUES(Rotation2D, Rotation2Ds);

IMPALGEBRA_END_NAMESPACE

#endif /* IMPALGEBRA_ROTATION_2D_H */
10 changes: 5 additions & 5 deletions modules/algebra/include/Rotation3D.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ class IMPALGEBRAEXPORT Rotation3D : public GeometricPrimitiveD<3> {
IMP_CXX11_DEFAULT_COPY_CONSTRUCTOR(Rotation3D);

//! Create a rotation from a vector of 4 quaternion coefficients.
//! @note: use assume_normalize with care - inputting an unnormalized
//! @note: use assume_normalized with care - inputting an unnormalized
//! vector would result in unexpected results if it is true
explicit Rotation3D(const VectorD<4> &v,
bool assume_normalized=false)
Expand Down Expand Up @@ -120,7 +120,7 @@ class IMPALGEBRAEXPORT Rotation3D : public GeometricPrimitiveD<3> {
o[2]);
}

//! Gets only the requested rotation coordinate of the vector
//! Get only the requested rotation coordinate of the vector
double get_rotated_one_coordinate_no_cache(const Vector3D &o,
unsigned int coord) const {
IMP_USAGE_CHECK(get_is_valid(),
Expand Down Expand Up @@ -158,7 +158,7 @@ class IMPALGEBRAEXPORT Rotation3D : public GeometricPrimitiveD<3> {
return Vector3D(o * matrix_[0], o * matrix_[1], o * matrix_[2]);
}

//! Gets only the requested rotation coordinate of the vector
//! Get only the requested rotation coordinate of the vector
double get_rotated_one_coordinate(const Vector3D &o,
unsigned int coord) const {
IMP_USAGE_CHECK(get_is_valid(),
Expand Down Expand Up @@ -195,7 +195,7 @@ class IMPALGEBRAEXPORT Rotation3D : public GeometricPrimitiveD<3> {
return v_;
}

//! multiply two rotations
//! Multiply two rotations
Rotation3D operator*(const Rotation3D &q) const {
IMP_USAGE_CHECK(get_is_valid(),
"Attempting to compose uninitialized rotation");
Expand All @@ -220,7 +220,7 @@ class IMPALGEBRAEXPORT Rotation3D : public GeometricPrimitiveD<3> {
*/
const Vector3D get_derivative(const Vector3D &o, unsigned int i) const;

/** returns true is the rotation is valid, false if
/** Return true is the rotation is valid, false if
invalid or not initialized (e.g., only initialized by
the empty constructor)
*/
Expand Down
19 changes: 8 additions & 11 deletions modules/algebra/include/Segment3D.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,13 @@ class IMPALGEBRAEXPORT Segment3D : public GeometricPrimitiveD<3> {
public:
Segment3D() {}
Segment3D(const Vector3D &start, const Vector3D &end);
//! Get the start=0/end=1 point of the segment
//! Get the start (i==0) or end (i==1) point of the segment
const Vector3D &get_point(unsigned int i) const {
IMP_INTERNAL_CHECK(i < 2, "Invalid point index");
return p_[i];
}
Vector3D get_middle_point() const { return .5 * p_[0] + .5 * p_[1]; }
/** \brief Get a normalized direction vector pointing from
get_point(0) to get_point(1).
*/
//! Get a normalized direction vector from get_point(0) to get_point(1).
Vector3D get_direction() const { return (p_[1] - p_[0]).get_unit_vector(); }
double get_length() const;
IMP_SHOWABLE_INLINE(Segment3D,
Expand All @@ -47,15 +45,14 @@ IMP_LINEAR_GEOMETRY_METHODS(Segment3D, segment_3d,
return BoundingBoxD<3>(g.get_point(0)) +
BoundingBoxD<3>(g.get_point(1)));

/** 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.
//! Return 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.
@param s segment in 3D
@param p point in 3D
@param s segment in 3D
@param p point in 3D
@return the 'relative' project of p onto the line containing s
@return the 'relative' projection of p onto the line containing s
*/
IMPALGEBRAEXPORT double get_relative_projection_on_segment(
const Segment3D &s, const algebra::Vector3D &p);
Expand Down
22 changes: 10 additions & 12 deletions modules/algebra/include/Sphere3D.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,22 +38,20 @@ inline double get_ball_radius_from_volume_3d(double volume) {
}

#ifdef IMP_ALGEBRA_USE_IMP_CGAL
/** Return the surface area and volume of the union of the balls
bounded by the spheres. This method requires CGAL to work.
*/
//! Get surface area & volume of the union of the balls bounded by the spheres.
/** This method requires CGAL to work.
*/
IMPALGEBRAEXPORT FloatPair
get_surface_area_and_volume(const algebra::Sphere3Ds &ss);
#endif

/** 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.
*
* \note The name may change if someone thinks up a better one.
//! Get a set of balls that approximates the surface of the passed set.
/** 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.
\note The name may change if someone thinks up a better one.
*/
IMPALGEBRAEXPORT Sphere3Ds
get_simplified_from_volume(Sphere3Ds in,
Expand Down
12 changes: 5 additions & 7 deletions modules/algebra/include/SphericalVector3D.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,15 +32,13 @@ class IMPALGEBRAEXPORT SphericalVector3D : public GeometricPrimitiveD<3> {
public:
SphericalVector3D() {};

//! Constructor that directly converts to spherical coordinates from a vector
//! v in Cartesian coordinates
//! Construct from a Cartesian coordinate vector
SphericalVector3D(const Vector3D& v) { set_cartesian_coordinates(v); }

//! Direct Constructor. A check for the validity of the coords is done
//! by default
/**
Set apply_check to false if you do not want the check
**/
//! Construct from provided spherical coordinates.
/** A check for the validity of the coords is done by default.
Set apply_check to false if you do not want the check.
*/
SphericalVector3D(double r, double theta, double psi,
bool apply_check = true) {
if (apply_check) {
Expand Down
Loading

0 comments on commit d37a95a

Please sign in to comment.