20 "ossimGeoAnnotationBitmap",
30 theCenterPoint(center),
31 theProjectedPoint(0,0),
34 if(imageData.
valid() &&
37 theImageData = imageData;
42 <<
"ossimGeoAnnotationBitmap::ossimGeoAnnotationBitmap\n" 43 <<
"Invalid image data passed to ossimGeoAnnotationBitmap " 44 <<
"constructor" << endl;
52 theCenterPoint(rhs.theCenterPoint),
53 theProjectedPoint(rhs.theProjectedPoint),
54 theImageData(rhs.theImageData)
83 <<
"ossimGeoAnnotationBitmap::getNewClippedObject WRNING: " 84 <<
"not implemented" << std::endl;
92 <<
"ossimGeoAnnotationBitmap::applyScale WRNING: not implemented" 110 <<
"ossimGeoAnnotationBitmap::draw\n" 111 <<
"ERROR: can't draw annotation bitmap to NULL buffer" << endl;
123 long clipHeight = (long)clipRect.
height();
124 long clipWidth = (long)clipRect.
width();
127 if(clipRect.
width() != 1.0 &&
130 long destinationOffset = (long)(((clipRect.
ul().
y - destinationRect.
ul().
y)* destinationRect.
width()) +
131 (clipRect.
ul().
x - destinationRect.
ul().
x));
132 long srcOffset = (long)(((clipRect.
ul().
y - srcRect.
ul().
y)*srcRect.
width()) +
133 (clipRect.
ul().
x - srcRect.
ul().
x));
134 long destinationIndex = destinationOffset;
135 long srcIndex = srcOffset;
140 num_bands = num_bands > 3? 3:num_bands;
143 unsigned char colorArray[3];
147 for (
long band=0; band<num_bands; ++band)
150 destinationIndex = destinationOffset;
151 srcIndex = srcOffset;
152 for(
long line = 0; line < clipHeight; ++line)
154 for(
long col = 0; col < clipWidth; ++col)
156 if(imageDataBuf[srcIndex + col])
158 destinationBand[destinationIndex + col] = colorArray[band];
162 destinationIndex += d_width;
virtual ossim_uint32 getWidth() const
virtual ossimGeoAnnotationBitmap * getNewClippedObject(const ossimDrect &rect) const
virtual void applyScale(double x, double y)
virtual ossim_uint32 getNumberOfBands() const
virtual void draw(ossimRgbImage &anImage) const
ossim_uint32 height() const
const ossimIpt & ul() const
virtual ossim_uint32 getHeight() const
bool intersects(const ossimIrect &rect) const
virtual void computeBoundingRect()
RTTI_DEF1(ossimGeoAnnotationBitmap, "ossimGeoAnnotationBitmap", ossimGeoAnnotationObject) ossimGeoAnnotationBitmap
virtual bool intersects(const ossimDrect &rect) const
virtual ossimDrect getBoundingRect() const
ossimRefPtr< ossimImageData > getImageData()
Will return the image data.
virtual ossimIrect getImageRectangle() const
virtual void transform(ossimImageGeometry *projection)
ossimGeoAnnotationBitmap(const ossimGpt ¢er=ossimGpt(0, 0, 0), ossimRefPtr< ossimImageData > imageData=0, unsigned char r=255, unsigned char g=255, unsigned char b=255)
virtual std::ostream & print(std::ostream &out) const
Generic print method.
ossim_uint32 width() const
ossimIrect clipToRect(const ossimIrect &rect) const
Container class that holds both 2D transform and 3D projection information for an image Only one inst...
virtual void setOrigin(const ossimIpt &origin)
virtual ossimScalarType getScalarType() const
virtual ~ossimGeoAnnotationBitmap()
virtual void setImageData(ossimRefPtr< ossimImageData > &imageData)
ossimDpt theProjectedPoint
virtual const void * getBuf() const
ossimRefPtr< ossimImageData > theImageData
bool worldToLocal(const ossimGpt &world_pt, ossimDpt &local_pt) const
Exposes the 3D world-to-local image coordinate reverse projection.
virtual ossimObject * dup() const
unsigned char ossim_uint8
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
std::basic_ostream< char > ostream
Base class for char output streams.