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

Implementation of the composite pattern. More...

#include <itkSpatialObject.h>

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

List of all members.

Public Types

typedef
AffineGeometryFrameType::Pointer 
AffineGeometryFramePointer
typedef AffineGeometryFrame
< double, VDimension > 
AffineGeometryFrameType
typedef BoundingBoxType::Pointer BoundingBoxPointer
typedef BoundingBox
< IdentifierType, VDimension,
ScalarType,
VectorContainerType
BoundingBoxType
typedef ChildrenListTypeChildrenListPointer
typedef std::list< PointerChildrenListType
typedef SmartPointer< const SelfConstPointer
typedef CovariantVector
< ScalarType, VDimension > 
CovariantVectorType
typedef Index< VDimension > IndexType
typedef Point< ScalarType,
VDimension > 
InputType
typedef Offset< VDimension > OffsetType
typedef OutputVectorTypeOutputVectorPointer
typedef CovariantVector
< double, VDimension > 
OutputVectorType
typedef SmartPointer< SelfPointer
typedef PointTypePointPointer
typedef Point< ScalarType,
VDimension > 
PointType
typedef PropertyType::Pointer PropertyPointer
typedef SpatialObjectProperty
< float > 
PropertyType
typedef ImageRegion< VDimension > RegionType
typedef double ScalarType
typedef SpatialObject< VDimension > Self
typedef Size< VDimension > SizeType
typedef double * SpacingType
typedef DataObject Superclass
typedef const TransformTypeTransformConstPointer
typedef TransformType::Pointer TransformPointer
typedef
ScalableAffineTransform
< double, VDimension > 
TransformType
typedef SpatialObjectTreeNode
< VDimension > 
TreeNodeType
typedef VectorContainer
< IdentifierType, PointType
VectorContainerType
typedef VectorTypeVectorPointer
typedef Vector< ScalarType,
VDimension > 
VectorType

Public Member Functions

void AddSpatialObject (Self *pointer)
virtual void Clear (void)
virtual bool ComputeBoundingBox () const
virtual bool ComputeLocalBoundingBox () const
void ComputeObjectToParentTransform (void)
void ComputeObjectToWorldTransform (void)
virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual void DerivativeAt (const PointType &point, short unsigned int order, OutputVectorType &value, unsigned int depth=0, char *name=NULL)
bool Evaluate (const PointType &point) const
virtual BoundingBoxTypeGetBoundingBox () const
virtual const RegionTypeGetBufferedRegion () const
virtual ChildrenListTypeGetChildren (unsigned int depth=0, char *name=NULL) const
TransformTypeGetIndexToObjectTransform (void)
const TransformTypeGetIndexToObjectTransform (void) const
virtual TransformTypeGetIndexToWorldTransform ()
virtual const TransformTypeGetIndexToWorldTransform ()
virtual const RegionTypeGetLargestPossibleRegion () const
unsigned int GetMaximumDepth ()
unsigned long GetMTime (void) const
virtual const char * GetNameOfClass () const
const TransformTypeGetNodeToParentNodeTransform (void) const
TransformTypeGetNodeToParentNodeTransform (void)
unsigned int GetNumberOfChildren (unsigned int depth=0, char *name=NULL) const
unsigned int GetObjectDimension (void) const
unsigned long GetObjectMTime (void) const
TransformTypeGetObjectToNodeTransform (void)
const TransformTypeGetObjectToNodeTransform (void) const
TransformTypeGetObjectToParentTransform (void)
const TransformTypeGetObjectToParentTransform (void) const
virtual TransformTypeGetObjectToWorldTransform ()
virtual const TransformTypeGetObjectToWorldTransform ()
virtual SelfGetParent (void)
virtual const SelfGetParent (void) const
virtual const RegionTypeGetRequestedRegion () const
virtual const double * GetSpacing () const
virtual std::string GetSpatialObjectTypeAsString () const
unsigned long GetTransformMTime (void)
virtual const char * GetTypeName (void) const
unsigned long GetWorldTransformMTime (void)
virtual bool HasParent (void) const
virtual bool IsEvaluableAt (const PointType &point, unsigned int depth=0, char *name=NULL) const
virtual bool IsInside (const PointType &point, unsigned int depth=0, char *name=NULL) const
void RemoveSpatialObject (Self *object)
virtual void SetBufferedRegion (const RegionType &region)
void SetChildren (ChildrenListType &children)
virtual void SetLargestPossibleRegion (const RegionType &region)
void SetNodeToParentNodeTransform (TransformType *transform)
void SetObjectToParentTransform (TransformType *transform)
void SetObjectToWorldTransform (TransformType *transform)
void SetParent (Self *parent)
virtual void SetRequestedRegion (const DataObject *data)
virtual void SetRequestedRegion (const RegionType &region)
void SetSpacing (const double spacing[itkGetStaticConstMacro(ObjectDimension)])
virtual void SetTreeNode (TreeNodeType *_arg)
virtual void Update (void)
virtual bool ValueAt (const PointType &point, double &value, unsigned int depth=0, char *name=NULL) const
virtual const
AffineGeometryFrameType
GetAffineGeometryFrame ()
virtual void SetAffineGeometryFrame (AffineGeometryFrameType *_arg)
const OffsetValueTypeGetOffsetTable () const
OffsetValueType ComputeOffset (const IndexType &ind) const
IndexType ComputeIndex (OffsetValueType offset) const
virtual void CopyInformation (const DataObject *data)
virtual void UpdateOutputInformation ()
virtual void SetRequestedRegionToLargestPossibleRegion ()
virtual bool RequestedRegionIsOutsideOfTheBufferedRegion ()
virtual bool VerifyRequestedRegion ()
PropertyTypeGetProperty (void)
const PropertyTypeGetProperty (void) const
void SetProperty (PropertyType *property)
virtual const int & GetId ()
virtual void SetId (int _arg)
virtual void SetParentId (int _arg)
virtual const int & GetParentId ()
virtual TreeNodeTypeGetTreeNode ()
virtual const TreeNodeTypeGetTreeNode ()
virtual void SetBoundingBoxChildrenDepth (unsigned int _arg)
virtual const unsigned int & GetBoundingBoxChildrenDepth ()
virtual void SetBoundingBoxChildrenName (std::string _arg)
virtual const std::string & GetBoundingBoxChildrenName ()
virtual void SetDefaultInsideValue (double _arg)
virtual double GetDefaultInsideValue () const
virtual void SetDefaultOutsideValue (double _arg)
virtual double GetDefaultOutsideValue () const

Static Public Member Functions

static Pointer New ()

Static Public Attributes

static const unsigned int MaximumDepth = 9999999
static const unsigned int ObjectDimension = VDimension

Protected Member Functions

void ComputeOffsetTable ()
virtual const BoundingBoxTypeGetBounds ()
virtual const unsigned int & GetDimension ()
virtual const TransformTypeGetInternalInverseTransform ()
virtual void PrintSelf (std::ostream &os, Indent indent) const
virtual void SetDimension (unsigned int _arg)
bool SetInternalInverseTransformToWorldToIndexTransform () const
virtual void SetTypeName (std::string _arg)
 SpatialObject ()
virtual ~SpatialObject ()

Private Member Functions

void operator= (const Self &)
 SpatialObject (const Self &)

Private Attributes

AffineGeometryFramePointer m_AffineGeometryFrame
unsigned int m_BoundingBoxChildrenDepth
std::string m_BoundingBoxChildrenName
BoundingBoxPointer m_Bounds
unsigned long m_BoundsMTime
RegionType m_BufferedRegion
double m_DefaultInsideValue
double m_DefaultOutsideValue
unsigned int m_Dimension
int m_Id
TransformPointer m_IndexToWorldTransform
ChildrenListType m_InternalChildrenList
TransformPointer m_InternalInverseTransform
RegionType m_LargestPossibleRegion
TransformPointer m_ObjectToParentTransform
TransformPointer m_ObjectToWorldTransform
OffsetValueType m_OffsetTable [3+1]
int m_ParentId
PropertyPointer m_Property
RegionType m_RequestedRegion
TreeNodeType::Pointer m_TreeNode
std::string m_TypeName

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 index 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 ValueAt(), IsEvaluableAt(), and IsInside(), each of which has a meaning specific to each particular object type.

Definition at line 59 of file itkSpatialObject.h.


Member Typedef Documentation

template<unsigned int VDimension = 3>
typedef AffineGeometryFrameType::Pointer itk::SpatialObject< VDimension >::AffineGeometryFramePointer

Definition at line 102 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
typedef AffineGeometryFrame< double, VDimension > itk::SpatialObject< VDimension >::AffineGeometryFrameType

Definition at line 101 of file itkSpatialObject.h.

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

Definition at line 99 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
typedef BoundingBox< IdentifierType, VDimension, ScalarType, VectorContainerType > itk::SpatialObject< VDimension >::BoundingBoxType
template<unsigned int VDimension = 3>
typedef ChildrenListType* itk::SpatialObject< VDimension >::ChildrenListPointer

Definition at line 106 of file itkSpatialObject.h.

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

Return type for the list of children

Reimplemented in itk::PolygonGroupSpatialObject< TDimension >.

Definition at line 105 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
typedef SmartPointer< const Self > itk::SpatialObject< VDimension >::ConstPointer
template<unsigned int VDimension = 3>
typedef CovariantVector< ScalarType, VDimension > itk::SpatialObject< VDimension >::CovariantVectorType
template<unsigned int VDimension = 3>
typedef Index< VDimension > itk::SpatialObject< VDimension >::IndexType

Index typedef support. An index is used to access pixel values.

Reimplemented in itk::ImageMaskSpatialObject< TDimension >, itk::ImageSpatialObject< TDimension, TPixelType >, and itk::ImageSpatialObject< TDimension, unsigned char >.

Definition at line 109 of file itkSpatialObject.h.

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

Definition at line 80 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
typedef Offset< VDimension > itk::SpatialObject< VDimension >::OffsetType

Offset typedef support. An offset represent relative position between indices.

Definition at line 113 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
typedef OutputVectorType* itk::SpatialObject< VDimension >::OutputVectorPointer

Definition at line 90 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
typedef CovariantVector< double, VDimension > itk::SpatialObject< VDimension >::OutputVectorType

Definition at line 89 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
typedef SmartPointer< Self > itk::SpatialObject< VDimension >::Pointer
template<unsigned int VDimension = 3>
typedef PointType* itk::SpatialObject< VDimension >::PointPointer

Definition at line 81 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
typedef Point< ScalarType, VDimension > itk::SpatialObject< VDimension >::PointType
template<unsigned int VDimension = 3>
typedef PropertyType::Pointer itk::SpatialObject< VDimension >::PropertyPointer

Definition at line 117 of file itkSpatialObject.h.

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

Definition at line 116 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
typedef ImageRegion< VDimension > itk::SpatialObject< VDimension >::RegionType
template<unsigned int VDimension = 3>
typedef double itk::SpatialObject< VDimension >::ScalarType
template<unsigned int VDimension = 3>
typedef SpatialObject< VDimension > itk::SpatialObject< VDimension >::Self
template<unsigned int VDimension = 3>
typedef Size< VDimension > itk::SpatialObject< VDimension >::SizeType
template<unsigned int VDimension = 3>
typedef double* itk::SpatialObject< VDimension >::SpacingType

Definition at line 87 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
typedef DataObject itk::SpatialObject< VDimension >::Superclass
template<unsigned int VDimension = 3>
typedef const TransformType* itk::SpatialObject< VDimension >::TransformConstPointer

Definition at line 94 of file itkSpatialObject.h.

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

Definition at line 93 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
typedef ScalableAffineTransform< double, VDimension > itk::SpatialObject< VDimension >::TransformType
template<unsigned int VDimension = 3>
typedef SpatialObjectTreeNode< VDimension > itk::SpatialObject< VDimension >::TreeNodeType
template<unsigned int VDimension = 3>
typedef VectorContainer< IdentifierType, PointType > itk::SpatialObject< VDimension >::VectorContainerType

Definition at line 96 of file itkSpatialObject.h.

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

Definition at line 85 of file itkSpatialObject.h.

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

Constructor & Destructor Documentation

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

Constructor.

template<unsigned int VDimension = 3>
virtual itk::SpatialObject< VDimension >::~SpatialObject ( ) [protected, virtual]

Destructor.

template<unsigned int VDimension = 3>
itk::SpatialObject< VDimension >::SpatialObject ( const Self ) [private]

Member Function Documentation

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

Theses functions are just calling the itkSpatialObjectTreeNode functions Add an object to the list of children.

template<unsigned int VDimension = 3>
virtual void itk::SpatialObject< VDimension >::Clear ( void  ) [virtual]
template<unsigned int VDimension = 3>
virtual bool itk::SpatialObject< VDimension >::ComputeBoundingBox ( ) const [virtual]

Compute an axis-aligned bounding box for an object and its selected children, down to a specified depth. After computation, the resulting bounding box is stored in this->m_Bounds.

By default, the bounding box children depth is maximum, meaning that the bounding box for the object and all its recursive children is computed. This depth can be set (before calling ComputeBoundingBox) using SetBoundingBoxChildrenDepth().

By calling SetBoundingBoxChildrenName(), it is possible to restrict the bounding box computation to objects of a specified type or family of types. The spatial objects included in the computation are those whose typenames share, as their initial substring, the string specified via SetBoundingBoxChildrenName(). The root spatial object (on which the method is called) is not treated specially. If its typename does not match the bounding box children name, then it is not included in the bounding box computation, but its descendents that match the string are included.

template<unsigned int VDimension = 3>
IndexType itk::SpatialObject< VDimension >::ComputeIndex ( OffsetValueType  offset) const [inline]

Compute the index of the pixel at a specified offset from the beginning of the buffered region.

Definition at line 298 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
virtual bool itk::SpatialObject< VDimension >::ComputeLocalBoundingBox ( void  ) const [inline, virtual]
template<unsigned int VDimension = 3>
void itk::SpatialObject< VDimension >::ComputeObjectToParentTransform ( void  )

Compute the Local transform when the global transform is set

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

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>
OffsetValueType itk::SpatialObject< VDimension >::ComputeOffset ( const IndexType ind) const [inline]

Compute an offset from the beginning of the buffer for a pixel at the specified index.

Definition at line 278 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
void itk::SpatialObject< VDimension >::ComputeOffsetTable ( ) [protected]

Calculate the offsets needed to move from one pixel to the next along a row, column, slice, volume, etc. These offsets are based on the size of the BufferedRegion. This should be called after the BufferedRegion is set.

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

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.

Reimplemented in itk::EllipseSpatialObject< TDimension >, itk::TubeSpatialObject< TDimension, TTubePointType >, itk::TubeSpatialObject< TDimension, VesselTubeSpatialObjectPoint< TDimension > >, and itk::TubeSpatialObject< TDimension, DTITubeSpatialObjectPoint< TDimension > >.

template<unsigned int VDimension = 3>
virtual::itk::LightObject::Pointer itk::SpatialObject< VDimension >::CreateAnother ( void  ) const [virtual]
template<unsigned int VDimension = 3>
virtual void itk::SpatialObject< VDimension >::DerivativeAt ( const PointType point,
short unsigned int  order,
OutputVectorType value,
unsigned int  depth = 0,
char *  name = NULL 
) [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 194 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
virtual const AffineGeometryFrameType* itk::SpatialObject< VDimension >::GetAffineGeometryFrame ( ) [virtual]

Set/Get the AffineGeometryFrame

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

Get the bounding box of the object. This function calls ComputeBoundingBox()

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

Set/Get the depth at which the bounding box is computed

template<unsigned int VDimension = 3>
virtual const std::string& itk::SpatialObject< VDimension >::GetBoundingBoxChildrenName ( ) [virtual]

Set/Get the name of the children to consider when computing the bounding box

template<unsigned int VDimension = 3>
virtual const BoundingBoxType* itk::SpatialObject< VDimension >::GetBounds ( ) [protected, virtual]
template<unsigned int VDimension = 3>
virtual const RegionType& itk::SpatialObject< VDimension >::GetBufferedRegion ( ) const [inline, virtual]

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 242 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
virtual ChildrenListType* itk::SpatialObject< VDimension >::GetChildren ( unsigned int  depth = 0,
char *  name = NULL 
) 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 double itk::SpatialObject< VDimension >::GetDefaultInsideValue ( ) const [virtual]

Set/Get the default inside value (ValueAt()) 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 (ValueAt()) of the object. Default is 0.0

template<unsigned int VDimension = 3>
virtual const unsigned int& itk::SpatialObject< VDimension >::GetDimension ( ) [protected, virtual]
template<unsigned int VDimension = 3>
virtual const int& itk::SpatialObject< VDimension >::GetId ( ) [virtual]

Get/Set the ID

template<unsigned int VDimension = 3>
TransformType* itk::SpatialObject< VDimension >::GetIndexToObjectTransform ( void  )

Transform points from the internal data coordinate system of the object (typically the indices of the image from which the object was defined) to "physical" space (which accounts for the spacing, orientation, and offset of the indices)

Referenced by itk::SpatialObject< ::itk::GetMeshDimension< TMesh >::PointDimension >::GetSpacing(), and itk::SpatialObject< ::itk::GetMeshDimension< TMesh >::PointDimension >::SetSpacing().

template<unsigned int VDimension = 3>
const TransformType* itk::SpatialObject< VDimension >::GetIndexToObjectTransform ( void  ) const
template<unsigned int VDimension = 3>
virtual TransformType* itk::SpatialObject< VDimension >::GetIndexToWorldTransform ( ) [virtual]
template<unsigned int VDimension = 3>
virtual const TransformType* itk::SpatialObject< VDimension >::GetIndexToWorldTransform ( ) [virtual]
template<unsigned int VDimension = 3>
virtual const TransformType* itk::SpatialObject< VDimension >::GetInternalInverseTransform ( ) [protected, virtual]
template<unsigned int VDimension = 3>
virtual const RegionType& itk::SpatialObject< VDimension >::GetLargestPossibleRegion ( ) const [inline, virtual]

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 231 of file itkSpatialObject.h.

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

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

Definition at line 70 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
unsigned long itk::SpatialObject< VDimension >::GetMTime ( void  ) const [virtual]

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

Reimplemented from itk::Object.

Reimplemented in itk::ImageSpatialObject< TDimension, TPixelType >, itk::MeshSpatialObject< TMesh >, itk::FEMObjectSpatialObject< TDimension >, and itk::ImageSpatialObject< TDimension, unsigned char >.

template<unsigned int VDimension = 3>
virtual const char* itk::SpatialObject< VDimension >::GetNameOfClass ( ) const [virtual]
template<unsigned int VDimension = 3>
TransformType* itk::SpatialObject< VDimension >::GetNodeToParentNodeTransform ( void  )
template<unsigned int VDimension = 3>
const TransformType* itk::SpatialObject< VDimension >::GetNodeToParentNodeTransform ( void  ) const
template<unsigned int VDimension = 3>
unsigned int itk::SpatialObject< VDimension >::GetNumberOfChildren ( unsigned int  depth = 0,
char *  name = NULL 
) const

Returns the number of children currently assigned to the object.

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

Get the dimensionality of the object

Definition at line 134 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
unsigned long itk::SpatialObject< VDimension >::GetObjectMTime ( void  ) const [inline]

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

Definition at line 212 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
TransformType* itk::SpatialObject< VDimension >::GetObjectToNodeTransform ( void  )

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 >::GetObjectToNodeTransform ( void  ) const
template<unsigned int VDimension = 3>
TransformType* itk::SpatialObject< VDimension >::GetObjectToParentTransform ( void  )
template<unsigned int VDimension = 3>
const TransformType* itk::SpatialObject< VDimension >::GetObjectToParentTransform ( void  ) const
template<unsigned int VDimension = 3>
virtual TransformType* itk::SpatialObject< VDimension >::GetObjectToWorldTransform ( ) [virtual]
template<unsigned int VDimension = 3>
virtual const TransformType* itk::SpatialObject< VDimension >::GetObjectToWorldTransform ( ) [virtual]
template<unsigned int VDimension = 3>
const OffsetValueType* itk::SpatialObject< VDimension >::GetOffsetTable ( ) const [inline]

Get the offset table. The offset table gives increments for moving from one pixel to next in the current row, column, slice, etc.. This table if of size [VImageDimension+1], because its values are computed progressively as: {1, N1, N1*N2, N1*N2*N3,...,(N1*...*Nn)} Where the values {N1,...,Nn} are the elements of the BufferedRegion::Size array. The last element of the OffsetTable is equivalent to the BufferSize. Having a [VImageDimension+1] size array, simplifies the implementation of some data accessing algorithms.

Definition at line 273 of file itkSpatialObject.h.

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

Return a pointer to the parent object in the hierarchy tree

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

Return a pointer to the parent object in the hierarchy tree

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

Set/Get the parent Identification number

template<unsigned int VDimension = 3>
PropertyType* itk::SpatialObject< VDimension >::GetProperty ( void  )

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

template<unsigned int VDimension = 3>
const PropertyType* itk::SpatialObject< VDimension >::GetProperty ( void  ) const [inline]

Compute an offset from the beginning of the buffer for a pixel at the specified index.

Definition at line 364 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
virtual const RegionType& itk::SpatialObject< VDimension >::GetRequestedRegion ( ) const [inline, virtual]

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 261 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
virtual const double* itk::SpatialObject< VDimension >::GetSpacing ( ) const [inline, virtual]

Get the spacing of the spatial object.

Definition at line 398 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
virtual std::string itk::SpatialObject< VDimension >::GetSpatialObjectTypeAsString ( ) const [virtual]

Return the type of the spatial object as a string This is used by the SpatialObjectFactory

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

Return the Modified time of the LocalToWorldTransform

template<unsigned int VDimension = 3>
virtual TreeNodeType* itk::SpatialObject< VDimension >::GetTreeNode ( ) [virtual]

Return a raw pointer to the node container

template<unsigned int VDimension = 3>
virtual const TreeNodeType* itk::SpatialObject< VDimension >::GetTreeNode ( ) [virtual]

Return a raw pointer to the node container

template<unsigned int VDimension = 3>
virtual const char* itk::SpatialObject< VDimension >::GetTypeName ( void  ) const [inline, virtual]

Get the typename of the SpatialObject

Definition at line 126 of file itkSpatialObject.h.

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

Return the Modified time of the WorldToLocalTransform

template<unsigned int VDimension = 3>
virtual bool itk::SpatialObject< VDimension >::HasParent ( void  ) 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>
virtual bool itk::SpatialObject< VDimension >::IsEvaluableAt ( const PointType point,
unsigned int  depth = 0,
char *  name = NULL 
) const [virtual]

Returns true if the object can provide a "meaningful" value at a point. Often defaults to returning same answer as IsInside, 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 >::IsInside ( const PointType point,
unsigned int  depth = 0,
char *  name = NULL 
) const [virtual]

Returns true if a point is inside the object.

Referenced by itk::SpatialObject< ::itk::GetMeshDimension< TMesh >::PointDimension >::Evaluate().

template<unsigned int VDimension = 3>
static Pointer itk::SpatialObject< VDimension >::New ( ) [static]
template<unsigned int VDimension = 3>
void itk::SpatialObject< VDimension >::operator= ( const Self ) [private]
template<unsigned int VDimension = 3>
virtual void itk::SpatialObject< VDimension >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const [protected, virtual]
template<unsigned int VDimension = 3>
void itk::SpatialObject< VDimension >::RemoveSpatialObject ( Self object)

Remove the object passed as arguments from the list of children. May this function should return a false value if the object to remove is not found in the list.

template<unsigned int VDimension = 3>
virtual bool itk::SpatialObject< VDimension >::RequestedRegionIsOutsideOfTheBufferedRegion ( ) [virtual]

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 >::SetAffineGeometryFrame ( AffineGeometryFrameType _arg) [virtual]

Set/Get the AffineGeometryFrame

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

Set/Get the depth at which the bounding box is computed

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

Set/Get the name of the children to consider when computing the bounding box

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 (ValueAt()) 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 (ValueAt()) of the object. Default is 0.0

template<unsigned int VDimension = 3>
virtual void itk::SpatialObject< VDimension >::SetDimension ( unsigned int  _arg) [protected, virtual]
template<unsigned int VDimension = 3>
virtual void itk::SpatialObject< VDimension >::SetId ( int  _arg) [virtual]

Compute an offset from the beginning of the buffer for a pixel at the specified index.

template<unsigned int VDimension = 3>
bool itk::SpatialObject< VDimension >::SetInternalInverseTransformToWorldToIndexTransform ( ) const [protected]

This convenience method take the IndexToWorldTransform, and if it can compute its inverse, then stores the result in the InternalInverse member variable, that can be later accessed with the method GetInternalInverseTransform(). This method is not exposed to users, it is only intended to be called internally by derived classes.

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 >::SetNodeToParentNodeTransform ( TransformType transform)

These function are just calling the node container transforms

template<unsigned int VDimension = 3>
void itk::SpatialObject< VDimension >::SetObjectToParentTransform ( 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 ( TransformType transform)

This defines the transformation from the global coordinate frame. By setting this transform, the local transform is computed

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

Set the pointer to the parent object in the tree hierarchy used for the spatial object patter.

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 ( PropertyType property)

Set the property applied to the object.

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>
virtual void itk::SpatialObject< VDimension >::SetRequestedRegion ( const DataObject data) [virtual]

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>
virtual void itk::SpatialObject< VDimension >::SetRequestedRegionToLargestPossibleRegion ( ) [virtual]

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>
void itk::SpatialObject< VDimension >::SetSpacing ( const double  spacing[itkGetStaticConstMacro(ObjectDimension)]) [inline]

Theses functions are just calling the AffineGeometryFrame functions Set the spacing of the spatial object.

Definition at line 393 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
virtual void itk::SpatialObject< VDimension >::SetTreeNode ( TreeNodeType _arg) [virtual]

Set the tree container

template<unsigned int VDimension = 3>
virtual void itk::SpatialObject< VDimension >::SetTypeName ( std::string  _arg) [protected, virtual]
template<unsigned int VDimension = 3>
virtual void itk::SpatialObject< VDimension >::Update ( void  ) [virtual]

Specify that the object has been updated

Reimplemented from itk::DataObject.

template<unsigned int VDimension = 3>
virtual void itk::SpatialObject< VDimension >::UpdateOutputInformation ( ) [virtual]

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 >::ValueAt ( const PointType point,
double &  value,
unsigned int  depth = 0,
char *  name = NULL 
) const [virtual]

Returns the value at a point

template<unsigned int VDimension = 3>
virtual bool itk::SpatialObject< VDimension >::VerifyRequestedRegion ( ) [virtual]

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>
AffineGeometryFramePointer itk::SpatialObject< VDimension >::m_AffineGeometryFrame [private]

Pointer to the AffineGeometryFrame

Definition at line 601 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
unsigned int itk::SpatialObject< VDimension >::m_BoundingBoxChildrenDepth [private]

Definition at line 590 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
std::string itk::SpatialObject< VDimension >::m_BoundingBoxChildrenName [private]

Definition at line 589 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
BoundingBoxPointer itk::SpatialObject< VDimension >::m_Bounds [private]

Definition at line 571 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
unsigned long itk::SpatialObject< VDimension >::m_BoundsMTime [mutable, private]

Definition at line 572 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
RegionType itk::SpatialObject< VDimension >::m_BufferedRegion [private]
template<unsigned int VDimension = 3>
double itk::SpatialObject< VDimension >::m_DefaultInsideValue [private]

Default inside value for the ValueAt()

Definition at line 612 of file itkSpatialObject.h.

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

Default outside value for the ValueAt()

Definition at line 615 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
unsigned int itk::SpatialObject< VDimension >::m_Dimension [private]

Definition at line 581 of file itkSpatialObject.h.

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

Object Identification Number

Definition at line 594 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
TransformPointer itk::SpatialObject< VDimension >::m_IndexToWorldTransform [private]

Definition at line 576 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
ChildrenListType itk::SpatialObject< VDimension >::m_InternalChildrenList [private]

We keep an internal list of smart pointers to the immediate children This avoid the deletion of a child

Definition at line 605 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
TransformPointer itk::SpatialObject< VDimension >::m_InternalInverseTransform [private]

We create an inverse transform pointer since it take time to create it each time to get the inverse transform in the IsInside() method

Definition at line 609 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
RegionType itk::SpatialObject< VDimension >::m_LargestPossibleRegion [private]
template<unsigned int VDimension = 3>
TransformPointer itk::SpatialObject< VDimension >::m_ObjectToParentTransform [private]

Definition at line 574 of file itkSpatialObject.h.

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

Definition at line 575 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
OffsetValueType itk::SpatialObject< VDimension >::m_OffsetTable[3+1] [private]
template<unsigned int VDimension = 3>
int itk::SpatialObject< VDimension >::m_ParentId [private]

Definition at line 595 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
PropertyPointer itk::SpatialObject< VDimension >::m_Property [private]
template<unsigned int VDimension = 3>
RegionType itk::SpatialObject< VDimension >::m_RequestedRegion [private]
template<unsigned int VDimension = 3>
TreeNodeType::Pointer itk::SpatialObject< VDimension >::m_TreeNode [private]

Pointer to the tree container

Definition at line 598 of file itkSpatialObject.h.

template<unsigned int VDimension = 3>
std::string itk::SpatialObject< VDimension >::m_TypeName [private]
template<unsigned int VDimension = 3>
const unsigned int itk::SpatialObject< VDimension >::MaximumDepth = 9999999 [static]
template<unsigned int VDimension = 3>
const unsigned int itk::SpatialObject< VDimension >::ObjectDimension = VDimension [static]

Dimension of the object. This constant is used by functions that are templated over SpatialObject type when they need compile time access to the dimension of the object.

Definition at line 131 of file itkSpatialObject.h.


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