8 #ifndef IMPALGEBRA_ELLIPSOID_3D_H 
    9 #define IMPALGEBRA_ELLIPSOID_3D_H 
   11 #include <IMP/algebra/algebra_config.h> 
   17 #include <cereal/access.hpp> 
   19 IMPALGEBRA_BEGIN_NAMESPACE
 
   27       : rf_(rf), radii_(radii) {}
 
   30   const Vector3D &get_radii()
 const { 
return radii_; }
 
   38   friend class cereal::access;
 
   40   template<
class Archive> 
void serialize(Archive &ar) {
 
   47                             return 4.0 / 3.0 * 
PI * g.get_radii()[0] *
 
   48                                    g.get_radii()[1] * g.get_radii()[2],
 
   52   return get_transformed(b, g.get_reference_frame().get_transformation_to());
 
   55 IMPALGEBRA_END_NAMESPACE
 
Base class for geometric types. 
 
#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. 
 
#define IMP_NOT_IMPLEMENTED
Use this to mark that the method is not implemented yet. 
 
DensityMap * get_transformed(const DensityMap *input, const algebra::Transformation3D &tr, double threshold)
Return a new density map containing a rotated version of the old one.