This file is indexed.

/usr/include/OTB-5.8/otbMultiChannelIFFactory.h is in libotb-dev 5.8.0+dfsg-3.

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
/*=========================================================================

  Program:   ORFEO Toolbox
  Language:  C++
  Date:      $Date$
  Version:   $Revision$


  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
  See OTBCopyright.txt for details.


     This software is distributed WITHOUT ANY WARRANTY; without even
     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
     PURPOSE.  See the above copyright notices for more information.

=========================================================================*/
#ifndef otbMultiChannelIFFactory_h
#define otbMultiChannelIFFactory_h

#include "otbVectorImageToImageListFilter.h"
#include "otbVectorImage.h"
#include "otbImage.h"
#include "otbImageList.h"
#include "itkDataObject.h"
#include "otbMetaImageFunction.h"


namespace otb
{
/** \class MultiChannelIFFactory
 *  \brief Yhis class handle the image type before the use of an
 *  image function factory
 *
 *  According to the image type, the Create method of this class can
 *  call an ImageFunctionFactory for each band of the input image or
 *  once if the image type is otb::Image.
 *
 *
 * \ingroup OTBObjectDetection
 */

template <class TIFFactory, class TInputImage>
class MultiChannelIFFactory
{
public:
  typedef TIFFactory                                    IFFactoryType;
  typedef TInputImage                                   InputImageType;
  typedef typename IFFactoryType::Pointer               IFFactoryPointerType;
  typedef typename IFFactoryType::InputImageType        ImageType;
  typedef typename IFFactoryType::CoordRepType          CoordRepType;
  typedef typename IFFactoryType::PrecisionType         PrecisionType;
  typedef typename std::vector<PrecisionType>           ParameterContainerType;
  typedef typename std::vector<itk::DataObject::Pointer>   ImageContainer;
  typedef typename MetaImageFunction<PrecisionType>::Pointer  MetaIFPointerType;

  typedef ImageList<ImageType>                             ImageListType;
  typedef VectorImageToImageListFilter<InputImageType,
                                                ImageListType>      VIToILFilterType;

  void Create(InputImageType * image,
              ParameterContainerType param,
              MetaIFPointerType metaIF,
              ImageContainer * container)
  {
    m_Factory->Create(image, param, metaIF, container);
  }

  MultiChannelIFFactory()
  {
    m_Factory = IFFactoryType::New();
  }

  virtual ~MultiChannelIFFactory(){};

private:
  IFFactoryPointerType   m_Factory;

};


template <class TIFFactory, typename TPixel, unsigned int VImageDimension>
class MultiChannelIFFactory<TIFFactory, otb::VectorImage<TPixel, VImageDimension> >
{
public:
  typedef TIFFactory                                    IFFactoryType;
  typedef typename IFFactoryType::Pointer               IFFactoryPointerType;
  typedef typename IFFactoryType::InputImageType        ImageType;
  typedef typename IFFactoryType::CoordRepType          CoordRepType;
  typedef typename IFFactoryType::PrecisionType         PrecisionType;
  typedef VectorImage<TPixel, 2>                        InputImageType;

  typedef typename std::vector<PrecisionType>           ParameterContainerType;
  typedef typename std::vector<itk::DataObject::Pointer>       ImageContainer;
  typedef typename MetaImageFunction<PrecisionType>::Pointer     MetaIFPointerType;

  typedef ImageList<ImageType>                             ImageListType;
  typedef VectorImageToImageListFilter<InputImageType,
                                                ImageListType>      VIToILFilterType;

  void Create(InputImageType * image,
              ParameterContainerType param,
              MetaIFPointerType metaIF,
              ImageContainer * container)
  {
    unsigned int nbBand;
    typename VIToILFilterType::Pointer filter = VIToILFilterType::New();

    filter->SetInput(image);
    filter->UpdateOutputInformation();
    nbBand = filter->GetOutput()->Size();

    for (unsigned int i=0; i<nbBand; ++i)
      {
      filter->GetOutput()->GetNthElement(i)->UpdateOutputInformation();
      m_Factory->Create(filter->GetOutput()->GetNthElement(i), param, metaIF, container);
      }
  }

  MultiChannelIFFactory()
  {
    m_Factory = IFFactoryType::New();
  }

  virtual ~MultiChannelIFFactory(){};

private:
  IFFactoryPointerType   m_Factory;

};
} //end namespace

#endif