Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

vil_nitf2_field.cxx

Go to the documentation of this file.
00001 // vil_nitf2: Written by Harry Voorhees (hlv@) and Rob Radtke (rob@) of
00002 // Stellar Science Ltd. Co. (stellarscience.com) for 
00003 // Air Force Research Laboratory, 2005.
00004 
00005 #include "vil_nitf2.h"
00006 #include "vil_nitf2_field.h"
00007 #include "vil_nitf2_field_formatter.h"
00008 #include "vil_nitf2_field_definition.h"
00009 #include "vil_nitf2_index_vector.h"
00010 
00011 vil_nitf2::enum_field_type vil_nitf2_field::type() const 
00012 { 
00013   if (m_definition && m_definition->formatter) {
00014     return m_definition->formatter->field_type;
00015   } else { 
00016     return vil_nitf2::type_undefined;
00017   }
00018 }
00019 
00020 vcl_string vil_nitf2_field::tag() const 
00021 {
00022   return m_definition->tag;
00023 }
00024 
00025 vcl_string vil_nitf2_field::pretty_name() const 
00026 {
00027   return m_definition->pretty_name;
00028 }
00029 
00030 vcl_string vil_nitf2_field::description() const 
00031 { 
00032   return m_definition->description; 
00033 }
00034 
00035 vil_nitf2_field::field_tree* vil_nitf2_field::get_tree( ) const
00036 {
00037   field_tree* tr = new field_tree;
00038   tr->columns.push_back( tag() );
00039   tr->columns.push_back( pretty_name() );
00040   return tr;
00041 }
00042 
00043 vil_nitf2_field::field_tree::~field_tree()
00044 {
00045   for( unsigned int i = 0 ; i < children.size() ; i++ ){
00046     delete children[i];
00047   }
00048   children.clear();
00049 }
00050 
00051 vil_nitf2_scalar_field* vil_nitf2_field::scalar_field()
00052 {
00053   if (num_dimensions()==0) {
00054     return (vil_nitf2_scalar_field*) this;
00055   } else {
00056     return 0;
00057   }
00058 }
00059 
00060 vil_nitf2_array_field* vil_nitf2_field::array_field()
00061 {
00062   if (num_dimensions()>0) {
00063     return (vil_nitf2_array_field*) this;
00064   } else {
00065     return 0;
00066   }
00067 }
00068 
00069 vcl_ostream& operator << (vcl_ostream& os, const vil_nitf2_field& field) 
00070 {
00071   return field.output(os);
00072 }

Generated on Thu Jan 10 14:40:00 2008 for core/vil by  doxygen 1.4.4