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

Visitor to update view and then propagate property event to outputs. More...

#include <ossimVisitor.h>

Inheritance diagram for ossimViewInterfaceVisitor:
ossimVisitor ossimReferenced

Public Member Functions

 ossimViewInterfaceVisitor (ossimObject *view, int visitorType=(VISIT_OUTPUTS|VISIT_CHILDREN))
 
 ossimViewInterfaceVisitor (const ossimViewInterfaceVisitor &src)
 
virtual ossimRefPtr< ossimVisitordup () const
 
virtual void visit (ossimObject *obj)
 Calls ossimViewInterface::setView if obj cast to ossimViewInterface*. More...
 
ossimObjectgetView ()
 
const ossimObjectgetView () const
 
- Public Member Functions inherited from ossimVisitor
 ossimVisitor (int visitorType=VISIT_NONE)
 
 ossimVisitor (const ossimVisitor &src)
 
virtual void reset ()
 
virtual void visit (ossimConnectableObject *obj)
 
VisitorType getVisitorType () const
 
void setVisitorType (int vType, bool on=true)
 
void turnOffVisitorType (int vType)
 
bool hasVisited (ossimObject *obj) const
 
bool stopTraversal () 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
 

Protected Attributes

ossimRefPtr< ossimObjectm_view
 
- Protected Attributes inherited from ossimVisitor
VisitorType m_visitorType
 
Collection m_markNode
 
bool m_stopTraversalFlag
 

Additional Inherited Members

- Public Types inherited from ossimVisitor
enum  VisitorType {
  VISIT_NONE = 0, VISIT_CHILDREN = 1, VISIT_INPUTS = 2, VISIT_OUTPUTS = 4,
  VISIT_ALL = (VISIT_CHILDREN|VISIT_INPUTS|VISIT_OUTPUTS)
}
 Enumeration type can be a mask and will traverse a graph of connectables based on the values. More...
 
typedef std::set< ossimRefPtr< ossimObject > > MarkCollectionRef
 
typedef std::set< ossimRefPtr< ossimObject > > CollectionRef
 
typedef std::vector< ossimRefPtr< ossimObject > > ListRef
 
typedef std::set< ossimObject * > Collection
 
typedef std::vector< ossimObject *> List
 
- Protected Member Functions inherited from ossimReferenced
virtual ~ossimReferenced ()
 

Detailed Description

Visitor to update view and then propagate property event to outputs.

Definition at line 179 of file ossimVisitor.h.

Constructor & Destructor Documentation

◆ ossimViewInterfaceVisitor() [1/2]

ossimViewInterfaceVisitor::ossimViewInterfaceVisitor ( ossimObject view,
int  visitorType = (VISIT_OUTPUTS|VISIT_CHILDREN) 
)

Definition at line 329 of file ossimVisitor.cpp.

Referenced by dup().

330  :
331  ossimVisitor(visitorType),
332  m_view(view)
333 {
334 }
ossimVisitor(int visitorType=VISIT_NONE)
ossimRefPtr< ossimObject > m_view
Definition: ossimVisitor.h:201

◆ ossimViewInterfaceVisitor() [2/2]

ossimViewInterfaceVisitor::ossimViewInterfaceVisitor ( const ossimViewInterfaceVisitor src)

Definition at line 336 of file ossimVisitor.cpp.

337  :
338  ossimVisitor(src),
339  m_view(src.m_view)
340 {
341 }
ossimVisitor(int visitorType=VISIT_NONE)
ossimRefPtr< ossimObject > m_view
Definition: ossimVisitor.h:201

Member Function Documentation

◆ dup()

ossimRefPtr< ossimVisitor > ossimViewInterfaceVisitor::dup ( ) const
virtual

Implements ossimVisitor.

Definition at line 343 of file ossimVisitor.cpp.

References ossimViewInterfaceVisitor().

344 {
345  return new ossimViewInterfaceVisitor(*this);
346 }
ossimViewInterfaceVisitor(ossimObject *view, int visitorType=(VISIT_OUTPUTS|VISIT_CHILDREN))

◆ getView() [1/2]

ossimObject * ossimViewInterfaceVisitor::getView ( )

Definition at line 348 of file ossimVisitor.cpp.

References ossimRefPtr< T >::get(), and m_view.

349 {
350  return m_view.get();
351 }
ossimRefPtr< ossimObject > m_view
Definition: ossimVisitor.h:201

◆ getView() [2/2]

const ossimObject * ossimViewInterfaceVisitor::getView ( ) const

Definition at line 353 of file ossimVisitor.cpp.

References ossimRefPtr< T >::get(), and m_view.

354 {
355  return m_view.get();
356 }
ossimRefPtr< ossimObject > m_view
Definition: ossimVisitor.h:201

◆ visit()

void ossimViewInterfaceVisitor::visit ( ossimObject obj)
virtual

Calls ossimViewInterface::setView if obj cast to ossimViewInterface*.

On success a property event is sent to output side so that things like ossimCombiner can reinitialize if needed.

Parameters
objObject to visit.

Reimplemented from ossimVisitor.

Definition at line 358 of file ossimVisitor.cpp.

References ossimObject::accept(), ossimRefPtr< T >::get(), ossimVisitor::hasVisited(), m_view, ossimViewInterface::setView(), ossimVisitor::visit(), and ossimVisitor::VISIT_OUTPUTS.

359 {
360  if( !hasVisited(obj) )
361  {
362  if ( m_view.get() )
363  {
364  ossimViewInterface* vi = dynamic_cast<ossimViewInterface*>(obj);
365  if ( vi )
366  {
367  // Set the view:
368  vi->setView( m_view.get() );
369 
370  // Send property event for outputs connected to us.
371  ossimRefPtr<ossimEvent> propEvent = new ossimPropertyEvent(obj);
372  ossimEventVisitor ev( propEvent.get(), VISIT_OUTPUTS );
373  obj->accept(ev);
374  }
375  }
376 
377  // This will put the obj in the m_markNode for hasVisited method.
378  ossimVisitor::visit(obj);
379  }
380 }
virtual void visit(ossimObject *obj)
ossimRefPtr< ossimObject > m_view
Definition: ossimVisitor.h:201
virtual void accept(ossimVisitor &visitor)
bool hasVisited(ossimObject *obj) const
virtual bool setView(ossimObject *baseObject)=0

Member Data Documentation

◆ m_view

ossimRefPtr<ossimObject> ossimViewInterfaceVisitor::m_view
protected

Definition at line 201 of file ossimVisitor.h.

Referenced by getView(), and visit().


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