#include "emdata.h"#include "ctf.h"#include "portable_fileio.h"#include "imageio.h"#include <cstring>#include <sstream>#include <iomanip>#include <sys/stat.h>#include <iostream>Include dependency graph for emdata_metadata.cpp:

Go to the source code of this file.
Functions | |
| int | greaterthan (const void *p1, const void *p2) |
| vector< Vec3i > | find_region (EMData *image, const vector< Vec3i > &coords, const float value, vector< Vec3i > ®ion) |
|
||||||||||||||||||||
|
Definition at line 1334 of file emdata_metadata.cpp. References EMAN::EMData::get_value_at(), EMAN::EMData::get_xsize(), EMAN::EMData::get_ysize(), EMAN::EMData::get_zsize(), and EMAN::Vec3i. Referenced by EMAN::EMData::mask_contig_region(). 01335 {
01336 static vector<Vec3i> two_six_connected;
01337 if (two_six_connected.size() == 0) {
01338 for(int i = -1; i <= 1; ++i) {
01339 for(int j = -1; j <= 1; ++j) {
01340 for(int k = -1; k <= 1; ++k) {
01341 if ( j != 0 || i != 0 || k != 0) {
01342 two_six_connected.push_back(Vec3i(i,j,k));
01343 }
01344 }
01345 }
01346 }
01347 }
01348
01349 vector<Vec3i> ret;
01350 for(vector<Vec3i>::const_iterator it = two_six_connected.begin(); it != two_six_connected.end(); ++it ) {
01351 for(vector<Vec3i>::const_iterator it2 = coords.begin(); it2 != coords.end(); ++it2 ) {
01352 if (image->get_value_at((*it2)[0],(*it2)[1],(*it2)[2]) != value) throw;
01353 Vec3i c = (*it)+(*it2);
01354
01355 if ( c[0] < 0 || c[0] >= image->get_xsize()) continue;
01356 if ( c[1] < 0 || c[1] >= image->get_ysize()) continue;
01357 if ( c[2] < 0 || c[2] >= image->get_zsize()) continue;
01358
01359 if( image->get_value_at(c[0],c[1],c[2]) == value ) {
01360 if (find(ret.begin(),ret.end(),c) == ret.end()) {
01361 if (find(region.begin(),region.end(),c) == region.end()) {
01362 region.push_back(c);
01363 ret.push_back(c);
01364 }
01365 }
01366 }
01367 }
01368 }
01369 return ret;
01370 }
|
|
||||||||||||
|
Definition at line 1040 of file emdata_metadata.cpp. Referenced by EMAN::EMData::get_attr(). 01041 {
01042 float* v1 = (float*) p1;
01043 float* v2 = (float*) p2;
01044
01045 if ( *v1 < *v2 ) return 0;
01046 else return 1;
01047 }
|
1.3.9.1