9 #ifndef IMPALGEBRA_GAUSSIAN3D_H
10 #define IMPALGEBRA_GAUSSIAN3D_H
12 #include <IMP/algebra/algebra_config.h>
17 #include <cereal/access.hpp>
18 #include <Eigen/Dense>
20 IMPALGEBRA_BEGIN_NAMESPACE
29 friend class cereal::access;
31 template<
class Archive>
void serialize(Archive &ar) {
41 : tr_(tr), variances_(variances) {}
44 const Vector3D &get_variances()
const {
return variances_; }
72 double cell_width,
const BoundingBox3D &bb,
double factor=2.5);
74 IMPALGEBRA_END_NAMESPACE
#define IMP_SHOWABLE_INLINE(Name, how_to_show)
Declare the methods needed by an object that can be printed.
DenseGrid3D< double > get_rasterized(const Gaussian3Ds &gmm, const Floats &weights, double cell_width, const BoundingBox3D &bb)
Rasterize the Gaussians to a grid.
Gaussian3D get_gaussian_from_covariance(const Eigen::Matrix3d &covariance, const Vector3D ¢er)
Return a Gaussian centered at the origin from a covariance matrix.
A more IMP-like version of the std::vector.
A Gaussian distribution in 3D.
#define IMP_VALUES(Name, PluralName)
Define the type for storing sets of values.
Base class for geometric types.
const Transformation3D & get_transformation_to() const
Return transformation from local to global coordinates.
Eigen::Matrix3d get_covariance(const Gaussian3D &g)
All grids that are in the Python API should be defined here.
DenseGrid3D< double > get_rasterized_fast(const Gaussian3Ds &gmm, const Floats &weights, double cell_width, const BoundingBox3D &bb, double factor=2.5)
Rasterize the Gaussians to a grid.