00001 #ifndef gauss_cylinder_h_
00002 #define gauss_cylinder_h_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #include <vcl_iosfwd.h>
00030 #include <vbl/vbl_ref_count.h>
00031
00032 class btom_gauss_cylinder : public vbl_ref_count
00033 {
00034
00035 public:
00036
00037
00038 btom_gauss_cylinder(float xy_sigma=1.0, float z_sigma=5.0,
00039 float length_sigma=10.0, float density=1.0,
00040 float x_origin=0.0, float y_origin=0.0, float z_position=0.0,
00041 float elevation=0.0, float azimuth=0.0);
00042 btom_gauss_cylinder(btom_gauss_cylinder const& c)
00043 : vbl_ref_count(), xy_sigma_(c.xy_sigma_), z_sigma_(c.z_sigma_),
00044 length_sigma_(c.length_sigma_), density_(c.density_),
00045 x_origin_(c.x_origin_), y_origin_(c.y_origin_), z_position_(c.z_position_),
00046 elevation_(c.elevation_), azimuth_(c.azimuth_) {}
00047 ~btom_gauss_cylinder();
00048
00049
00050 float get_xy_sigma() {return xy_sigma_;}
00051 float get_z_sigma() {return z_sigma_;}
00052 float get_length_sigma() {return length_sigma_;}
00053 float get_density() {return density_;}
00054 float get_x_origin() {return x_origin_;}
00055 float get_y_origin() {return y_origin_;}
00056 float get_z_position() {return z_position_;}
00057 float get_elevation() {return elevation_;}
00058 float get_azimuth() {return azimuth_;}
00059
00060 void set_xy_sigma(float xy_sigma) {xy_sigma_=xy_sigma;}
00061 void set_z_sigma(float z_sigma) {z_sigma_=z_sigma;}
00062 void set_length_sigma(float length_sigma) {length_sigma_=length_sigma;}
00063 void set_density(float density) {density_ = density;}
00064 void set_x_origin(float x_origin) {x_origin_=x_origin;}
00065 void set_y_origin(float y_origin) {y_origin_=y_origin;}
00066 void set_z_position(float z_position) {z_position_=z_position;}
00067 void set_elevation(float elevation) {elevation_=elevation;}
00068 void set_azimuth(float azimuth) {azimuth_=azimuth;}
00069
00070
00071
00072 float cylinder_intensity(float x, float y);
00073 float radon_transform(float theta, float t);
00074
00075 friend
00076 vcl_ostream& operator<<(vcl_ostream& os, const btom_gauss_cylinder& gc);
00077
00078 protected:
00079
00080 float xy_sigma_;
00081 float z_sigma_;
00082 float length_sigma_;
00083 float density_;
00084 float x_origin_;
00085 float y_origin_;
00086 float z_position_;
00087 float elevation_;
00088 float azimuth_;
00089 };
00090
00091 #endif