#include <emobject.h>
Public Member Functions | |
Dict () | |
Dict (const string &key1, EMObject val1) | |
Construct a Dict object from 1 key/value pair It's probably more conventional to intialize key/value pairs using operator[], but either approach is fine. | |
Dict (const string &key1, EMObject val1, const string &key2, EMObject val2) | |
Construct a Dict object from 2 key/value pairs. | |
Dict (const string &key1, EMObject val1, const string &key2, EMObject val2, const string &key3, EMObject val3) | |
Construct a Dict object from 3 key/value pairs. | |
Dict (const string &key1, EMObject val1, const string &key2, EMObject val2, const string &key3, EMObject val3, const string &key4, EMObject val4) | |
Construct a Dict object from 4 key/value pairs. | |
Dict (const map< string, EMObject > &d) | |
Construct a Dict object from a map object Calls the generic algorithm "copy". | |
~Dict () | |
Destructor Performs no explicit action besides what the compiler automatically does. | |
Dict (const Dict &that) | |
Copy constructor Copies all elements in dict. | |
Dict & | operator= (const Dict &that) |
Assignment operator Copies all elements in dict. | |
vector< string > | keys () const |
Get a vector containing all of the (string) keys in this dictionary. | |
vector< EMObject > | values () const |
Get a vector containing copies of each of the EMObjects in this dictionary. | |
bool | has_key_ci (const string &key) const |
Ask the Dictionary if it as a particular key in a case insensitive way. | |
bool | has_key (const string &key) const |
Ask the Dictionary if it as a particular key. | |
size_t | size () const |
Ask the Dictionary for its size. | |
EMObject | get (const string &key) const |
Get the EMObject corresponding to the particular key Probably better to just use operator[]. | |
EMObject | get_ci (const string &key) const |
Get the EMObject corresponding to the particular key using case insensitivity. | |
void | put (const string &key, EMObject val) |
Put the value/key pair into the dictionary probably better to just use operator[]. | |
void | erase (const string &key) |
Remove a particular key. | |
void | clear () |
Clear all keys wraps map.clear(). | |
template<typename type> | |
type | set_default (const string &key, type val) |
Default setting behavior This can be achieved using a template - d.woolford Jan 2008 (before there was a function being written for every type). | |
Dict | copy_exclude_keys (const vector< string > &excluded_keys) const |
Dict | copy_exclusive_keys (const vector< string > &exclusive_keys) const |
Dict | copy_keys_in (const TypeDict &tdict) const |
EMObject & | operator[] (const string &key) |
EMObject | operator[] (const string &key) const |
iterator | begin (void) |
const_iterator | begin (void) const |
iterator | end (void) |
const_iterator | end (void) const |
iterator | find (const string &key) |
const_iterator | find (const string &key) const |
Private Attributes | |
map< string, EMObject > | dict |
Friends | |
bool | operator== (const Dict &d1, const Dict &d2) |
Friend declaration operator== namespace EMAN2 operator== accesses private variables. | |
bool | operator!= (const Dict &d1, const Dict &d2) |
Friend declaration operator!= namespace EMAN2 operator!= accesses private variables. |
Typical ways to construct a Dict:
Dict d; d["lowpass"] = 12.23; float lowpass1 = d["lowpass"];
Dict d2("lowpass", 12.23);
You can iterate through a dict: for ( Dict::const_iterator it = params.begin(); it != params.end(); ++it ) { //do things to it } And similary use the Dict iterator as arguments to the generic algorithms that are feasible, such as copy.
You can find things in the iterator style: if( d.find("lowpass") != d.end() ) cout << "D has a lowpass key" << endl;\ Or like this if( d.has_key("lowpass") ) ...
A Dict has copy and assignment operators.
See the testing code in rt/emdata/test_emobject.cpp for prewritten testing code
Definition at line 384 of file emobject.h.
|
Definition at line 387 of file emobject.h. 00388 { 00389 }
|
|
Construct a Dict object from 1 key/value pair It's probably more conventional to intialize key/value pairs using operator[], but either approach is fine.
Definition at line 395 of file emobject.h. 00396 { 00397 dict[key1] = val1; 00398 }
|
|
Construct a Dict object from 2 key/value pairs.
Definition at line 402 of file emobject.h.
|
|
Construct a Dict object from 3 key/value pairs.
Definition at line 411 of file emobject.h.
|
|
Construct a Dict object from 4 key/value pairs.
Definition at line 422 of file emobject.h. 00426 { 00427 dict[key1] = val1; 00428 dict[key2] = val2; 00429 dict[key3] = val3; 00430 dict[key4] = val4; 00431 }
|
|
Construct a Dict object from a map object Calls the generic algorithm "copy".
Definition at line 436 of file emobject.h. References copy(). 00437 { 00438 copy(d.begin(), d.end(), inserter(dict, dict.begin())); 00439 // Or use 00440 // dict.insert(d.begin(), d.end()); 00441 }
|
|
Destructor Performs no explicit action besides what the compiler automatically does.
Definition at line 446 of file emobject.h. 00446 {}
|
|
Copy constructor Copies all elements in dict.
Definition at line 1019 of file emobject.cpp. 01020 {
01021 *this = that;
01022 }
|
|
Definition at line 1063 of file emobject.cpp. References dict. 01064 { 01065 return const_iterator( (map < string, EMObject >::const_iterator) dict.begin() ); 01066 }
|
|
Definition at line 1058 of file emobject.cpp. References dict. Referenced by EMAN::Transform::detect_problem_keys(), EMAN::FactoryBase::insert_params(), and operator=(). 01059 { 01060 return iterator( dict.begin() ); 01061 }
|
|
Clear all keys wraps map.clear().
Definition at line 546 of file emobject.h. Referenced by operator=(). 00547 { 00548 dict.clear(); 00549 }
|
|
Definition at line 563 of file emobject.h. References erase(), and has_key(). 00564 { 00565 Dict ret(*this); 00566 00567 for ( vector<string>::const_iterator it = excluded_keys.begin(); it != excluded_keys.end(); ++it ) { 00568 if (ret.has_key(*it)) ret.erase(*it); 00569 } 00570 00571 return ret; 00572 }
|
|
Definition at line 574 of file emobject.h. References end(). 00575 { 00576 Dict ret; 00577 for ( vector<string>::const_iterator it = exclusive_keys.begin(); it != exclusive_keys.end(); ++it ) { 00578 if (has_key(*it)) ret[*it] = (*this)[*it]; 00579 } 00580 00581 return ret; 00582 }
|
|
Definition at line 584 of file emobject.h. References EMAN::TypeDict::keys(). 00584 { 00585 vector<string> keys = tdict.keys(); 00586 return copy_exclusive_keys(keys); 00587 }
|
|
Definition at line 1079 of file emobject.cpp. References dict. 01080 { 01081 return const_iterator( (map < string, EMObject >::const_iterator)dict.end() ); 01082 }
|
|
|
Remove a particular key.
Definition at line 538 of file emobject.h. References key. Referenced by copy_exclude_keys(), and EMAN::EMData::del_attr(). 00539 { 00540 dict.erase(key); 00541 }
|
|
Definition at line 1084 of file emobject.cpp. 01085 { 01086 return const_iterator( (map < string, EMObject >::const_iterator)dict.find(key) ); 01087 }
|
|
Definition at line 1069 of file emobject.cpp. 01070 { 01071 return iterator( dict.find(key) ); 01072 }
|
|
Get the EMObject corresponding to the particular key Probably better to just use operator[].
Definition at line 513 of file emobject.h. References key, LOGERR, and NotExistingObjectException. Referenced by EMAN::file_store::add_image(), EMAN::CtfAverager::add_image(), EMAN::MeanZeroEdgeProcessor::process_inplace(), EMAN::SigmaProcessor::set_params(), EMAN::RangeThresholdProcessor::set_params(), EMAN::ExpProcessor::set_params(), and EMAN::LinearXformProcessor::set_params(). 00514 { 00515 if( has_key(key) ) { 00516 return dict[key]; 00517 } 00518 else { 00519 LOGERR("No such key exist in this Dict"); 00520 throw NotExistingObjectException("EMObject", "Nonexisting key (" + key + ") in Dict"); 00521 } 00522 }
|
|
Get the EMObject corresponding to the particular key using case insensitivity.
Definition at line 1141 of file emobject.cpp. References dict, key, NotExistingObjectException, and EMAN::Util::str_to_lower(). Referenced by EMAN::Transform::set_params(), EMAN::Transform::set_params_inverse(), and EMAN::Transform::set_rotation(). 01142 { 01143 string lower_key = Util::str_to_lower(key); 01144 01145 for (map < string, EMObject >::const_iterator it = dict.begin(); it != dict.end(); ++it ) { 01146 string lower = Util::str_to_lower(it->first); 01147 if (lower == lower_key) return it->second; 01148 } 01149 01150 throw NotExistingObjectException("EMObject", "Nonexisting key (" + key + ") in Dict"); 01151 }
|
|
|
Ask the Dictionary if it as a particular key in a case insensitive way.
Definition at line 1153 of file emobject.cpp. References dict, key, and EMAN::Util::str_to_lower(). Referenced by EMAN::Transform::detect_problem_keys(), EMAN::Transform::set_params(), EMAN::Transform::set_params_inverse(), and EMAN::Transform::set_rotation(). 01154 { 01155 string lower_key = Util::str_to_lower(key); 01156 01157 for (map < string, EMObject >::const_iterator it = dict.begin(); it != dict.end(); ++it ) { 01158 string lower = Util::str_to_lower(it->first); 01159 if (lower == lower_key) return true; 01160 } 01161 return false; 01162 }
|
|
Get a vector containing all of the (string) keys in this dictionary.
Definition at line 460 of file emobject.h. Referenced by EMAN::EMUtil::dump_dict(), EMAN::TestUtil::dump_emdata(), EMAN::EMData::set_attr_dict(), and EMAN::TestUtil::test_dict(). 00461 { 00462 vector < string > result; 00463 00464 map < string, EMObject >::const_iterator p; 00465 for (p = dict.begin(); p != dict.end(); p++) { 00466 result.push_back(p->first); 00467 } 00468 00469 return result; 00470 }
|
|
Assignment operator Copies all elements in dict.
Definition at line 1024 of file emobject.cpp. References begin(), clear(), copy(), dict, and end(). 01025 { 01026 if ( this != &that ) 01027 { 01028 dict.clear(); 01029 copy(that.begin(), that.end(), inserter(dict, dict.begin())); 01030 // or use this 01031 // dict.insert( that.begin(), that.end()); 01032 } 01033 else 01034 { 01035 cerr << "Warning - attempted to assign a Dict object to itself. No action taken" << endl; 01036 } 01037 01038 return *this; 01039 }
|
|
Definition at line 604 of file emobject.h. 00605 { 00606 // if( has_key(key) ) return dict[key]; 00607 // else return EMObject(); 00608 return dict[key]; 00609 00610 // else { 00611 // LOGERR("No such key exist in this Dict"); 00612 // throw NotExistingObjectException("EMObject", "Nonexisting key (" + key + ") in Dict"); 00613 // } 00614 }
|
|
Definition at line 589 of file emobject.h. 00590 { 00591 // static EMObject nullreturn; 00592 // if( has_key(key) ) return dict[key]; 00593 // else return nullreturn; 00594 00595 // if( has_key(key) ) { 00596 return dict[key]; 00597 // } 00598 // else { 00599 // LOGERR("No such key exist in this Dict"); 00600 // throw NotExistingObjectException("EMObject", "Nonexisting key (" + key + ") in Dict"); 00601 // } 00602 }
|
|
Put the value/key pair into the dictionary probably better to just use operator[].
Definition at line 531 of file emobject.h. Referenced by EMAN::MarchingCubes::get_isosurface(), and EMAN::SymSearchProcessor::process_inplace(). 00532 { 00533 dict[key] = val; 00534 }
|
|
Default setting behavior This can be achieved using a template - d.woolford Jan 2008 (before there was a function being written for every type).
Definition at line 555 of file emobject.h. References key. Referenced by EMAN::ImageAverager::add_image(), EMAN::TomoAverager::add_image(), EMAN::OrientationGenerator::add_orientation(), EMAN::Refine3DAlignerGrid::align(), EMAN::Refine3DAlignerQuaternion::align(), EMAN::SymAlignProcessorQuat::align(), EMAN::RefineAligner::align(), EMAN::SymAlignProcessor::align(), EMAN::RTFSlowExhaustiveAligner::align(), EMAN::RTFExhaustiveAligner::align(), EMAN::RotateFlipAlignerIterative::align(), EMAN::RotateFlipAligner::align(), EMAN::RotateTranslateFlipAlignerPawel::align(), EMAN::RotateTranslateFlipAlignerIterative::align(), EMAN::RotateTranslateFlipAligner::align(), EMAN::RotateTranslateAligner::align(), EMAN::RotateTranslateAlignerPawel::align(), EMAN::RotateTranslateAlignerIterative::align(), EMAN::RotationalAlignerIterative::align(), EMAN::RotationalAligner::align(), EMAN::TranslationalAligner::align(), EMAN::FRCCmp::cmp(), EMAN::PhaseCmp::cmp(), EMAN::OptVarianceCmp::cmp(), EMAN::QuadMinDotCmp::cmp(), EMAN::TomoCccCmp::cmp(), EMAN::DotCmp::cmp(), EMAN::SqEuclideanCmp::cmp(), EMAN::LodCmp::cmp(), EMAN::CccCmp::cmp(), EMAN::LowpassAutoBProcessor::create_radial_func(), EMAN::WienerFourierReconstructor::finish(), EMAN::FourierReconstructor::finish(), EMAN::TomoAverager::finish(), EMAN::OptimumOrientationGenerator::gen_orientations(), EMAN::SaffOrientationGenerator::gen_orientations(), EMAN::EvenOrientationGenerator::gen_orientations(), EMAN::RandomOrientationGenerator::gen_orientations(), EMAN::EmanOrientationGenerator::gen_orientations(), EMAN::HSym::get_asym_unit_points(), EMAN::DSym::get_asym_unit_points(), EMAN::CSym::get_asym_unit_points(), EMAN::DSym::get_asym_unit_triangles(), EMAN::CSym::get_asym_unit_triangles(), EMAN::DSym::get_delimiters(), EMAN::CSym::get_delimiters(), EMAN::OptimumOrientationGenerator::get_orientations_tally(), EMAN::SaffOrientationGenerator::get_orientations_tally(), EMAN::EvenOrientationGenerator::get_orientations_tally(), EMAN::EmanOrientationGenerator::get_orientations_tally(), EMAN::HSym::get_sym(), EMAN::DSym::get_sym(), EMAN::CSym::get_sym(), EMAN::HSym::is_in_asym_unit(), EMAN::DSym::is_in_asym_unit(), EMAN::CSym::is_in_asym_unit(), EMAN::BinarySkeletonizerProcessor::process(), EMAN::ScaleTransformProcessor::process(), EMAN::IntTranslateProcessor::process(), EMAN::DirectionalSumProcessor::process(), EMAN::CtfSimProcessor::process(), EMAN::BooleanShrinkProcessor::process(), EMAN::MeanShrinkProcessor::process(), EMAN::FFTResampleProcessor::process(), EMAN::MedianShrinkProcessor::process(), EMAN::KmeansSegmentProcessor::process(), EMAN::ApplySymProcessor::process(), EMAN::DistanceSegmentProcessor::process(), EMAN::ApplyPolynomialProfileToHelix::process_inplace(), EMAN::ModelEMCylinderProcessor::process_inplace(), EMAN::TomoTiltEdgeMaskProcessor::process_inplace(), EMAN::TomoTiltAngleWeightProcessor::process_inplace(), EMAN::ConvolutionProcessor::process_inplace(), EMAN::HistogramBin::process_inplace(), EMAN::NSigmaClampingProcessor::process_inplace(), EMAN::ClampingProcessor::process_inplace(), EMAN::ScaleTransformProcessor::process_inplace(), EMAN::IntTranslateProcessor::process_inplace(), EMAN::TestImageEllipse::process_inplace(), EMAN::TestImageHollowEllipse::process_inplace(), EMAN::TestImageCirclesphere::process_inplace(), EMAN::TestImageAxes::process_inplace(), EMAN::TestImageGradient::process_inplace(), EMAN::TestImageLineWave::process_inplace(), EMAN::CTFSNRWeightProcessor::process_inplace(), EMAN::TestImageFourierNoiseGaussian::process_inplace(), EMAN::AutoMask3D2Processor::process_inplace(), EMAN::PhaseToMassCenterProcessor::process_inplace(), EMAN::ToMassCenterProcessor::process_inplace(), EMAN::AutoMask2DProcessor::process_inplace(), EMAN::BinarizeFourierProcessor::process_inplace(), EMAN::NormalizeToLeastSquareProcessor::process_inplace(), EMAN::NormalizeByMassProcessor::process_inplace(), EMAN::FlattenBackgroundProcessor::process_inplace(), EMAN::BooleanShrinkProcessor::process_inplace(), EMAN::MeanShrinkProcessor::process_inplace(), EMAN::FFTResampleProcessor::process_inplace(), EMAN::MedianShrinkProcessor::process_inplace(), EMAN::BoxStatProcessor::process_inplace(), EMAN::ToMinvalProcessor::process_inplace(), EMAN::InvertCarefullyProcessor::set_params(), EMAN::FourierReconstructor::setup(), EMAN::FourierReconstructorSimple2D::setup(), EMAN::FourierReconstructor::setup_seed(), EMAN::RT3DSymmetryAligner::xform_align_nbest(), EMAN::RT3DSphereAligner::xform_align_nbest(), and EMAN::RT3DGridAligner::xform_align_nbest().
|
|
Ask the Dictionary for its size.
Definition at line 505 of file emobject.h. Referenced by ali3d_d(), apmd(), apmq(), EMAN::PawelProjector::backproject3d(), EMAN::ChaoProjector::backproject3d(), EMAN::Util::coveig_for_py(), EMAN::DoGFourierProcessor::create_radial_func(), EMAN::LoGFourierProcessor::create_radial_func(), EMAN::LinearRampProcessor::create_radial_func(), EMAN::LowpassAutoBProcessor::create_radial_func(), EMAN::Util::Crosrng_ew(), EMAN::Util::Crosrng_ms(), EMAN::Util::Crosrng_ms_delta(), EMAN::Util::Crosrng_ns(), EMAN::Util::Crosrng_psi_0_180(), EMAN::Util::Crosrng_psi_0_180_no_mirror(), EMAN::Util::Crosrng_sm_psi(), EMAN::Processor::EMFourierFilterFunc(), EMAN::Util::min_dist_four(), EMAN::Util::min_dist_real(), EMAN::Util::multiref_polar_ali_2d(), EMAN::Util::multiref_polar_ali_2d_delta(), EMAN::Util::multiref_polar_ali_2d_local(), EMAN::Util::multiref_polar_ali_2d_local_psi(), EMAN::Util::multiref_polar_ali_2d_nom(), EMAN::Util::multiref_polar_ali_2d_peaklist(), EMAN::Util::multiref_polar_ali_helical(), EMAN::Util::multiref_polar_ali_helical_90(), EMAN::Util::multiref_polar_ali_helical_90_local(), EMAN::Util::multiref_polar_ali_helical_local(), EMAN::RadialProcessor::process_inplace(), EMAN::SymSearchProcessor::process_inplace(), EMAN::ChaoProjector::project3d(), EMAN::FourierGriddingProjector::project3d(), EMAN::Util::pw_extract(), EMAN::EMData::read_images(), EMAN::KMeansAnalyzer::reclassify(), EMAN::KMeansAnalyzer::reseed(), and EMAN::KMeansAnalyzer::update_centers(). 00506 { 00507 return dict.size(); 00508 }
|
|
Get a vector containing copies of each of the EMObjects in this dictionary.
Definition at line 474 of file emobject.h. Referenced by EMAN::EMUtil::dump_dict(), and EMAN::RealPixelProcessor::set_params(). 00475 { 00476 vector < EMObject > result; 00477 00478 map < string, EMObject >::const_iterator p; 00479 for (p = dict.begin(); p != dict.end(); p++) { 00480 result.push_back(p->second); 00481 } 00482 00483 return result; 00484 }
|
|
Friend declaration operator!= namespace EMAN2 operator!= accesses private variables.
|
|
Friend declaration operator== namespace EMAN2 operator== accesses private variables.
|
|
Definition at line 627 of file emobject.h. Referenced by begin(), end(), find(), get_ci(), has_key_ci(), operator=(), and EMAN::operator==(). |