8 #ifndef IMPALGEBRA_ELLIPSOID_3D_H
9 #define IMPALGEBRA_ELLIPSOID_3D_H
11 #include <IMP/algebra/algebra_config.h>
18 IMPALGEBRA_BEGIN_NAMESPACE
26 : rf_(rf), radii_(radii) {}
29 const Vector3D &get_radii()
const {
return radii_; }
32 IMPALGEBRA_DEPRECATED_FUNCTION_DECL(2.2)
33 double get_radius(
unsigned int i)
const {
return radii_[i]; }
35 IMPALGEBRA_DEPRECATED_FUNCTION_DECL(2.2)
37 return rf_.get_transformation_to().get_translation();
40 IMPALGEBRA_DEPRECATED_FUNCTION_DECL(2.2)
42 return rf_.get_transformation_to().get_rotation();
45 IMPALGEBRA_DEPRECATED_FUNCTION_DECL(2.2)
47 return rf_.get_transformation_to();
58 return 4.0 / 3.0 *
PI * g.get_radii()[0] *
59 g.get_radii()[1] * g.get_radii()[2],
62 BoundingBoxD<3> b(-v, v);
63 return get_transformed(b, g.get_reference_frame().get_transformation_to());
66 IMPALGEBRA_END_NAMESPACE
#define IMP_SHOWABLE_INLINE(Name, how_to_show)
Declare the methods needed by an object that can be printed.
Represent an ellipsoid in 3D.
static const double PI
the constant pi
Base class for geometric types.
#define IMP_UNUSED(variable)
#define IMP_VOLUME_GEOMETRY_METHODS(Name, name, area, volume, bounding_box)
Implement the needed namespace methods for a geometry type.
A bounding box in D dimensions.
Various useful constants.
Simple 3D rotation class.
#define IMP_NOT_IMPLEMENTED
Use this to mark that the method is not implemented yet.