This file is indexed.

/usr/include/OTB-6.4/otbMultiChannelIFFactory.h is in libotb-dev 6.4.0+dfsg-1.

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
134
135
136
/*
 * Copyright (C) 2005-2017 Centre National d'Etudes Spatiales (CNES)
 *
 * This file is part of Orfeo Toolbox
 *
 *     https://www.orfeo-toolbox.org/
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#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