/usr/include/ossim/imaging/ossimTilePatch.h is in libossim-dev 1.7.21-4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | //*******************************************************************
// Copyright (C) 2000 ImageLinks Inc.
//
// License: LGPL
//
// See LICENSE.txt file in the top level directory for more details.
//
// Author: Garrett Potts
//
//*******************************************************************
// $Id: ossimTilePatch.h 13312 2008-07-27 01:26:52Z gpotts $
#ifndef ossimTilePatch_HEADER
#define ossimTilePatch_HEADER
#include <ossim/base/ossimObject.h>
#include <ossim/base/ossimRefPtr.h>
#include <ossim/base/ossimIrect.h>
#include <ossim/base/ossimDrect.h>
#include <ossim/imaging/ossimDiscreteNearestNeighbor.h>
#include <ossim/imaging/ossimImageData.h>
class ossimImageSource;
class ossimTilePatch : public ossimObject
{
public:
ossimTilePatch(ossimImageSource* input);
/*!
* The rect is assumed up right and all we need
* to do is compute the even tile boundary rect
*/
ossimTilePatch(ossimScalarType scalarType = OSSIM_UCHAR,
long numberOfComponents = 1,
long width=128,
long height=128);
virtual ~ossimTilePatch();
/*!
* return the tile boundary aligned rectangle for this
* patch.
*/
virtual ossimIrect getRect()const;
/*!
* The padding is for any convolution that must take
* place.
*/
virtual void setRect(const ossimDpt &p1,
const ossimDpt &p2,
const ossimDpt &p3,
const ossimDpt &p4,
const ossimDpt &tile_size,
const ossimDpt &padding=ossimDpt(0,0));
virtual void setRect(const ossimDrect &aRect,
const ossimDpt &tile_size,
const ossimDpt &padding=ossimDpt(0,0));
virtual void setRect(const ossimDpt ¢er_of_rect,
const ossimDpt &rect_size,
const ossimDpt &tile_size,
const ossimDpt &padding=ossimDpt(0,0));
/*!
* This will fill the tile from the tile patch.
*/
virtual void fillTile(ossimRefPtr<ossimImageData>& aTile)const;
/*!
* This will fill the tile from the tile patch and apply the convolution
* kernel. This is optimized for upright rectangles. Use the bilinear
* fill tile bellow for arbitrary 4-sided polygons.
*/
virtual void fillTile(ossimRefPtr<ossimImageData>& result,
ossimDiscreteConvolutionKernel* kernel)const;
/*!
* We will assume that the patch is already
* big enough to satisfy the kernel size.
*/
virtual void fillTile(ossimRefPtr<ossimImageData>& result,
const ossimDpt &ul,
const ossimDpt &ur,
const ossimDpt &deltaUl,
const ossimDpt &deltaUr,
const ossimDpt &length)const;
virtual void fillPatch(ossimImageSource *imageSource,
long resLevel = 0);
// static ossimIrect alignRectToBoundary(const ossimDrect &aRect,
// const ossimDpt &tile_size);
static ossimDrect findBoundingRect(const ossimDpt &p1,
const ossimDpt &p2,
const ossimDpt &p3,
const ossimDpt &p4);
/*!
* Do not delete this data. We give raw access to the buffer
* if there are special things you wish to have done.
*/
ossimRefPtr<ossimImageData> getData(){return thePatchData;}
void setData(ossimRefPtr<ossimImageData>& patchData);
/*!
* This will implement an in place convolution. It will
* allocate a buffer pass it to the convolution algorithm
* and then replace the internal buffer.
*/
void convolve(ossimDiscreteConvolutionKernel* kernel);
protected:
ossimRefPtr<ossimImageData> thePatchData;
static ossimDiscreteNearestNeighbor nearestNeighborKernel;
template<class T>
void fillTileTemplate(T dummyVariable,
ossimRefPtr<ossimImageData>& result,
const ossimDpt &ul,
const ossimDpt &ur,
const ossimDpt &deltaUl,
const ossimDpt &deltaUr,
const ossimDpt &length)const;
template<class T>
void fillTileTemplate(T dummyVariable,
ossimRefPtr<ossimImageData>& result,
ossimDiscreteConvolutionKernel* kernel)const;
};
#endif
|