OTB  10.0.0
Orfeo Toolbox
Public Types | List of all members
otb::VectorData< TPrecision, VDimension, TValuePrecision > Class Template Reference

#include <otbVectorData.h>

+ Inheritance diagram for otb::VectorData< TPrecision, VDimension, TValuePrecision >:
+ Collaboration diagram for otb::VectorData< TPrecision, VDimension, TValuePrecision >:

Public Types

using ConstPointer = itk::SmartPointer< const Self >
 
using Pointer = itk::SmartPointer< Self >
 
using Self = VectorData
 
using Superclass = itk::DataObject
 
using PrecisionType = TPrecision
 
using ValuePrecisionType = TValuePrecision
 
using DataNodeType = otb::DataNode< TPrecision, VDimension, TValuePrecision >
 
using DataNodePointerType = typename DataNodeType::Pointer
 
using PointType = typename DataNodeType::PointType
 
using LineType = typename DataNodeType::LineType
 
using PolygonType = typename DataNodeType::PolygonType
 
using SpacingType = itk::Vector< double, 2 >
 
using OriginType = itk::Point< double, 2 >
 
using DataTreeType = boost::adjacency_list< boost::vecS, boost::vecS, boost::directedS, DataNodePointerType >
 
using TreeNodeType = typename boost::graph_traits< DataTreeType >::vertex_descriptor
 
using TreeEdgeType = typename boost::graph_traits< DataTreeType >::edge_descriptor
 
using ChildrenListType = std::vector< DataNodePointerType >
 
using VertexIterator = typename boost::graph_traits< DataTreeType >::vertex_iterator
 
static const unsigned int Dimension = VDimension
 
DataTreeType m_DataTree
 
DataNodePointerType m_root
 
SpacingType m_Spacing
 
OriginType m_Origin
 
static Pointer New ()
 
virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
virtual const char * GetNameOfClass () const
 
void SetProjectionRef (const std::string &projectionRef)
 
std::string GetProjectionRef () const
 
virtual void SetOrigin (OriginType _arg)
 
void SetOrigin (const double origin[2])
 
void SetOrigin (const float origin[2])
 
virtual const OriginTypeGetOrigin () const
 
void SetSpacing (const SpacingType &spacing)
 
void SetSpacing (const double spacing[2])
 
void SetSpacing (const float spacing[2])
 
virtual const SpacingTypeGetSpacing () const
 
void Clear ()
 
int Size () const
 
void TransformPointToPhysicalPoint (const PointType &point, PointType &physicalPoint) const
 
void Graft (const itk::DataObject *data) override
 
void SetRoot (DataNodePointerType rootNode)
 
DataNodePointerType GetRoot () const
 
void Add (DataNodePointerType nodeToAdd, DataNodePointerType rootForNode)
 
std::vector< DataNodePointerTypeGetChildrenList (DataNodePointerType parentNode) const
 
std::pair< VertexIterator, VertexIteratorGetIteratorPair () const
 
DataNodePointerType Get (VertexIterator dataIt) const
 
 VectorData ()
 
 ~VectorData () override
 
void PrintSelf (std::ostream &os, itk::Indent indent) const override
 
TreeNodeType ConvertToTreeNodeType (DataNodePointerType datanode)
 
void Reset (const Self &inputVD)
 
void ResetRoot (const DataNodeType &rootNode)
 
 VectorData (const Self &)=delete
 
void CopyDataTree (const Self *inputVD)
 

Detailed Description

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
class otb::VectorData< TPrecision, VDimension, TValuePrecision >

This class represents a hierarchy of vector data.

This class contains an itk::TreeContainer templated with otb::DataNode. It represents a tree structure of vector data. These data can be read from shapefiles or kml files for instance.

The internal tree can be walked with itk::TreeIteratorBase subclasses.

The three templates indicate

The elements in the VectorData have their coordinates in the projection specified by the WKT string. This class also offer the possibility to store the coordinates directly into an image coordinate system, using the origin and spacing in a similar way as the corresponding image.

See also
DataNode
VectorDataFileReader
VectorDataFileWriter
Examples
Projections/VectorDataExtractROIExample.cxx, and Projections/VectorDataProjectionExample.cxx.

Definition at line 61 of file otbVectorData.h.

Member Typedef Documentation

◆ ChildrenListType

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
using otb::VectorData< TPrecision, VDimension, TValuePrecision >::ChildrenListType = std::vector<DataNodePointerType>

Template parameters using

Definition at line 90 of file otbVectorData.h.

◆ ConstPointer

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
using otb::VectorData< TPrecision, VDimension, TValuePrecision >::ConstPointer = itk::SmartPointer<const Self>

Definition at line 68 of file otbVectorData.h.

◆ DataNodePointerType

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
using otb::VectorData< TPrecision, VDimension, TValuePrecision >::DataNodePointerType = typename DataNodeType::Pointer

Template parameters using

Definition at line 81 of file otbVectorData.h.

◆ DataNodeType

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
using otb::VectorData< TPrecision, VDimension, TValuePrecision >::DataNodeType = otb::DataNode<TPrecision, VDimension, TValuePrecision>

Template parameters using

Definition at line 80 of file otbVectorData.h.

◆ DataTreeType

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
using otb::VectorData< TPrecision, VDimension, TValuePrecision >::DataTreeType = boost::adjacency_list< boost::vecS, boost::vecS, boost::directedS, DataNodePointerType >

Template parameters using

Definition at line 87 of file otbVectorData.h.

◆ LineType

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
using otb::VectorData< TPrecision, VDimension, TValuePrecision >::LineType = typename DataNodeType::LineType

Template parameters using

Definition at line 83 of file otbVectorData.h.

◆ OriginType

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
using otb::VectorData< TPrecision, VDimension, TValuePrecision >::OriginType = itk::Point<double, 2>

Template parameters using

Definition at line 86 of file otbVectorData.h.

◆ Pointer

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
using otb::VectorData< TPrecision, VDimension, TValuePrecision >::Pointer = itk::SmartPointer<Self>

Definition at line 67 of file otbVectorData.h.

◆ PointType

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
using otb::VectorData< TPrecision, VDimension, TValuePrecision >::PointType = typename DataNodeType::PointType

Template parameters using

Definition at line 82 of file otbVectorData.h.

◆ PolygonType

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
using otb::VectorData< TPrecision, VDimension, TValuePrecision >::PolygonType = typename DataNodeType::PolygonType

Template parameters using

Definition at line 84 of file otbVectorData.h.

◆ PrecisionType

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
using otb::VectorData< TPrecision, VDimension, TValuePrecision >::PrecisionType = TPrecision

Template parameters using

Definition at line 77 of file otbVectorData.h.

◆ Self

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
using otb::VectorData< TPrecision, VDimension, TValuePrecision >::Self = VectorData

Standard class usings

Definition at line 65 of file otbVectorData.h.

◆ SpacingType

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
using otb::VectorData< TPrecision, VDimension, TValuePrecision >::SpacingType = itk::Vector<double, 2>

Template parameters using

Definition at line 85 of file otbVectorData.h.

◆ Superclass

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
using otb::VectorData< TPrecision, VDimension, TValuePrecision >::Superclass = itk::DataObject

Definition at line 66 of file otbVectorData.h.

◆ TreeEdgeType

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
using otb::VectorData< TPrecision, VDimension, TValuePrecision >::TreeEdgeType = typename boost::graph_traits< DataTreeType >::edge_descriptor

Template parameters using

Definition at line 89 of file otbVectorData.h.

◆ TreeNodeType

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
using otb::VectorData< TPrecision, VDimension, TValuePrecision >::TreeNodeType = typename boost::graph_traits< DataTreeType >::vertex_descriptor

Template parameters using

Definition at line 88 of file otbVectorData.h.

◆ ValuePrecisionType

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
using otb::VectorData< TPrecision, VDimension, TValuePrecision >::ValuePrecisionType = TValuePrecision

Template parameters using

Definition at line 78 of file otbVectorData.h.

◆ VertexIterator

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
using otb::VectorData< TPrecision, VDimension, TValuePrecision >::VertexIterator = typename boost::graph_traits<DataTreeType>::vertex_iterator

Template parameters using

Definition at line 91 of file otbVectorData.h.

Constructor & Destructor Documentation

◆ VectorData() [1/2]

template<class TPrecision , unsigned int VDimension, class TValuePrecision >
otb::VectorData< TPrecision, VDimension, TValuePrecision >::VectorData
protected

Constructor

Definition at line 31 of file otbVectorData.hxx.

References otb::ROOT.

◆ ~VectorData()

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
otb::VectorData< TPrecision, VDimension, TValuePrecision >::~VectorData ( )
inlineoverrideprotected

Destructor

Definition at line 199 of file otbVectorData.h.

◆ VectorData() [2/2]

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
otb::VectorData< TPrecision, VDimension, TValuePrecision >::VectorData ( const Self )
privatedelete

Template parameters using

Member Function Documentation

◆ Add()

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
void otb::VectorData< TPrecision, VDimension, TValuePrecision >::Add ( DataNodePointerType  nodeToAdd,
DataNodePointerType  rootForNode 
)
inline

◆ Clear()

template<class TPrecision , unsigned int VDimension, class TValuePrecision >
void otb::VectorData< TPrecision, VDimension, TValuePrecision >::Clear ( void  )

Clear the vector data

Definition at line 105 of file otbVectorData.hxx.

◆ ConvertToTreeNodeType()

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
TreeNodeType otb::VectorData< TPrecision, VDimension, TValuePrecision >::ConvertToTreeNodeType ( DataNodePointerType  datanode)
inlineprotected

◆ CopyDataTree()

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
void otb::VectorData< TPrecision, VDimension, TValuePrecision >::CopyDataTree ( const Self inputVD)
inlineprivate

Template parameters using

Definition at line 237 of file otbVectorData.h.

References otb::VectorData< TPrecision, VDimension, TValuePrecision >::m_DataTree.

◆ CreateAnother()

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
virtual::itk::LightObject::Pointer otb::VectorData< TPrecision, VDimension, TValuePrecision >::CreateAnother ( void  ) const

Template parameters using

◆ Get()

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
DataNodePointerType otb::VectorData< TPrecision, VDimension, TValuePrecision >::Get ( VertexIterator  dataIt) const
inline

Template parameters using

Definition at line 189 of file otbVectorData.h.

References otb::VectorData< TPrecision, VDimension, TValuePrecision >::m_DataTree.

◆ GetChildrenList()

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
std::vector<DataNodePointerType> otb::VectorData< TPrecision, VDimension, TValuePrecision >::GetChildrenList ( DataNodePointerType  parentNode) const
inline

Template parameters using

Definition at line 158 of file otbVectorData.h.

References otb::VectorData< TPrecision, VDimension, TValuePrecision >::m_DataTree.

◆ GetIteratorPair()

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
std::pair<VertexIterator,VertexIterator> otb::VectorData< TPrecision, VDimension, TValuePrecision >::GetIteratorPair ( ) const
inline

Template parameters using

Definition at line 181 of file otbVectorData.h.

References otb::VectorData< TPrecision, VDimension, TValuePrecision >::m_DataTree.

◆ GetNameOfClass()

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
virtual const char* otb::VectorData< TPrecision, VDimension, TValuePrecision >::GetNameOfClass ( ) const
virtual

Template parameters using

◆ GetOrigin()

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
virtual const OriginType& otb::VectorData< TPrecision, VDimension, TValuePrecision >::GetOrigin ( ) const
virtual

◆ GetProjectionRef()

template<class TPrecision , unsigned int VDimension, class TValuePrecision >
std::string otb::VectorData< TPrecision, VDimension, TValuePrecision >::GetProjectionRef ( void  ) const

Template parameters using

Definition at line 51 of file otbVectorData.hxx.

References otb::MetaDataKey::ProjectionRefKey.

Referenced by otb::VectorData< TPrecision, VDimension, TValuePrecision >::Graft().

◆ GetRoot()

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
DataNodePointerType otb::VectorData< TPrecision, VDimension, TValuePrecision >::GetRoot ( ) const
inline

◆ GetSpacing()

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
virtual const SpacingType& otb::VectorData< TPrecision, VDimension, TValuePrecision >::GetSpacing ( ) const
virtual

◆ Graft()

template<class TPrecision , unsigned int VDimension, class TValuePrecision >
void otb::VectorData< TPrecision, VDimension, TValuePrecision >::Graft ( const itk::DataObject *  data)
override

Graft the data and information from one VectorData to another. This is a convenience method to setup a second VectorData with all the meta information of another VectorData and use the same DataTree Note that this method is different than just using two SmartPointers to the same VectorData since separate DataObjects are still maintained. This method is similar to VectorDataSource::GraftOutput().

Definition at line 144 of file otbVectorData.hxx.

References otb::VectorData< TPrecision, VDimension, TValuePrecision >::GetOrigin(), otb::VectorData< TPrecision, VDimension, TValuePrecision >::GetProjectionRef(), otb::VectorData< TPrecision, VDimension, TValuePrecision >::GetRoot(), and otb::VectorData< TPrecision, VDimension, TValuePrecision >::GetSpacing().

◆ New()

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
static Pointer otb::VectorData< TPrecision, VDimension, TValuePrecision >::New ( )
static

Standard macros

◆ PrintSelf()

template<class TPrecision , unsigned int VDimension, class TValuePrecision >
void otb::VectorData< TPrecision, VDimension, TValuePrecision >::PrintSelf ( std::ostream &  os,
itk::Indent  indent 
) const
overrideprotected

PrintSelf method

Definition at line 119 of file otbVectorData.hxx.

◆ Reset()

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
void otb::VectorData< TPrecision, VDimension, TValuePrecision >::Reset ( const Self inputVD)
inlineprotected

◆ ResetRoot()

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
void otb::VectorData< TPrecision, VDimension, TValuePrecision >::ResetRoot ( const DataNodeType rootNode)
inlineprotected

◆ SetOrigin() [1/3]

template<class TPrecision , unsigned int VDimension, class TValuePrecision >
void otb::VectorData< TPrecision, VDimension, TValuePrecision >::SetOrigin ( const double  origin[2])

Template parameters using

Definition at line 89 of file otbVectorData.hxx.

◆ SetOrigin() [2/3]

template<class TPrecision , unsigned int VDimension, class TValuePrecision >
void otb::VectorData< TPrecision, VDimension, TValuePrecision >::SetOrigin ( const float  origin[2])

◆ SetOrigin() [3/3]

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
virtual void otb::VectorData< TPrecision, VDimension, TValuePrecision >::SetOrigin ( OriginType  _arg)
virtual

Set the origin of the vector data to put it in the corresponding image coordinates

See also
GetOrigin()

◆ SetProjectionRef()

template<class TPrecision , unsigned int VDimension, class TValuePrecision >
void otb::VectorData< TPrecision, VDimension, TValuePrecision >::SetProjectionRef ( const std::string &  projectionRef)

Template parameters using

Definition at line 42 of file otbVectorData.hxx.

References otb::MetaDataKey::ProjectionRefKey.

Referenced by otb::LabelImageToVectorDataFilter< TInputImage, TPrecision >::GenerateData().

◆ SetRoot()

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
void otb::VectorData< TPrecision, VDimension, TValuePrecision >::SetRoot ( DataNodePointerType  rootNode)
inline

Template parameters using

Definition at line 138 of file otbVectorData.h.

References otb::VectorData< TPrecision, VDimension, TValuePrecision >::ResetRoot().

◆ SetSpacing() [1/3]

template<class TPrecision , unsigned int VDimension, class TValuePrecision >
void otb::VectorData< TPrecision, VDimension, TValuePrecision >::SetSpacing ( const double  spacing[2])

Template parameters using

Definition at line 73 of file otbVectorData.hxx.

◆ SetSpacing() [2/3]

template<class TPrecision , unsigned int VDimension, class TValuePrecision >
void otb::VectorData< TPrecision, VDimension, TValuePrecision >::SetSpacing ( const float  spacing[2])

Template parameters using

Definition at line 80 of file otbVectorData.hxx.

◆ SetSpacing() [3/3]

template<class TPrecision , unsigned int VDimension, class TValuePrecision >
void otb::VectorData< TPrecision, VDimension, TValuePrecision >::SetSpacing ( const SpacingType spacing)

Set the spacing of the vector data to put it in the corresponding image coordinates

See also
GetSignedSpacing()

Definition at line 62 of file otbVectorData.hxx.

◆ Size()

template<class TPrecision , unsigned int VDimension, class TValuePrecision >
int otb::VectorData< TPrecision, VDimension, TValuePrecision >::Size ( void  ) const

Return the number of element in the tree

Definition at line 113 of file otbVectorData.hxx.

◆ TransformPointToPhysicalPoint()

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
void otb::VectorData< TPrecision, VDimension, TValuePrecision >::TransformPointToPhysicalPoint ( const PointType point,
PointType physicalPoint 
) const
inline

Member Data Documentation

◆ Dimension

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
const unsigned int otb::VectorData< TPrecision, VDimension, TValuePrecision >::Dimension = VDimension
static

Template parameters using

Definition at line 73 of file otbVectorData.h.

◆ m_DataTree

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
DataTreeType otb::VectorData< TPrecision, VDimension, TValuePrecision >::m_DataTree
private

◆ m_Origin

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
OriginType otb::VectorData< TPrecision, VDimension, TValuePrecision >::m_Origin
private

◆ m_root

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
DataNodePointerType otb::VectorData< TPrecision, VDimension, TValuePrecision >::m_root
private

◆ m_Spacing

template<class TPrecision = double, unsigned int VDimension = 2, class TValuePrecision = double>
SpacingType otb::VectorData< TPrecision, VDimension, TValuePrecision >::m_Spacing
private

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