OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
ossimRLevelFilter Class Reference

#include <ossimRLevelFilter.h>

Inheritance diagram for ossimRLevelFilter:
ossimImageSourceFilter ossimImageSource ossimConnectableObjectListener ossimSource ossimListener ossimConnectableObject ossimErrorStatusInterface ossimObject ossimListenerManager ossimPropertyInterface ossimReferenced

Public Member Functions

 ossimRLevelFilter ()
 default constructor More...
 
virtual void getDecimationFactor (ossim_uint32 resLevel, ossimDpt &result) const
 Will return the decimation factor for the given resolution level. More...
 
ossimRefPtr< ossimImageGeometrygetImageGeometry ()
 Returns a pointer reference to the active image geometry at this filter. More...
 
virtual void setCurrentRLevel (ossim_uint32 rlevel)
 
virtual ossim_uint32 getCurrentRLevel () const
 
virtual bool getOverrideGeometryFlag () const
 
virtual void setOverrideGeometryFlag (bool override)
 
virtual ossimIrect getBoundingRect (ossim_uint32 resLevel=0) const
 Returns the bounding rectangle. More...
 
virtual ossimRefPtr< ossimImageDatagetTile (const ossimIrect &tileRect, ossim_uint32 resLevel=0)
 
virtual bool loadState (const ossimKeywordlist &kwl, const char *prefix=0)
 Method to the load (recreate) the state of an object from a keyword list. More...
 
virtual bool saveState (ossimKeywordlist &kwl, const char *prefix=0) const
 Method to save the state of an object to a keyword list. More...
 
- Public Member Functions inherited from ossimImageSourceFilter
 ossimImageSourceFilter (ossimObject *owner=NULL)
 
 ossimImageSourceFilter (ossimImageSource *inputSource)
 
 ossimImageSourceFilter (ossimObject *owner, ossimImageSource *inputSource)
 
virtual void getOutputBandList (std::vector< ossim_uint32 > &bandList) const
 
virtual ossim_uint32 getNumberOfInputBands () const
 
virtual void initialize ()
 
bool canConnectMyInputTo (ossim_int32 inputIndex, const ossimConnectableObject *object) const
 required to be overriden by derived classes More...
 
virtual void connectInputEvent (ossimConnectionEvent &event)
 
virtual void disconnectInputEvent (ossimConnectionEvent &event)
 
virtual void propertyEvent (ossimPropertyEvent &event)
 
virtual void refreshEvent (ossimRefreshEvent &event)
 
virtual void setProperty (ossimRefPtr< ossimProperty > property)
 
virtual ossimRefPtr< ossimPropertygetProperty (const ossimString &name) const
 
virtual void getPropertyNames (std::vector< ossimString > &propertyNames) const
 
- Public Member Functions inherited from ossimImageSource
 ossimImageSource (ossimObject *owner=0)
 
 ossimImageSource (ossimObject *owner, ossim_uint32 inputListSize, ossim_uint32 outputListSize, bool inputListIsFixedFlag=true, bool outputListIsFixedFlag=true)
 
virtual ~ossimImageSource ()
 
virtual ossimRefPtr< ossimImageDatagetTile (const ossimIpt &origin, ossim_uint32 resLevel=0)
 
virtual bool getTile (ossimImageData *result, ossim_uint32 resLevel=0)
 Method to get a tile. More...
 
virtual ossimObjectgetObject ()
 For RTTI support. More...
 
virtual const ossimObjectgetObject () const
 For RTTI support. More...
 
virtual void getDecimationFactors (std::vector< ossimDpt > &decimations) const
 Will return an array of all decimations for each resolution level. More...
 
virtual ossim_uint32 getNumberOfDecimationLevels () const
 Will return the number of resolution levels. More...
 
virtual ossim_uint32 getNumberOfOutputBands () const
 Returns the number of bands in a tile returned from this TileSource. More...
 
virtual ossimScalarType getOutputScalarType () const
 This will be used to query the output pixel type of the tile source. More...
 
virtual ossim_uint32 getTileWidth () const
 Returns the default processing tile width. More...
 
virtual ossim_uint32 getTileHeight () const
 Returns the default processing tile height. More...
 
virtual double getNullPixelValue (ossim_uint32 band=0) const
 Each band has a null pixel associated with it. More...
 
virtual double getMinPixelValue (ossim_uint32 band=0) const
 Returns the min pixel of the band. More...
 
virtual double getMaxPixelValue (ossim_uint32 band=0) const
 Returns the max pixel of the band. More...
 
virtual void getBoundingRect (ossimIrect &rect, ossim_uint32 resLevel=0) const
 Gets the bounding rectangle of the source. More...
 
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. More...
 
virtual void setImageGeometry (const ossimImageGeometry *geom)
 Default implementation sets geometry of the first input to the geometry specified. More...
 
virtual void saveImageGeometry () const
 Default method to call input's saveImageGeometry. More...
 
virtual void saveImageGeometry (const ossimFilename &geometry_file) const
 Default method to call input's saveImageGeometry. More...
 
virtual bool isIndexedData () const
 
- Public Member Functions inherited from ossimSource
 ossimSource (ossimObject *owner=0)
 
 ossimSource (ossimObject *owner, ossim_uint32 inputListSize, ossim_uint32 outputListSize, bool inputListIsFixedFlag=true, bool outputListIsFixedFlag=true)
 
virtual ~ossimSource ()
 
virtual bool isSourceEnabled () const
 
virtual void enableSource ()
 
virtual void disableSource ()
 
virtual bool getEnableFlag () const
 
virtual void setEnableFlag (bool flag)
 
virtual bool isInitialized () const
 
virtual void setInitializedFlag (bool flag)
 
virtual std::ostream & print (std::ostream &out) const
 Outputs theErrorStatus as an ossimErrorCode and an ossimString. More...
 
- Public Member Functions inherited from ossimConnectableObject
 ossimConnectableObject (ossimObject *owner=0)
 Base constructor of this object. More...
 
 ossimConnectableObject (ossimObject *owner, ossim_int32 inputListSize, ossim_int32 outputListSize, bool inputListIsFixedFlag=true, bool outputListIsFixedFlag=true)
 
virtual ~ossimConnectableObject ()
 
void setId (const ossimId &id)
 All connectable objects will have id's. More...
 
const ossimIdgetId () const
 Will allow us to get this object's id. More...
 
const ossimObjectgetOwner () const
 Fetches the current owner, most likely a container but not limited to one. More...
 
virtual void changeOwner (ossimObject *owner)
 Permits changing the object's owner. More...
 
virtual void setDescription (const ossimString &description)
 
virtual ossimString getDescription () const
 
virtual bool isConnected (ossimConnectableObjectDirectionType direction=CONNECTABLE_DIRECTION_INPUT) const
 will check the direction specified to see if all slots are full. More...
 
 OSSIM_DEPRECATE_METHOD (virtual ossimConnectableObject *findConnectableObject(const ossimId &id))
 
 OSSIM_DEPRECATE_METHOD (virtual ossimConnectableObject *findObjectOfType(RTTItypeid typeId, ossimConnectableObjectDirectionType directionType, bool recurse=true))
 
 OSSIM_DEPRECATE_METHOD (virtual ossimConnectableObject *findObjectOfType(const ossimString &obj, ossimConnectableObjectDirectionType directionType, bool recurse=true))
 
 OSSIM_DEPRECATE_METHOD (virtual ossimConnectableObject *findInputObjectOfType(const ossimString &className))
 
virtual ossim_int32 findInputIndex (const ossimConnectableObject *object)
 Return a valid index of the input list if the passed in object is found else return -1. More...
 
virtual ossim_int32 findInputIndex (const ossimId &id)
 Return a valid index of the input list if the passed id is found else return -1. More...
 
virtual ossim_int32 findOutputIndex (const ossimConnectableObject *object)
 Return a valid index of the output list if the passed in object is found else return -1. More...
 
virtual ossim_int32 findOutputIndex (const ossimId &id)
 Return a valid index of the output list if the passed in object is found else return -1. More...
 
virtual ossim_int32 getMyInputIndexToConnectTo (ossimConnectableObject *object) const
 Should return the first available index to connect to. More...
 
virtual ossim_int32 getMyOutputIndexToConnectTo (ossimConnectableObject *object) const
 Should return the first available index to connect to. More...
 
virtual bool canConnectMyOutputTo (ossim_int32 myOutputIndex, const ossimConnectableObject *object) const
 default implementation is to allow anyone to connect to us. More...
 
virtual void disconnect (ossimConnectableObject *object=0)
 Will disconnect the object passed in. More...
 
virtual void disconnect (const ossimId &id)
 Will disconnect the object passed in. More...
 
virtual ossimRefPtr< ossimConnectableObjectdisconnectMyInput (ossim_int32 inputIndex, bool disconnectOutputFlag=true, bool createEventFlag=true)
 Will disconnect the object at the given input index and generate a connection event. More...
 
virtual void disconnectMyInput (ossimConnectableObject *input, bool disconnectOutputFlag=true, bool createEventFlag=true)
 Finds the index of the passed in input and calls disconnectMyInput(inputIndex, disconnectOutputFlag, createEventFlag);. More...
 
virtual void disconnectMyInputs (ConnectableObjectList &inputList, bool disconnectOutputFlag=true, bool createEventFlag=true)
 
virtual ossimRefPtr< ossimConnectableObjectdisconnectMyOutput (ossim_int32 outputIndex, bool disconnectInputFlag=true, bool createEventFlag=true)
 Will disconnect the object at the given output index and generate a connection event. More...
 
virtual void disconnectMyOutput (ossimConnectableObject *output, bool disconnectInputFlag=true, bool createEventFlag=true)
 Will disconnect the output object. More...
 
virtual void disconnectMyOutputs (ConnectableObjectList &outputList, bool disconnectOutputFlag=true, bool createEventFlag=true)
 
virtual void disconnectAllInputs ()
 Will disconnect all of the input objects. More...
 
virtual void disconnectAllOutputs ()
 Will disconnect all of the output objects. More...
 
virtual ossim_int32 connectMyInputTo (ossimConnectableObject *inputObject, bool makeOutputConnection=true, bool createEventFlag=true)
 Will try to connect this objects input to the passed in object. More...
 
virtual ossim_int32 connectMyInputTo (ossim_int32 inputIndex, ossimConnectableObject *inputObject, bool makeOutputConnection=true, bool createEventFlag=true)
 Will connect the specified input to the passed in object. More...
 
virtual bool connectMyInputTo (ConnectableObjectList &inputList, bool makeOutputConnection=true, bool createEventFlag=true)
 
virtual ossim_int32 connectMyOutputTo (ossimConnectableObject *outputObject, bool makeInputConnection=true, bool createEventFlag=true)
 Will try to connect this objects output to the passed in object. More...
 
virtual bool connectMyOutputTo (ConnectableObjectList &outputList, bool makeInputConnection=true, bool createEventFlag=true)
 
virtual bool connectInputList (ConnectableObjectList &inputList)
 Will disconnect itself from all inputs and reset to the passed in input list. More...
 
virtual bool connectOutputList (ConnectableObjectList &outputList)
 Will disconnect itself from all outputs and reset to the passed in output list. More...
 
virtual ossim_uint32 getNumberOfInputs () const
 Returns the number of input objects. More...
 
virtual ossim_uint32 getNumberOfOutputs () const
 Return the number of output objects. More...
 
ossimConnectableObjectgetInput (ossim_uint32 index=0)
 returns the object at the specified index. More...
 
const ossimConnectableObjectgetInput (ossim_uint32 index=0) const
 returns the object at the specified index. More...
 
ossimConnectableObjectgetOutput (ossim_uint32 index=0)
 returns the object at the specified index. More...
 
const ossimConnectableObjectgetOutput (ossim_uint32 index=0) const
 returns the object at the specified index. More...
 
virtual void setNumberOfInputs (ossim_int32 numberOfInputs)
 Will set the number of inputs. More...
 
virtual bool getInputListIsFixedFlag () const
 
virtual bool getOutputListIsFixedFlag () const
 
virtual void setNumberOfOutputs (ossim_int32 numberOfInputs)
 Will set the number of outputs. More...
 
const ConnectableObjectListgetInputList () const
 
const ConnectableObjectListgetOutputList () const
 
ConnectableObjectListgetInputList ()
 
ConnectableObjectListgetOutputList ()
 
 OSSIM_DEPRECATE_METHOD (virtual void findAllObjectsOfType(ConnectableObjectList &result, const RTTItypeid &typeInfo, bool recurse=true))
 
 OSSIM_DEPRECATE_METHOD (virtual void findAllObjectsOfType(ConnectableObjectList &result, const ossimString &className, bool recurse=true))
 
virtual void propagateEventToOutputs (ossimEvent &event)
 
virtual void propagateEventToInputs (ossimEvent &event)
 
virtual void setProperty (const ossimString &name, const ossimString &value)
 
virtual ossim_uint32 saveStateOfAllInputs (ossimKeywordlist &kwl, bool saveThisStateFlag=true, ossim_uint32 objectIndex=1, const char *prefix=0) const
 Save the state of all inputs to a keyword list. More...
 
virtual bool fillContainer (ossimConnectableContainer &container)
 Inserts this object and all of its children and inputs into the container provided. More...
 
bool moveInputUp (const ossimId &id)
 Moves the input connection matching id up one in the connection list. More...
 
bool moveInputDown (const ossimId &id)
 Moves the input connection matching id down one in the connection list. More...
 
bool moveInputToTop (const ossimId &id)
 Moves the input connection matching id to the top of the connection list. More...
 
bool moveInputToBottom (const ossimId &id)
 Moves the input connection matching id to the bottom of the connection list. More...
 
virtual void accept (ossimVisitor &visitor)
 We will add a visitor interface for all connectable objects. More...
 
- Public Member Functions inherited from ossimObject
 ossimObject ()
 
virtual ~ossimObject ()
 
virtual ossimObjectdup () const
 
virtual ossimString getShortName () const
 
virtual ossimString getLongName () const
 
virtual ossimString getClassName () const
 
virtual RTTItypeid getType () const
 
virtual bool canCastTo (ossimObject *obj) const
 
virtual bool canCastTo (const RTTItypeid &id) const
 
virtual bool canCastTo (const ossimString &parentClassName) const
 
virtual bool isEqualTo (const ossimObject &obj, ossimCompareType compareType=OSSIM_COMPARE_FULL) const
 
- Public Member Functions inherited from ossimReferenced
 ossimReferenced ()
 
 ossimReferenced (const ossimReferenced &)
 
ossimReferencedoperator= (const ossimReferenced &)
 
void ref () const
 increment the reference count by one, indicating that this object has another pointer which is referencing it. More...
 
void unref () const
 decrement the reference count by one, indicating that a pointer to this object is referencing it. More...
 
void unref_nodelete () const
 decrement the reference count by one, indicating that a pointer to this object is referencing it. More...
 
int referenceCount () const
 
- Public Member Functions inherited from ossimListenerManager
 ossimListenerManager ()
 
virtual ~ossimListenerManager ()
 
virtual void fireEvent (ossimEvent &event)
 
virtual bool addListener (ossimListener *listener)
 
virtual bool removeListener (ossimListener *listener)
 
virtual bool findListener (ossimListener *listener)
 
- Public Member Functions inherited from ossimPropertyInterface
 ossimPropertyInterface ()
 
virtual ~ossimPropertyInterface ()
 
virtual ossimString getPropertyValueAsString (const ossimString &name) const
 
void getPropertyList (std::vector< ossimRefPtr< ossimProperty > > &propertyList) const
 
void setProperties (std::vector< ossimRefPtr< ossimProperty > > &propertyList)
 
- Public Member Functions inherited from ossimErrorStatusInterface
 ossimErrorStatusInterface ()
 
virtual ~ossimErrorStatusInterface ()
 
virtual ossimErrorCode getErrorStatus () const
 
virtual ossimString getErrorStatusString () const
 
virtual void setErrorStatus (ossimErrorCode error_status) const
 
virtual void setErrorStatus () const
 
virtual void clearErrorStatus () const
 
bool hasError () const
 
- Public Member Functions inherited from ossimConnectableObjectListener
 ossimConnectableObjectListener ()
 
virtual ~ossimConnectableObjectListener ()
 
virtual void processEvent (ossimEvent &event)
 ProcessEvent. More...
 
virtual void objectDestructingEvent (ossimObjectDestructingEvent &)
 
virtual void connectionEvent (ossimConnectionEvent &)
 
virtual void disconnectOutputEvent (ossimConnectionEvent &)
 
virtual void connectOutputEvent (ossimConnectionEvent &)
 
virtual void addObjectEvent (ossimContainerEvent &)
 
virtual void removeObjectEvent (ossimContainerEvent &)
 
virtual void containerEvent (ossimContainerEvent &)
 
- Public Member Functions inherited from ossimListener
 ossimListener ()
 
virtual ~ossimListener ()
 
void enableListener ()
 
void disableListener ()
 
void setListenerEnableFlag (bool flag)
 
bool isListenerEnabled () const
 
bool getListenerEnableFlag () const
 

Protected Member Functions

virtual ~ossimRLevelFilter ()
 virtual destructor. More...
 
void getSummedDecimation (ossimDpt &result) const
 
void updateGeometry ()
 If this object is maintaining an ossimImageGeometry, this method needs to be called after a scale change so that the geometry's projection is modified accordingly. More...
 
- Protected Member Functions inherited from ossimImageSourceFilter
virtual ~ossimImageSourceFilter ()
 
- Protected Member Functions inherited from ossimImageSource
 ossimImageSource (const ossimImageSource &rhs)
 
const ossimImageSourceoperator= (const ossimImageSource &)
 
- Protected Member Functions inherited from ossimSource
 ossimSource (const ossimSource &rhs)
 
const ossimSourceoperator= (const ossimSource &rhs)
 
- Protected Member Functions inherited from ossimConnectableObject
ossimConnectableObjectfindObjectOfType (ConnectableObjectList *connectableList, ossimVisitor &visitor)
 
- Protected Member Functions inherited from ossimReferenced
virtual ~ossimReferenced ()
 
- Protected Member Functions inherited from ossimListenerManager
 ossimListenerManager (const ossimListenerManager &rhs)
 

Protected Attributes

ossim_uint32 theCurrentRLevel
 
bool theOverrideGeometryFlag
 
ossimRefPtr< ossimImageGeometrym_ScaledGeometry
 The input image geometry, altered by the scale. More...
 
- Protected Attributes inherited from ossimImageSourceFilter
ossimImageSourcetheInputConnection
 
- Protected Attributes inherited from ossimSource
bool theEnableFlag
 
bool theInitializedFlag
 
- Protected Attributes inherited from ossimConnectableObject
ossimId theId
 
ossimString theDescription
 
ossimObjecttheOwner
 
bool theInputListIsFixedFlag
 Indicates whether the theInputObjectList is fixed. More...
 
bool theOutputListIsFixedFlag
 Indicates whether the theOutputObjectList is fixed. More...
 
ConnectableObjectList theInputObjectList
 Holds a list of input objects. More...
 
ConnectableObjectList theOutputObjectList
 Holds a list of output objects. More...
 
- Protected Attributes inherited from ossimListenerManager
std::list< ossimListener * > theListenerList
 
bool theEnabledFlag
 
std::list< ossimListener * > theDelayedAdd
 
std::list< ossimListener * > theDelayedRemove
 
bool theFireEventFlag
 
- Protected Attributes inherited from ossimErrorStatusInterface
ossimErrorCode theErrorStatus
 
- Protected Attributes inherited from ossimListener
bool theListenerEnableFlag
 

Additional Inherited Members

- Public Types inherited from ossimConnectableObject
enum  ossimConnectableObjectDirectionType { CONNECTABLE_DIRECTION_NONE = 0, CONNECTABLE_DIRECTION_INPUT = 1, CONNECTABLE_DIRECTION_OUTPUT = 2 }
 
typedef std::vector< ossimRefPtr< ossimConnectableObject > > ConnectableObjectList
 

Detailed Description

This filter is used to adjust the RLevel. If you would like to continually change between RLevels or Reslolutions then you can use this filter to do so. You can also specify whether or not the rLevel passed in from the getTile request is added to this classes current Rlevel. This is so if you concatenate multiple filters that reduce the RLevels then it will keep reducing. For example if I have 2 filters that both go to RLevel 1 then it actually will go to 2 since there are 2 decimations happening. This can be turned off by specifying the Rlevel not to be additive.

Definition at line 27 of file ossimRLevelFilter.h.

Constructor & Destructor Documentation

◆ ossimRLevelFilter()

ossimRLevelFilter::ossimRLevelFilter ( )

default constructor

Definition at line 27 of file ossimRLevelFilter.cpp.

31 {
32 }
ossimImageSourceFilter(ossimObject *owner=NULL)
ossim_uint32 theCurrentRLevel

◆ ~ossimRLevelFilter()

ossimRLevelFilter::~ossimRLevelFilter ( )
protectedvirtual

virtual destructor.

Definition at line 35 of file ossimRLevelFilter.cpp.

36 {
37 }

Member Function Documentation

◆ getBoundingRect()

ossimIrect ossimRLevelFilter::getBoundingRect ( ossim_uint32  resLevel = 0) const
virtual

Returns the bounding rectangle.

Parameters
resLevelThis argument is only passed onto the input connection if this filter is disabled.
See also
disableSource().

To get the bounding rectangle of an rlevel when source is enabled do: myRLevelFilter->setCurrentRLevel(level); myRLevelFilter->getBoundingRect();

Returns
Rectangle of the current rlevel if enabled; else, the rectangle of the input connection for resLevel.

Reimplemented from ossimImageSource.

Definition at line 168 of file ossimRLevelFilter.cpp.

References ossimImageSource::getBoundingRect(), ossimSource::isSourceEnabled(), ossimIrect::makeNan(), theCurrentRLevel, and ossimImageSourceFilter::theInputConnection.

169 {
170  ossimIrect rect;
171  rect.makeNan();
172  if(!theInputConnection) return rect;
173 
174  if (isSourceEnabled())
175  {
177  }
178  return theInputConnection->getBoundingRect(resLevel);
179 }
virtual bool isSourceEnabled() const
Definition: ossimSource.cpp:79
virtual ossimIrect getBoundingRect(ossim_uint32 resLevel=0) const
This will return the bounding rect of the source.
ossim_uint32 theCurrentRLevel
ossimImageSource * theInputConnection
void makeNan()
Definition: ossimIrect.h:329

◆ getCurrentRLevel()

ossim_uint32 ossimRLevelFilter::getCurrentRLevel ( ) const
virtual

Definition at line 72 of file ossimRLevelFilter.cpp.

References theCurrentRLevel.

Referenced by getImageGeometry(), and getSummedDecimation().

73 {
74  return theCurrentRLevel;
75 }
ossim_uint32 theCurrentRLevel

◆ getDecimationFactor()

void ossimRLevelFilter::getDecimationFactor ( ossim_uint32  resLevel,
ossimDpt result 
) const
virtual

Will return the decimation factor for the given resolution level.

the decimation is the scale from Resolution 0 or full res. Usually this is a power of 2 decimation where the decimation result is 1.0/2^resoltion.

Reimplemented from ossimImageSource.

Definition at line 40 of file ossimRLevelFilter.cpp.

References ossimImageSource::getDecimationFactor(), ossimDpt::makeNan(), and ossimImageSourceFilter::theInputConnection.

Referenced by getSummedDecimation(), and updateGeometry().

42 {
44  {
45  result.makeNan();
46  }
47 
49  result);
50 }
ossimImageSource * theInputConnection
virtual void getDecimationFactor(ossim_uint32 resLevel, ossimDpt &result) const
Will return the decimation factor for the given resolution level.
void makeNan()
Definition: ossimDpt.h:65

◆ getImageGeometry()

ossimRefPtr< ossimImageGeometry > ossimRLevelFilter::getImageGeometry ( )
virtual

Returns a pointer reference to the active image geometry at this filter.

The input source geometry is modified, so we need to maintain our own geometry object as a data member.

Reimplemented from ossimImageSource.

Definition at line 81 of file ossimRLevelFilter.cpp.

References getCurrentRLevel(), ossimSource::getEnableFlag(), ossimImageSource::getImageGeometry(), m_ScaledGeometry, ossimImageSourceFilter::theInputConnection, updateGeometry(), and ossimRefPtr< T >::valid().

82 {
83  // Have we already defined our own geometry? Return it if so:
85 
87 
88  ossim_uint32 rlevel = getCurrentRLevel();
90 
91  // If no scaling is happening, just return the input image geometry:
92  if ((!inputGeom) || (rlevel == 0) || (getEnableFlag() == false))
93  return inputGeom;
94 
95  // Need to create a copy of the input geom and modify it as our own, then pass that:
96  m_ScaledGeometry = new ossimImageGeometry(*inputGeom);
98 
99  // Return our version of the image geometry:
100  return m_ScaledGeometry;
101 }
ossimRefPtr< ossimImageGeometry > m_ScaledGeometry
The input image geometry, altered by the scale.
bool valid() const
Definition: ossimRefPtr.h:75
void updateGeometry()
If this object is maintaining an ossimImageGeometry, this method needs to be called after a scale cha...
virtual bool getEnableFlag() const
Definition: ossimSource.cpp:94
ossimImageSource * theInputConnection
unsigned int ossim_uint32
virtual ossimRefPtr< ossimImageGeometry > getImageGeometry()
Returns the image geometry object associated with this tile source or NULL if not defined...
Container class that holds both 2D transform and 3D projection information for an image Only one inst...
virtual ossim_uint32 getCurrentRLevel() const

◆ getOverrideGeometryFlag()

bool ossimRLevelFilter::getOverrideGeometryFlag ( ) const
virtual

Get/set of the data member "theOverrideGeometryFlag". If set this will override the "getImageGeometry" method and adjust the getMetersPerPixel or the getDecimalDegreesPerPixel. Default behavior is to not override method.

Definition at line 53 of file ossimRLevelFilter.cpp.

References theOverrideGeometryFlag.

54 {
56 }

◆ getSummedDecimation()

void ossimRLevelFilter::getSummedDecimation ( ossimDpt result) const
protected

Initializes result with the sum of decimations from rlevel one to theCurrentRLevel.

Definition at line 128 of file ossimRLevelFilter.cpp.

References getCurrentRLevel(), getDecimationFactor(), ossimDpt::hasNans(), ossimDpt::makeNan(), ossimNotify(), ossimNotifyLevel_WARN, ossimDpt::x, and ossimDpt::y.

129 {
130  // Start with fresh values.
131  result.x = 0.0;
132  result.y = 0.0;
133 
134  ossim_uint32 rlevel = getCurrentRLevel();
135 
136  if (rlevel == 0)
137  {
138  return; // no decimation.
139  }
140 
141  // Sum the decimations from rlevel one to the current rlevel.
142  for (ossim_uint32 i = 1; i <= rlevel; ++i)
143  {
144  ossimDpt dpt;
145  getDecimationFactor(i, dpt);
146  if (dpt.hasNans())
147  {
149  << "ossimRLevelFilter::getSummedDecimation WARNING:"
150  << "\nNans returned from getDecimationFactor!"
151  << std::endl;
152  result.makeNan();
153  return;
154  }
155  result.x += dpt.x;
156  result.y += dpt.y;
157  }
158 
159  if (traceDebug())
160  {
162  << "ossimRLevelFilter::getSummedDecimation result: " << result
163  << std::endl;
164  }
165 }
double y
Definition: ossimDpt.h:165
unsigned int ossim_uint32
virtual void getDecimationFactor(ossim_uint32 resLevel, ossimDpt &result) const
Will return the decimation factor for the given resolution level.
bool hasNans() const
Definition: ossimDpt.h:67
double x
Definition: ossimDpt.h:164
OSSIMDLLEXPORT std::ostream & ossimNotify(ossimNotifyLevel level=ossimNotifyLevel_WARN)
void makeNan()
Definition: ossimDpt.h:65
virtual ossim_uint32 getCurrentRLevel() const

◆ getTile()

ossimRefPtr< ossimImageData > ossimRLevelFilter::getTile ( const ossimIrect rect,
ossim_uint32  resLevel = 0 
)
virtual
Returns
the requested region of interest

Reimplemented from ossimImageSource.

Definition at line 182 of file ossimRLevelFilter.cpp.

References ossimImageSource::getTile(), ossimSource::isSourceEnabled(), theCurrentRLevel, and ossimImageSourceFilter::theInputConnection.

185 {
186  if(!theInputConnection)
187  {
188  return 0;
189  }
190 
191  if(!isSourceEnabled())
192  {
193  return theInputConnection->getTile(tileRect, resLevel);
194  }
195 
196  // Ignoring resLevel as we're in charge of it here!
197  return theInputConnection->getTile(tileRect, theCurrentRLevel);
198 }
virtual bool isSourceEnabled() const
Definition: ossimSource.cpp:79
ossim_uint32 theCurrentRLevel
ossimImageSource * theInputConnection
virtual ossimRefPtr< ossimImageData > getTile(const ossimIpt &origin, ossim_uint32 resLevel=0)

◆ loadState()

bool ossimRLevelFilter::loadState ( const ossimKeywordlist kwl,
const char *  prefix = 0 
)
virtual

Method to the load (recreate) the state of an object from a keyword list.

Return true if ok or false on error.

Reimplemented from ossimImageSourceFilter.

Definition at line 201 of file ossimRLevelFilter.cpp.

References ossimKeywordlist::find().

203 {
204  const char* current = kwl.find(prefix, CURRENT_RLEVEL_KW);
205  const char* override = kwl.find(prefix, OVERRIDE_GEOMETRY_KW);
206 
207  if(current)
208  theCurrentRLevel = ossimString(current).toULong();
209 
210  if(override)
212 
213  return ossimImageSourceFilter::loadState(kwl, prefix);
214 
215  // An existing image geometry object here will need to be updated:
216  updateGeometry();
217 }
const char * find(const char *key) const
void updateGeometry()
If this object is maintaining an ossimImageGeometry, this method needs to be called after a scale cha...
ossim_uint32 theCurrentRLevel
bool toBool() const
String to numeric methods.
unsigned long toULong() const
virtual bool loadState(const ossimKeywordlist &kwl, const char *prefix=0)
Method to the load (recreate) the state of an object from a keyword list.

◆ saveState()

bool ossimRLevelFilter::saveState ( ossimKeywordlist kwl,
const char *  prefix = 0 
) const
virtual

Method to save the state of an object to a keyword list.

Return true if ok or false on error.

Reimplemented from ossimImageSourceFilter.

Definition at line 220 of file ossimRLevelFilter.cpp.

References ossimKeywordlist::add().

222 {
223  kwl.add(prefix,
224  CURRENT_RLEVEL_KW,
226  true);
227 
228  kwl.add(prefix,
229  OVERRIDE_GEOMETRY_KW,
231  true);
232 
233  return ossimImageSourceFilter::saveState(kwl, prefix);
234 }
ossim_uint32 theCurrentRLevel
void add(const char *prefix, const ossimKeywordlist &kwl, bool overwrite=true)
unsigned int ossim_uint32
virtual bool saveState(ossimKeywordlist &kwl, const char *prefix=0) const
Method to save the state of an object to a keyword list.

◆ setCurrentRLevel()

void ossimRLevelFilter::setCurrentRLevel ( ossim_uint32  rlevel)
virtual

Definition at line 65 of file ossimRLevelFilter.cpp.

References theCurrentRLevel, and updateGeometry().

66 {
67  theCurrentRLevel = rlevel;
69 }
void updateGeometry()
If this object is maintaining an ossimImageGeometry, this method needs to be called after a scale cha...
ossim_uint32 theCurrentRLevel

◆ setOverrideGeometryFlag()

void ossimRLevelFilter::setOverrideGeometryFlag ( bool  override)
virtual

Definition at line 59 of file ossimRLevelFilter.cpp.

References theOverrideGeometryFlag.

60 {
61  theOverrideGeometryFlag = override;
62 }

◆ updateGeometry()

void ossimRLevelFilter::updateGeometry ( )
protected

If this object is maintaining an ossimImageGeometry, this method needs to be called after a scale change so that the geometry's projection is modified accordingly.

Definition at line 107 of file ossimRLevelFilter.cpp.

References ossimMapProjection::applyScale(), getDecimationFactor(), ossimImageGeometry::getProjection(), m_ScaledGeometry, PTR_CAST, theCurrentRLevel, ossimRefPtr< T >::valid(), ossimDpt::x, and ossimDpt::y.

Referenced by getImageGeometry(), and setCurrentRLevel().

108 {
109  if (m_ScaledGeometry.valid())
110  {
111  // Modify the image geometry's projection with the scale factor before returning geom:
114  if(mapProj)
115  {
116  ossimDpt decimation;
118  decimation.x = 1.0/decimation.x;
119  decimation.y = 1.0/decimation.y;
120 
121  // This will adjust both the scale and the tie point to account for decimation.
122  mapProj->applyScale(decimation, true); // recenter tie point flag
123  }
124  }
125 }
ossimRefPtr< ossimImageGeometry > m_ScaledGeometry
The input image geometry, altered by the scale.
bool valid() const
Definition: ossimRefPtr.h:75
double y
Definition: ossimDpt.h:165
virtual void applyScale(const ossimDpt &scale, bool recenterTiePoint)
Applies scale to theDeltaLonPerPixel, theDeltaLatPerPixel and theMetersPerPixel data members (eg: the...
ossim_uint32 theCurrentRLevel
#define PTR_CAST(T, p)
Definition: ossimRtti.h:321
virtual void getDecimationFactor(ossim_uint32 resLevel, ossimDpt &result) const
Will return the decimation factor for the given resolution level.
const ossimProjection * getProjection() const
Access methods for projection (may be NULL pointer).
double x
Definition: ossimDpt.h:164

Member Data Documentation

◆ m_ScaledGeometry

ossimRefPtr<ossimImageGeometry> ossimRLevelFilter::m_ScaledGeometry
protected

The input image geometry, altered by the scale.

Definition at line 94 of file ossimRLevelFilter.h.

Referenced by getImageGeometry(), and updateGeometry().

◆ theCurrentRLevel

ossim_uint32 ossimRLevelFilter::theCurrentRLevel
protected

◆ theOverrideGeometryFlag

bool ossimRLevelFilter::theOverrideGeometryFlag
protected

Definition at line 93 of file ossimRLevelFilter.h.

Referenced by getOverrideGeometryFlag(), and setOverrideGeometryFlag().


The documentation for this class was generated from the following files: