OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
ossimGeoAnnotationMultiPolyObject.h
Go to the documentation of this file.
1 //*******************************************************************
2 //
3 // License: See top level LICENSE.txt file.
4 //
5 // Author: Garrett Potts (gpotts@imagelinks.com)
6 // Description:
7 //
8 //*************************************************************************
9 // $Id: ossimGeoAnnotationMultiPolyObject.h 15766 2009-10-20 12:37:09Z gpotts $
10 #ifndef ossimGeoAnnotationMultiPolyObject_HEADER
11 #define ossimGeoAnnotationMultiPolyObject_HEADER
13 #include <ossim/base/ossimIpt.h>
16 
18 {
19 public:
21  ossimGeoAnnotationMultiPolyObject(const vector<ossimGeoPolygon>& multiPoly,
22  bool enableFill=false,
23  unsigned char r=255,
24  unsigned char g=255,
25  unsigned char b=255,
26  long thickness=1);
27 
29  virtual ossimObject* dup()const;
30 
31  virtual void transform(ossimImageGeometry* projection);
32 
33  virtual void applyScale(double x,
34  double y);
35  virtual void draw(ossimRgbImage& anImage)const;
36  virtual bool intersects(const ossimDrect& rect)const;
37 
38  virtual ossimAnnotationObject* getNewClippedObject(const ossimDrect& rect)const;
39  virtual std::ostream& print(std::ostream& out)const;
40  virtual void getBoundingRect(ossimDrect& rect)const;
41  virtual void addPoint(ossim_uint32 polygonIndex, const ossimGpt& pt);
42 
43  virtual void setMultiPolygon(const vector<ossimGeoPolygon>& multiPoly);
44 
45  virtual void setColor(unsigned char r, unsigned char g, unsigned char b);
46 
47  virtual void setThickness(ossim_uint8 thickness);
48 
49  virtual void computeBoundingRect();
50  virtual bool isPointWithin(const ossimDpt& imagePoint)const;
51  virtual void setFillFlag(bool flag);
52 
53  const std::vector<ossimGeoPolygon>& getMultiPolygon()const{return theMultiPolygon;}
54  std::vector<ossimGeoPolygon>& getMultiPolygon(){return theMultiPolygon;}
55 
56 protected:
58 
59  std::vector<ossimGeoPolygon> theMultiPolygon;
63 
64  void allocateProjectedPolygon();
66 };
67 
68 #endif
ossim_uint32 x
virtual void draw(ossimRgbImage &anImage) const =0
virtual void setThickness(ossim_uint8 thickness)
virtual bool intersects(const ossimDrect &rect) const =0
ossim_uint32 y
virtual ossimAnnotationObject * getNewClippedObject(const ossimDrect &rect) const =0
virtual void transform(ossimImageGeometry *projection)=0
virtual std::ostream & print(std::ostream &out) const
Generic print method.
virtual ossimDrect getBoundingRect() const
#define TYPE_DATA
Definition: ossimRtti.h:339
std::vector< ossimGeoPolygon > & getMultiPolygon()
unsigned int ossim_uint32
const std::vector< ossimGeoPolygon > & getMultiPolygon() const
ossimRefPtr< ossimAnnotationMultiPolyObject > theProjectedPolyObject
virtual void setColor(ossim_uint8 r, ossim_uint8 g, ossim_uint8 b)
virtual void applyScale(double x, double y)=0
Container class that holds both 2D transform and 3D projection information for an image Only one inst...
#define OSSIM_DLL
virtual bool isPointWithin(const ossimDpt &imagePoint) const
virtual ossimObject * dup() const
Definition: ossimObject.cpp:29
virtual void computeBoundingRect()=0
unsigned char ossim_uint8
std::basic_ostream< char > ostream
Base class for char output streams.
Definition: ossimIosFwd.h:23