<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><meta name="robots" content="noindex"> <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>ITK: itkSpatialObject.h Source File</title> <link href="DoxygenStyle.css" rel="stylesheet" type="text/css"> </head><body bgcolor="#ffffff"> <!-- Section customized for INSIGHT : Tue Jul 17 01:02:45 2001 --> <center> <a href="index.html" class="qindex">Main Page</a> <a href="modules.html" class="qindex">Groups</a> <a href="namespaces.html" class="qindex">Namespace List</a> <a href="hierarchy.html" class="qindex">Class Hierarchy</a> <a href="classes.html" class="qindex">Alphabetical List</a> <a href="annotated.html" class="qindex">Compound List</a> <a href="files.html" class="qindex">File List</a> <a href="namespacemembers.html" class="qindex">Namespace Members</a> <a href="functions.html" class="qindex">Compound Members</a> <a href="globals.html" class="qindex">File Members</a> <a href="pages.html" class="qindex">Concepts</a></center> <!-- Generated by Doxygen 1.5.9 --> <div class="navpath"><a class="el" href="dir_02e23d841c198393a6e961e9a0678fff.html">Code</a> » <a class="el" href="dir_084028962346eb941dab2e2ab3977cb8.html">SpatialObject</a> </div> <div class="contents"> <h1>itkSpatialObject.h</h1><a href="itkSpatialObject_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*=========================================================================</span> <a name="l00002"></a>00002 <span class="comment"></span> <a name="l00003"></a>00003 <span class="comment"> Program: Insight Segmentation & Registration Toolkit</span> <a name="l00004"></a>00004 <span class="comment"> Module: $RCSfile: itkSpatialObject.h,v $</span> <a name="l00005"></a>00005 <span class="comment"> Language: C++</span> <a name="l00006"></a>00006 <span class="comment"> Date: $Date: 2009-01-28 20:10:27 $</span> <a name="l00007"></a>00007 <span class="comment"> Version: $Revision: 1.67 $</span> <a name="l00008"></a>00008 <span class="comment"></span> <a name="l00009"></a>00009 <span class="comment"> Copyright (c) Insight Software Consortium. All rights reserved.</span> <a name="l00010"></a>00010 <span class="comment"> See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.</span> <a name="l00011"></a>00011 <span class="comment"></span> <a name="l00012"></a>00012 <span class="comment"> This software is distributed WITHOUT ANY WARRANTY; without even </span> <a name="l00013"></a>00013 <span class="comment"> the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR </span> <a name="l00014"></a>00014 <span class="comment"> PURPOSE. See the above copyright notices for more information.</span> <a name="l00015"></a>00015 <span class="comment"></span> <a name="l00016"></a>00016 <span class="comment">=========================================================================*/</span> <a name="l00017"></a>00017 <a name="l00018"></a>00018 <span class="preprocessor">#ifndef __itkSpatialObject_h </span> <a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">#define __itkSpatialObject_h </span> <a name="l00020"></a>00020 <span class="preprocessor"></span> <a name="l00021"></a>00021 <span class="comment">// Disable warning for long symbol names in this file only</span> <a name="l00022"></a>00022 <span class="preprocessor">#ifdef _MSC_VER</span> <a name="l00023"></a>00023 <span class="preprocessor"></span><span class="preprocessor">#pragma warning ( disable : 4786 )</span> <a name="l00024"></a>00024 <span class="preprocessor"></span><span class="preprocessor">#endif</span> <a name="l00025"></a>00025 <span class="preprocessor"></span> <a name="l00026"></a>00026 <span class="preprocessor">#include "<a class="code" href="itkAffineGeometryFrame_8h.html">itkAffineGeometryFrame.h</a>"</span> <a name="l00027"></a>00027 <span class="preprocessor">#include "<a class="code" href="itkDataObject_8h.html">itkDataObject.h</a>"</span> <a name="l00028"></a>00028 <span class="preprocessor">#include "<a class="code" href="itkBoundingBox_8h.html">itkBoundingBox.h</a>"</span> <a name="l00029"></a>00029 <span class="preprocessor">#include "<a class="code" href="itkPoint_8h.html">itkPoint.h</a>"</span> <a name="l00030"></a>00030 <span class="preprocessor">#include "<a class="code" href="itkScalableAffineTransform_8h.html">itkScalableAffineTransform.h</a>"</span> <a name="l00031"></a>00031 <span class="preprocessor">#include "<a class="code" href="itkSmartPointer_8h.html">itkSmartPointer.h</a>"</span> <a name="l00032"></a>00032 <span class="preprocessor">#include "<a class="code" href="itkVector_8h.html">itkVector.h</a>"</span> <a name="l00033"></a>00033 <span class="preprocessor">#include "<a class="code" href="itkCovariantVector_8h.html">itkCovariantVector.h</a>"</span> <a name="l00034"></a>00034 <span class="preprocessor">#include "<a class="code" href="itkExceptionObject_8h.html">itkExceptionObject.h</a>"</span> <a name="l00035"></a>00035 <span class="preprocessor">#include <list></span> <a name="l00036"></a>00036 <span class="preprocessor">#include "<a class="code" href="itkSpatialObjectProperty_8h.html">itkSpatialObjectProperty.h</a>"</span> <a name="l00037"></a>00037 <span class="preprocessor">#include "<a class="code" href="itkProcessObject_8h.html">itkProcessObject.h</a>"</span> <a name="l00038"></a>00038 <span class="preprocessor">#include "<a class="code" href="itkIndex_8h.html">itkIndex.h</a>"</span> <a name="l00039"></a>00039 <span class="preprocessor">#include "<a class="code" href="itkSize_8h.html">itkSize.h</a>"</span> <a name="l00040"></a>00040 <span class="preprocessor">#include "<a class="code" href="itkImageRegion_8h.html">itkImageRegion.h</a>"</span> <a name="l00041"></a>00041 <span class="preprocessor">#include "<a class="code" href="itkObjectFactory_8h.html">itkObjectFactory.h</a>"</span> <a name="l00042"></a>00042 <span class="preprocessor">#include "<a class="code" href="itkSpatialObjectTreeNode_8h.html">itkSpatialObjectTreeNode.h</a>"</span> <a name="l00043"></a>00043 <a name="l00044"></a>00044 <span class="keyword">namespace </span>itk <a name="l00045"></a>00045 { <a name="l00046"></a>00046 <a name="l00066"></a>00066 <span class="keyword">template</span> <<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> TDimension> <span class="keyword">class </span>SpatialObjectTreeNode; <a name="l00067"></a>00067 <a name="l00068"></a>00068 <a name="l00069"></a>00069 <span class="keyword">template</span>< <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> TDimension = 3> <a name="l00070"></a><a class="code" href="classitk_1_1SpatialObject.html">00070</a> <span class="keyword">class </span><a class="code" href="classitk_1_1SpatialObject.html" title="Implementation of the composite pattern.">SpatialObject</a> <a name="l00071"></a>00071 :<span class="keyword">public</span> <a class="code" href="classitk_1_1DataObject.html" title="Base class for all data objects in ITK.">DataObject</a> <a name="l00072"></a>00072 { <a name="l00073"></a>00073 <a name="l00074"></a>00074 <span class="keyword">public</span>: <a name="l00075"></a>00075 <a name="l00076"></a><a class="code" href="classitk_1_1SpatialObject.html#edadd6188084ac6607a495d661067481">00076</a> <span class="keyword">typedef</span> <span class="keywordtype">double</span> <a class="code" href="classitk_1_1SpatialObject.html#edadd6188084ac6607a495d661067481">ScalarType</a>; <a name="l00077"></a>00077 <a name="l00078"></a>00078 <a class="code" href="classitk_1_1SpatialObject.html#15fac63b4ba075fba253c5b0d80f960b">itkStaticConstMacro</a>(MaximumDepth, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>, 9999999); <a name="l00079"></a>00079 <a name="l00082"></a><a class="code" href="classitk_1_1SpatialObject.html#ee9fcf653232448030cc7c725473533a">00082</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classitk_1_1SpatialObject.html#ee9fcf653232448030cc7c725473533a">GetMaximumDepth</a>() { <span class="keywordflow">return</span> MaximumDepth; } <a name="l00083"></a>00083 <a name="l00084"></a><a class="code" href="classitk_1_1SpatialObject.html#93235a1c4c6894ef587ebb741b641635">00084</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1SpatialObject.html" title="Implementation of the composite pattern.">SpatialObject<TDimension></a> <a class="code" href="classitk_1_1DataObject.html" title="Base class for all data objects in ITK.">Self</a>; <a name="l00085"></a><a class="code" href="classitk_1_1SpatialObject.html#a9997e8605ee3e2279cb1f43f0d140d2">00085</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1DataObject.html" title="Base class for all data objects in ITK.">DataObject</a> <a class="code" href="classitk_1_1Object.html" title="Base class for most itk classes.">Superclass</a>; <a name="l00086"></a>00086 <a name="l00087"></a><a class="code" href="classitk_1_1SpatialObject.html#6ff4c3049c79428551cade57cf3fbd37">00087</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1SmartPointer.html">SmartPointer< Self ></a> <a class="code" href="classitk_1_1SmartPointer.html">Pointer</a>; <a name="l00088"></a><a class="code" href="classitk_1_1SpatialObject.html#84be3f1298138eae451435b5e60442d5">00088</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1SmartPointer.html">SmartPointer< const Self ></a> <a class="code" href="classitk_1_1SmartPointer.html">ConstPointer</a>; <a name="l00089"></a>00089 <a name="l00090"></a><a class="code" href="classitk_1_1SpatialObject.html#33a1252cf4ad445a43058a7828f33e2c">00090</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1Point.html" title="A templated class holding a geometric point in n-Dimensional space.">Point < ScalarType, TDimension ></a> <a class="code" href="classitk_1_1Point.html" title="A templated class holding a geometric point in n-Dimensional space.">PointType</a>; <a name="l00091"></a>00091 <span class="comment">// Spatial Function Iterator needs the following typedef </span> <a name="l00092"></a><a class="code" href="classitk_1_1SpatialObject.html#439d260409f3f6d4f7ed2ecff0963c9f">00092</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1Point.html" title="A templated class holding a geometric point in n-Dimensional space.">Point < ScalarType, TDimension ></a> <a class="code" href="classitk_1_1Point.html" title="A templated class holding a geometric point in n-Dimensional space.">InputType</a>; <a name="l00093"></a><a class="code" href="classitk_1_1SpatialObject.html#fe571f367c1be77497bb22a3178f31d9">00093</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1Point.html" title="A templated class holding a geometric point in n-Dimensional space.">PointType</a> * <a class="code" href="classitk_1_1Point.html" title="A templated class holding a geometric point in n-Dimensional space.">PointPointer</a>; <a name="l00094"></a>00094 <a name="l00095"></a><a class="code" href="classitk_1_1SpatialObject.html#ad79aafed84382c08a7dd3fb151ae429">00095</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1Vector.html" title="A templated class holding a n-Dimensional vector.">Vector< ScalarType, TDimension ></a> <a class="code" href="classitk_1_1Vector.html" title="A templated class holding a n-Dimensional vector.">VectorType</a>; <a name="l00096"></a><a class="code" href="classitk_1_1SpatialObject.html#8879dc27cef28c5329bbc156c05e11d9">00096</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1CovariantVector.html" title="A templated class holding a n-Dimensional covariant vector.">CovariantVector<ScalarType, TDimension ></a> <a class="code" href="classitk_1_1CovariantVector.html" title="A templated class holding a n-Dimensional covariant vector.">CovariantVectorType</a>; <a name="l00097"></a><a class="code" href="classitk_1_1SpatialObject.html#37fd78da86c0e2d38a6a7881c38a5d1c">00097</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1Vector.html" title="A templated class holding a n-Dimensional vector.">VectorType</a> * <a class="code" href="classitk_1_1Vector.html" title="A templated class holding a n-Dimensional vector.">VectorPointer</a>; <a name="l00098"></a>00098 <a name="l00099"></a><a class="code" href="classitk_1_1SpatialObject.html#525c4a1da2c93fd0be664f5e0c79e62e">00099</a> <span class="keyword">typedef</span> <span class="keywordtype">double</span> * <a class="code" href="classitk_1_1SpatialObject.html#525c4a1da2c93fd0be664f5e0c79e62e">SpacingType</a>; <a name="l00100"></a>00100 <a name="l00101"></a><a class="code" href="classitk_1_1SpatialObject.html#0fc57dd299a87d26c5473cfaad394b8a">00101</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1CovariantVector.html" title="A templated class holding a n-Dimensional covariant vector.">CovariantVector< double, TDimension ></a> <a class="code" href="classitk_1_1CovariantVector.html" title="A templated class holding a n-Dimensional covariant vector.">OutputVectorType</a>; <a name="l00102"></a><a class="code" href="classitk_1_1SpatialObject.html#0d5118001e71c08d276bb0475cf623fb">00102</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1CovariantVector.html" title="A templated class holding a n-Dimensional covariant vector.">OutputVectorType</a> * <a class="code" href="classitk_1_1CovariantVector.html" title="A templated class holding a n-Dimensional covariant vector.">OutputVectorPointer</a>; <a name="l00103"></a>00103 <a name="l00104"></a><a class="code" href="classitk_1_1SpatialObject.html#06c5467ac6cc0b4a25c27f2ee06421fb">00104</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1ScalableAffineTransform.html" title="Affine transformation with a specified center of rotation.">ScalableAffineTransform< double, TDimension ></a> <a class="code" href="classitk_1_1ScalableAffineTransform.html" title="Affine transformation with a specified center of rotation.">TransformType</a>; <a name="l00105"></a><a class="code" href="classitk_1_1SpatialObject.html#e8883207fbf12a8d3fcd240a58eaa8fd">00105</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classitk_1_1SmartPointer.html">TransformType::Pointer</a> <a class="code" href="classitk_1_1SmartPointer.html">TransformPointer</a>; <a name="l00106"></a><a class="code" href="classitk_1_1SpatialObject.html#c8ac6a227961ee5f05f586671b759dc5">00106</a> <span class="keyword">typedef</span> <span class="keyword">const</span> <a class="code" href="classitk_1_1ScalableAffineTransform.html" title="Affine transformation with a specified center of rotation.">TransformType</a>* <a class="code" href="classitk_1_1ScalableAffineTransform.html" title="Affine transformation with a specified center of rotation.">TransformConstPointer</a>; <a name="l00107"></a>00107 <a name="l00108"></a><a class="code" href="classitk_1_1SpatialObject.html#bcb0e84c7afd865ad8293598c383448f">00108</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1VectorContainer.html">VectorContainer< unsigned long int, PointType ></a> <a class="code" href="classitk_1_1VectorContainer.html">VectorContainerType</a>; <a name="l00109"></a>00109 <a name="l00110"></a>00110 <span class="keyword">typedef</span> <a class="code" href="classitk_1_1BoundingBox.html" title="Represent and compute information about bounding boxes.">BoundingBox</a>< <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> int, TDimension, <a class="code" href="classitk_1_1SpatialObject.html#edadd6188084ac6607a495d661067481">ScalarType</a>, <a name="l00111"></a><a class="code" href="classitk_1_1SpatialObject.html#39a8ba32fc52d6f796bc2d086a0e2fc6">00111</a> <a class="code" href="classitk_1_1VectorContainer.html">VectorContainerType</a> > <a class="code" href="classitk_1_1BoundingBox.html" title="Represent and compute information about bounding boxes.">BoundingBoxType</a>; <a name="l00112"></a><a class="code" href="classitk_1_1SpatialObject.html#bab37057248d014904df7802ca4b4548">00112</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classitk_1_1SmartPointer.html">BoundingBoxType::Pointer</a> <a class="code" href="classitk_1_1SmartPointer.html">BoundingBoxPointer</a>; <a name="l00113"></a>00113 <a name="l00114"></a><a class="code" href="classitk_1_1SpatialObject.html#6e8645ce5e2736ccf627958adeae19e9">00114</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1AffineGeometryFrame.html" title="Describes the geometry of a data object.">AffineGeometryFrame<double,TDimension></a> <a class="code" href="classitk_1_1AffineGeometryFrame.html" title="Describes the geometry of a data object.">AffineGeometryFrameType</a>; <a name="l00115"></a><a class="code" href="classitk_1_1SpatialObject.html#ad64a4257669e632b5e9cce109c138bb">00115</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classitk_1_1SmartPointer.html">AffineGeometryFrameType::Pointer</a> <a class="code" href="classitk_1_1SmartPointer.html">AffineGeometryFramePointer</a>; <a name="l00116"></a>00116 <a name="l00118"></a><a class="code" href="classitk_1_1SpatialObject.html#43b4fcbe45d576f68654bcc867b5758c">00118</a> <span class="keyword">typedef</span> std::list< Pointer > <a class="code" href="classitk_1_1SpatialObject.html#43b4fcbe45d576f68654bcc867b5758c">ChildrenListType</a>; <a name="l00119"></a><a class="code" href="classitk_1_1SpatialObject.html#20f7ff5d7c8040d88455b9653465473d">00119</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1SpatialObject.html#43b4fcbe45d576f68654bcc867b5758c">ChildrenListType</a>* <a class="code" href="classitk_1_1SpatialObject.html#20f7ff5d7c8040d88455b9653465473d">ChildrenListPointer</a>; <a name="l00120"></a>00120 <a name="l00121"></a>00121 <a name="l00123"></a><a class="code" href="classitk_1_1SpatialObject.html#38920e399c5e1c8d74180c27ac87fa24">00123</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1Index.html" title="Represent a n-dimensional index in a n-dimensional image.">Index<TDimension></a> <a class="code" href="classitk_1_1Index.html" title="Represent a n-dimensional index in a n-dimensional image.">IndexType</a>; <a name="l00124"></a><a class="code" href="classitk_1_1SpatialObject.html#d5ff14dbefab868de411c6ce61db5ddc">00124</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classitk_1_1Index.html#bcd2aba05e60b776c5e75f72ed86420b">IndexType::IndexValueType</a> <a class="code" href="classitk_1_1SpatialObject.html#d5ff14dbefab868de411c6ce61db5ddc">IndexValueType</a>; <a name="l00125"></a>00125 <a name="l00128"></a><a class="code" href="classitk_1_1SpatialObject.html#73ac7a6ec69f6f6cff90577bb38a70a8">00128</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1Offset.html" title="Represent the offset between two n-dimensional indexes in a n-dimensional image.">Offset<TDimension></a> <a class="code" href="classitk_1_1Offset.html" title="Represent the offset between two n-dimensional indexes in a n-dimensional image.">OffsetType</a>; <a name="l00129"></a><a class="code" href="classitk_1_1SpatialObject.html#355b6347f5577f84430fdd1810582ee6">00129</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classitk_1_1Offset.html#a813bb2136a4584d5f3758447c3571bd">OffsetType::OffsetValueType</a> <a class="code" href="classitk_1_1SpatialObject.html#355b6347f5577f84430fdd1810582ee6">OffsetValueType</a>; <a name="l00130"></a><a class="code" href="classitk_1_1SpatialObject.html#04af535a0d3b00ec8f33d16f8b6d79d5">00130</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1ImageRegion.html">ImageRegion<TDimension></a> <a class="code" href="classitk_1_1ImageRegion.html">RegionType</a>; <a name="l00131"></a><a class="code" href="classitk_1_1SpatialObject.html#748f0535b49afa088682549012064ef5">00131</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1Size.html" title="Represent the size (bounds) of a n-dimensional image.">Size<TDimension></a> <a class="code" href="classitk_1_1Size.html" title="Represent the size (bounds) of a n-dimensional image.">SizeType</a>; <a name="l00132"></a><a class="code" href="classitk_1_1SpatialObject.html#55704b8ad3fc672295bf37c73672c75b">00132</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1SpatialObjectProperty.html">SpatialObjectProperty< float ></a> <a class="code" href="classitk_1_1SpatialObjectProperty.html">PropertyType</a>; <a name="l00133"></a><a class="code" href="classitk_1_1SpatialObject.html#95a183995d1c7119bcf410cd58834cab">00133</a> <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="code" href="classitk_1_1SmartPointer.html">PropertyType::Pointer</a> <a class="code" href="classitk_1_1SmartPointer.html">PropertyPointer</a>; <a name="l00134"></a>00134 <a name="l00135"></a><a class="code" href="classitk_1_1SpatialObject.html#60208658bdcfd3c4bea214d5046e9a83">00135</a> <span class="keyword">typedef</span> <a class="code" href="classitk_1_1SpatialObjectTreeNode.html" title="TODO.">SpatialObjectTreeNode<TDimension></a> <a class="code" href="classitk_1_1SpatialObjectTreeNode.html" title="TODO.">TreeNodeType</a>; <a name="l00136"></a>00136 <a name="l00139"></a>00139 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classitk_1_1SpatialObject.html#34d42908116dd985e9ee5dece94af87c">HasParent</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span>; <a name="l00140"></a>00140 <a name="l00142"></a><a class="code" href="classitk_1_1SpatialObject.html#64ab9c972cfe2fe1f1e250f9f738a78b">00142</a> <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classitk_1_1SpatialObject.html#64ab9c972cfe2fe1f1e250f9f738a78b">GetTypeName</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_TypeName.c_str();} <a name="l00143"></a>00143 <a name="l00147"></a>00147 <a class="code" href="classitk_1_1SpatialObject.html#15fac63b4ba075fba253c5b0d80f960b">itkStaticConstMacro</a>(ObjectDimension, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>, TDimension); <a name="l00148"></a>00148 <a name="l00150"></a><a class="code" href="classitk_1_1SpatialObject.html#0f9dff29bb8e7cf9d3f47ed46a336ed7">00150</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classitk_1_1SpatialObject.html#0f9dff29bb8e7cf9d3f47ed46a336ed7">GetObjectDimension</a>(<span class="keywordtype">void</span>)<span class="keyword"> const </span>{<span class="keywordflow">return</span> TDimension;} <a name="l00151"></a>00151 <a name="l00153"></a>00153 <a class="code" href="itkMacro_8h.html#0fdc15685afa271857c57e7cd482f30c">itkNewMacro</a>( <a class="code" href="classitk_1_1SpatialObject.html#93235a1c4c6894ef587ebb741b641635">Self</a> ); <a name="l00154"></a>00154 <a name="l00156"></a>00156 <a class="code" href="itkMacro_8h.html#574c1f86661d409dd32c742307a0e96a">itkTypeMacro</a>( <a class="code" href="classitk_1_1SpatialObject.html" title="Implementation of the composite pattern.">SpatialObject</a>, <a class="code" href="classitk_1_1DataObject.html" title="Base class for all data objects in ITK.">DataObject</a> ); <a name="l00157"></a>00157 <a name="l00159"></a>00159 <a class="code" href="itkMacro_8h.html#d11f8adb47609be2b4b58948904f8a7c">itkGetConstObjectMacro</a>(<a class="code" href="classitk_1_1AffineGeometryFrame.html" title="Describes the geometry of a data object.">AffineGeometryFrame</a>,<a class="code" href="classitk_1_1SpatialObject.html#6e8645ce5e2736ccf627958adeae19e9">AffineGeometryFrameType</a>); <a name="l00160"></a>00160 <a class="code" href="itkMacro_8h.html#b950b763422e5059348e6178e2a5f425">itkSetObjectMacro</a>(<a class="code" href="classitk_1_1AffineGeometryFrame.html" title="Describes the geometry of a data object.">AffineGeometryFrame</a>,<a class="code" href="classitk_1_1SpatialObject.html#6e8645ce5e2736ccf627958adeae19e9">AffineGeometryFrameType</a>); <a name="l00162"></a>00162 <a name="l00165"></a>00165 <span class="keywordtype">void</span> <a class="code" href="classitk_1_1SpatialObject.html#5b2876c34dc8f2503a050543dc215888">SetObjectToWorldTransform</a>( <a class="code" href="classitk_1_1SpatialObject.html#06c5467ac6cc0b4a25c27f2ee06421fb">TransformType</a> * transform ); <a name="l00166"></a>00166 <a class="code" href="itkMacro_8h.html#f6bef9ee7e4c077b96a08848ed4e7660">itkGetObjectMacro</a>(ObjectToWorldTransform,<a class="code" href="classitk_1_1SpatialObject.html#06c5467ac6cc0b4a25c27f2ee06421fb">TransformType</a>); <a name="l00167"></a>00167 <a class="code" href="itkMacro_8h.html#d11f8adb47609be2b4b58948904f8a7c">itkGetConstObjectMacro</a>(ObjectToWorldTransform,<a class="code" href="classitk_1_1SpatialObject.html#06c5467ac6cc0b4a25c27f2ee06421fb">TransformType</a>); <a name="l00168"></a>00168 <a class="code" href="itkMacro_8h.html#f6bef9ee7e4c077b96a08848ed4e7660">itkGetObjectMacro</a>(IndexToWorldTransform,<a class="code" href="classitk_1_1SpatialObject.html#06c5467ac6cc0b4a25c27f2ee06421fb">TransformType</a>); <a name="l00169"></a>00169 <a class="code" href="itkMacro_8h.html#d11f8adb47609be2b4b58948904f8a7c">itkGetConstObjectMacro</a>(IndexToWorldTransform,<a class="code" href="classitk_1_1SpatialObject.html#06c5467ac6cc0b4a25c27f2ee06421fb">TransformType</a>); <a name="l00171"></a>00171 <a name="l00175"></a>00175 <span class="keywordtype">void</span> <a class="code" href="classitk_1_1SpatialObject.html#5dfa338f84bccc3d6dc71d6e52fce770">ComputeObjectToWorldTransform</a>(<span class="keywordtype">void</span>); <a name="l00176"></a>00176 <a name="l00178"></a>00178 <span class="keywordtype">void</span> <a class="code" href="classitk_1_1SpatialObject.html#c8d4870030b783ae559a45f1e52ab1d3">ComputeObjectToParentTransform</a>(<span class="keywordtype">void</span>); <a name="l00179"></a>00179 <a name="l00181"></a>00181 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="classitk_1_1SpatialObject.html#a95dacc94fc3070d96f99ba48452461c">GetTransformMTime</a>( <span class="keywordtype">void</span> ); <a name="l00182"></a>00182 <a name="l00184"></a>00184 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="classitk_1_1SpatialObject.html#c6f490da31a58894cc753b2123b7ab16">GetWorldTransformMTime</a>( <span class="keywordtype">void</span> ); <a name="l00185"></a>00185 <a name="l00187"></a>00187 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classitk_1_1SpatialObject.html#1919ba6a4613bba1c9dfddcc536019f5">ValueAt</a>( <span class="keyword">const</span> <a class="code" href="classitk_1_1SpatialObject.html#33a1252cf4ad445a43058a7828f33e2c">PointType</a> & point, <span class="keywordtype">double</span> & value, <a name="l00188"></a>00188 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> depth=0, <a name="l00189"></a>00189 <span class="keywordtype">char</span> * name = <a class="code" href="itkVoronoiDiagram2D_8h.html#070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>) <span class="keyword">const</span>; <a name="l00190"></a>00190 <a name="l00197"></a>00197 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classitk_1_1SpatialObject.html#7e2e280dc918b734bf97b8a557406baa">IsEvaluableAt</a>( <span class="keyword">const</span> <a class="code" href="classitk_1_1SpatialObject.html#33a1252cf4ad445a43058a7828f33e2c">PointType</a> & point, <a name="l00198"></a>00198 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> depth=0, <a name="l00199"></a>00199 <span class="keywordtype">char</span> * name = <a class="code" href="itkVoronoiDiagram2D_8h.html#070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>) <span class="keyword">const</span>; <a name="l00200"></a>00200 <a name="l00202"></a>00202 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classitk_1_1SpatialObject.html#df0d216f7f9751b774f545255a5fb389">IsInside</a>( <span class="keyword">const</span> <a class="code" href="classitk_1_1SpatialObject.html#33a1252cf4ad445a43058a7828f33e2c">PointType</a> & point, <a name="l00203"></a>00203 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> depth=0, <a name="l00204"></a>00204 <span class="keywordtype">char</span> * name = <a class="code" href="itkVoronoiDiagram2D_8h.html#070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>) <span class="keyword">const</span>; <a name="l00205"></a>00205 <a name="l00210"></a><a class="code" href="classitk_1_1SpatialObject.html#cfcda74839b0956fea7cfc6218e30213">00210</a> <span class="keywordtype">bool</span> <a class="code" href="classitk_1_1SpatialObject.html#cfcda74839b0956fea7cfc6218e30213">Evaluate</a>( <span class="keyword">const</span> <a class="code" href="classitk_1_1Point.html" title="A templated class holding a geometric point in n-Dimensional space.">PointType</a> & point )<span class="keyword"> const</span> <a name="l00211"></a>00211 <span class="keyword"> </span>{ <a name="l00212"></a>00212 <span class="keywordflow">return</span> this-><a class="code" href="classitk_1_1SpatialObject.html#df0d216f7f9751b774f545255a5fb389">IsInside</a>( point ); <a name="l00213"></a>00213 }; <a name="l00215"></a>00215 <a name="l00217"></a>00217 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1SpatialObject.html#8fe9b4120825ba6b1c2fddcabcfbc373">DerivativeAt</a>( <span class="keyword">const</span> <a class="code" href="classitk_1_1SpatialObject.html#33a1252cf4ad445a43058a7828f33e2c">PointType</a> & point, <a name="l00218"></a>00218 <span class="keywordtype">short</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> order, <a name="l00219"></a>00219 <a class="code" href="classitk_1_1SpatialObject.html#0fc57dd299a87d26c5473cfaad394b8a">OutputVectorType</a> & value, <a name="l00220"></a>00220 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> depth=0, <a name="l00221"></a>00221 <span class="keywordtype">char</span> * name = <a class="code" href="itkVoronoiDiagram2D_8h.html#070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>); <a name="l00222"></a>00222 <a name="l00223"></a>00223 <a name="l00226"></a>00226 <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="classitk_1_1SpatialObject.html#30e33a9f2b83e6f47a9b2db63b538198">GetMTime</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span>; <a name="l00227"></a>00227 <a name="l00230"></a><a class="code" href="classitk_1_1SpatialObject.html#09f95fd49bc83a827e1379b18b11f006">00230</a> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <a class="code" href="classitk_1_1SpatialObject.html#09f95fd49bc83a827e1379b18b11f006">GetObjectMTime</a>( <span class="keywordtype">void</span> )<span class="keyword"> const</span> <a name="l00231"></a>00231 <span class="keyword"> </span>{ <a name="l00232"></a>00232 <span class="keywordflow">return</span> <a class="code" href="classitk_1_1Object.html#cab7d8d23240dacdbee33e5d1230a23e">Superclass::GetMTime</a>(); <a name="l00233"></a>00233 } <a name="l00234"></a>00234 <a name="l00241"></a>00241 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1SpatialObject.html#f3f4625d1f1b05f4e7bfc01587ad0e6a">SetLargestPossibleRegion</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1SpatialObject.html#04af535a0d3b00ec8f33d16f8b6d79d5">RegionType</a> &region); <a name="l00242"></a>00242 <a name="l00249"></a><a class="code" href="classitk_1_1SpatialObject.html#459ce3354eb9915515d1d4709b7dc4fe">00249</a> <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classitk_1_1ImageRegion.html">RegionType</a>& <a class="code" href="classitk_1_1SpatialObject.html#459ce3354eb9915515d1d4709b7dc4fe">GetLargestPossibleRegion</a>()<span class="keyword"> const</span> <a name="l00250"></a>00250 <span class="keyword"> </span>{ <span class="keywordflow">return</span> m_LargestPossibleRegion;}; <a name="l00251"></a>00251 <a name="l00255"></a>00255 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1SpatialObject.html#71d744e5289c3ce6a445fca634a1e8d2">SetBufferedRegion</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1SpatialObject.html#04af535a0d3b00ec8f33d16f8b6d79d5">RegionType</a> &region); <a name="l00256"></a>00256 <a name="l00260"></a><a class="code" href="classitk_1_1SpatialObject.html#984e2e89e8a1c54d2c54e19424ba42ea">00260</a> <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classitk_1_1ImageRegion.html">RegionType</a>& <a class="code" href="classitk_1_1SpatialObject.html#984e2e89e8a1c54d2c54e19424ba42ea">GetBufferedRegion</a>()<span class="keyword"> const</span> <a name="l00261"></a>00261 <span class="keyword"> </span>{ <span class="keywordflow">return</span> m_BufferedRegion;}; <a name="l00262"></a>00262 <a name="l00267"></a>00267 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1SpatialObject.html#a6952190ec9d1d8c622b5b5d0dbf7564">SetRequestedRegion</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1SpatialObject.html#04af535a0d3b00ec8f33d16f8b6d79d5">RegionType</a> &region); <a name="l00268"></a>00268 <a name="l00273"></a>00273 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1SpatialObject.html#a6952190ec9d1d8c622b5b5d0dbf7564">SetRequestedRegion</a>(<a class="code" href="classitk_1_1DataObject.html" title="Base class for all data objects in ITK.">DataObject</a> *data); <a name="l00274"></a>00274 <a name="l00279"></a><a class="code" href="classitk_1_1SpatialObject.html#eed76d4fb753e1c213e4980c16d00604">00279</a> <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classitk_1_1ImageRegion.html">RegionType</a>& <a class="code" href="classitk_1_1SpatialObject.html#eed76d4fb753e1c213e4980c16d00604">GetRequestedRegion</a>()<span class="keyword"> const</span> <a name="l00280"></a>00280 <span class="keyword"> </span>{ <span class="keywordflow">return</span> m_RequestedRegion;}; <a name="l00281"></a>00281 <a name="l00291"></a><a class="code" href="classitk_1_1SpatialObject.html#3519245018a14efb33bc1e2332557f35">00291</a> <span class="keyword">const</span> <a class="code" href="classitk_1_1SpatialObject.html#355b6347f5577f84430fdd1810582ee6">OffsetValueType</a> *<a class="code" href="classitk_1_1SpatialObject.html#3519245018a14efb33bc1e2332557f35">GetOffsetTable</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_OffsetTable; }; <a name="l00293"></a>00293 <a name="l00296"></a><a class="code" href="classitk_1_1SpatialObject.html#23b232d56743ba804f0f77a9c2844e00">00296</a> <a class="code" href="classitk_1_1SpatialObject.html#355b6347f5577f84430fdd1810582ee6">OffsetValueType</a> <a class="code" href="classitk_1_1SpatialObject.html#23b232d56743ba804f0f77a9c2844e00">ComputeOffset</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1Index.html" title="Represent a n-dimensional index in a n-dimensional image.">IndexType</a> &ind)<span class="keyword"> const</span> <a name="l00297"></a>00297 <span class="keyword"> </span>{ <a name="l00298"></a>00298 <span class="comment">// need to add bounds checking for the region/buffer?</span> <a name="l00299"></a>00299 <a class="code" href="classitk_1_1SpatialObject.html#355b6347f5577f84430fdd1810582ee6">OffsetValueType</a> offset=0; <a name="l00300"></a>00300 <span class="keyword">const</span> <a class="code" href="classitk_1_1Index.html" title="Represent a n-dimensional index in a n-dimensional image.">IndexType</a> &bufferedRegionIndex = m_BufferedRegion.<a class="code" href="classitk_1_1ImageRegion.html#47e246964e5d88a51d956099c8fe1dc0">GetIndex</a>(); <a name="l00302"></a>00302 <a name="l00303"></a>00303 <span class="comment">// data is arranged as [][][][slice][row][col]</span> <a name="l00304"></a>00304 <span class="comment">// with Index[0] = col, Index[1] = row, Index[2] = slice</span> <a name="l00305"></a>00305 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=TDimension-1; i > 0; i--) <a name="l00306"></a>00306 { <a name="l00307"></a>00307 offset += (ind[i] - bufferedRegionIndex[i])*m_OffsetTable[i]; <a name="l00308"></a>00308 } <a name="l00309"></a>00309 offset += (ind[0] - bufferedRegionIndex[0]); <a name="l00310"></a>00310 <a name="l00311"></a>00311 <span class="keywordflow">return</span> offset; <a name="l00312"></a>00312 } <a name="l00313"></a>00313 <a name="l00316"></a><a class="code" href="classitk_1_1SpatialObject.html#e52a0f41676379937815ff3772f74e79">00316</a> <a class="code" href="classitk_1_1Index.html" title="Represent a n-dimensional index in a n-dimensional image.">IndexType</a> <a class="code" href="classitk_1_1SpatialObject.html#e52a0f41676379937815ff3772f74e79">ComputeIndex</a>(<a class="code" href="classitk_1_1SpatialObject.html#355b6347f5577f84430fdd1810582ee6">OffsetValueType</a> offset)<span class="keyword"> const</span> <a name="l00317"></a>00317 <span class="keyword"> </span>{ <a name="l00318"></a>00318 <a class="code" href="classitk_1_1Index.html" title="Represent a n-dimensional index in a n-dimensional image.">IndexType</a> index; <a name="l00319"></a>00319 <span class="keyword">const</span> <a class="code" href="classitk_1_1Index.html" title="Represent a n-dimensional index in a n-dimensional image.">IndexType</a> &bufferedRegionIndex = m_BufferedRegion.<a class="code" href="classitk_1_1ImageRegion.html#47e246964e5d88a51d956099c8fe1dc0">GetIndex</a>(); <a name="l00321"></a>00321 <a name="l00322"></a>00322 <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=TDimension-1; i > 0; i--) <a name="l00323"></a>00323 { <a name="l00324"></a>00324 index[i] = <span class="keyword">static_cast<</span><a class="code" href="classitk_1_1SpatialObject.html#d5ff14dbefab868de411c6ce61db5ddc">IndexValueType</a><span class="keyword">></span>(offset / m_OffsetTable[i]); <a name="l00325"></a>00325 offset -= (index[i] * m_OffsetTable[i]); <a name="l00326"></a>00326 index[i] += bufferedRegionIndex[i]; <a name="l00327"></a>00327 } <a name="l00328"></a>00328 index[0] = bufferedRegionIndex[0] + <span class="keyword">static_cast<</span><a class="code" href="classitk_1_1SpatialObject.html#d5ff14dbefab868de411c6ce61db5ddc">IndexValueType</a><span class="keyword">></span>(offset); <a name="l00329"></a>00329 <a name="l00330"></a>00330 <span class="keywordflow">return</span> index; <a name="l00331"></a>00331 } <a name="l00332"></a>00332 <a name="l00342"></a>00342 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1SpatialObject.html#fe362698002ff7d38fe00c523c8e5f56">CopyInformation</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1DataObject.html" title="Base class for all data objects in ITK.">DataObject</a> *data); <a name="l00343"></a>00343 <a name="l00351"></a>00351 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1SpatialObject.html#4763b39358d3133f763527f17e637410">UpdateOutputInformation</a>(); <a name="l00352"></a>00352 <a name="l00356"></a>00356 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1SpatialObject.html#994a40b3dba70890ad453dc8b7f29376">SetRequestedRegionToLargestPossibleRegion</a>(); <a name="l00357"></a>00357 <a name="l00367"></a>00367 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classitk_1_1SpatialObject.html#10c7e85f46f423f60b1b8b2dd13c05e2">RequestedRegionIsOutsideOfTheBufferedRegion</a>(); <a name="l00368"></a>00368 <a name="l00377"></a>00377 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classitk_1_1SpatialObject.html#3f30260a162837de2ce41c00355c82c8">VerifyRequestedRegion</a>(); <a name="l00378"></a>00378 <a name="l00379"></a>00379 <a name="l00381"></a>00381 <a class="code" href="classitk_1_1SpatialObject.html#55704b8ad3fc672295bf37c73672c75b">PropertyType</a> * <a class="code" href="classitk_1_1SpatialObject.html#02046784f7fcc642925dfcc2e46b0745">GetProperty</a>( <span class="keywordtype">void</span> ); <a name="l00382"></a><a class="code" href="classitk_1_1SpatialObject.html#eafae3b909b7ac756d4243f4faef100e">00382</a> <span class="keyword">const</span> <a class="code" href="classitk_1_1SpatialObjectProperty.html">PropertyType</a> * <a class="code" href="classitk_1_1SpatialObject.html#eafae3b909b7ac756d4243f4faef100e">GetProperty</a>( <span class="keywordtype">void</span> )<span class="keyword"> const </span>{<span class="keywordflow">return</span> m_Property;} <a name="l00384"></a>00384 <a name="l00386"></a>00386 <span class="keywordtype">void</span> <a class="code" href="classitk_1_1SpatialObject.html#2bff708a4be0cdf99fa6cd3d9f191425">SetProperty</a>( <a class="code" href="classitk_1_1SpatialObject.html#55704b8ad3fc672295bf37c73672c75b">PropertyType</a> * property ); <a name="l00387"></a>00387 <a name="l00389"></a>00389 <a class="code" href="itkMacro_8h.html#7d989c13a1a213168db99ae0f84185d4">itkGetConstReferenceMacro</a>(Id,<span class="keywordtype">int</span>); <a name="l00390"></a>00390 <a class="code" href="itkMacro_8h.html#7ebdd33cc5e7d74720ced9099c034faa">itkSetMacro</a>(Id,<span class="keywordtype">int</span>); <a name="l00392"></a>00392 <a name="l00394"></a>00394 <a class="code" href="itkMacro_8h.html#7ebdd33cc5e7d74720ced9099c034faa">itkSetMacro</a>(ParentId, <span class="keywordtype">int</span>); <a name="l00395"></a>00395 <a class="code" href="itkMacro_8h.html#7d989c13a1a213168db99ae0f84185d4">itkGetConstReferenceMacro</a>(ParentId, <span class="keywordtype">int</span>); <a name="l00397"></a>00397 <a name="l00399"></a>00399 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1SpatialObject.html#ce8ac8f81a490517bf2f2fff5add0d32">Update</a>(<span class="keywordtype">void</span>); <a name="l00400"></a>00400 <a name="l00402"></a>00402 <a class="code" href="itkMacro_8h.html#b950b763422e5059348e6178e2a5f425">itkSetObjectMacro</a>(<a class="code" href="classitk_1_1TreeNode.html" title="TreeNode class.">TreeNode</a>, <a class="code" href="classitk_1_1SpatialObject.html#60208658bdcfd3c4bea214d5046e9a83">TreeNodeType</a>) <a name="l00403"></a>00403 <a name="l00404"></a>00404 <a name="l00405"></a>00405 <a class="code" href="itkMacro_8h.html#f6bef9ee7e4c077b96a08848ed4e7660">itkGetObjectMacro</a>(<a class="code" href="classitk_1_1TreeNode.html" title="TreeNode class.">TreeNode</a>, <a class="code" href="classitk_1_1SpatialObject.html#60208658bdcfd3c4bea214d5046e9a83">TreeNodeType</a>); <a name="l00406"></a>00406 <a class="code" href="itkMacro_8h.html#d11f8adb47609be2b4b58948904f8a7c">itkGetConstObjectMacro</a>(TreeNode, TreeNodeType); <a name="l00408"></a>00408 <a name="l00412"></a><a class="code" href="classitk_1_1SpatialObject.html#82ffe0f34c3f081ceafbf82d5739284f">00412</a> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1SpatialObject.html#82ffe0f34c3f081ceafbf82d5739284f">SetSpacing</a>( const <span class="keywordtype">double</span> <a name="l00413"></a>00413 spacing[<a class="code" href="itkMacro_8h.html#94ef2dc11d52c8ef0a78e34558feb8cb">itkGetStaticConstMacro</a>(ObjectDimension)] ) <a name="l00414"></a>00414 { this-><a class="code" href="classitk_1_1SpatialObject.html#68c3bc2ae9b997e28cf356766ab14fc2">GetIndexToObjectTransform</a>()-><a class="code" href="classitk_1_1ScalableAffineTransform.html#37bf5611ef7e8b42ea2e3449d706e8c8">SetScale</a>(spacing);} <a name="l00415"></a>00415 <a name="l00417"></a><a class="code" href="classitk_1_1SpatialObject.html#60c0dbec517ea2ba4a391dec2692c0db">00417</a> <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keywordtype">double</span> * <a class="code" href="classitk_1_1SpatialObject.html#60c0dbec517ea2ba4a391dec2692c0db">GetSpacing</a>()<span class="keyword"> const </span> <a name="l00418"></a>00418 <span class="keyword"> </span>{<span class="keywordflow">return</span> this-><a class="code" href="classitk_1_1SpatialObject.html#68c3bc2ae9b997e28cf356766ab14fc2">GetIndexToObjectTransform</a>()-><a class="code" href="classitk_1_1ScalableAffineTransform.html#f92a684ed4b4e989e6babaf74e0bcfd3">GetScale</a>();} <a name="l00419"></a>00419 <a name="l00420"></a>00420 <a name="l00426"></a>00426 <a class="code" href="classitk_1_1SpatialObject.html#06c5467ac6cc0b4a25c27f2ee06421fb">TransformType</a> * <a class="code" href="classitk_1_1SpatialObject.html#68c3bc2ae9b997e28cf356766ab14fc2">GetIndexToObjectTransform</a>( <span class="keywordtype">void</span> ); <a name="l00427"></a>00427 <span class="keyword">const</span> <a class="code" href="classitk_1_1SpatialObject.html#06c5467ac6cc0b4a25c27f2ee06421fb">TransformType</a> * <a class="code" href="classitk_1_1SpatialObject.html#68c3bc2ae9b997e28cf356766ab14fc2">GetIndexToObjectTransform</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span>; <a name="l00429"></a>00429 <a name="l00433"></a>00433 <span class="keywordtype">void</span> <a class="code" href="classitk_1_1SpatialObject.html#ba1ab7518c9217d137d3d34733232333">SetObjectToParentTransform</a>( <a class="code" href="classitk_1_1SpatialObject.html#06c5467ac6cc0b4a25c27f2ee06421fb">TransformType</a> * transform ); <a name="l00434"></a>00434 <a class="code" href="classitk_1_1SpatialObject.html#06c5467ac6cc0b4a25c27f2ee06421fb">TransformType</a> * <a class="code" href="classitk_1_1SpatialObject.html#dd020d884d1e3ec4c86bb3442bd3a1e2">GetObjectToParentTransform</a>( <span class="keywordtype">void</span> ); <a name="l00435"></a>00435 <span class="keyword">const</span> <a class="code" href="classitk_1_1SpatialObject.html#06c5467ac6cc0b4a25c27f2ee06421fb">TransformType</a> * <a class="code" href="classitk_1_1SpatialObject.html#dd020d884d1e3ec4c86bb3442bd3a1e2">GetObjectToParentTransform</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span>; <a name="l00437"></a>00437 <a name="l00441"></a>00441 <a class="code" href="classitk_1_1SpatialObject.html#06c5467ac6cc0b4a25c27f2ee06421fb">TransformType</a> * <a class="code" href="classitk_1_1SpatialObject.html#f8ca6bdbf2f318b26e5786bfd13a02e3">GetObjectToNodeTransform</a>( <span class="keywordtype">void</span> ); <a name="l00442"></a>00442 <span class="keyword">const</span> <a class="code" href="classitk_1_1SpatialObject.html#06c5467ac6cc0b4a25c27f2ee06421fb">TransformType</a> * <a class="code" href="classitk_1_1SpatialObject.html#f8ca6bdbf2f318b26e5786bfd13a02e3">GetObjectToNodeTransform</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span>; <a name="l00444"></a>00444 <a name="l00449"></a>00449 <span class="keywordtype">void</span> <a class="code" href="classitk_1_1SpatialObject.html#a1d1d5e311b6218efaedd9886ec5f434">AddSpatialObject</a>( <a class="code" href="classitk_1_1SpatialObject.html#93235a1c4c6894ef587ebb741b641635">Self</a> * pointer ); <a name="l00450"></a>00450 <a name="l00455"></a>00455 <span class="keywordtype">void</span> <a class="code" href="classitk_1_1SpatialObject.html#392e10e8fdf9abfd83a37773a4d84b6e">RemoveSpatialObject</a>( <a class="code" href="classitk_1_1SpatialObject.html#93235a1c4c6894ef587ebb741b641635">Self</a> * <span class="keywordtype">object</span> ); <a name="l00456"></a>00456 <a name="l00458"></a>00458 <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classitk_1_1SpatialObject.html#93235a1c4c6894ef587ebb741b641635">Self</a> * <a class="code" href="classitk_1_1SpatialObject.html#a2e06b87c178596845bc045ea15a9b89">GetParent</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span>; <a name="l00459"></a>00459 <a name="l00461"></a>00461 <span class="keyword">virtual</span> <a class="code" href="classitk_1_1SpatialObject.html#93235a1c4c6894ef587ebb741b641635">Self</a> * <a class="code" href="classitk_1_1SpatialObject.html#a2e06b87c178596845bc045ea15a9b89">GetParent</a>( <span class="keywordtype">void</span> ); <a name="l00462"></a>00462 <a name="l00468"></a>00468 <span class="keyword">virtual</span> <a class="code" href="classitk_1_1SpatialObject.html#43b4fcbe45d576f68654bcc867b5758c">ChildrenListType</a> * <a class="code" href="classitk_1_1SpatialObject.html#910adf214ecf05b8f55d77080a65fe85">GetChildren</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> depth=0, <a name="l00469"></a>00469 <span class="keywordtype">char</span> * name=<a class="code" href="itkVoronoiDiagram2D_8h.html#070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> ) <span class="keyword">const</span>; <a name="l00470"></a>00470 <a name="l00472"></a>00472 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="classitk_1_1SpatialObject.html#e8416c930fa5550c793399e1c8382198">GetNumberOfChildren</a>( <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> depth=0, <a name="l00473"></a>00473 <span class="keywordtype">char</span> * name=<a class="code" href="itkVoronoiDiagram2D_8h.html#070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> ) <span class="keyword">const</span>; <a name="l00474"></a>00474 <a name="l00476"></a>00476 <span class="keywordtype">void</span> <a class="code" href="classitk_1_1SpatialObject.html#a2db20cf900932815dc907be5f106320">SetChildren</a>( <a class="code" href="classitk_1_1SpatialObject.html#43b4fcbe45d576f68654bcc867b5758c">ChildrenListType</a> & children ); <a name="l00477"></a>00477 <a name="l00480"></a>00480 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1SpatialObject.html#225f872b6e5d06f8b6cfa390ed97c493">Clear</a>( <span class="keywordtype">void</span> ); <a name="l00481"></a>00481 <a name="l00504"></a>00504 <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classitk_1_1SpatialObject.html#3653eb2bb18a24a58b3aed5769ab6d8d">ComputeBoundingBox</a>() <span class="keyword">const</span>; <a name="l00505"></a><a class="code" href="classitk_1_1SpatialObject.html#0a79159b0d88e3048b099c0c92a9da0c">00505</a> <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classitk_1_1SpatialObject.html#0a79159b0d88e3048b099c0c92a9da0c">ComputeLocalBoundingBox</a>()<span class="keyword"> const </span> <a name="l00506"></a>00506 <span class="keyword"> </span>{ <a name="l00507"></a>00507 std::cerr << <span class="stringliteral">"SpatialObject::ComputeLocalBoundingBox Not Implemented!"</span> <a name="l00508"></a>00508 << std::endl; <a name="l00509"></a>00509 <span class="keywordflow">return</span> <span class="keyword">false</span>; <a name="l00510"></a>00510 } <a name="l00512"></a>00512 <a name="l00515"></a>00515 <span class="keyword">virtual</span> <a class="code" href="classitk_1_1SpatialObject.html#39a8ba32fc52d6f796bc2d086a0e2fc6">BoundingBoxType</a> * <a class="code" href="classitk_1_1SpatialObject.html#d494fda85d7e00167448c239a7c05c69">GetBoundingBox</a>() <span class="keyword">const</span>; <a name="l00516"></a>00516 <a name="l00517"></a>00517 <a name="l00519"></a>00519 <a class="code" href="itkMacro_8h.html#7ebdd33cc5e7d74720ced9099c034faa">itkSetMacro</a>(BoundingBoxChildrenDepth, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>); <a name="l00520"></a>00520 <a class="code" href="itkMacro_8h.html#7d989c13a1a213168db99ae0f84185d4">itkGetConstReferenceMacro</a>(BoundingBoxChildrenDepth, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>); <a name="l00522"></a>00522 <a name="l00525"></a>00525 <a class="code" href="itkMacro_8h.html#7ebdd33cc5e7d74720ced9099c034faa">itkSetMacro</a>(BoundingBoxChildrenName, std::string); <a name="l00526"></a>00526 <a class="code" href="itkMacro_8h.html#7d989c13a1a213168db99ae0f84185d4">itkGetConstReferenceMacro</a>(BoundingBoxChildrenName, std::string); <a name="l00528"></a>00528 <a name="l00531"></a>00531 <span class="keywordtype">void</span> <a class="code" href="classitk_1_1SpatialObject.html#ef8cc17ebb33aed9c8d778f7b68c186a">SetParent</a>(<a class="code" href="classitk_1_1SpatialObject.html#93235a1c4c6894ef587ebb741b641635">Self</a> * parent); <a name="l00532"></a>00532 <a name="l00533"></a>00533 <a name="l00535"></a>00535 <span class="keywordtype">void</span> <a class="code" href="classitk_1_1SpatialObject.html#8038eacbc0316c7f66beb1346d33a5fe">SetNodeToParentNodeTransform</a>( <a class="code" href="classitk_1_1SpatialObject.html#06c5467ac6cc0b4a25c27f2ee06421fb">TransformType</a> * transform ); <a name="l00536"></a>00536 <a class="code" href="classitk_1_1SpatialObject.html#06c5467ac6cc0b4a25c27f2ee06421fb">TransformType</a> * <a class="code" href="classitk_1_1SpatialObject.html#4edf4106e43c46e23da997024ba95959">GetNodeToParentNodeTransform</a>( <span class="keywordtype">void</span> ); <a name="l00537"></a>00537 <span class="keyword">const</span> <a class="code" href="classitk_1_1SpatialObject.html#06c5467ac6cc0b4a25c27f2ee06421fb">TransformType</a> * <a class="code" href="classitk_1_1SpatialObject.html#4edf4106e43c46e23da997024ba95959">GetNodeToParentNodeTransform</a>( <span class="keywordtype">void</span> ) <span class="keyword">const</span>; <a name="l00539"></a>00539 <a name="l00542"></a>00542 <a class="code" href="itkMacro_8h.html#7ebdd33cc5e7d74720ced9099c034faa">itkSetMacro</a>(DefaultInsideValue,<span class="keywordtype">double</span>); <a name="l00543"></a>00543 <a class="code" href="itkMacro_8h.html#89294335d94b115d40e2603f2fff7950">itkGetConstMacro</a>(DefaultInsideValue,<span class="keywordtype">double</span>); <a name="l00545"></a>00545 <a name="l00548"></a>00548 <a class="code" href="itkMacro_8h.html#7ebdd33cc5e7d74720ced9099c034faa">itkSetMacro</a>(DefaultOutsideValue,<span class="keywordtype">double</span>); <a name="l00549"></a>00549 <a class="code" href="itkMacro_8h.html#89294335d94b115d40e2603f2fff7950">itkGetConstMacro</a>(DefaultOutsideValue,<span class="keywordtype">double</span>); <a name="l00551"></a>00551 <a name="l00554"></a>00554 <span class="keyword">virtual</span> std::string <a class="code" href="classitk_1_1SpatialObject.html#8c56dc32453410d345dd7996b6b4362e">GetSpatialObjectTypeAsString</a>() <span class="keyword">const</span>; <a name="l00555"></a>00555 <a name="l00556"></a>00556 <span class="keyword">protected</span>: <a name="l00557"></a>00557 <a name="l00559"></a>00559 <a class="code" href="classitk_1_1SpatialObject.html#741519d9445ab54b1e077ba7318691d2">SpatialObject</a>(); <a name="l00560"></a>00560 <a name="l00562"></a>00562 <span class="keyword">virtual</span> <a class="code" href="classitk_1_1SpatialObject.html#3ad92cbaddd7274ffa8f29a0e53d9fa2">~SpatialObject</a>(); <a name="l00563"></a>00563 <a name="l00564"></a>00564 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classitk_1_1SpatialObject.html#c42c30908f0094e7bf1d90b86c1434e3">PrintSelf</a>( std::ostream& os, <a class="code" href="classitk_1_1Indent.html" title="Control indentation during Print() invocation.">Indent</a> indent ) <span class="keyword">const</span>; <a name="l00565"></a>00565 <a name="l00570"></a>00570 <span class="keywordtype">void</span> <a class="code" href="classitk_1_1SpatialObject.html#f672b8b76edf95d1225d8675e9c3ea88">ComputeOffsetTable</a>(); <a name="l00571"></a>00571 <a name="l00572"></a>00572 <a class="code" href="itkMacro_8h.html#7ebdd33cc5e7d74720ced9099c034faa">itkSetMacro</a>(Dimension,<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>); <a name="l00573"></a>00573 <a class="code" href="itkMacro_8h.html#7d989c13a1a213168db99ae0f84185d4">itkGetConstReferenceMacro</a>(Dimension,<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>) <a name="l00574"></a>00574 <a class="code" href="itkMacro_8h.html#7ebdd33cc5e7d74720ced9099c034faa">itkSetMacro</a>(TypeName,std::string); <a name="l00575"></a>00575 <a class="code" href="itkMacro_8h.html#d11f8adb47609be2b4b58948904f8a7c">itkGetConstObjectMacro</a>(Bounds,<a class="code" href="classitk_1_1SpatialObject.html#39a8ba32fc52d6f796bc2d086a0e2fc6">BoundingBoxType</a>); <a name="l00576"></a>00576 <a class="code" href="itkMacro_8h.html#d11f8adb47609be2b4b58948904f8a7c">itkGetConstObjectMacro</a>(InternalInverseTransform,<a class="code" href="classitk_1_1SpatialObject.html#06c5467ac6cc0b4a25c27f2ee06421fb">TransformType</a>); <a name="l00577"></a>00577 <a name="l00584"></a>00584 <span class="keywordtype">bool</span> <a class="code" href="classitk_1_1SpatialObject.html#d598bf0d666ba0abe02e31158d717aea">SetInternalInverseTransformToWorldToIndexTransform</a>() <span class="keyword">const</span>; <a name="l00585"></a>00585 <a name="l00586"></a>00586 <span class="keyword">private</span>: <a name="l00587"></a>00587 <a name="l00588"></a>00588 <a class="code" href="classitk_1_1SpatialObject.html#741519d9445ab54b1e077ba7318691d2">SpatialObject</a>(<span class="keyword">const</span> <a class="code" href="classitk_1_1SpatialObject.html#93235a1c4c6894ef587ebb741b641635">Self</a>&); <span class="comment">//purposely not implemented</span> <a name="l00589"></a>00589 <span class="keywordtype">void</span> operator=(<span class="keyword">const</span> <a class="code" href="classitk_1_1SpatialObject.html#93235a1c4c6894ef587ebb741b641635">Self</a>&); <span class="comment">//purposely not implemented</span> <a name="l00590"></a>00590 <a name="l00591"></a>00591 <a class="code" href="classitk_1_1SpatialObject.html#bab37057248d014904df7802ca4b4548">BoundingBoxPointer</a> m_Bounds; <a name="l00592"></a>00592 <span class="keyword">mutable</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> m_BoundsMTime; <a name="l00593"></a>00593 <a name="l00594"></a>00594 <a class="code" href="classitk_1_1SpatialObject.html#e8883207fbf12a8d3fcd240a58eaa8fd">TransformPointer</a> m_ObjectToParentTransform; <a name="l00595"></a>00595 <a class="code" href="classitk_1_1SpatialObject.html#e8883207fbf12a8d3fcd240a58eaa8fd">TransformPointer</a> m_ObjectToWorldTransform; <a name="l00596"></a>00596 <a class="code" href="classitk_1_1SpatialObject.html#e8883207fbf12a8d3fcd240a58eaa8fd">TransformPointer</a> m_IndexToWorldTransform; <a name="l00597"></a>00597 <a name="l00599"></a>00599 std::string m_TypeName; <a name="l00600"></a>00600 <a name="l00601"></a>00601 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> m_Dimension; <a name="l00602"></a>00602 <a name="l00603"></a>00603 <a class="code" href="classitk_1_1SpatialObject.html#355b6347f5577f84430fdd1810582ee6">OffsetValueType</a> m_OffsetTable[3+1]; <a name="l00604"></a>00604 <a name="l00605"></a>00605 <a class="code" href="classitk_1_1SpatialObject.html#04af535a0d3b00ec8f33d16f8b6d79d5">RegionType</a> m_LargestPossibleRegion; <a name="l00606"></a>00606 <a class="code" href="classitk_1_1SpatialObject.html#04af535a0d3b00ec8f33d16f8b6d79d5">RegionType</a> m_RequestedRegion; <a name="l00607"></a>00607 <a class="code" href="classitk_1_1SpatialObject.html#04af535a0d3b00ec8f33d16f8b6d79d5">RegionType</a> m_BufferedRegion; <a name="l00608"></a>00608 <a name="l00609"></a>00609 std::string m_BoundingBoxChildrenName; <a name="l00610"></a>00610 <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> m_BoundingBoxChildrenDepth; <a name="l00611"></a>00611 <a class="code" href="classitk_1_1SpatialObject.html#95a183995d1c7119bcf410cd58834cab">PropertyPointer</a> m_Property; <a name="l00612"></a>00612 <a name="l00614"></a>00614 <span class="keywordtype">int</span> m_Id; <a name="l00615"></a>00615 <span class="keywordtype">int</span> m_ParentId; <a name="l00616"></a>00616 <a name="l00618"></a>00618 <span class="keyword">typename</span> <a class="code" href="classitk_1_1SpatialObjectTreeNode.html#a2f369d9fdf7bc16b1eadef970c12ce1">TreeNodeType::Pointer</a> m_TreeNode; <a name="l00619"></a>00619 <a name="l00621"></a>00621 <a class="code" href="classitk_1_1SpatialObject.html#ad64a4257669e632b5e9cce109c138bb">AffineGeometryFramePointer</a> m_AffineGeometryFrame; <a name="l00622"></a>00622 <a name="l00625"></a>00625 <a class="code" href="classitk_1_1SpatialObject.html#43b4fcbe45d576f68654bcc867b5758c">ChildrenListType</a> m_InternalChildrenList; <a name="l00626"></a>00626 <a name="l00629"></a>00629 <a class="code" href="classitk_1_1SpatialObject.html#e8883207fbf12a8d3fcd240a58eaa8fd">TransformPointer</a> m_InternalInverseTransform; <a name="l00630"></a>00630 <a name="l00632"></a>00632 <span class="keywordtype">double</span> m_DefaultInsideValue; <a name="l00633"></a>00633 <a name="l00635"></a>00635 <span class="keywordtype">double</span> m_DefaultOutsideValue; <a name="l00636"></a>00636 }; <a name="l00637"></a>00637 <a name="l00638"></a>00638 } <span class="comment">// end of namespace itk</span> <a name="l00639"></a>00639 <a name="l00640"></a>00640 <span class="preprocessor">#if !defined(CABLE_CONFIGURATION) </span> <a name="l00641"></a>00641 <span class="preprocessor"></span><span class="preprocessor">#ifndef ITK_MANUAL_INSTANTIATION </span> <a name="l00642"></a>00642 <span class="preprocessor"></span><span class="preprocessor">#include "itkSpatialObject.txx"</span> <a name="l00643"></a>00643 <span class="preprocessor">#endif </span> <a name="l00644"></a>00644 <span class="preprocessor"></span><span class="preprocessor">#endif </span> <a name="l00645"></a>00645 <span class="preprocessor"></span> <a name="l00646"></a>00646 <span class="preprocessor">#endif // __itkSpatialObject_h</span> <a name="l00647"></a>00647 <span class="preprocessor"></span> </pre></div></div> <hr><address><small> Generated at Fri May 8 00:16:51 2009 for ITK by <a href="http://www.stack.nl/~dimitri/doxygen/index.html"> <img src="http://www.stack.nl/~dimitri/doxygen/doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53> </a> 1.5.9 written by <a href="mailto:dimitri@stack.nl">Dimitri van Heesch</a>, © 1997-2000</small></address> </body> </html>