19 static ossimTrace traceDebug(
"ossimTrimFilter:debug");
86 vector<ossimIpt>& validVertices,
93 if(validVertices.size()==4)
100 validVertices[1])*.5) );
102 validVertices[3])*.5 ) );
104 validVertices[3])*.5) );
106 validVertices[2])*.5) );
108 ossimDpt topAxis = (averageTop-averagePt);
109 ossimDpt rightAxis = (averageRight-averagePt);
110 ossimDpt leftAxis = (averageLeft-averagePt);
111 ossimDpt bottomAxis = (averageBottom-averagePt);
113 double topLen = topAxis.
length();
114 double bottomLen = bottomAxis.
length();
115 double rightLen = rightAxis.
length();
116 double leftLen = leftAxis.
length();
123 topAxis = topAxis*(1.0/topLen);
124 bottomAxis = bottomAxis*(1.0/bottomLen);
125 leftAxis = leftAxis*(1.0/leftLen);
126 rightAxis = rightAxis*(1.0/rightLen);
130 for(idx = 0; idx < validVertices.size(); ++idx)
134 ossimDpt diff = validVertices[idx]-averagePt;
135 double testLen = (topAxis.
x*diff.
x+
140 axis[count] = topAxis;
147 testLen = (bottomAxis.x*diff.
x+
148 bottomAxis.y*diff.
y);
151 axis[count] = bottomAxis;
158 testLen = (leftAxis.x*diff.
x+
162 axis[count] = leftAxis;
169 testLen = (rightAxis.x*diff.
x+
173 axis[count] = rightAxis;
180 validVertices[idx] = (averagePt + (axis[0]*axisLen[0] +
181 axis[1]*axisLen[1]));
207 vector<ossimIpt> validVertices;
212 if(validVertices.size())
237 const char* prefix)
const 262 const char* leftPerc = kwl.
find(prefix,
"left_percent");
263 const char* rightPerc = kwl.
find(prefix,
"right_percent");
264 const char* topPerc = kwl.
find(prefix,
"top_percent");
265 const char* bottomPerc = kwl.
find(prefix,
"bottom_percent");
290 if(name ==
"left_percent")
297 else if(name ==
"right_percent")
304 else if(name ==
"top_percent")
311 else if(name ==
"bottom_percent")
319 if(prop)
return prop;
326 if(!property.
valid())
return;
329 if(name ==
"left_percent")
333 else if(name ==
"right_percent")
337 else if(name ==
"top_percent")
341 else if(name ==
"bottom_percent")
353 propertyNames.push_back(
"left_percent");
354 propertyNames.push_back(
"right_percent");
355 propertyNames.push_back(
"top_percent");
356 propertyNames.push_back(
"bottom_percent");
virtual bool isSourceEnabled() const
virtual ossimRefPtr< ossimConnectableObject > disconnectMyInput(ossim_int32 inputIndex, bool disconnectOutputFlag=true, bool createEventFlag=true)
Will disconnect the object at the given input index and generate a connection event.
virtual void setProperty(ossimRefPtr< ossimProperty > property)
virtual void setProperty(ossimRefPtr< ossimProperty > property)
Set property.
Represents serializable keyword/value map.
const char * find(const char *key) const
virtual ossimRefPtr< ossimImageData > getTile(const ossimIrect &tileRect, ossim_uint32 resLevel=0)
static ossimString toString(bool aValue)
Numeric to string methods.
virtual ossimDataObjectStatus getDataObjectStatus() const
virtual ~ossimTrimFilter()
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=NULL) const
Method to save the state of an object to a keyword list.
virtual void getPropertyNames(std::vector< ossimString > &propertyNames) const
Adds this objects properties to the list.
ossimConnectableObject * getInput(ossim_uint32 index=0)
returns the object at the specified index.
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
std::vector< ossimIpt > theValidVertices
virtual void getValidImageVertices(std::vector< ossimIpt > &validVertices, ossimVertexOrdering ordering=OSSIM_CLOCKWISE_ORDER, ossim_uint32 resLevel=0) const
ordering specifies how the vertices should be arranged.
virtual void setPolygon(const vector< ossimDpt > &polygon, ossim_uint32 i=0)
ossimImageSource * theInputConnection
unsigned int ossim_uint32
ossimRefPtr< ossimPolyCutter > theCutter
virtual void getValidImageVertices(vector< ossimIpt > &validVertices, ossimVertexOrdering ordering=OSSIM_CLOCKWISE_ORDER, ossim_uint32 resLevel=0) const
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=NULL)
Method to the load (recreate) the state of an object from a keyword list.
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Method to the load (recreate) the state of an object from a keyword list.
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const
virtual ossim_int32 connectMyInputTo(ossimConnectableObject *inputObject, bool makeOutputConnection=true, bool createEventFlag=true)
Will try to connect this objects input to the passed in object.
virtual void initialize()
RTTI_DEF1(ossimTrimFilter, "ossimTrimFilter", ossimImageSourceFilter)
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
Method to save the state of an object to a keyword list.
virtual ossimIrect getBoundingRect(ossim_uint32 resLevel=0) const
This will return the bounding rect of the source.
virtual void initialize()
virtual ossimRefPtr< ossimProperty > getProperty(const ossimString &name) const
virtual void setNumberOfPolygons(ossim_uint32 count)
ossimRefPtr< ossimImageData > getTile(const ossimIrect &rect, ossim_uint32 resLevel=0)
virtual ossimRefPtr< ossimImageData > getTile(const ossimIpt &origin, ossim_uint32 resLevel=0)