1 #ifndef __CPEXTENSIONS__DATASTRUCTURES__INFINITEPLANESPATIALOBJECT__H__
2 #define __CPEXTENSIONS__DATASTRUCTURES__INFINITEPLANESPATIALOBJECT__H__
4 #include <itkSpatialObject.h>
8 namespace DataStructures
12 template< unsigned int D >
13 class InfinitePlaneSpatialObject
14 : public itk::SpatialObject< D >
17 typedef InfinitePlaneSpatialObject Self;
18 typedef itk::SpatialObject< D > Superclass;
19 typedef itk::SmartPointer< Self > Pointer;
20 typedef itk::SmartPointer< const Self > ConstPointer;
22 typedef double ScalarType;
23 typedef typename Superclass::PointType PointType;
24 typedef typename Superclass::TransformType TransformType;
25 typedef typename Superclass::BoundingBoxType BoundingBoxType;
26 typedef typename PointType::VectorType VectorType;
28 itkStaticConstMacro( NumberOfDimension, unsigned int, D );
32 itkTypeMacro( InfinitePlaneSpatialObject, itk::SpatialObject );
34 itkGetConstMacro( Center, PointType );
35 itkGetConstMacro( Normal, VectorType );
39 void SetCenter( const P& p );
42 void SetNormal( const N& n );
45 const PointType& point, double& value,
46 unsigned int depth = 0, char* name = NULL
49 virtual bool IsEvaluableAt(
50 const PointType& point,
51 unsigned int depth = 0, char* name = NULL
54 virtual bool IsInside(
55 const PointType& point,
56 unsigned int depth, char* name
59 virtual bool IsInside( const PointType& point ) const;
61 virtual bool ComputeLocalBoundingBox( ) const;
64 InfinitePlaneSpatialObject( );
65 virtual ~InfinitePlaneSpatialObject( );
66 virtual void PrintSelf( std::ostream& os, itk::Indent indent ) const;
69 // Purposely not implemented.
70 InfinitePlaneSpatialObject( const Self& other );
71 Self& operator=( const Self& other );
82 #ifndef ITK_MANUAL_INSTANTIATION
83 #include <cpExtensions/DataStructures/InfinitePlaneSpatialObject.hxx>
84 #endif // ITK_MANUAL_INSTANTIATION
86 #endif // __CPEXTENSIONS__DATASTRUCTURES__INFINITEPLANESPATIALOBJECT__H__