#include <reconstructor_tools.h>
Inheritance diagram for EMAN::FourierInserter3DMode6:


Public Member Functions | |
| FourierInserter3DMode6 () | |
| virtual | ~FourierInserter3DMode6 () |
| virtual bool | insert_pixel (const float &xx, const float &yy, const float &zz, const std::complex< float > dt, const float &weight=1.0) |
| Insert a complex pixel [dt[0]+dt[1]i] at (float) coordinate [xx,yy,zz] with weighting into a discrete 3D volume. | |
| virtual string | get_name () const |
| Get the unique name of this class (especially for factory based instantiation access). | |
| virtual string | get_desc () const |
| Get a clear, concise description of this class. | |
Static Public Member Functions | |
| FourierPixelInserter3D * | NEW () |
Static Public Attributes | |
| const string | NAME = "gauss_5_slow" |
Private Member Functions | |
| FourierInserter3DMode6 (const FourierInserter3DMode6 &) | |
| FourierInserter3DMode6 & | operator= (const FourierInserter3DMode6 &) |
Definition at line 307 of file reconstructor_tools.h.
|
|
Definition at line 310 of file reconstructor_tools.h. 00310 {}
|
|
|
Definition at line 311 of file reconstructor_tools.h. 00311 {}
|
|
|
|
|
|
Get a clear, concise description of this class.
Implements EMAN::FactoryBase. Definition at line 325 of file reconstructor_tools.h. 00326 {
00327 return "More exact version of gauss_5";
00328 }
|
|
|
Get the unique name of this class (especially for factory based instantiation access).
Implements EMAN::FactoryBase. Definition at line 320 of file reconstructor_tools.h. 00321 {
00322 return NAME;
00323 }
|
|
||||||||||||||||||||||||
|
Insert a complex pixel [dt[0]+dt[1]i] at (float) coordinate [xx,yy,zz] with weighting into a discrete 3D volume.
Implements EMAN::FourierPixelInserter3D. Definition at line 286 of file reconstructor_tools.cpp. References EMAN::EMData::add_complex_at(), dt, and EMAN::Util::hypot3sq(). 00287 {
00288 int x0 = 2 * (int) floor(xx + 0.5f);
00289 int y0 = (int) floor(yy + 0.5f);
00290 int z0 = (int) floor(zz + 0.5f);
00291
00292 if (x0<-6||y0<-3||z0<-3||x0>nx+6||y0>ny+3||z0>nz+3) return false;
00293
00294 //size_t idx;
00295 float r, gg;
00296 for (int k = z0 - 1; k <= z0 + 1; k++) {
00297 for (int j = y0 - 1; j <= y0 + 1; j++) {
00298 for (int i = x0 -2; i <= x0 + 2; i += 2) {
00299 if (k<0 || j<0 || i<0 || k>=nz || j>=ny || i>=nx) continue;
00300 r = Util::hypot3sq((float) i / 2 - xx, j - yy, k - zz);
00301 gg = exp(-r / EMConsts::I5G)*weight;
00302
00303 size_t off;
00304 if (subx0<0) off=data->add_complex_at(i,j,k,dt*gg);
00305 else off=data->add_complex_at(i,j,k,subx0,suby0,subz0,fullnx,fullny,fullnz,dt*gg);
00306 if (static_cast<int>(off)!=nxyz) norm[off/2]+=gg;
00307
00308 }
00309 }
00310 }
00311 return true;
00312 }
|
|
|
Definition at line 315 of file reconstructor_tools.h. 00316 {
00317 return new FourierInserter3DMode6();
00318 }
|
|
|
|
|
|
Definition at line 46 of file reconstructor_tools.cpp. |
1.3.9.1