8 #ifndef IMPALGEBRA_CYLINDER_3D_H
9 #define IMPALGEBRA_CYLINDER_3D_H
20 IMPALGEBRA_BEGIN_NAMESPACE
30 double get_radius()
const {
return radius_; }
44 const Vector3D get_surface_point_at(
double relative_height,
double angle);
61 const Vector3D get_inner_point_at(
double relative_height,
62 double relative_radius,
double angle)
const;
72 return 2.0 *
PI * g.get_radius() *
73 g.get_segment().get_length() +
74 2.0 *
PI * get_squared(g.get_radius()),
75 return PI * get_squared(g.get_radius()) *
76 g.get_segment().get_length(),
80 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.
static const double PI
the constant pi
Represent a cylinder in 3D.
Simple implementation of segments in 3D.
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.
Various useful constants.
Simple 3D rotation class.
Simple implementation of segments in 3D.
#define IMP_NOT_IMPLEMENTED
Use this to mark that the method is not implemented yet.
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.
Macros to help with objects that can be printed to a stream.