8 #ifndef IMPALGEBRA_CYLINDER_3D_H
9 #define IMPALGEBRA_CYLINDER_3D_H
20 IMPALGEBRA_BEGIN_NAMESPACE
29 double get_radius()
const {
return radius_; }
43 const Vector3D get_surface_point_at(
double relative_height,
double angle);
60 const Vector3D get_inner_point_at(
double relative_height,
61 double relative_radius,
double angle)
const;
72 return 2.0 *
PI * g.get_radius() * g.get_segment().get_length() +
73 2.0 *
PI * get_squared(g.get_radius()),
74 return PI * get_squared(g.get_radius()) * g.get_segment().get_length(),
78 IMPALGEBRA_END_NAMESPACE
#define IMP_NOT_IMPLEMENTED
Use this to make that the method is not implemented yet.
static const double PI
the constant pi
#define IMP_UNUSED(variable)
#define IMP_SHOWABLE_INLINE(Name, how_to_show)
Declare the methods needed by an object that can be printed.
simple implementation of segments in 3D
#define IMP_VOLUME_GEOMETRY_METHODS(Name, name, area, volume, bounding_box)
implement the needed namespace methods for a geometry type
Various useful constants.
Simple 3D rotation class.
Various general useful macros for IMP.
DensityMap * get_segment(DensityMap *map_to_segment, int nx_start, int nx_end, int ny_start, int ny_end, int nz_start, int nz_end)
Get a segment of the map according to xyz indexes.