OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Public Member Functions | Protected Attributes | List of all members
ossimVpfAnnotationCoverageInfo Class Reference

#include <ossimVpfAnnotationCoverageInfo.h>

Public Member Functions

 ossimVpfAnnotationCoverageInfo (const ossimString &name="")
 
virtual ~ossimVpfAnnotationCoverageInfo ()
 
bool hasRenderableFeature () const
 
void getEnabledFeatures (std::vector< ossimVpfAnnotationFeatureInfo *> &result)
 
void getAllFeatures (std::vector< ossimVpfAnnotationFeatureInfo *> &result)
 
void transform (ossimImageGeometry *geom)
 
ossimIrect getBoundingProjectedRect () const
 
void buildCoverage ()
 
void buildCoverage (const ossimString &feature)
 
void setName (const ossimString &name)
 
ossimString getName () const
 
void setLibrary (ossimVpfLibrary *library)
 
ossimVpfLibrarygetLibrary ()
 
const ossimVpfLibrarygetLibrary () const
 
void drawAnnotations (ossimRgbImage *tile)
 
void deleteAllFeatures ()
 
virtual bool saveState (ossimKeywordlist &kwl, const char *prefix=0) const
 
virtual bool loadState (const ossimKeywordlist &kwl, const char *prefix=0)
 

Protected Attributes

ossimString theName
 
ossimVpfLibrarytheLibrary
 
std::vector< ossimVpfAnnotationFeatureInfo * > theFeatureInfoArray
 

Detailed Description

Definition at line 20 of file ossimVpfAnnotationCoverageInfo.h.

Constructor & Destructor Documentation

◆ ossimVpfAnnotationCoverageInfo()

ossimVpfAnnotationCoverageInfo::ossimVpfAnnotationCoverageInfo ( const ossimString name = "")
inline

Definition at line 23 of file ossimVpfAnnotationCoverageInfo.h.

24  :theName(name)
25  {
26 
27  }

◆ ~ossimVpfAnnotationCoverageInfo()

virtual ossimVpfAnnotationCoverageInfo::~ossimVpfAnnotationCoverageInfo ( )
inlinevirtual

Member Function Documentation

◆ buildCoverage() [1/2]

void ossimVpfAnnotationCoverageInfo::buildCoverage ( )

Definition at line 84 of file ossimVpfAnnotationCoverageInfo.cpp.

◆ buildCoverage() [2/2]

void ossimVpfAnnotationCoverageInfo::buildCoverage ( const ossimString feature)

Definition at line 89 of file ossimVpfAnnotationCoverageInfo.cpp.

References ossimVpfAnnotationFeatureInfo::buildFeature(), ossimVpfFeatureClassSchema::closeTable(), deleteAllFeatures(), ossimString::downcase(), ossimVpfLibrary::getCoverage(), ossimVpfFeatureClassSchema::getFeatureClasses(), ossimString::length(), ossimVpfCoverage::openFeatureClassSchema(), ossimVpfAnnotationFeatureInfo::setCoverage(), ossimVpfAnnotationFeatureInfo::setName(), theFeatureInfoArray, theLibrary, and theName.

90 {
92  if(theLibrary)
93  {
94  ossimVpfCoverage coverage;
95 
96  if(theLibrary->getCoverage(theName, coverage))
97  {
99  if(coverage.openFeatureClassSchema(schema))
100  {
101  std::vector<ossimString> featureClassArray;
102  schema.getFeatureClasses(featureClassArray);
103  schema.closeTable();
104  for(ossim_uint32 idx = 0; idx < featureClassArray.size(); ++idx)
105  {
106  ossimString s1 = feature;
107  ossimString s2 = featureClassArray[idx];
108  s1.downcase();
109  s2.downcase();
110  if (! feature.length() || (s1 == s2) )
111  {
112  ossimVpfAnnotationFeatureInfo* featureInfo =
114  featureInfo->setName(featureClassArray[idx]);
115  featureInfo->setCoverage(coverage);
116  theFeatureInfoArray.push_back(featureInfo);
117  featureInfo->buildFeature();
118  }
119  }
120  }
121  }
122  }
123 }
bool openFeatureClassSchema(ossimVpfFeatureClassSchema &schema)
std::string::size_type length() const
Definition: ossimString.h:408
unsigned int ossim_uint32
static ossimString downcase(const ossimString &aString)
Definition: ossimString.cpp:48
std::vector< ossimVpfAnnotationFeatureInfo * > theFeatureInfoArray
bool getCoverage(long coverageNumber, ossimVpfCoverage &coverage)
void setCoverage(const ossimVpfCoverage &coverage)
void getFeatureClasses(std::vector< ossimString > &featureClassArray) const
void setName(const ossimString &name)

◆ deleteAllFeatures()

void ossimVpfAnnotationCoverageInfo::deleteAllFeatures ( )

Definition at line 136 of file ossimVpfAnnotationCoverageInfo.cpp.

References theFeatureInfoArray.

Referenced by buildCoverage(), loadState(), and ~ossimVpfAnnotationCoverageInfo().

137 {
138  for(ossim_uint32 idx = 0; idx < theFeatureInfoArray.size();++idx)
139  {
140  theFeatureInfoArray[idx];
141  }
142 
143  theFeatureInfoArray.clear();
144 }
unsigned int ossim_uint32
std::vector< ossimVpfAnnotationFeatureInfo * > theFeatureInfoArray

◆ drawAnnotations()

void ossimVpfAnnotationCoverageInfo::drawAnnotations ( ossimRgbImage tile)

Definition at line 125 of file ossimVpfAnnotationCoverageInfo.cpp.

References theFeatureInfoArray.

126 {
127  for(ossim_uint32 idx = 0; idx < theFeatureInfoArray.size();++idx)
128  {
129  if(theFeatureInfoArray[idx]->getEnabledFlag())
130  {
131  theFeatureInfoArray[idx]->drawAnnotations(tile);
132  }
133  }
134 }
unsigned int ossim_uint32
std::vector< ossimVpfAnnotationFeatureInfo * > theFeatureInfoArray

◆ getAllFeatures()

void ossimVpfAnnotationCoverageInfo::getAllFeatures ( std::vector< ossimVpfAnnotationFeatureInfo *> &  result)

Definition at line 43 of file ossimVpfAnnotationCoverageInfo.cpp.

References theFeatureInfoArray.

44 {
45  for(ossim_uint32 idx = 0; idx < theFeatureInfoArray.size();++idx)
46  {
47  result.push_back(theFeatureInfoArray[idx]);
48  }
49 }
unsigned int ossim_uint32
std::vector< ossimVpfAnnotationFeatureInfo * > theFeatureInfoArray

◆ getBoundingProjectedRect()

ossimIrect ossimVpfAnnotationCoverageInfo::getBoundingProjectedRect ( ) const

Definition at line 51 of file ossimVpfAnnotationCoverageInfo.cpp.

References ossimIrect::combine(), ossimIrect::hasNans(), ossimIrect::makeNan(), and theFeatureInfoArray.

52 {
53  ossimIrect result;
54  result.makeNan();
55 
56  for(ossim_uint32 idx = 0; idx < theFeatureInfoArray.size();++idx)
57  {
58  ossimIrect tempRect = theFeatureInfoArray[idx]->getBoundingProjectedRect();
59  if(!tempRect.hasNans())
60  {
61  if(result.hasNans())
62  {
63  result = tempRect;
64  }
65  else
66  {
67  result = result.combine(tempRect);
68  }
69  }
70  }
71 
72  return result;
73 }
unsigned int ossim_uint32
std::vector< ossimVpfAnnotationFeatureInfo * > theFeatureInfoArray
void makeNan()
Definition: ossimIrect.h:329
bool hasNans() const
Definition: ossimIrect.h:337
ossimIrect combine(const ossimIrect &rect) const
Definition: ossimIrect.cpp:543

◆ getEnabledFeatures()

void ossimVpfAnnotationCoverageInfo::getEnabledFeatures ( std::vector< ossimVpfAnnotationFeatureInfo *> &  result)

Definition at line 32 of file ossimVpfAnnotationCoverageInfo.cpp.

References theFeatureInfoArray.

33 {
34  for(ossim_uint32 idx = 0; idx < theFeatureInfoArray.size();++idx)
35  {
36  if(theFeatureInfoArray[idx]->getEnabledFlag())
37  {
38  result.push_back(theFeatureInfoArray[idx]);
39  }
40  }
41 }
unsigned int ossim_uint32
std::vector< ossimVpfAnnotationFeatureInfo * > theFeatureInfoArray

◆ getLibrary() [1/2]

ossimVpfLibrary* ossimVpfAnnotationCoverageInfo::getLibrary ( )
inline

Definition at line 52 of file ossimVpfAnnotationCoverageInfo.h.

References theLibrary.

53  {
54  return theLibrary;
55  }

◆ getLibrary() [2/2]

const ossimVpfLibrary* ossimVpfAnnotationCoverageInfo::getLibrary ( ) const
inline

Definition at line 56 of file ossimVpfAnnotationCoverageInfo.h.

References theLibrary.

57  {
58  return theLibrary;
59  }

◆ getName()

ossimString ossimVpfAnnotationCoverageInfo::getName ( ) const
inline

Definition at line 44 of file ossimVpfAnnotationCoverageInfo.h.

References theName.

45  {
46  return theName;
47  }

◆ hasRenderableFeature()

bool ossimVpfAnnotationCoverageInfo::hasRenderableFeature ( ) const

Definition at line 19 of file ossimVpfAnnotationCoverageInfo.cpp.

References theFeatureInfoArray.

20 {
21  for(ossim_uint32 idx = 0; idx < theFeatureInfoArray.size();++idx)
22  {
23  if(theFeatureInfoArray[idx]->getEnabledFlag())
24  {
25  return true;
26  }
27  }
28 
29  return false;
30 }
unsigned int ossim_uint32
std::vector< ossimVpfAnnotationFeatureInfo * > theFeatureInfoArray

◆ loadState()

bool ossimVpfAnnotationCoverageInfo::loadState ( const ossimKeywordlist kwl,
const char *  prefix = 0 
)
virtual

Definition at line 166 of file ossimVpfAnnotationCoverageInfo.cpp.

References deleteAllFeatures(), ossimKeywordlist::find(), ossimVpfLibrary::getCoverage(), ossimKeywordlist::getSubstringKeyList(), ossimVpfAnnotationFeatureInfo::loadState(), ossimVpfAnnotationFeatureInfo::setCoverage(), size, theFeatureInfoArray, theLibrary, theName, ossimString::toInt(), and ossimString::toString().

Referenced by ossimVpfAnnotationLibraryInfo::loadState().

168 {
170 
171  if(!theLibrary)
172  {
173  return false;
174  }
175 
176  theName = kwl.find(prefix, "name");
177  ossimVpfCoverage coverage;
178 
179  if(theLibrary->getCoverage(theName, coverage))
180  {
181  ossimString regExpression = ossimString("^(") + ossimString(prefix) + "feature[0-9]+.)";
182  vector<ossimString> keys =
183  kwl.getSubstringKeyList( regExpression );
184  std::vector<int> theNumberList(keys.size());
185  int offset = (int)(ossimString(prefix)+"feature").size();
186  int idx = 0;
187  for(idx = 0; idx < (int)theNumberList.size();++idx)
188  {
189  ossimString numberStr(keys[idx].begin() + offset,
190  keys[idx].end());
191  theNumberList[idx] = numberStr.toInt();
192  }
193  std::sort(theNumberList.begin(), theNumberList.end());
194 
195  for(idx=0;idx < (int)keys.size();++idx)
196  {
197  ossimString newPrefix = ossimString(prefix);
198  newPrefix += ossimString("feature");
199  newPrefix += ossimString::toString(theNumberList[idx]);
200  newPrefix += ossimString(".");
202  featureInfo->setCoverage(coverage);
203  theFeatureInfoArray.push_back(featureInfo);
204  if(!featureInfo->loadState(kwl,
205  newPrefix))
206  {
207  return false;
208  }
209  }
210  }
211  else
212  {
213  return false;
214  }
215 
216  return true;
217 }
const char * find(const char *key) const
static ossimString toString(bool aValue)
Numeric to string methods.
yy_size_t size
bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
std::vector< ossimVpfAnnotationFeatureInfo * > theFeatureInfoArray
bool getCoverage(long coverageNumber, ossimVpfCoverage &coverage)
std::vector< ossimString > getSubstringKeyList(const ossimString &regularExpression) const
void setCoverage(const ossimVpfCoverage &coverage)

◆ saveState()

bool ossimVpfAnnotationCoverageInfo::saveState ( ossimKeywordlist kwl,
const char *  prefix = 0 
) const
virtual

Definition at line 148 of file ossimVpfAnnotationCoverageInfo.cpp.

References ossimKeywordlist::add(), theFeatureInfoArray, theName, and ossimString::toString().

150 {
151  kwl.add(prefix,
152  "name",
153  theName,
154  true);
155 
156  for(ossim_uint32 idx = 0; idx < theFeatureInfoArray.size(); ++idx)
157  {
158  theFeatureInfoArray[idx]->saveState(kwl,
159  (ossimString(prefix) + "feature" +
160  ossimString::toString(idx) + ".").c_str());
161  }
162 
163  return true;
164 }
static ossimString toString(bool aValue)
Numeric to string methods.
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
unsigned int ossim_uint32
std::vector< ossimVpfAnnotationFeatureInfo * > theFeatureInfoArray

◆ setLibrary()

void ossimVpfAnnotationCoverageInfo::setLibrary ( ossimVpfLibrary library)
inline

Definition at line 48 of file ossimVpfAnnotationCoverageInfo.h.

References theLibrary.

Referenced by ossimVpfAnnotationLibraryInfo::loadState().

49  {
50  theLibrary = library;
51  }

◆ setName()

void ossimVpfAnnotationCoverageInfo::setName ( const ossimString name)
inline

Definition at line 40 of file ossimVpfAnnotationCoverageInfo.h.

References theName.

41  {
42  theName = name;
43  }

◆ transform()

void ossimVpfAnnotationCoverageInfo::transform ( ossimImageGeometry geom)

Definition at line 76 of file ossimVpfAnnotationCoverageInfo.cpp.

References theFeatureInfoArray.

77 {
78  for(ossim_uint32 idx = 0; idx < theFeatureInfoArray.size();++idx)
79  {
80  theFeatureInfoArray[idx]->transform(geom);
81  }
82 }
unsigned int ossim_uint32
std::vector< ossimVpfAnnotationFeatureInfo * > theFeatureInfoArray

Member Data Documentation

◆ theFeatureInfoArray

std::vector<ossimVpfAnnotationFeatureInfo*> ossimVpfAnnotationCoverageInfo::theFeatureInfoArray
protected

◆ theLibrary

ossimVpfLibrary* ossimVpfAnnotationCoverageInfo::theLibrary
protected

Not owned.

Definition at line 73 of file ossimVpfAnnotationCoverageInfo.h.

Referenced by buildCoverage(), getLibrary(), loadState(), and setLibrary().

◆ theName

ossimString ossimVpfAnnotationCoverageInfo::theName
protected

The documentation for this class was generated from the following files: