18 #ifndef itkPointBasedSpatialObject_h
19 #define itkPointBasedSpatialObject_h
36 template<
unsigned int TDimension = 3,
37 class TSpatialObjectPointType = SpatialObjectPoint< TDimension > >
82 virtual const SpatialObjectPointType *
84 {
return &( m_Points[id] ); }
86 virtual SpatialObjectPointType *
88 {
return &( m_Points[id] ); }
95 TSpatialObjectPointType ClosestPointInWorldSpace(
98 TSpatialObjectPointType ClosestPointInObjectSpace(
102 bool IsInsideInObjectSpace(
const PointType & worldPoint,
unsigned int depth=0,
103 const std::string & name=
"")
const override;
106 bool ComputeMyBoundingBox()
const override;
115 void PrintSelf(std::ostream & os,
Indent indent)
const override;
122 #ifndef ITK_MANUAL_INSTANTIATION
123 #include "itkPointBasedSpatialObject.hxx"
126 #endif // itkPointBasedSpatialObject_h
virtual SizeValueType GetNumberOfPoints() const
unsigned long SizeValueType
typename Superclass::CovariantVectorType CovariantVectorType
typename Superclass::BoundingBoxType BoundingBoxType
typename Superclass::TransformType TransformType
This class serves as the base class for point-based spatial objects.
virtual SpatialObjectPointType * GetPoint(IdentifierType id)
typename Superclass::VectorType VectorType
Point used for a tube definition.
typename Superclass::PointType PointType
SizeValueType IdentifierType
Implementation of the composite pattern.
SpatialObjectPointListType m_Points
virtual const SpatialObjectPointListType & GetPoints() const
virtual const SpatialObjectPointType * GetPoint(IdentifierType id) const
Control indentation during Print() invocation.
ImageBaseType::PointType PointType
Base class for most ITK classes.
ImageBaseType::SpacingType VectorType
Base class for all data objects in ITK.
virtual SpatialObjectPointListType & GetPoints()
std::vector< SpatialObjectPointType > SpatialObjectPointListType