/usr/include/IGSTK/igstkTubeReader.h is in libigstk4-dev 4.4.0-6.
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 137 138 | /*=========================================================================
Program: Image Guided Surgery Software Toolkit
Module: $RCSfile: igstkTubeReader.h,v $
Language: C++
Date: $Date: 2008-05-05 20:41:09 $
Version: $Revision: 1.15 $
Copyright (c) ISC Insight Software Consortium. All rights reserved.
See IGSTKCopyright.txt or http://www.igstk.org/copyright.htm 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 __igstkTubeReader_h
#define __igstkTubeReader_h
#include "igstkMacros.h"
#include "igstkSpatialObjectReader.h"
#include "itkSpatialObjectReader.h"
#include "itkObject.h"
#include "itkEventObject.h"
#include "igstkTubeObject.h"
#include "itkTubeSpatialObject.h"
namespace igstk
{
namespace Friends
{
/** \class TubeReaderToTubeSpatialObject
* \brief This class is intended to make the connection between the TubeReader
* and its output, the TubeSpatialObject.
*
* With this class it is possible to enforce encapsulation of the Reader and
* the TubeSpatialObject, and make their GetTube() and SetTube() methods
* private, so that developers cannot gain access to the ITK or VTK layers of
* these two classes.
*/
class TubeReaderToTubeSpatialObject
{
public:
template < class TReader, class TTubeSpatialObject >
static void
ConnectTube( TReader * reader,
TTubeSpatialObject * tubeSpatialObject )
{
tubeSpatialObject->SetTubeSpatialObject(
reader->GetITKTubeSpatialObject());
}
}; // end of TubeReaderToTubeSpatialObject class
} // end of Friend namespace
/** \class TubeReader
*
* \brief This class reads 3D Tube in the metaIO format.
*
* Tubular structures are quite common in human anatomy. This class is intended
* to read groups of tubular structrures from files in metaIO format. Typical
* these structures are the result of a segmentation method applied on
* pre-operative images.
*
* \image html igstkTubeReader.png "Tube Reader State Machine Diagram"
* \image latex igstkTubeReader.eps "Tube Reader State Machine Diagram"
*
* \ingroup Readers
*/
class TubeReader : public SpatialObjectReader<3>
{
public:
/** Macro with standard traits declarations. */
igstkStandardClassTraitsMacro( TubeReader, SpatialObjectReader<3> )
public:
/** Typedefs */
typedef Superclass::SpatialObjectType SpatialObjectType;
typedef Superclass::GroupSpatialObjectType GroupSpatialObjectType;
typedef SpatialObjectType::ConstPointer SpatialObjectTypeConstPointer;
typedef igstk::TubeObject TubeType;
typedef itk::TubeSpatialObject<3> TubeSpatialObjectType;
/** Event type */
igstkEventMacro( TubeReaderEvent,ObjectReaderEvent )
igstkEventMacro( TubeReadingErrorEvent, ObjectReadingErrorEvent )
igstkLoadedObjectEventMacro( TubeModifiedEvent, TubeReaderEvent, TubeType )
/** Declare the TubeReaderToTubeSpatialObject class to be a friend
* in order to give it access to the private method
* GetITKTubeSpatialObject(). */
igstkFriendClassMacro( igstk::Friends::TubeReaderToTubeSpatialObject );
protected:
/** Constructor and Destructor */
TubeReader();
~TubeReader();
/** Print the object information in a stream. */
void PrintSelf( std::ostream& os, itk::Indent indent ) const;
/** This method request Object read. This method is intended to be
* invoked ONLY by the State Machine of the superclass. */
void AttemptReadObjectProcessing();
/** This method will invoke the TubeModifiedEvent */
void ReportObjectProcessing();
/** Connect the ITK TubeSpatialObject to the output TubeSpatialObject */
void ConnectTube();
private:
TubeReader(const Self&); //purposely not implemented
void operator=(const Self&); //purposely not implemented
// FIXME : This must be replaced with StateMachine logic
virtual TubeSpatialObjectType * GetITKTubeSpatialObject() const;
TubeType::Pointer m_Tube;
TubeSpatialObjectType::Pointer m_TubeSpatialObject;
};
} // end namespace igstk
#endif // __igstkTubeReader_h
|