ITK  5.0.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Private Attributes | List of all members
itk::SpatialObject< VDimension > Class Template Reference

#include <itkSpatialObject.h>

+ Inheritance diagram for itk::SpatialObject< VDimension >:
+ Collaboration diagram for itk::SpatialObject< VDimension >:

Detailed Description

template<unsigned int VDimension = 3>
class itk::SpatialObject< VDimension >

Implementation of the composite pattern.

The purpose of this class is to implement the composite pattern [Design Patterns, Gamma, 1995] within itk, so that it becomes easy to create an environment containing objects within a scene, and to manipulate the environment as a whole or any of its component objects. An object has a list of transformations to transform object coordinates to the corresponding coordinates in the real world coordinate system, and a list of inverse transformation to go backward. Any spatial objects can be plugged to a spatial object as children. To implement your own spatial object, you need to derive from the following class, which requires the definition of just a few pure virtual functions. Examples of such functions are ValueAtInWorldSpace(), IsEvaluableAtInWorldSpace(), and IsInsideInWorldSpace(), each of which has a meaning specific to each particular object type.

Examples:
Examples/SpatialObjects/SpatialObjectHierarchy.cxx, and Examples/SpatialObjects/SpatialObjectTransforms.cxx.

Definition at line 57 of file itkSpatialObject.h.

Public Types

using BoundingBoxPointer = typename BoundingBoxType::Pointer
 
using BoundingBoxType = BoundingBox< IdentifierType, VDimension, ScalarType, VectorContainerType >
 
using ChildrenListPointer = ChildrenListType *
 
using ChildrenListType = std::list< Pointer >
 
using ConstPointer = SmartPointer< const Self >
 
using CovariantVectorType = CovariantVector< ScalarType, VDimension >
 
using DerivativeOffsetType = Vector< double, VDimension >
 
using DerivativeVectorPointer = DerivativeVectorType *
 
using DerivativeVectorType = CovariantVector< ScalarType, VDimension >
 
using IndexType = Index< VDimension >
 
using InputType = Point< ScalarType, VDimension >
 
using ObjectDimensionType = unsigned int
 
using ObjectListType = std::list< Pointer >
 
using Pointer = SmartPointer< Self >
 
using PointPointer = PointType *
 
using PointType = Point< ScalarType, VDimension >
 
using PropertyType = SpatialObjectProperty
 
using RegionType = ImageRegion< VDimension >
 
using ScalarType = double
 
using Self = SpatialObject< VDimension >
 
using SizeType = Size< VDimension >
 
using Superclass = DataObject
 
using TransformConstPointer = const TransformType *
 
using TransformPointer = typename TransformType::Pointer
 
using TransformType = AffineTransform< ScalarType, VDimension >
 
using VectorContainerType = VectorContainer< IdentifierType, PointType >
 
using VectorPointer = VectorType *
 
using VectorType = Vector< ScalarType, VDimension >
 
- Public Types inherited from itk::DataObject
using ConstPointer = SmartPointer< const Self >
 
using DataObjectIdentifierType = std::string
 
using DataObjectPointerArraySizeType = std::vector< Pointer >::size_type
 
using Pointer = SmartPointer< Self >
 
using Self = DataObject
 
using Superclass = Object
 
- Public Types inherited from itk::Object
using ConstPointer = SmartPointer< const Self >
 
using Pointer = SmartPointer< Self >
 
using Self = Object
 
using Superclass = LightObject
 
- Public Types inherited from itk::LightObject
using ConstPointer = SmartPointer< const Self >
 
using Pointer = SmartPointer< Self >
 
using Self = LightObject
 

Public Member Functions

void AddChild (Self *pointer)
 
virtual void AddChildrenToList (ChildrenListType *children, unsigned int depth=0, const std::string &name="") const
 
bool CheckIdValidity () const
 
virtual bool ComputeFamilyBoundingBox (unsigned int depth=0, const std::string &name="") const
 
virtual bool ComputeMyBoundingBox () const
 
void ComputeObjectToParentTransform ()
 
void ComputeObjectToWorldTransform ()
 
void CopyInformation (const DataObject *data) override
 
virtual ::itk::LightObject::Pointer CreateAnother () const
 
virtual void DerivativeAtInObjectSpace (const PointType &point, short unsigned int order, CovariantVectorType &value, unsigned int depth=0, const std::string &name="", const DerivativeOffsetType &spacing=1)
 
virtual void DerivativeAtInWorldSpace (const PointType &point, short unsigned int order, CovariantVectorType &value, unsigned int depth=0, const std::string &name="", const DerivativeOffsetType &spacing=1)
 
bool Evaluate (const PointType &point) const
 
void FixIdValidity ()
 
bool FixParentChildHierarchyUsingParentIds ()
 
virtual const RegionTypeGetBufferedRegion () const
 
virtual ChildrenListTypeGetChildren (unsigned int depth=0, const std::string &name="") const
 
virtual std::string GetClassNameAndDimension (void) const
 
virtual const BoundingBoxTypeGetFamilyBoundingBoxInObjectSpace () const
 
virtual const BoundingBoxTypeGetFamilyBoundingBoxInWorldSpace () const
 
virtual const RegionTypeGetLargestPossibleRegion () const
 
unsigned int GetMaximumDepth () const
 
ModifiedTimeType GetMTime () const override
 
virtual const BoundingBoxTypeGetMyBoundingBoxInObjectSpace () const
 
virtual const BoundingBoxTypeGetMyBoundingBoxInWorldSpace () const
 
ModifiedTimeType GetMyMTime () const
 
virtual const char * GetNameOfClass () const
 
int GetNextAvailableId () const
 
unsigned int GetNumberOfChildren (unsigned int depth=0, const std::string &name="") const
 
SpatialObject< VDimension > * GetObjectById (int Id)
 
unsigned int GetObjectDimension () const
 
virtual const SelfGetParent () const
 
virtual SelfGetParent ()
 
const PropertyTypeGetProperty () const
 
PropertyTypeGetProperty ()
 
virtual const RegionTypeGetRequestedRegion () const
 
virtual const std::string GetTypeName () const
 
virtual bool HasParent () const
 
virtual bool IsEvaluableAtChildrenInObjectSpace (const PointType &point, unsigned int depth=0, const std::string &name="") const
 
virtual bool IsEvaluableAtInObjectSpace (const PointType &point, unsigned int depth=0, const std::string &name="") const
 
virtual bool IsEvaluableAtInWorldSpace (const PointType &point, unsigned int depth=0, const std::string &name="") const
 
virtual bool IsInsideChildrenInObjectSpace (const PointType &point, unsigned int depth=0, const std::string &name="") const
 
virtual bool IsInsideInObjectSpace (const PointType &point, unsigned int depth=0, const std::string &name="") const
 
virtual bool IsInsideInWorldSpace (const PointType &point, unsigned int depth=0, const std::string &name="") const
 
void RemoveAllChildren (unsigned int depth=MaximumDepth)
 
bool RemoveChild (Self *object)
 
bool RequestedRegionIsOutsideOfTheBufferedRegion () override
 
virtual void SetBufferedRegion (const RegionType &region)
 
void SetChildren (ChildrenListType &children)
 
virtual void SetLargestPossibleRegion (const RegionType &region)
 
void SetParent (Self *parent)
 
void SetProperty (const PropertyType &property)
 
virtual void SetRequestedRegion (const RegionType &region)
 
void SetRequestedRegion (const DataObject *data) override
 
void SetRequestedRegionToLargestPossibleRegion () override
 
virtual void SetTypeName (std::string _arg)
 
void Update () override
 
void UpdateOutputInformation () override
 
virtual bool ValueAtChildrenInObjectSpace (const PointType &point, double &value, unsigned int depth=0, const std::string &name="") const
 
virtual bool ValueAtInObjectSpace (const PointType &point, double &value, unsigned int depth=0, const std::string &name="") const
 
virtual bool ValueAtInWorldSpace (const PointType &point, double &value, unsigned int depth=0, const std::string &name="") const
 
bool VerifyRequestedRegion () override
 
void SetId (int id)
 
virtual const int & GetId () const
 
void SetObjectToWorldTransform (const TransformType *transform)
 
virtual TransformTypeGetModifiableObjectToWorldTransform ()
 
virtual const TransformTypeGetObjectToWorldTransform () const
 
const TransformTypeGetObjectToWorldTransformInverse () const
 
void SetObjectToParentTransform (const TransformType *transform)
 
virtual TransformTypeGetModifiableObjectToParentTransform ()
 
virtual const TransformTypeGetObjectToParentTransform () const
 
const TransformTypeGetObjectToParentTransformInverse () const
 
virtual void SetDefaultInsideValue (double _arg)
 
virtual double GetDefaultInsideValue () const
 
virtual void SetDefaultOutsideValue (double _arg)
 
virtual double GetDefaultOutsideValue () const
 
virtual void SetParentId (int _arg)
 
virtual const int & GetParentId () const
 
- Public Member Functions inherited from itk::DataObject
virtual void DataHasBeenGenerated ()
 
void DisconnectPipeline ()
 
bool GetDataReleased () const
 
virtual const bool & GetReleaseDataFlag () const
 
SmartPointer< ProcessObjectGetSource () const
 
DataObjectPointerArraySizeType GetSourceOutputIndex () const
 
const DataObjectIdentifierTypeGetSourceOutputName () const
 
virtual ModifiedTimeType GetUpdateMTime () const
 
virtual void Graft (const DataObject *)
 
virtual void Initialize ()
 
virtual void PrepareForNewData ()
 
virtual void PropagateRequestedRegion ()
 
void ReleaseData ()
 
virtual void ReleaseDataFlagOff ()
 
virtual void ReleaseDataFlagOn ()
 
virtual void ResetPipeline ()
 
void SetReleaseDataFlag (bool flag)
 
bool ShouldIReleaseData () const
 
virtual void UpdateOutputData ()
 
void SetPipelineMTime (ModifiedTimeType time)
 
virtual const ModifiedTimeTypeGetPipelineMTime () const
 
virtual void SetRealTimeStamp (RealTimeStamp _arg)
 
virtual const RealTimeStampGetRealTimeStamp () const
 
- Public Member Functions inherited from itk::Object
unsigned long AddObserver (const EventObject &event, Command *)
 
unsigned long AddObserver (const EventObject &event, Command *) const
 
virtual void DebugOff () const
 
virtual void DebugOn () const
 
CommandGetCommand (unsigned long tag)
 
bool GetDebug () const
 
MetaDataDictionaryGetMetaDataDictionary ()
 
const MetaDataDictionaryGetMetaDataDictionary () const
 
virtual const TimeStampGetTimeStamp () const
 
bool HasObserver (const EventObject &event) const
 
void InvokeEvent (const EventObject &)
 
void InvokeEvent (const EventObject &) const
 
virtual void Modified () const
 
void Register () const override
 
void RemoveAllObservers ()
 
void RemoveObserver (unsigned long tag)
 
void SetDebug (bool debugFlag) const
 
void SetReferenceCount (int) override
 
void UnRegister () const noexceptoverride
 
void SetMetaDataDictionary (const MetaDataDictionary &rhs)
 
void SetMetaDataDictionary (MetaDataDictionary &&rrhs)
 
virtual void SetObjectName (std::string _arg)
 
virtual const std::string & GetObjectName () const
 
- Public Member Functions inherited from itk::LightObject
virtual void Delete ()
 
virtual int GetReferenceCount () const
 
 itkCloneMacro (Self)
 
void Print (std::ostream &os, Indent indent=0) const
 

Static Public Member Functions

static Pointer New ()
 
- Static Public Member Functions inherited from itk::DataObject
static bool GetGlobalReleaseDataFlag ()
 
static void GlobalReleaseDataFlagOff ()
 
static void GlobalReleaseDataFlagOn ()
 
static void SetGlobalReleaseDataFlag (bool val)
 
- Static Public Member Functions inherited from itk::Object
static bool GetGlobalWarningDisplay ()
 
static void GlobalWarningDisplayOff ()
 
static void GlobalWarningDisplayOn ()
 
static Pointer New ()
 
static void SetGlobalWarningDisplay (bool flag)
 
- Static Public Member Functions inherited from itk::LightObject
static void BreakOnError ()
 
static Pointer New ()
 

Static Public Attributes

static constexpr unsigned int MaximumDepth = 9999999
 
static constexpr
ObjectDimensionType 
ObjectDimension = VDimension
 

Protected Member Functions

BoundingBoxTypeGetModifiableMyBoundingBoxInObjectSpace () const
 
LightObject::Pointer InternalClone () const override
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
 SpatialObject ()
 
 ~SpatialObject () override
 
- Protected Member Functions inherited from itk::DataObject
 DataObject ()
 
virtual void PropagateResetPipeline ()
 
 ~DataObject () override
 
- Protected Member Functions inherited from itk::Object
 Object ()
 
bool PrintObservers (std::ostream &os, Indent indent) const
 
virtual void SetTimeStamp (const TimeStamp &time)
 
 ~Object () override
 
- Protected Member Functions inherited from itk::LightObject
 LightObject ()
 
virtual void PrintHeader (std::ostream &os, Indent indent) const
 
virtual void PrintTrailer (std::ostream &os, Indent indent) const
 
virtual ~LightObject ()
 

Private Attributes

RegionType m_BufferedRegion
 
ChildrenListType m_ChildrenList
 
double m_DefaultInsideValue
 
double m_DefaultOutsideValue
 
BoundingBoxPointer m_FamilyBoundingBoxInObjectSpace
 
BoundingBoxPointer m_FamilyBoundingBoxInWorldSpace
 
int m_Id
 
RegionType m_LargestPossibleRegion
 
BoundingBoxPointer m_MyBoundingBoxInObjectSpace
 
BoundingBoxPointer m_MyBoundingBoxInWorldSpace
 
TransformPointer m_ObjectToParentTransform
 
TransformPointer m_ObjectToParentTransformInverse
 
TransformPointer m_ObjectToWorldTransform
 
TransformPointer m_ObjectToWorldTransformInverse
 
Selfm_Parent
 
int m_ParentId
 
PropertyType m_Property
 
RegionType m_RequestedRegion
 
std::string m_TypeName
 

Additional Inherited Members

- Protected Attributes inherited from itk::LightObject
std::atomic< int > m_ReferenceCount
 

Member Typedef Documentation

template<unsigned int VDimension = 3>
using itk::SpatialObject< VDimension >::BoundingBoxPointer = typename BoundingBoxType::Pointer

Definition at line 105 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
using itk::SpatialObject< VDimension >::BoundingBoxType = BoundingBox< IdentifierType, VDimension, ScalarType, VectorContainerType >

Definition at line 104 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
using itk::SpatialObject< VDimension >::ChildrenListPointer = ChildrenListType *

Definition at line 109 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
using itk::SpatialObject< VDimension >::ChildrenListType = std::list< Pointer >

Return type for the list of children

Definition at line 108 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
using itk::SpatialObject< VDimension >::ConstPointer = SmartPointer< const Self >

Definition at line 80 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
using itk::SpatialObject< VDimension >::CovariantVectorType = CovariantVector< ScalarType, VDimension >

Definition at line 89 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
using itk::SpatialObject< VDimension >::DerivativeOffsetType = Vector< double, VDimension>

Definition at line 95 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
using itk::SpatialObject< VDimension >::DerivativeVectorPointer = DerivativeVectorType *

Definition at line 93 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
using itk::SpatialObject< VDimension >::DerivativeVectorType = CovariantVector< ScalarType, VDimension >

Definition at line 92 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
using itk::SpatialObject< VDimension >::IndexType = Index< VDimension >

Definition at line 118 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
using itk::SpatialObject< VDimension >::InputType = Point< ScalarType, VDimension >

Definition at line 84 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
using itk::SpatialObject< VDimension >::ObjectDimensionType = unsigned int

Definition at line 65 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
using itk::SpatialObject< VDimension >::ObjectListType = std::list< Pointer >

Definition at line 111 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
using itk::SpatialObject< VDimension >::Pointer = SmartPointer< Self >

Definition at line 79 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
using itk::SpatialObject< VDimension >::PointPointer = PointType *

Definition at line 87 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
using itk::SpatialObject< VDimension >::PointType = Point< ScalarType, VDimension >

Definition at line 86 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
using itk::SpatialObject< VDimension >::PropertyType = SpatialObjectProperty

Definition at line 115 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
using itk::SpatialObject< VDimension >::RegionType = ImageRegion< VDimension >

Definition at line 113 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
using itk::SpatialObject< VDimension >::ScalarType = double

Definition at line 63 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
using itk::SpatialObject< VDimension >::Self = SpatialObject< VDimension >

Definition at line 76 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
using itk::SpatialObject< VDimension >::SizeType = Size< VDimension >

Definition at line 119 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
using itk::SpatialObject< VDimension >::Superclass = DataObject

Definition at line 77 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
using itk::SpatialObject< VDimension >::TransformConstPointer = const TransformType *

Definition at line 99 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
using itk::SpatialObject< VDimension >::TransformPointer = typename TransformType::Pointer

Definition at line 98 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
using itk::SpatialObject< VDimension >::TransformType = AffineTransform< ScalarType, VDimension >

Definition at line 97 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
using itk::SpatialObject< VDimension >::VectorContainerType = VectorContainer< IdentifierType, PointType >

Definition at line 101 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
using itk::SpatialObject< VDimension >::VectorPointer = VectorType *

Definition at line 90 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
using itk::SpatialObject< VDimension >::VectorType = Vector< ScalarType, VDimension >

Definition at line 88 of file itkSpatialObject.h.

Constructor & Destructor Documentation

template<unsigned int VDimension = 3>
itk::SpatialObject< VDimension >::SpatialObject ( )
protected

Constructor.

template<unsigned int VDimension = 3>
itk::SpatialObject< VDimension >::~SpatialObject ( )
overrideprotected

Destructor.

Member Function Documentation

template<unsigned int VDimension = 3>
void itk::SpatialObject< VDimension >::AddChild ( Self pointer)

Add an object to the list of children.

template<unsigned int VDimension = 3>
virtual void itk::SpatialObject< VDimension >::AddChildrenToList ( ChildrenListType children,
unsigned int  depth = 0,
const std::string &  name = "" 
) const
virtual
template<unsigned int VDimension = 3>
bool itk::SpatialObject< VDimension >::CheckIdValidity ( ) const

Confirm that every object inherited from this has a unique Id

template<unsigned int VDimension = 3>
virtual bool itk::SpatialObject< VDimension >::ComputeFamilyBoundingBox ( unsigned int  depth = 0,
const std::string &  name = "" 
) const
virtual

Compute an axis-aligned bounding box for an object and its selected children, down to a specified depth, in object space.

template<unsigned int VDimension = 3>
virtual bool itk::SpatialObject< VDimension >::ComputeMyBoundingBox ( ) const
virtual
template<unsigned int VDimension = 3>
void itk::SpatialObject< VDimension >::ComputeObjectToParentTransform ( )

Compute the Local transform when the global transform is set

template<unsigned int VDimension = 3>
void itk::SpatialObject< VDimension >::ComputeObjectToWorldTransform ( )

Compute the World transform when the local transform is set This function should be called each time the local transform has been modified

template<unsigned int VDimension = 3>
void itk::SpatialObject< VDimension >::CopyInformation ( const DataObject data)
overridevirtual

Copy information from the specified data set. This method is part of the pipeline execution model. By default, a ProcessObject will copy meta-data from the first input to all of its outputs. See ProcessObject::GenerateOutputInformation(). Each subclass of DataObject is responsible for being able to copy whatever meta-data it needs from from another DataObject. ImageBase has more meta-data than its DataObject. Thus, it must provide its own version of CopyInformation() in order to copy the LargestPossibleRegion from the input parameter.

Reimplemented from itk::DataObject.

template<unsigned int VDimension = 3>
virtual::itk::LightObject::Pointer itk::SpatialObject< VDimension >::CreateAnother ( ) const
virtual

Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.

Reimplemented from itk::Object.

Reimplemented in itk::TubeSpatialObject< TDimension, DTITubeSpatialObjectPoint< TDimension > >.

template<unsigned int VDimension = 3>
virtual void itk::SpatialObject< VDimension >::DerivativeAtInObjectSpace ( const PointType point,
short unsigned int  order,
CovariantVectorType value,
unsigned int  depth = 0,
const std::string &  name = "",
const DerivativeOffsetType spacing = 1 
)
virtual

Return the n-th order derivative value at the specified point.

template<unsigned int VDimension = 3>
virtual void itk::SpatialObject< VDimension >::DerivativeAtInWorldSpace ( const PointType point,
short unsigned int  order,
CovariantVectorType value,
unsigned int  depth = 0,
const std::string &  name = "",
const DerivativeOffsetType spacing = 1 
)
virtual

Return the n-th order derivative value at the specified point.

template<unsigned int VDimension = 3>
bool itk::SpatialObject< VDimension >::Evaluate ( const PointType point) const
inline

Returns true if a point is inside the object - provided to make spatial objects compatible with spatial functions and conditional iterators for defining regions of interest.

Definition at line 517 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
void itk::SpatialObject< VDimension >::FixIdValidity ( )

Give every object inherited from this a unique Id

template<unsigned int VDimension = 3>
bool itk::SpatialObject< VDimension >::FixParentChildHierarchyUsingParentIds ( )

In practice, this is used to transform an imported MetaIO scene hierarchy specified only by Ids into the SpatialObject hierarchy specified by Ids and Child/Parent lists.

template<unsigned int VDimension = 3>
virtual const RegionType& itk::SpatialObject< VDimension >::GetBufferedRegion ( ) const
inlinevirtual

Get the region object that defines the size and starting index of the region of the image currently loaded in memory.

See Also
ImageRegion, SetLargestPossibleRegion(), SetRequestedRegion()

Definition at line 440 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
virtual ChildrenListType* itk::SpatialObject< VDimension >::GetChildren ( unsigned int  depth = 0,
const std::string &  name = "" 
) const
virtual

Returns a list of pointer to the children affiliated to this object. A depth of 0 returns the immediate childred. A depth of 1 returns the children and those children's children.

Warning
User is responsible for freeing the list, but not the elements of the list.
template<unsigned int VDimension = 3>
virtual std::string itk::SpatialObject< VDimension >::GetClassNameAndDimension ( void  ) const
virtual

Get the class name with the dimension of the spatial object appended

template<unsigned int VDimension = 3>
virtual double itk::SpatialObject< VDimension >::GetDefaultInsideValue ( ) const
virtual

Set/Get the default inside value (ValueAtInWorldSpace()) of the object. Default is 1.0

template<unsigned int VDimension = 3>
virtual double itk::SpatialObject< VDimension >::GetDefaultOutsideValue ( ) const
virtual

Set/Get the default outside value (ValueAtInWorldSpace()) of the object. Default is 0.0

template<unsigned int VDimension = 3>
virtual const BoundingBoxType* itk::SpatialObject< VDimension >::GetFamilyBoundingBoxInObjectSpace ( ) const
virtual

Get a pointer to the bounding box of the object. The extents and the position of the box are not computed.

template<unsigned int VDimension = 3>
virtual const BoundingBoxType* itk::SpatialObject< VDimension >::GetFamilyBoundingBoxInWorldSpace ( ) const
virtual

Get a pointer to the bounding box of the object. The extents and the position of the box are not computed.

template<unsigned int VDimension = 3>
virtual const int& itk::SpatialObject< VDimension >::GetId ( ) const
virtual

Get/Set the ID

template<unsigned int VDimension = 3>
virtual const RegionType& itk::SpatialObject< VDimension >::GetLargestPossibleRegion ( ) const
inlinevirtual

Get the region object that defines the size and starting index for the largest possible region this image could represent. This is used in determining how much memory would be needed to load an entire dataset. It is also used to determine boundary conditions.

See Also
ImageRegion, GetBufferedRegion(), GetRequestedRegion()

Definition at line 429 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
unsigned int itk::SpatialObject< VDimension >::GetMaximumDepth ( ) const
inline

Return the maximum depth that a tree of spatial objects can have. This provides convenient access to a static constant.

Definition at line 73 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
BoundingBoxType* itk::SpatialObject< VDimension >::GetModifiableMyBoundingBoxInObjectSpace ( ) const
inlineprotected

Definition at line 531 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
virtual TransformType* itk::SpatialObject< VDimension >::GetModifiableObjectToParentTransform ( )
virtual

Transforms points from the object-specific "physical" space to the "physical" space of its parent object.

template<unsigned int VDimension = 3>
virtual TransformType* itk::SpatialObject< VDimension >::GetModifiableObjectToWorldTransform ( )
virtual

This defines the transformation from the global coordinate frame. By setting this transform, the object transform is updated

template<unsigned int VDimension = 3>
ModifiedTimeType itk::SpatialObject< VDimension >::GetMTime ( ) const
overridevirtual

Returns the latest modified time of the spatial object, and any of its components.

Reimplemented from itk::Object.

template<unsigned int VDimension = 3>
virtual const BoundingBoxType* itk::SpatialObject< VDimension >::GetMyBoundingBoxInObjectSpace ( ) const
virtual

Get a pointer to the axis-aligned bounding box of the object in world space. This box is computed by ComputeMyBoundingBox which is called by Update().

template<unsigned int VDimension = 3>
virtual const BoundingBoxType* itk::SpatialObject< VDimension >::GetMyBoundingBoxInWorldSpace ( ) const
virtual

Get a pointer to the axis-aligned bounding box of the object in world space. This box is computed by ComputeMyBoundingBox which is called by Update().

template<unsigned int VDimension = 3>
ModifiedTimeType itk::SpatialObject< VDimension >::GetMyMTime ( ) const
inline

Returns the latest modified time of the spatial object, but not the modification time of the children

Definition at line 165 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
virtual const char* itk::SpatialObject< VDimension >::GetNameOfClass ( ) const
virtual
template<unsigned int VDimension = 3>
int itk::SpatialObject< VDimension >::GetNextAvailableId ( ) const

Generate a unique Id

template<unsigned int VDimension = 3>
unsigned int itk::SpatialObject< VDimension >::GetNumberOfChildren ( unsigned int  depth = 0,
const std::string &  name = "" 
) const

Returns the number of children currently assigned to the object.

template<unsigned int VDimension = 3>
SpatialObject< VDimension >* itk::SpatialObject< VDimension >::GetObjectById ( int  Id)

Return a SpatialObject given its ID, if it is a child

template<unsigned int VDimension = 3>
unsigned int itk::SpatialObject< VDimension >::GetObjectDimension ( ) const
inline

Get the dimensionality of the object

Definition at line 122 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
virtual const TransformType* itk::SpatialObject< VDimension >::GetObjectToParentTransform ( ) const
virtual

Transforms points from the object-specific "physical" space to the "physical" space of its parent object.

template<unsigned int VDimension = 3>
const TransformType* itk::SpatialObject< VDimension >::GetObjectToParentTransformInverse ( ) const

Transforms points from the object-specific "physical" space to the "physical" space of its parent object.

template<unsigned int VDimension = 3>
virtual const TransformType* itk::SpatialObject< VDimension >::GetObjectToWorldTransform ( ) const
virtual

This defines the transformation from the global coordinate frame. By setting this transform, the object transform is updated

template<unsigned int VDimension = 3>
const TransformType* itk::SpatialObject< VDimension >::GetObjectToWorldTransformInverse ( ) const

This defines the transformation from the global coordinate frame. By setting this transform, the object transform is updated

template<unsigned int VDimension = 3>
virtual const Self* itk::SpatialObject< VDimension >::GetParent ( ) const
virtual

Return a pointer to the parent object in the hierarchy tree

template<unsigned int VDimension = 3>
virtual Self* itk::SpatialObject< VDimension >::GetParent ( )
virtual

Return a pointer to the parent object in the hierarchy tree

template<unsigned int VDimension = 3>
virtual const int& itk::SpatialObject< VDimension >::GetParentId ( ) const
virtual

Set/Get the parent Identification number

template<unsigned int VDimension = 3>
const PropertyType& itk::SpatialObject< VDimension >::GetProperty ( ) const
inline

Returns a pointer to the property object applied to this class.

Definition at line 153 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
PropertyType& itk::SpatialObject< VDimension >::GetProperty ( )
inline

Definition at line 156 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
virtual const RegionType& itk::SpatialObject< VDimension >::GetRequestedRegion ( ) const
inlinevirtual

Get the region object that defines the size and starting index for the region of the image requested (i.e., the region of the image to be operated on by a filter).

See Also
ImageRegion, SetLargestPossibleRegion(), SetBufferedRegion()

Definition at line 459 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
virtual const std::string itk::SpatialObject< VDimension >::GetTypeName ( ) const
inlinevirtual

Get the typename of the SpatialObject

Definition at line 142 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
virtual bool itk::SpatialObject< VDimension >::HasParent ( ) const
virtual

Return true if the object has a parent object. Basically, only the root object , or some isolated objects should return false.

template<unsigned int VDimension = 3>
LightObject::Pointer itk::SpatialObject< VDimension >::InternalClone ( ) const
overrideprotectedvirtual

Actual implementation of the clone method. This method should be reimplemeted in subclasses to clone the extra required parameters.

Reimplemented from itk::LightObject.

Reimplemented in itk::TubeSpatialObject< TDimension, DTITubeSpatialObjectPoint< TDimension > >.

template<unsigned int VDimension = 3>
virtual bool itk::SpatialObject< VDimension >::IsEvaluableAtChildrenInObjectSpace ( const PointType point,
unsigned int  depth = 0,
const std::string &  name = "" 
) const
virtual
template<unsigned int VDimension = 3>
virtual bool itk::SpatialObject< VDimension >::IsEvaluableAtInObjectSpace ( const PointType point,
unsigned int  depth = 0,
const std::string &  name = "" 
) const
virtual

Returns true if the object can provide a "meaningful" value at a point. Often defaults to returning same answer as IsInsideInWorldSpace, but certain objects influence space beyond their spatial extent, e.g., an RFA Needle Spatial Object can cause a burn that extends beyond the tip of the needle.

template<unsigned int VDimension = 3>
virtual bool itk::SpatialObject< VDimension >::IsEvaluableAtInWorldSpace ( const PointType point,
unsigned int  depth = 0,
const std::string &  name = "" 
) const
virtual

World space equivalent to IsEvaluableAtInObjectSpace

template<unsigned int VDimension = 3>
virtual bool itk::SpatialObject< VDimension >::IsInsideChildrenInObjectSpace ( const PointType point,
unsigned int  depth = 0,
const std::string &  name = "" 
) const
virtual
template<unsigned int VDimension = 3>
virtual bool itk::SpatialObject< VDimension >::IsInsideInObjectSpace ( const PointType point,
unsigned int  depth = 0,
const std::string &  name = "" 
) const
virtual

Returns true if a point is inside the object in world space.

template<unsigned int VDimension = 3>
virtual bool itk::SpatialObject< VDimension >::IsInsideInWorldSpace ( const PointType point,
unsigned int  depth = 0,
const std::string &  name = "" 
) const
virtual

World space equivalent to IsInsideInObjectSpace

template<unsigned int VDimension = 3>
static Pointer itk::SpatialObject< VDimension >::New ( )
static

Method for creation through the object factory.

template<unsigned int VDimension = 3>
void itk::SpatialObject< VDimension >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
overrideprotectedvirtual

Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from itk::DataObject.

Reimplemented in itk::TubeSpatialObject< TDimension, DTITubeSpatialObjectPoint< TDimension > >.

template<unsigned int VDimension = 3>
void itk::SpatialObject< VDimension >::RemoveAllChildren ( unsigned int  depth = MaximumDepth)

Remove all children to a given depth

template<unsigned int VDimension = 3>
bool itk::SpatialObject< VDimension >::RemoveChild ( Self object)

Remove the object passed as arguments from the list of children.

template<unsigned int VDimension = 3>
bool itk::SpatialObject< VDimension >::RequestedRegionIsOutsideOfTheBufferedRegion ( )
overridevirtual

Determine whether the RequestedRegion is outside of the BufferedRegion. This method returns true if the RequestedRegion is outside the BufferedRegion (true if at least one pixel is outside). This is used by the pipeline mechanism to determine whether a filter needs to re-execute in order to satisfy the current request. If the current RequestedRegion is already inside the BufferedRegion from the previous execution (and the current filter is up to date), then a given filter does not need to re-execute

Reimplemented from itk::DataObject.

template<unsigned int VDimension = 3>
virtual void itk::SpatialObject< VDimension >::SetBufferedRegion ( const RegionType region)
virtual

Set the region object that defines the size and starting index of the region of the image currently loaded in memory.

See Also
ImageRegion, SetLargestPossibleRegion(), SetRequestedRegion()
template<unsigned int VDimension = 3>
void itk::SpatialObject< VDimension >::SetChildren ( ChildrenListType children)

Set the list of pointers to children to the list passed as argument.

template<unsigned int VDimension = 3>
virtual void itk::SpatialObject< VDimension >::SetDefaultInsideValue ( double  _arg)
virtual

Set/Get the default inside value (ValueAtInWorldSpace()) of the object. Default is 1.0

template<unsigned int VDimension = 3>
virtual void itk::SpatialObject< VDimension >::SetDefaultOutsideValue ( double  _arg)
virtual

Set/Get the default outside value (ValueAtInWorldSpace()) of the object. Default is 0.0

template<unsigned int VDimension = 3>
void itk::SpatialObject< VDimension >::SetId ( int  id)

Get/Set the ID

template<unsigned int VDimension = 3>
virtual void itk::SpatialObject< VDimension >::SetLargestPossibleRegion ( const RegionType region)
virtual

Set the region object that defines the size and starting index for the largest possible region this image could represent. This is used in determining how much memory would be needed to load an entire dataset. It is also used to determine boundary conditions.

See Also
ImageRegion, SetBufferedRegion(), SetRequestedRegion()
template<unsigned int VDimension = 3>
void itk::SpatialObject< VDimension >::SetObjectToParentTransform ( const TransformType transform)

Transforms points from the object-specific "physical" space to the "physical" space of its parent object.

template<unsigned int VDimension = 3>
void itk::SpatialObject< VDimension >::SetObjectToWorldTransform ( const TransformType transform)

This defines the transformation from the global coordinate frame. By setting this transform, the object transform is updated

template<unsigned int VDimension = 3>
void itk::SpatialObject< VDimension >::SetParent ( Self parent)

Set the pointer to the parent object in the tree hierarchy. Updates the ObjectToParentTransform to keep the object from moving in space.

template<unsigned int VDimension = 3>
virtual void itk::SpatialObject< VDimension >::SetParentId ( int  _arg)
virtual

Set/Get the parent Identification number

template<unsigned int VDimension = 3>
void itk::SpatialObject< VDimension >::SetProperty ( const PropertyType property)
inline

Set the property applied to the object.

Definition at line 149 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
virtual void itk::SpatialObject< VDimension >::SetRequestedRegion ( const RegionType region)
virtual

Set the region object that defines the size and starting index for the region of the image requested (i.e., the region of the image to be operated on by a filter).

See Also
ImageRegion, SetLargestPossibleRegion(), SetBufferedRegion()
template<unsigned int VDimension = 3>
void itk::SpatialObject< VDimension >::SetRequestedRegion ( const DataObject data)
overridevirtual

Set the requested region from this data object to match the requested region of the data object passed in as a parameter. This method implements the API from DataObject. The data object parameter must be castable to an ImageBase.

Reimplemented from itk::DataObject.

template<unsigned int VDimension = 3>
void itk::SpatialObject< VDimension >::SetRequestedRegionToLargestPossibleRegion ( )
overridevirtual

Set the RequestedRegion to the LargestPossibleRegion. This forces a filter to produce all of the output in one execution (i.e. not streaming) on the next call to Update().

Reimplemented from itk::DataObject.

template<unsigned int VDimension = 3>
virtual void itk::SpatialObject< VDimension >::SetTypeName ( std::string  _arg)
virtual

Set the typename of the SpatialObject. Use cautiously - Conversion, Factory, and IO methods depend on standard naming. Can be used to prepend a subtype to a typename.

template<unsigned int VDimension = 3>
void itk::SpatialObject< VDimension >::Update ( )
overridevirtual

Update - Optionally used to compute a world-coordinate representation of the object. Object-dependent implementation.

Reimplemented from itk::DataObject.

template<unsigned int VDimension = 3>
void itk::SpatialObject< VDimension >::UpdateOutputInformation ( )
overridevirtual

Update the information for this DataObject so that it can be used as an output of a ProcessObject. This method is used the pipeline mechanism to propagate information and initialize the meta data associated with a DataObject. This method calls its source's ProcessObject::UpdateOutputInformation() which determines modified times, LargestPossibleRegions, and any extra meta data like spacing, origin, etc.

Reimplemented from itk::DataObject.

template<unsigned int VDimension = 3>
virtual bool itk::SpatialObject< VDimension >::ValueAtChildrenInObjectSpace ( const PointType point,
double &  value,
unsigned int  depth = 0,
const std::string &  name = "" 
) const
virtual
template<unsigned int VDimension = 3>
virtual bool itk::SpatialObject< VDimension >::ValueAtInObjectSpace ( const PointType point,
double &  value,
unsigned int  depth = 0,
const std::string &  name = "" 
) const
virtual

Returns the value at a point. Returns true if that value is valid

template<unsigned int VDimension = 3>
virtual bool itk::SpatialObject< VDimension >::ValueAtInWorldSpace ( const PointType point,
double &  value,
unsigned int  depth = 0,
const std::string &  name = "" 
) const
virtual

World space equivalent to ValueAtInObjectSpace

template<unsigned int VDimension = 3>
bool itk::SpatialObject< VDimension >::VerifyRequestedRegion ( )
overridevirtual

Verify that the RequestedRegion is within the LargestPossibleRegion. If the RequestedRegion is not within the LargestPossibleRegion, then the filter cannot possible satisfy the request. This method returns true if the request can be satisfied and returns fails if the request cannot. This method is used by PropagateRequestedRegion(). PropagateRequestedRegion() throws a InvalidRequestedRegionError exception is the requested region is not within the LargestPossibleRegion.

Reimplemented from itk::DataObject.

Member Data Documentation

template<unsigned int VDimension = 3>
RegionType itk::SpatialObject< VDimension >::m_BufferedRegion
private

Definition at line 551 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
ChildrenListType itk::SpatialObject< VDimension >::m_ChildrenList
private

Definition at line 564 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
double itk::SpatialObject< VDimension >::m_DefaultInsideValue
private

Default inside value for the ValueAtInWorldSpace()

Definition at line 567 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
double itk::SpatialObject< VDimension >::m_DefaultOutsideValue
private

Default outside value for the ValueAtInWorldSpace()

Definition at line 570 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
BoundingBoxPointer itk::SpatialObject< VDimension >::m_FamilyBoundingBoxInObjectSpace
private

Definition at line 555 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
BoundingBoxPointer itk::SpatialObject< VDimension >::m_FamilyBoundingBoxInWorldSpace
private

Definition at line 556 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
int itk::SpatialObject< VDimension >::m_Id
private

Object Identification Number

Definition at line 539 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
RegionType itk::SpatialObject< VDimension >::m_LargestPossibleRegion
private

Definition at line 549 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
BoundingBoxPointer itk::SpatialObject< VDimension >::m_MyBoundingBoxInObjectSpace
private

Definition at line 553 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
BoundingBoxPointer itk::SpatialObject< VDimension >::m_MyBoundingBoxInWorldSpace
private

Definition at line 554 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
TransformPointer itk::SpatialObject< VDimension >::m_ObjectToParentTransform
private

Definition at line 558 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
TransformPointer itk::SpatialObject< VDimension >::m_ObjectToParentTransformInverse
private

Definition at line 559 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
TransformPointer itk::SpatialObject< VDimension >::m_ObjectToWorldTransform
private

Definition at line 561 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
TransformPointer itk::SpatialObject< VDimension >::m_ObjectToWorldTransformInverse
private

Definition at line 562 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
Self* itk::SpatialObject< VDimension >::m_Parent
private

Definition at line 547 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
int itk::SpatialObject< VDimension >::m_ParentId
private

Definition at line 546 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
PropertyType itk::SpatialObject< VDimension >::m_Property
private

Definition at line 544 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
RegionType itk::SpatialObject< VDimension >::m_RequestedRegion
private

Definition at line 550 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
std::string itk::SpatialObject< VDimension >::m_TypeName
private

Type of spatial object

Definition at line 542 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
constexpr unsigned int itk::SpatialObject< VDimension >::MaximumDepth = 9999999
static

Definition at line 69 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
constexpr ObjectDimensionType itk::SpatialObject< VDimension >::ObjectDimension = VDimension
static

Definition at line 67 of file itkSpatialObject.h.


The documentation for this class was generated from the following file: