OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimPotraceTool.h
Go to the documentation of this file.
1 //**************************************************************************************************
2 //
3 // OSSIM Open Source Geospatial Data Processing Library
4 // See top level LICENSE.txt file for license information
5 //
6 //**************************************************************************************************
7 
8 #ifndef ossimPotraceUtility_HEADER
9 #define ossimPotraceUtility_HEADER 1
10 
14 
15 extern "C" {
16 #include "potracelib.h"
17 }
18 
20 {
21 public:
22  static const char* DESCRIPTION;
23  enum OutputMode { POLYGON, LINESTRING };
24 
26 
27  virtual ~ossimPotraceTool();
28 
29  virtual void setUsage(ossimArgumentParser& ap);
30 
31  virtual bool initialize(ossimArgumentParser& ap);
32 
33  virtual void initialize(const ossimKeywordlist& ap);
34 
35  virtual bool execute();
36 
37  virtual ossimString getClassName() const { return "ossimPotraceUtil"; }
38 
39  virtual void getKwlTemplate(ossimKeywordlist& kwl);
40 
41 private:
42  class Path
43  {
44  public:
45  Path() : closed(true) {}
46  ~Path();
47  void addPotraceCurve(potrace_curve_t& curve, int segment);
48  std::vector<ossimDpt> vertices;
49  bool closed;
50  };
51 
52  virtual void initProcessingChain();
53  virtual void finalizeChain();
54  potrace_bitmap_t* convertToBitmap(ossimImageSource* handler);
55  bool writeGeoJSON(potrace_path_t* vectorList);
56  bool pixelIsMasked(const ossimIpt& image_pt, potrace_bitmap_t* bitmap) const;
57  void transformLineStrings(potrace_state_t* pathTree);
58  void transformPolygons(potrace_state_t* pathTree);
59 
61  double m_alphamax;
66 };
67 
68 #endif /* #ifndef ossimPotraceUtility_HEADER */
virtual bool initialize(ossimArgumentParser &ap)
Initial method to be ran prior to execute.
static const char * DESCRIPTION
virtual void initProcessingChain()=0
Derived classes initialize their custom chains here.
virtual ossimString getClassName() const
Represents serializable keyword/value map.
potrace_bitmap_t * m_maskBitmap
virtual void getKwlTemplate(ossimKeywordlist &kwl)
Assigns a template keywordlist to string for initializing derived classes.
Definition: ossimTool.cpp:100
virtual void setUsage(ossimArgumentParser &ap)
Initializes the aurgument parser with expected parameters and options.
virtual void finalizeChain()
Called after initProcessingChain() to append common items to the processing chain.
std::vector< ossimDpt > vertices
#define OSSIM_DLL
potrace_bitmap_t * m_productBitmap
virtual bool execute()
Performs the actual product write.