Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 60f1dc962abad0f3b492991a4fbef9be > files > 92

vtk-doc-5.4.2-5mdv2010.0.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>VTK: vtkAbstractTransform Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="classes.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="classes.html"><span>Alphabetical&nbsp;List</span></a></li>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&nbsp;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>vtkAbstractTransform Class Reference</h1><!-- doxytag: class="vtkAbstractTransform" --><!-- doxytag: inherits="vtkObject" --><code>#include &lt;<a class="el" href="a03765.html">vtkAbstractTransform.h</a>&gt;</code>
<p>
<div class="dynheader">
Inheritance diagram for vtkAbstractTransform:</div>
<div class="dynsection">
<p><center><img src="a07788.png" border="0" usemap="#a07789" alt="Inheritance graph"></center>
<map name="a07789">
<area shape="rect" href="a00577.html" title="allows operations on any transforms" alt="" coords="516,82,668,108"><area shape="rect" href="a00637.html" title="A transformation between two geographic coordinate systems." alt="" coords="528,132,656,159"><area shape="rect" href="a00696.html" title="superclass for homogeneous transformations" alt="" coords="496,183,688,210"><area shape="rect" href="a01867.html" title="superclass for nonlinear geometric transformations" alt="" coords="524,310,660,336"><area shape="rect" href="a01084.html" title="abstract base class for most VTK objects" alt="" coords="165,158,245,184"><area shape="rect" href="a01085.html" title="abstract base class for most VTK objects" alt="" coords="7,158,116,184"><area shape="rect" href="a00964.html" title="abstract superclass for linear transformations" alt="" coords="788,107,929,134"><area shape="rect" href="a01000.html" title="convert a matrix to a transform" alt="" coords="736,158,981,184"><area shape="rect" href="a01207.html" title="describes a 4x4 matrix transformation" alt="" coords="772,208,945,235"><area shape="rect" href="a00718.html" title="a transform that doesn&#39;t do anything" alt="" coords="1071,6,1217,32"><area shape="rect" href="a00927.html" title="Implementation of the ICP algorithm." alt="" coords="1031,56,1257,83"><area shape="rect" href="a00948.html" title="a linear transform specified by two corresponding point sets" alt="" coords="1063,107,1225,134"><area shape="rect" href="a01001.html" title="convert a matrix to a transform" alt="" coords="1047,158,1241,184"><area shape="rect" href="a01723.html" title="describes linear transformations via a 4x4 matrix" alt="" coords="1092,208,1196,235"><area shape="rect" href="a00354.html" title="cylindrical to rectangular coords and back" alt="" coords="776,259,941,286"><area shape="rect" href="a00676.html" title="a nonlinear warp transformation" alt="" coords="795,310,923,336"><area shape="rect" href="a01586.html" title="spherical to rectangular coords and back" alt="" coords="779,360,939,387"><area shape="rect" href="a01704.html" title="a nonlinear warp transformation" alt="" coords="760,411,957,438"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>
<div class="dynheader">
Collaboration diagram for vtkAbstractTransform:</div>
<div class="dynsection">
<p><center><img src="a07790.png" border="0" usemap="#a07791" alt="Collaboration graph"></center>
<map name="a07791">
<area shape="rect" href="a01084.html" title="abstract base class for most VTK objects" alt="" coords="65,96,145,123"><area shape="rect" href="a01085.html" title="abstract base class for most VTK objects" alt="" coords="5,6,115,32"><area shape="rect" href="a01719.html" title="record modification and/or execution time" alt="" coords="139,6,248,32"><area shape="rect" href="a01548.html" title="vtkSimpleCriticalSection" alt="" coords="292,96,460,123"></map>
<center><font size="2">[<a href="graph_legend.html">legend</a>]</font></center></div>

<p>
<a href="a07792.html">List of all members.</a><hr><a name="_details"></a><h2>Detailed Description</h2>
superclass for all geometric transformations 
<p>
<a class="el" href="a00089.html" title="superclass for all geometric transformations">vtkAbstractTransform</a> is the superclass for all VTK geometric transformations. The VTK transform hierarchy is split into two major branches: warp transformations and homogeneous (including linear) transformations. The latter can be represented in terms of a 4x4 transformation matrix, the former cannot. <p>
Transformations can be pipelined through two mechanisms: <p>
1) <a class="el" href="a00089.html#555bdea171c19819b912397c3edf20e9">GetInverse()</a> returns the pipelined inverse of a transformation i.e. if you modify the original transform, any transform previously returned by the <a class="el" href="a00089.html#555bdea171c19819b912397c3edf20e9">GetInverse()</a> method will automatically update itself according to the change. <p>
2) You can do pipelined concatenation of transformations through the <a class="el" href="a00577.html" title="allows operations on any transforms">vtkGeneralTransform</a> class, the <a class="el" href="a01207.html" title="describes a 4x4 matrix transformation">vtkPerspectiveTransform</a> class, or the <a class="el" href="a01723.html" title="describes linear transformations via a 4x4 matrix">vtkTransform</a> class. <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="a00577.html" title="allows operations on any transforms">vtkGeneralTransform</a> <a class="el" href="a01867.html" title="superclass for nonlinear geometric transformations">vtkWarpTransform</a> <a class="el" href="a00696.html" title="superclass for homogeneous transformations">vtkHomogeneousTransform</a> <a class="el" href="a00964.html" title="abstract superclass for linear transformations">vtkLinearTransform</a> <a class="el" href="a00718.html" title="a transform that doesn&#39;t do anything">vtkIdentityTransform</a> <a class="el" href="a01731.html" title="transform points and associated normals and vectors for polygonal dataset">vtkTransformPolyDataFilter</a> <a class="el" href="a01728.html" title="transform points and associated normals and vectors">vtkTransformFilter</a> <a class="el" href="a00820.html" title="Reslices a volume along a new set of axes.">vtkImageReslice</a> <a class="el" href="a00855.html" title="abstract interface for implicit functions">vtkImplicitFunction</a> </dd></dl>

<p>Definition at line <a class="el" href="a03765.html#l00048">48</a> of file <a class="el" href="a03765.html">vtkAbstractTransform.h</a>.</p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="a01084.html">vtkObject</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#e60cf7f2849de8f12cfda8da580c878e">Superclass</a></td></tr>

<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#e9b134cb793de682e92e5c2b7948a165">GetClassName</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#a2a7c5038cfa516a12eb671ffbeb7885">IsA</a> (const char *type)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#00748b7629c2c0bc61e9a75a6ed862e3">PrintSelf</a> (ostream &amp;os, <a class="el" href="a00869.html">vtkIndent</a> indent)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">double *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#e4c6b5ceeee14a83e34af035f6b65d68">TransformNormalAtPoint</a> (const double point[3], const double normal[3])</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">double *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#340e921774ada56453dfb51d45c961e8">TransformVectorAtPoint</a> (const double point[3], const double vector[3])</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#37bf18763c6f3cdb6192f1ce6d6f9049">TransformPoints</a> (<a class="el" href="a01250.html">vtkPoints</a> *inPts, <a class="el" href="a01250.html">vtkPoints</a> *outPts)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00089.html">vtkAbstractTransform</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#555bdea171c19819b912397c3edf20e9">GetInverse</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#750ea5395009f7a6cd006e711c36647e">SetInverse</a> (<a class="el" href="a00089.html">vtkAbstractTransform</a> *transform)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#783360cc88470f6c3516da1023b025f9">Inverse</a> ()=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#d4f49b9d23aae2b042a8230fe61d0c52">DeepCopy</a> (<a class="el" href="a00089.html">vtkAbstractTransform</a> *)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#4d406166bd1254c1cfd20c115668d06b">Update</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="a00089.html">vtkAbstractTransform</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#f28de5055eb4566d980853dcc2bc9046">MakeTransform</a> ()=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#2c13044ce5e60d4a91008bbb2a777847">CircuitCheck</a> (<a class="el" href="a00089.html">vtkAbstractTransform</a> *transform)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned long&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#f1ff50303c79c4fe4c9c7851a2e0eda3">GetMTime</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#26f999de513969cc1c13bedbf92c4be1">UnRegister</a> (<a class="el" href="a01085.html">vtkObjectBase</a> *O)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#be67d3c28124b1b4139388d4ea2dc6e6">Identity</a> ()</td></tr>

<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#0931d17acf05827449b231ce77d24ba2">TransformPoint</a> (const float in[3], float out[3])</td></tr>

<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#978fb5d88da39f847dbcd562f5eaa433">TransformPoint</a> (const double in[3], double out[3])</td></tr>

<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">double *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#c2295311582f8d81c0e6177e29aa539b">TransformPoint</a> (double x, double y, double z)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">double *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#05e6ad6b8b008307b2bad79c1a333a9d">TransformPoint</a> (const double point[3])</td></tr>

<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#3c4c26e0e93542ca015a935b27011b35">TransformFloatPoint</a> (float x, float y, float z)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">float *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#12a70fdd724ec8483eb1090bfe2ba02d">TransformFloatPoint</a> (const float point[3])</td></tr>

<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">double *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#07ea2dd27591472c5f14b8ce07ef9d25">TransformDoublePoint</a> (double x, double y, double z)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">double *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#16b1ed6c50c51bf5dd429f053d61cf2b">TransformDoublePoint</a> (const double point[3])</td></tr>

<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#0b0a52deb570a3dbb406e5225c0e2fcf">TransformNormalAtPoint</a> (const float point[3], const float in[3], float out[3])</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#b32e4dd483ec2d383f33d80970c840ca">TransformNormalAtPoint</a> (const double point[3], const double in[3], double out[3])</td></tr>

<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">double *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#b75a8d208b3826d7ad7fda0dd6d4d86b">TransformDoubleNormalAtPoint</a> (const double point[3], const double normal[3])</td></tr>

<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#601dd3282c15ff7adc4ff015fc6278b6">TransformFloatNormalAtPoint</a> (const float point[3], const float normal[3])</td></tr>

<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#1bd372c625beab2b06111c9c8bce2c19">TransformVectorAtPoint</a> (const float point[3], const float in[3], float out[3])</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#73203ab68391aef1f3dc0acfc44b66c5">TransformVectorAtPoint</a> (const double point[3], const double in[3], double out[3])</td></tr>

<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">double *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#8dd98035b3bbb27203b09b112f99a48c">TransformDoubleVectorAtPoint</a> (const double point[3], const double vector[3])</td></tr>

<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#930f022a52b411ad489c27ff151b5d97">TransformFloatVectorAtPoint</a> (const float point[3], const float vector[3])</td></tr>

<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#3b0f97a65511ac2b2ddd8e62df954440">TransformPointsNormalsVectors</a> (<a class="el" href="a01250.html">vtkPoints</a> *inPts, <a class="el" href="a01250.html">vtkPoints</a> *outPts, <a class="el" href="a00356.html">vtkDataArray</a> *inNms, <a class="el" href="a00356.html">vtkDataArray</a> *outNms, <a class="el" href="a00356.html">vtkDataArray</a> *inVrs, <a class="el" href="a00356.html">vtkDataArray</a> *outVrs)</td></tr>

<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#0a8f8a49060145e32790a683e99cf67c">InternalTransformPoint</a> (const float in[3], float out[3])=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#39842f88c57280aad254c0073d762819">InternalTransformPoint</a> (const double in[3], double out[3])=0</td></tr>

<tr><td colspan="2"><div class="groupHeader"></div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#846baeaca3bfbc32d83903df4ee85f87">InternalTransformDerivative</a> (const float in[3], float out[3], float derivative[3][3])=0</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#695620ccc5024172b5caa78dca0ab40e">InternalTransformDerivative</a> (const double in[3], double out[3], double derivative[3][3])=0</td></tr>

<tr><td colspan="2"><br><h2>Static Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#476b4e61462c0504489505734cb337ee">IsTypeOf</a> (const char *type)</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">static <a class="el" href="a00089.html">vtkAbstractTransform</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#ebcc3dab4646ca91a7d35b8eadc7691b">SafeDownCast</a> (<a class="el" href="a01084.html">vtkObject</a> *o)</td></tr>

<tr><td colspan="2"><br><h2>Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#40ac7f5b90e34ebdd92481945a840eaf">vtkAbstractTransform</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#cbff4de343c06a1da624125bf3322fdb">~vtkAbstractTransform</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#d5441b39e2834b3d067a1ad2dca018cf">InternalUpdate</a> ()</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#7058c2594f3b8caa9276fc1ef1e9b73b">InternalDeepCopy</a> (<a class="el" href="a00089.html">vtkAbstractTransform</a> *)</td></tr>

<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">float&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#15fc2896c68ad5f73f4e4ec8eb5016b0">InternalFloatPoint</a> [3]</td></tr>

<tr><td class="memItemLeft" nowrap align="right" valign="top">double&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00089.html#b9502bca5f7ed3db554c25dbb5d6b216">InternalDoublePoint</a> [3]</td></tr>

</table>
<hr><h2>Member Typedef Documentation</h2>
<a class="anchor" name="e60cf7f2849de8f12cfda8da580c878e"></a><!-- doxytag: member="vtkAbstractTransform::Superclass" ref="e60cf7f2849de8f12cfda8da580c878e" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="a01084.html">vtkObject</a> <a class="el" href="a01084.html">vtkAbstractTransform::Superclass</a>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Reimplemented from <a class="el" href="a01084.html#11429dee69f4b562e03e07b453dae9b5">vtkObject</a>.</p>

<p>Reimplemented in <a class="el" href="a00354.html#8519585833cf368d21981862cb35ca70">vtkCylindricalTransform</a>, <a class="el" href="a00577.html#3adb807e20bb4accd5a25e13bc2fcda2">vtkGeneralTransform</a>, <a class="el" href="a00696.html#daac08360fe1daced6e9ca8742746f94">vtkHomogeneousTransform</a>, <a class="el" href="a00718.html#082bc29ea542b64f25b689ca684f6c82">vtkIdentityTransform</a>, <a class="el" href="a00964.html#05b3da4266835ee6265b5ce1468f2965">vtkLinearTransform</a>, <a class="el" href="a01000.html#641ff1663242fab87594c3131fa786b8">vtkMatrixToHomogeneousTransform</a>, <a class="el" href="a01001.html#8fead7a99f65cc5f6e545b0bd18035e1">vtkMatrixToLinearTransform</a>, <a class="el" href="a01207.html#2e61d8205e33573dbb9c768d5de15fe5">vtkPerspectiveTransform</a>, <a class="el" href="a01586.html#d1b167c5ad6ae37539aecce34ca9ccb6">vtkSphericalTransform</a>, <a class="el" href="a01723.html#742d6f6bf86c4f7133b8fe6d5e448c98">vtkTransform</a>, <a class="el" href="a01867.html#f7b86eeff3374485d0158d11b2f4d687">vtkWarpTransform</a>, <a class="el" href="a00637.html#3929c37a329614b42180db21c1c23a99">vtkGeoTransform</a>, <a class="el" href="a00676.html#1186149719a3eccdd53ca040f8999e4b">vtkGridTransform</a>, <a class="el" href="a00927.html#db3259b50120d2cec1b32492160b517f">vtkIterativeClosestPointTransform</a>, <a class="el" href="a00948.html#8e015ec2fbc52c4c517689955201a0ce">vtkLandmarkTransform</a>, and <a class="el" href="a01704.html#8d6a7c275939a59e8dcb5bce840b7ae5">vtkThinPlateSplineTransform</a>.</p>

<p>Definition at line <a class="el" href="a03765.html#l00052">52</a> of file <a class="el" href="a03765.html">vtkAbstractTransform.h</a>.</p>

</div>
</div><p>
<hr><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" name="40ac7f5b90e34ebdd92481945a840eaf"></a><!-- doxytag: member="vtkAbstractTransform::vtkAbstractTransform" ref="40ac7f5b90e34ebdd92481945a840eaf" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">vtkAbstractTransform::vtkAbstractTransform           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<a class="anchor" name="cbff4de343c06a1da624125bf3322fdb"></a><!-- doxytag: member="vtkAbstractTransform::~vtkAbstractTransform" ref="cbff4de343c06a1da624125bf3322fdb" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">vtkAbstractTransform::~vtkAbstractTransform           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="e9b134cb793de682e92e5c2b7948a165"></a><!-- doxytag: member="vtkAbstractTransform::GetClassName" ref="e9b134cb793de682e92e5c2b7948a165" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual const char* vtkAbstractTransform::GetClassName           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Reimplemented from <a class="el" href="a01084.html#d95975c85c2896ea32ff4cf1f8de0886">vtkObject</a>.</p>

<p>Reimplemented in <a class="el" href="a00354.html#12c9b2f75e0db5cae78292a13abbdd7a">vtkCylindricalTransform</a>, <a class="el" href="a00577.html#61eeb904141fcc79664aedaafd10b6ea">vtkGeneralTransform</a>, <a class="el" href="a00696.html#7dc33d7da1e28d49f54be5922fd96a33">vtkHomogeneousTransform</a>, <a class="el" href="a00718.html#e19239ec281ea255720be0faed4f2829">vtkIdentityTransform</a>, <a class="el" href="a00964.html#0653f50056574bc5a828ff2ef0352298">vtkLinearTransform</a>, <a class="el" href="a01000.html#784276b71ab959a84fea713e11481387">vtkMatrixToHomogeneousTransform</a>, <a class="el" href="a01001.html#19fe266bd17f3aca7fd4250af73f0a7b">vtkMatrixToLinearTransform</a>, <a class="el" href="a01207.html#96db36f43fec7649b3a8682d79c69d2f">vtkPerspectiveTransform</a>, <a class="el" href="a01586.html#56147a50c7ec93a0aa93d3744edd9baa">vtkSphericalTransform</a>, <a class="el" href="a01723.html#f51aa5b0cde82879f665979968740d5f">vtkTransform</a>, <a class="el" href="a01867.html#c7c0b939c10178ffad46126f58117338">vtkWarpTransform</a>, <a class="el" href="a00637.html#c02d4d7e35af38f08714eb9511c38890">vtkGeoTransform</a>, <a class="el" href="a00676.html#c30d9d53ba278b6aeea6597111021094">vtkGridTransform</a>, <a class="el" href="a00927.html#7653b2e7a6c300f7fe7e280a720794e4">vtkIterativeClosestPointTransform</a>, <a class="el" href="a00948.html#593a016f98424bfd3a2b10e4ed33e907">vtkLandmarkTransform</a>, and <a class="el" href="a01704.html#55b08a087cf1dc2703f6a473a07b1ffc">vtkThinPlateSplineTransform</a>.</p>

</div>
</div><p>
<a class="anchor" name="476b4e61462c0504489505734cb337ee"></a><!-- doxytag: member="vtkAbstractTransform::IsTypeOf" ref="476b4e61462c0504489505734cb337ee" args="(const char *type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static int vtkAbstractTransform::IsTypeOf           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeRevisionMacro found in vtkSetGet.h. 
<p>Reimplemented from <a class="el" href="a01084.html#e9548a248bce0f02f73bbcccd0a9489e">vtkObject</a>.</p>

<p>Reimplemented in <a class="el" href="a00354.html#f0994ea223a5074e8f51a2133375b7be">vtkCylindricalTransform</a>, <a class="el" href="a00577.html#7baa522a2362bb5d0987bb92511d68dd">vtkGeneralTransform</a>, <a class="el" href="a00696.html#913b4e0e8496892bd8d364617d9d0bc2">vtkHomogeneousTransform</a>, <a class="el" href="a00718.html#e1f621c4b96de8cf1f4607181d0858fb">vtkIdentityTransform</a>, <a class="el" href="a00964.html#d0ad7b0a0296e923751d743ed2c5ba1c">vtkLinearTransform</a>, <a class="el" href="a01000.html#44dd62ea8cdbf48b75d5b059187e3ae9">vtkMatrixToHomogeneousTransform</a>, <a class="el" href="a01001.html#296a18e88e8f4c99d71d09ab4f8a819b">vtkMatrixToLinearTransform</a>, <a class="el" href="a01207.html#fc1ebd2121504999ca5e6df80cc0e752">vtkPerspectiveTransform</a>, <a class="el" href="a01586.html#beef4c6544fde7edf2cae308225aea5c">vtkSphericalTransform</a>, <a class="el" href="a01723.html#dc11ddbcc86c9343ca52e87ac2f8f3cc">vtkTransform</a>, <a class="el" href="a01867.html#474a6c30652e45e56fef2173b9ced328">vtkWarpTransform</a>, <a class="el" href="a00637.html#b160cd4251fbab27203d526ce32c1b4b">vtkGeoTransform</a>, <a class="el" href="a00676.html#1b96f7dc0176085ad82d530c134aba01">vtkGridTransform</a>, <a class="el" href="a00927.html#d2cb4d8292356fece8fcdbfdfcd093bc">vtkIterativeClosestPointTransform</a>, <a class="el" href="a00948.html#a7a679c2d9c0a910945ffd59d7569271">vtkLandmarkTransform</a>, and <a class="el" href="a01704.html#c7387470376d44c51deef793306fdba2">vtkThinPlateSplineTransform</a>.</p>

</div>
</div><p>
<a class="anchor" name="a2a7c5038cfa516a12eb671ffbeb7885"></a><!-- doxytag: member="vtkAbstractTransform::IsA" ref="a2a7c5038cfa516a12eb671ffbeb7885" args="(const char *type)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int vtkAbstractTransform::IsA           </td>
          <td>(</td>
          <td class="paramtype">const char *&nbsp;</td>
          <td class="paramname"> <em>name</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeRevisionMacro found in vtkSetGet.h. 
<p>Reimplemented from <a class="el" href="a01084.html#831e57b04e46827a7098aa81abadee69">vtkObject</a>.</p>

<p>Reimplemented in <a class="el" href="a00354.html#ca3e28a24494885834987fbf37cf533f">vtkCylindricalTransform</a>, <a class="el" href="a00577.html#9e41c0aee7b7599ce4301865fbe1d270">vtkGeneralTransform</a>, <a class="el" href="a00696.html#7228060014ac6e6f7bed10caeb4a364c">vtkHomogeneousTransform</a>, <a class="el" href="a00718.html#2ce939fcb2632acd599ad450ec37d1a6">vtkIdentityTransform</a>, <a class="el" href="a00964.html#7010e6eaaa611e8b39371d0558cd25fe">vtkLinearTransform</a>, <a class="el" href="a01000.html#0e3d3f166185945512ab13b76b2c4c57">vtkMatrixToHomogeneousTransform</a>, <a class="el" href="a01001.html#d65d642c2d45ad165edcb968e8aaa4e6">vtkMatrixToLinearTransform</a>, <a class="el" href="a01207.html#a84c4c933dd83ad927fbc25a2c869027">vtkPerspectiveTransform</a>, <a class="el" href="a01586.html#bc96c79c3c05f54c87739ab4e02e781d">vtkSphericalTransform</a>, <a class="el" href="a01723.html#f163fb48c576d3f4610da1f5557db2ee">vtkTransform</a>, <a class="el" href="a01867.html#150704b3f5f4a82dade5478989fb820d">vtkWarpTransform</a>, <a class="el" href="a00637.html#d72031a1e39445b69bb6eeb204d930ae">vtkGeoTransform</a>, <a class="el" href="a00676.html#5ed99ee6f23b16df6241cd008e06fde1">vtkGridTransform</a>, <a class="el" href="a00927.html#beedb4b16fc851d994712c98c1831ef5">vtkIterativeClosestPointTransform</a>, <a class="el" href="a00948.html#1aacc9eda74f9b7e6f6cfa62b3bd603c">vtkLandmarkTransform</a>, and <a class="el" href="a01704.html#74bd4251ecdb6b0c99d177f15d7d1e64">vtkThinPlateSplineTransform</a>.</p>

</div>
</div><p>
<a class="anchor" name="ebcc3dab4646ca91a7d35b8eadc7691b"></a><!-- doxytag: member="vtkAbstractTransform::SafeDownCast" ref="ebcc3dab4646ca91a7d35b8eadc7691b" args="(vtkObject *o)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="a00089.html">vtkAbstractTransform</a>* vtkAbstractTransform::SafeDownCast           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a01084.html">vtkObject</a> *&nbsp;</td>
          <td class="paramname"> <em>o</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Reimplemented from <a class="el" href="a01084.html#bb9351f076544c427ee91229dce83abe">vtkObject</a>.</p>

<p>Reimplemented in <a class="el" href="a00354.html#0b32370bede086be03c53ae2ea3d93b9">vtkCylindricalTransform</a>, <a class="el" href="a00577.html#d0cb634c6504194c1bd8c6538896e744">vtkGeneralTransform</a>, <a class="el" href="a00696.html#a47740a969ac429dfe143141dc27643e">vtkHomogeneousTransform</a>, <a class="el" href="a00718.html#ffdf20dcc0ab8ec05632476d06c9115e">vtkIdentityTransform</a>, <a class="el" href="a00964.html#2ab3604361b78948bb64ea481e96396d">vtkLinearTransform</a>, <a class="el" href="a01000.html#f4c886df9d7a1a72ee541a2795d0471a">vtkMatrixToHomogeneousTransform</a>, <a class="el" href="a01001.html#e66b0eddcf0a37a762a0d5acc9e0c504">vtkMatrixToLinearTransform</a>, <a class="el" href="a01207.html#9d23ecdf882cb02cd4c70116548bae30">vtkPerspectiveTransform</a>, <a class="el" href="a01586.html#1e18542b52d58a3dffc54606ee51e077">vtkSphericalTransform</a>, <a class="el" href="a01723.html#7df85b117c8f48b67ca9492ec4eb01ea">vtkTransform</a>, <a class="el" href="a01867.html#094ff2abe4753dfa17c8aa5db69be7b9">vtkWarpTransform</a>, <a class="el" href="a00637.html#09203ebb3af6c3f996ced0bbc1e7999e">vtkGeoTransform</a>, <a class="el" href="a00676.html#4dc3d619346078511cea4e2507b0c7bf">vtkGridTransform</a>, <a class="el" href="a00927.html#a97f93f5b290edb3c306410685417d74">vtkIterativeClosestPointTransform</a>, <a class="el" href="a00948.html#b7d1da7eb88c769331ee78f134f2611c">vtkLandmarkTransform</a>, and <a class="el" href="a01704.html#789caae08e6d0718b5e2af49dd8888bf">vtkThinPlateSplineTransform</a>.</p>

</div>
</div><p>
<a class="anchor" name="00748b7629c2c0bc61e9a75a6ed862e3"></a><!-- doxytag: member="vtkAbstractTransform::PrintSelf" ref="00748b7629c2c0bc61e9a75a6ed862e3" args="(ostream &amp;os, vtkIndent indent)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void vtkAbstractTransform::PrintSelf           </td>
          <td>(</td>
          <td class="paramtype">ostream &amp;&nbsp;</td>
          <td class="paramname"> <em>os</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00869.html">vtkIndent</a>&nbsp;</td>
          <td class="paramname"> <em>indent</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Methods invoked by print to print information about the object including superclasses. Typically not called by the user (use <a class="el" href="a01085.html#edadf6378465fd81c2592ef64262e2a5">Print()</a> instead) but used in the hierarchical print process to combine the output of several classes. 
<p>Reimplemented from <a class="el" href="a01084.html#bf3dbb4154289b56a12483eee3866263">vtkObject</a>.</p>

<p>Reimplemented in <a class="el" href="a00354.html#f7f7ccac63e739916a4f1c6e6d6fb737">vtkCylindricalTransform</a>, <a class="el" href="a00577.html#17a0e405aa782e22be02b87b5cbdadcb">vtkGeneralTransform</a>, <a class="el" href="a00696.html#a9bbcd99737354687acf6de35b3a4dae">vtkHomogeneousTransform</a>, <a class="el" href="a00718.html#0e885d942281b31c632ea251f58494e7">vtkIdentityTransform</a>, <a class="el" href="a00964.html#465e3a206890ea282162d11169e0bf50">vtkLinearTransform</a>, <a class="el" href="a01000.html#6c2272619179f5588e7261e8befd179f">vtkMatrixToHomogeneousTransform</a>, <a class="el" href="a01001.html#1d8b22444c8924944e96e08009f7c76b">vtkMatrixToLinearTransform</a>, <a class="el" href="a01207.html#9bf4431e74b9ab2a89cf948186b7aca4">vtkPerspectiveTransform</a>, <a class="el" href="a01586.html#8c98f423e035853569c16b916ef7d7f4">vtkSphericalTransform</a>, <a class="el" href="a01723.html#5be0076dc4f6c72627a29620b4dc06d8">vtkTransform</a>, <a class="el" href="a01867.html#a745d728d4f3be8862d61bf5ab628d3d">vtkWarpTransform</a>, <a class="el" href="a00637.html#0e0b092c4054374ad6f3c59812314fca">vtkGeoTransform</a>, <a class="el" href="a00676.html#e6d18ac2627f645699eb8571a8c893e5">vtkGridTransform</a>, <a class="el" href="a00927.html#3924a666e6819256de4823102b8e7982">vtkIterativeClosestPointTransform</a>, <a class="el" href="a00948.html#9b317e83c405c5dc4d2c472c57e768ec">vtkLandmarkTransform</a>, and <a class="el" href="a01704.html#0987efe7818a42b333cf80c93dd20f66">vtkThinPlateSplineTransform</a>.</p>

</div>
</div><p>
<a class="anchor" name="0931d17acf05827449b231ce77d24ba2"></a><!-- doxytag: member="vtkAbstractTransform::TransformPoint" ref="0931d17acf05827449b231ce77d24ba2" args="(const float in[3], float out[3])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void vtkAbstractTransform::TransformPoint           </td>
          <td>(</td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>in</em>[3], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>out</em>[3]</td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Apply the transformation to a coordinate. You can use the same array to store both the input and output point. 
<p>Definition at line <a class="el" href="a03765.html#l00058">58</a> of file <a class="el" href="a03765.html">vtkAbstractTransform.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="978fb5d88da39f847dbcd562f5eaa433"></a><!-- doxytag: member="vtkAbstractTransform::TransformPoint" ref="978fb5d88da39f847dbcd562f5eaa433" args="(const double in[3], double out[3])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void vtkAbstractTransform::TransformPoint           </td>
          <td>(</td>
          <td class="paramtype">const double&nbsp;</td>
          <td class="paramname"> <em>in</em>[3], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>out</em>[3]</td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Apply the transformation to a double-precision coordinate. You can use the same array to store both the input and output point. 
<p>Definition at line <a class="el" href="a03765.html#l00065">65</a> of file <a class="el" href="a03765.html">vtkAbstractTransform.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="c2295311582f8d81c0e6177e29aa539b"></a><!-- doxytag: member="vtkAbstractTransform::TransformPoint" ref="c2295311582f8d81c0e6177e29aa539b" args="(double x, double y, double z)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double* vtkAbstractTransform::TransformPoint           </td>
          <td>(</td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>z</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Apply the transformation to a double-precision coordinate. Use this if you are programming in Python, tcl or Java. 
<p>Definition at line <a class="el" href="a03765.html#l00072">72</a> of file <a class="el" href="a03765.html">vtkAbstractTransform.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="05e6ad6b8b008307b2bad79c1a333a9d"></a><!-- doxytag: member="vtkAbstractTransform::TransformPoint" ref="05e6ad6b8b008307b2bad79c1a333a9d" args="(const double point[3])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double* vtkAbstractTransform::TransformPoint           </td>
          <td>(</td>
          <td class="paramtype">const double&nbsp;</td>
          <td class="paramname"> <em>point</em>[3]          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Apply the transformation to a double-precision coordinate. Use this if you are programming in Python, tcl or Java. 
<p>Definition at line <a class="el" href="a03765.html#l00074">74</a> of file <a class="el" href="a03765.html">vtkAbstractTransform.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="3c4c26e0e93542ca015a935b27011b35"></a><!-- doxytag: member="vtkAbstractTransform::TransformFloatPoint" ref="3c4c26e0e93542ca015a935b27011b35" args="(float x, float y, float z)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float* vtkAbstractTransform::TransformFloatPoint           </td>
          <td>(</td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>z</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Apply the transformation to an (x,y,z) coordinate. Use this if you are programming in Python, tcl or Java. 
<p>Definition at line <a class="el" href="a03765.html#l00081">81</a> of file <a class="el" href="a03765.html">vtkAbstractTransform.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="12a70fdd724ec8483eb1090bfe2ba02d"></a><!-- doxytag: member="vtkAbstractTransform::TransformFloatPoint" ref="12a70fdd724ec8483eb1090bfe2ba02d" args="(const float point[3])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float* vtkAbstractTransform::TransformFloatPoint           </td>
          <td>(</td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>point</em>[3]          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Apply the transformation to an (x,y,z) coordinate. Use this if you are programming in Python, tcl or Java. 
<p>Definition at line <a class="el" href="a03765.html#l00087">87</a> of file <a class="el" href="a03765.html">vtkAbstractTransform.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="07ea2dd27591472c5f14b8ce07ef9d25"></a><!-- doxytag: member="vtkAbstractTransform::TransformDoublePoint" ref="07ea2dd27591472c5f14b8ce07ef9d25" args="(double x, double y, double z)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double* vtkAbstractTransform::TransformDoublePoint           </td>
          <td>(</td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>x</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>y</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>z</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Apply the transformation to a double-precision (x,y,z) coordinate. Use this if you are programming in Python, tcl or Java. 
<p>Definition at line <a class="el" href="a03765.html#l00094">94</a> of file <a class="el" href="a03765.html">vtkAbstractTransform.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="16b1ed6c50c51bf5dd429f053d61cf2b"></a><!-- doxytag: member="vtkAbstractTransform::TransformDoublePoint" ref="16b1ed6c50c51bf5dd429f053d61cf2b" args="(const double point[3])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double* vtkAbstractTransform::TransformDoublePoint           </td>
          <td>(</td>
          <td class="paramtype">const double&nbsp;</td>
          <td class="paramname"> <em>point</em>[3]          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Apply the transformation to a double-precision (x,y,z) coordinate. Use this if you are programming in Python, tcl or Java. 
<p>Definition at line <a class="el" href="a03765.html#l00100">100</a> of file <a class="el" href="a03765.html">vtkAbstractTransform.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="0b0a52deb570a3dbb406e5225c0e2fcf"></a><!-- doxytag: member="vtkAbstractTransform::TransformNormalAtPoint" ref="0b0a52deb570a3dbb406e5225c0e2fcf" args="(const float point[3], const float in[3], float out[3])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void vtkAbstractTransform::TransformNormalAtPoint           </td>
          <td>(</td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>point</em>[3], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>in</em>[3], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>out</em>[3]</td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Apply the transformation to a normal at the specified vertex. If the transformation is a <a class="el" href="a00964.html" title="abstract superclass for linear transformations">vtkLinearTransform</a>, you can use TransformNormal() instead. 
</div>
</div><p>
<a class="anchor" name="b32e4dd483ec2d383f33d80970c840ca"></a><!-- doxytag: member="vtkAbstractTransform::TransformNormalAtPoint" ref="b32e4dd483ec2d383f33d80970c840ca" args="(const double point[3], const double in[3], double out[3])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void vtkAbstractTransform::TransformNormalAtPoint           </td>
          <td>(</td>
          <td class="paramtype">const double&nbsp;</td>
          <td class="paramname"> <em>point</em>[3], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&nbsp;</td>
          <td class="paramname"> <em>in</em>[3], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>out</em>[3]</td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Apply the transformation to a normal at the specified vertex. If the transformation is a <a class="el" href="a00964.html" title="abstract superclass for linear transformations">vtkLinearTransform</a>, you can use TransformNormal() instead. 
</div>
</div><p>
<a class="anchor" name="e4c6b5ceeee14a83e34af035f6b65d68"></a><!-- doxytag: member="vtkAbstractTransform::TransformNormalAtPoint" ref="e4c6b5ceeee14a83e34af035f6b65d68" args="(const double point[3], const double normal[3])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double* vtkAbstractTransform::TransformNormalAtPoint           </td>
          <td>(</td>
          <td class="paramtype">const double&nbsp;</td>
          <td class="paramname"> <em>point</em>[3], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&nbsp;</td>
          <td class="paramname"> <em>normal</em>[3]</td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Definition at line <a class="el" href="a03765.html#l00114">114</a> of file <a class="el" href="a03765.html">vtkAbstractTransform.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="b75a8d208b3826d7ad7fda0dd6d4d86b"></a><!-- doxytag: member="vtkAbstractTransform::TransformDoubleNormalAtPoint" ref="b75a8d208b3826d7ad7fda0dd6d4d86b" args="(const double point[3], const double normal[3])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double* vtkAbstractTransform::TransformDoubleNormalAtPoint           </td>
          <td>(</td>
          <td class="paramtype">const double&nbsp;</td>
          <td class="paramname"> <em>point</em>[3], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&nbsp;</td>
          <td class="paramname"> <em>normal</em>[3]</td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Apply the transformation to a double-precision normal at the specified vertex. If the transformation is a <a class="el" href="a00964.html" title="abstract superclass for linear transformations">vtkLinearTransform</a>, you can use TransformDoubleNormal() instead. 
<p>Definition at line <a class="el" href="a03765.html#l00123">123</a> of file <a class="el" href="a03765.html">vtkAbstractTransform.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="601dd3282c15ff7adc4ff015fc6278b6"></a><!-- doxytag: member="vtkAbstractTransform::TransformFloatNormalAtPoint" ref="601dd3282c15ff7adc4ff015fc6278b6" args="(const float point[3], const float normal[3])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float* vtkAbstractTransform::TransformFloatNormalAtPoint           </td>
          <td>(</td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>point</em>[3], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>normal</em>[3]</td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Apply the transformation to a single-precision normal at the specified vertex. If the transformation is a <a class="el" href="a00964.html" title="abstract superclass for linear transformations">vtkLinearTransform</a>, you can use TransformFloatNormal() instead. 
<p>Definition at line <a class="el" href="a03765.html#l00133">133</a> of file <a class="el" href="a03765.html">vtkAbstractTransform.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="1bd372c625beab2b06111c9c8bce2c19"></a><!-- doxytag: member="vtkAbstractTransform::TransformVectorAtPoint" ref="1bd372c625beab2b06111c9c8bce2c19" args="(const float point[3], const float in[3], float out[3])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void vtkAbstractTransform::TransformVectorAtPoint           </td>
          <td>(</td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>point</em>[3], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>in</em>[3], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>out</em>[3]</td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Apply the transformation to a vector at the specified vertex. If the transformation is a <a class="el" href="a00964.html" title="abstract superclass for linear transformations">vtkLinearTransform</a>, you can use TransformVector() instead. 
</div>
</div><p>
<a class="anchor" name="73203ab68391aef1f3dc0acfc44b66c5"></a><!-- doxytag: member="vtkAbstractTransform::TransformVectorAtPoint" ref="73203ab68391aef1f3dc0acfc44b66c5" args="(const double point[3], const double in[3], double out[3])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void vtkAbstractTransform::TransformVectorAtPoint           </td>
          <td>(</td>
          <td class="paramtype">const double&nbsp;</td>
          <td class="paramname"> <em>point</em>[3], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&nbsp;</td>
          <td class="paramname"> <em>in</em>[3], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>out</em>[3]</td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Apply the transformation to a vector at the specified vertex. If the transformation is a <a class="el" href="a00964.html" title="abstract superclass for linear transformations">vtkLinearTransform</a>, you can use TransformVector() instead. 
</div>
</div><p>
<a class="anchor" name="340e921774ada56453dfb51d45c961e8"></a><!-- doxytag: member="vtkAbstractTransform::TransformVectorAtPoint" ref="340e921774ada56453dfb51d45c961e8" args="(const double point[3], const double vector[3])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double* vtkAbstractTransform::TransformVectorAtPoint           </td>
          <td>(</td>
          <td class="paramtype">const double&nbsp;</td>
          <td class="paramname"> <em>point</em>[3], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&nbsp;</td>
          <td class="paramname"> <em>vector</em>[3]</td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Definition at line <a class="el" href="a03765.html#l00149">149</a> of file <a class="el" href="a03765.html">vtkAbstractTransform.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="8dd98035b3bbb27203b09b112f99a48c"></a><!-- doxytag: member="vtkAbstractTransform::TransformDoubleVectorAtPoint" ref="8dd98035b3bbb27203b09b112f99a48c" args="(const double point[3], const double vector[3])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double* vtkAbstractTransform::TransformDoubleVectorAtPoint           </td>
          <td>(</td>
          <td class="paramtype">const double&nbsp;</td>
          <td class="paramname"> <em>point</em>[3], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&nbsp;</td>
          <td class="paramname"> <em>vector</em>[3]</td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Apply the transformation to a double-precision vector at the specified vertex. If the transformation is a <a class="el" href="a00964.html" title="abstract superclass for linear transformations">vtkLinearTransform</a>, you can use TransformDoubleVector() instead. 
<p>Definition at line <a class="el" href="a03765.html#l00158">158</a> of file <a class="el" href="a03765.html">vtkAbstractTransform.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="930f022a52b411ad489c27ff151b5d97"></a><!-- doxytag: member="vtkAbstractTransform::TransformFloatVectorAtPoint" ref="930f022a52b411ad489c27ff151b5d97" args="(const float point[3], const float vector[3])" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float* vtkAbstractTransform::TransformFloatVectorAtPoint           </td>
          <td>(</td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>point</em>[3], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>vector</em>[3]</td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Apply the transformation to a single-precision vector at the specified vertex. If the transformation is a <a class="el" href="a00964.html" title="abstract superclass for linear transformations">vtkLinearTransform</a>, you can use TransformFloatVector() instead. 
<p>Definition at line <a class="el" href="a03765.html#l00168">168</a> of file <a class="el" href="a03765.html">vtkAbstractTransform.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="37bf18763c6f3cdb6192f1ce6d6f9049"></a><!-- doxytag: member="vtkAbstractTransform::TransformPoints" ref="37bf18763c6f3cdb6192f1ce6d6f9049" args="(vtkPoints *inPts, vtkPoints *outPts)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void vtkAbstractTransform::TransformPoints           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a01250.html">vtkPoints</a> *&nbsp;</td>
          <td class="paramname"> <em>inPts</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01250.html">vtkPoints</a> *&nbsp;</td>
          <td class="paramname"> <em>outPts</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Apply the transformation to a series of points, and append the results to outPts. 
<p>Reimplemented in <a class="el" href="a00696.html#3b36115b40cc03b094dd4229df9a9a67">vtkHomogeneousTransform</a>, <a class="el" href="a00718.html#0356fa32f22942cbfa8ab2c848300d09">vtkIdentityTransform</a>, <a class="el" href="a00964.html#a8f3677347aa5c5a14fe9765d18f70c6">vtkLinearTransform</a>, and <a class="el" href="a00637.html#b3001037d4a1205ebb68f4a28c86c684">vtkGeoTransform</a>.</p>

</div>
</div><p>
<a class="anchor" name="3b0f97a65511ac2b2ddd8e62df954440"></a><!-- doxytag: member="vtkAbstractTransform::TransformPointsNormalsVectors" ref="3b0f97a65511ac2b2ddd8e62df954440" args="(vtkPoints *inPts, vtkPoints *outPts, vtkDataArray *inNms, vtkDataArray *outNms, vtkDataArray *inVrs, vtkDataArray *outVrs)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void vtkAbstractTransform::TransformPointsNormalsVectors           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a01250.html">vtkPoints</a> *&nbsp;</td>
          <td class="paramname"> <em>inPts</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a01250.html">vtkPoints</a> *&nbsp;</td>
          <td class="paramname"> <em>outPts</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00356.html">vtkDataArray</a> *&nbsp;</td>
          <td class="paramname"> <em>inNms</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00356.html">vtkDataArray</a> *&nbsp;</td>
          <td class="paramname"> <em>outNms</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00356.html">vtkDataArray</a> *&nbsp;</td>
          <td class="paramname"> <em>inVrs</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00356.html">vtkDataArray</a> *&nbsp;</td>
          <td class="paramname"> <em>outVrs</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Apply the transformation to a combination of points, normals and vectors. 
<p>Reimplemented in <a class="el" href="a00696.html#2fed345ae7a604cfcba4484d749cc40c">vtkHomogeneousTransform</a>, <a class="el" href="a00718.html#9d439116ad34aaeb4e07c456628bcdc8">vtkIdentityTransform</a>, and <a class="el" href="a00964.html#da9875a5b91dcc8720076dcce269ffbd">vtkLinearTransform</a>.</p>

</div>
</div><p>
<a class="anchor" name="555bdea171c19819b912397c3edf20e9"></a><!-- doxytag: member="vtkAbstractTransform::GetInverse" ref="555bdea171c19819b912397c3edf20e9" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00089.html">vtkAbstractTransform</a>* vtkAbstractTransform::GetInverse           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Get the inverse of this transform. If you modify this transform, the returned inverse transform will automatically update. If you want the inverse of a <a class="el" href="a01723.html" title="describes linear transformations via a 4x4 matrix">vtkTransform</a>, you might want to use GetLinearInverse() instead which will type cast the result from <a class="el" href="a00089.html" title="superclass for all geometric transformations">vtkAbstractTransform</a> to <a class="el" href="a00964.html" title="abstract superclass for linear transformations">vtkLinearTransform</a>. 
<p>Reimplemented in <a class="el" href="a01723.html#6799e59fd833af0289db623b70cca5db">vtkTransform</a>.</p>

</div>
</div><p>
<a class="anchor" name="750ea5395009f7a6cd006e711c36647e"></a><!-- doxytag: member="vtkAbstractTransform::SetInverse" ref="750ea5395009f7a6cd006e711c36647e" args="(vtkAbstractTransform *transform)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void vtkAbstractTransform::SetInverse           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00089.html">vtkAbstractTransform</a> *&nbsp;</td>
          <td class="paramname"> <em>transform</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Set a transformation that this transform will be the inverse of. This transform will automatically update to agree with the inverse transform that you set. 
</div>
</div><p>
<a class="anchor" name="783360cc88470f6c3516da1023b025f9"></a><!-- doxytag: member="vtkAbstractTransform::Inverse" ref="783360cc88470f6c3516da1023b025f9" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void vtkAbstractTransform::Inverse           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Invert the transformation. 
<p>Implemented in <a class="el" href="a00577.html#2069d8ec01510d7028dbf5a387ea91a8">vtkGeneralTransform</a>, <a class="el" href="a00718.html#0de33da6687bbba6f927e8ccb82dfa02">vtkIdentityTransform</a>, <a class="el" href="a01000.html#57bfd4bd39f654319425b17a658f387b">vtkMatrixToHomogeneousTransform</a>, <a class="el" href="a01001.html#f27c27069653672b75e016dc954802d2">vtkMatrixToLinearTransform</a>, <a class="el" href="a01207.html#3dd584fdde3a58a2f787c1127afeb1d9">vtkPerspectiveTransform</a>, <a class="el" href="a01723.html#6d01e14b46a00345d01b49fceb0bd27a">vtkTransform</a>, <a class="el" href="a01867.html#2b15a97f73e1e1d0093e5b79aadc3798">vtkWarpTransform</a>, <a class="el" href="a00637.html#7bdfcd843376e5b6314124891656a127">vtkGeoTransform</a>, <a class="el" href="a00927.html#782e9bcbaa9d7640bd5d8caba63c01dd">vtkIterativeClosestPointTransform</a>, and <a class="el" href="a00948.html#996392a73809e458220c24f9fa516c6f">vtkLandmarkTransform</a>.</p>

</div>
</div><p>
<a class="anchor" name="d4f49b9d23aae2b042a8230fe61d0c52"></a><!-- doxytag: member="vtkAbstractTransform::DeepCopy" ref="d4f49b9d23aae2b042a8230fe61d0c52" args="(vtkAbstractTransform *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void vtkAbstractTransform::DeepCopy           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00089.html">vtkAbstractTransform</a> *&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Copy this transform from another of the same type. 
</div>
</div><p>
<a class="anchor" name="4d406166bd1254c1cfd20c115668d06b"></a><!-- doxytag: member="vtkAbstractTransform::Update" ref="4d406166bd1254c1cfd20c115668d06b" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void vtkAbstractTransform::Update           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Update the transform to account for any changes which have been made. You do not have to call this method yourself, it is called automatically whenever the transform needs an update. 
</div>
</div><p>
<a class="anchor" name="0a8f8a49060145e32790a683e99cf67c"></a><!-- doxytag: member="vtkAbstractTransform::InternalTransformPoint" ref="0a8f8a49060145e32790a683e99cf67c" args="(const float in[3], float out[3])=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void vtkAbstractTransform::InternalTransformPoint           </td>
          <td>(</td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>in</em>[3], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>out</em>[3]</td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This will calculate the transformation without calling Update. Meant for use only within other VTK classes. 
<p>Implemented in <a class="el" href="a00577.html#14717c8988412167efca831af4861a57">vtkGeneralTransform</a>, <a class="el" href="a00696.html#65cd43553aabd8b88b84b0d1266b26bd">vtkHomogeneousTransform</a>, <a class="el" href="a00718.html#91d34154c5f86fc6d6813fe35f7e078d">vtkIdentityTransform</a>, <a class="el" href="a00964.html#519c174c7c5579681ddb1f7d19035fcd">vtkLinearTransform</a>, <a class="el" href="a01867.html#4b825a2ac0f046df1db81612c7f2c8f2">vtkWarpTransform</a>, and <a class="el" href="a00637.html#db8433aaf6f34d24a914d2870ffbf738">vtkGeoTransform</a>.</p>

</div>
</div><p>
<a class="anchor" name="39842f88c57280aad254c0073d762819"></a><!-- doxytag: member="vtkAbstractTransform::InternalTransformPoint" ref="39842f88c57280aad254c0073d762819" args="(const double in[3], double out[3])=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void vtkAbstractTransform::InternalTransformPoint           </td>
          <td>(</td>
          <td class="paramtype">const double&nbsp;</td>
          <td class="paramname"> <em>in</em>[3], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>out</em>[3]</td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This will calculate the transformation without calling Update. Meant for use only within other VTK classes. 
<p>Implemented in <a class="el" href="a00577.html#f7f6658502301506eec68fd4fe2f493e">vtkGeneralTransform</a>, <a class="el" href="a00696.html#8ba3246a5f06000a3e32ec819e7ab062">vtkHomogeneousTransform</a>, <a class="el" href="a00718.html#9bf47b03cb9884125d76d269a45a76a6">vtkIdentityTransform</a>, <a class="el" href="a00964.html#8069645bd54ef889d8bef7a06fd13cb3">vtkLinearTransform</a>, <a class="el" href="a01867.html#874823262b1b648dd8965c47e03ccd04">vtkWarpTransform</a>, and <a class="el" href="a00637.html#950bb9acf1858ac76abd369e030277e5">vtkGeoTransform</a>.</p>

</div>
</div><p>
<a class="anchor" name="846baeaca3bfbc32d83903df4ee85f87"></a><!-- doxytag: member="vtkAbstractTransform::InternalTransformDerivative" ref="846baeaca3bfbc32d83903df4ee85f87" args="(const float in[3], float out[3], float derivative[3][3])=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void vtkAbstractTransform::InternalTransformDerivative           </td>
          <td>(</td>
          <td class="paramtype">const float&nbsp;</td>
          <td class="paramname"> <em>in</em>[3], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>out</em>[3], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">float&nbsp;</td>
          <td class="paramname"> <em>derivative</em>[3][3]</td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This will transform a point and, at the same time, calculate a 3x3 Jacobian matrix that provides the partial derivatives of the transformation at that point. This method does not call Update. Meant for use only within other VTK classes. 
<p>Implemented in <a class="el" href="a00577.html#2fae7ae4eb61ab22a755e589d8f8585f">vtkGeneralTransform</a>, <a class="el" href="a00696.html#17ed2a705b8a3110d2002a58e03a2fef">vtkHomogeneousTransform</a>, <a class="el" href="a00718.html#613c01d16a956d7f06dcb0d55c9022e1">vtkIdentityTransform</a>, <a class="el" href="a00964.html#7598bb617e96d766ad0ef1e1da059b76">vtkLinearTransform</a>, <a class="el" href="a01867.html#43093d5645f89cd7123baf6415f73e70">vtkWarpTransform</a>, and <a class="el" href="a00637.html#c89865f6ef79b8f72302cef94914e88a">vtkGeoTransform</a>.</p>

</div>
</div><p>
<a class="anchor" name="695620ccc5024172b5caa78dca0ab40e"></a><!-- doxytag: member="vtkAbstractTransform::InternalTransformDerivative" ref="695620ccc5024172b5caa78dca0ab40e" args="(const double in[3], double out[3], double derivative[3][3])=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void vtkAbstractTransform::InternalTransformDerivative           </td>
          <td>(</td>
          <td class="paramtype">const double&nbsp;</td>
          <td class="paramname"> <em>in</em>[3], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>out</em>[3], </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&nbsp;</td>
          <td class="paramname"> <em>derivative</em>[3][3]</td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
This will transform a point and, at the same time, calculate a 3x3 Jacobian matrix that provides the partial derivatives of the transformation at that point. This method does not call Update. Meant for use only within other VTK classes. 
<p>Implemented in <a class="el" href="a00577.html#f6123d67a4db1712e442da2c97d944f3">vtkGeneralTransform</a>, <a class="el" href="a00696.html#63fa0aae98333555eb13e01eb2b6980e">vtkHomogeneousTransform</a>, <a class="el" href="a00718.html#a116c9d8e49dc87998ef320d3c121aa8">vtkIdentityTransform</a>, <a class="el" href="a00964.html#c48ce4c764787c8a0d4e87423433f65b">vtkLinearTransform</a>, <a class="el" href="a01867.html#0723825577781f07cc70ec79bebbcece">vtkWarpTransform</a>, and <a class="el" href="a00637.html#8b37240a353b326e1134fe0b5b440517">vtkGeoTransform</a>.</p>

</div>
</div><p>
<a class="anchor" name="f28de5055eb4566d980853dcc2bc9046"></a><!-- doxytag: member="vtkAbstractTransform::MakeTransform" ref="f28de5055eb4566d980853dcc2bc9046" args="()=0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="a00089.html">vtkAbstractTransform</a>* vtkAbstractTransform::MakeTransform           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Make another transform of the same type. 
<p>Implemented in <a class="el" href="a00354.html#abc7b9608575003ee7f802868aeffb18">vtkCylindricalTransform</a>, <a class="el" href="a00577.html#e99fd6cdbdb58a0feb44ecd3731a6aa3">vtkGeneralTransform</a>, <a class="el" href="a00718.html#2969487dea8ac4d34a1a912b687de29b">vtkIdentityTransform</a>, <a class="el" href="a01000.html#8e3fe4f507c8e793c1f4d5b63a9212bc">vtkMatrixToHomogeneousTransform</a>, <a class="el" href="a01001.html#67aab167b46b39703e5ca684215f66d9">vtkMatrixToLinearTransform</a>, <a class="el" href="a01207.html#c70572b52888e38434ade393501d05a2">vtkPerspectiveTransform</a>, <a class="el" href="a01586.html#2f230f4b1d378f8ee3e1243f33f4adf0">vtkSphericalTransform</a>, <a class="el" href="a01723.html#01d4c6e4baa7c41d1319c5421c289382">vtkTransform</a>, <a class="el" href="a00637.html#46383057732973964771ac415a3010ae">vtkGeoTransform</a>, <a class="el" href="a00676.html#61a6f7946884fe1b7677512595a87c24">vtkGridTransform</a>, <a class="el" href="a00927.html#d43e227e2736b23ca0f5b1e57e6f86dd">vtkIterativeClosestPointTransform</a>, <a class="el" href="a00948.html#9e45b6a254a4835c94c3092598957121">vtkLandmarkTransform</a>, and <a class="el" href="a01704.html#239621cb193ba9b2db27c1d3fba5d0c7">vtkThinPlateSplineTransform</a>.</p>

</div>
</div><p>
<a class="anchor" name="2c13044ce5e60d4a91008bbb2a777847"></a><!-- doxytag: member="vtkAbstractTransform::CircuitCheck" ref="2c13044ce5e60d4a91008bbb2a777847" args="(vtkAbstractTransform *transform)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual int vtkAbstractTransform::CircuitCheck           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00089.html">vtkAbstractTransform</a> *&nbsp;</td>
          <td class="paramname"> <em>transform</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Check for self-reference. Will return true if concatenating with the specified transform, setting it to be our inverse, or setting it to be our input will create a circular reference. CircuitCheck is automatically called by SetInput(), <a class="el" href="a00089.html#750ea5395009f7a6cd006e711c36647e">SetInverse()</a>, and Concatenate(vtkXTransform *). Avoid using this function, it is experimental. 
<p>Reimplemented in <a class="el" href="a00577.html#7ed7dfcb92ed82206985b35a771402ae">vtkGeneralTransform</a>, <a class="el" href="a01207.html#2c52c66d249c0c1d51bf1367d5cf8b5a">vtkPerspectiveTransform</a>, and <a class="el" href="a01723.html#47c335c53f0917826db0e17724508640">vtkTransform</a>.</p>

</div>
</div><p>
<a class="anchor" name="f1ff50303c79c4fe4c9c7851a2e0eda3"></a><!-- doxytag: member="vtkAbstractTransform::GetMTime" ref="f1ff50303c79c4fe4c9c7851a2e0eda3" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned long vtkAbstractTransform::GetMTime           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Override GetMTime necessary because of inverse transforms. 
<p>Reimplemented from <a class="el" href="a01084.html#8137c0551b29bb996f0dd2f886bcd2da">vtkObject</a>.</p>

<p>Reimplemented in <a class="el" href="a00577.html#518ae5c1cf68922452f49f2e458e1c1f">vtkGeneralTransform</a>, <a class="el" href="a01000.html#be37174a9c368e687a4dc12972555893">vtkMatrixToHomogeneousTransform</a>, <a class="el" href="a01001.html#686e61e75a263ba24b80076b432ce244">vtkMatrixToLinearTransform</a>, <a class="el" href="a01207.html#3f2a559c87b36eeb2cce131a4deb1c67">vtkPerspectiveTransform</a>, <a class="el" href="a01723.html#119b99709e7ad602b70348139500d385">vtkTransform</a>, <a class="el" href="a00676.html#645dd4077bbd89914724553b38e7d6b1">vtkGridTransform</a>, <a class="el" href="a00927.html#1d17c8914390c80a0e096e998ca31503">vtkIterativeClosestPointTransform</a>, <a class="el" href="a00948.html#0d9ba206727a40a2cf6169108f96efa6">vtkLandmarkTransform</a>, and <a class="el" href="a01704.html#80d8f3777d47562b1ff5549bdc74975c">vtkThinPlateSplineTransform</a>.</p>

</div>
</div><p>
<a class="anchor" name="26f999de513969cc1c13bedbf92c4be1"></a><!-- doxytag: member="vtkAbstractTransform::UnRegister" ref="26f999de513969cc1c13bedbf92c4be1" args="(vtkObjectBase *O)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void vtkAbstractTransform::UnRegister           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a01085.html">vtkObjectBase</a> *&nbsp;</td>
          <td class="paramname"> <em>O</em>          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Needs a special <a class="el" href="a00089.html#26f999de513969cc1c13bedbf92c4be1">UnRegister()</a> implementation to avoid circular references. 
<p>Reimplemented from <a class="el" href="a01085.html#2f77b7beccf178c43570367c50c41567">vtkObjectBase</a>.</p>

</div>
</div><p>
<a class="anchor" name="be67d3c28124b1b4139388d4ea2dc6e6"></a><!-- doxytag: member="vtkAbstractTransform::Identity" ref="be67d3c28124b1b4139388d4ea2dc6e6" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void vtkAbstractTransform::Identity           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
<dl compact><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd>This method is deprecated in the base class. It is still valid to use it on many of the specialized classes. </dd></dl>

<p>Reimplemented in <a class="el" href="a00577.html#0da7f16b60f391478af2f91a5bf8a490">vtkGeneralTransform</a>, <a class="el" href="a01207.html#89106ff90513ed2e0954557799ce6e30">vtkPerspectiveTransform</a>, and <a class="el" href="a01723.html#cb700c3b86f84ad89b81d04fcb36d5ba">vtkTransform</a>.</p>

</div>
</div><p>
<a class="anchor" name="d5441b39e2834b3d067a1ad2dca018cf"></a><!-- doxytag: member="vtkAbstractTransform::InternalUpdate" ref="d5441b39e2834b3d067a1ad2dca018cf" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void vtkAbstractTransform::InternalUpdate           </td>
          <td>(</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Perform any subclass-specific Update. 
<p>Reimplemented in <a class="el" href="a00577.html#f8eb677df7d319ee57f2e8142640fc42">vtkGeneralTransform</a>, <a class="el" href="a01000.html#55e270b84ce1e4915f327b88dce12277">vtkMatrixToHomogeneousTransform</a>, <a class="el" href="a01001.html#5999fe2a6d86375be59ecd97a77ce81e">vtkMatrixToLinearTransform</a>, <a class="el" href="a01207.html#c81090f2b908f935f022ed8b4d60e86b">vtkPerspectiveTransform</a>, <a class="el" href="a01723.html#10c13139929452bb039a87675d03af04">vtkTransform</a>, <a class="el" href="a00676.html#42229fd1bdc2c5675f110974b381ba63">vtkGridTransform</a>, <a class="el" href="a00927.html#52f02c78f51ccc7ce52864d55c20ee44">vtkIterativeClosestPointTransform</a>, <a class="el" href="a00948.html#f8f0ca63bc015f63c6efbdfc2bbeb8dd">vtkLandmarkTransform</a>, and <a class="el" href="a01704.html#8c10951e7187e74972062f4100affcac">vtkThinPlateSplineTransform</a>.</p>

<p>Definition at line <a class="el" href="a03765.html#l00257">257</a> of file <a class="el" href="a03765.html">vtkAbstractTransform.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="7058c2594f3b8caa9276fc1ef1e9b73b"></a><!-- doxytag: member="vtkAbstractTransform::InternalDeepCopy" ref="7058c2594f3b8caa9276fc1ef1e9b73b" args="(vtkAbstractTransform *)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual void vtkAbstractTransform::InternalDeepCopy           </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00089.html">vtkAbstractTransform</a> *&nbsp;</td>
          <td class="paramname">          </td>
          <td>&nbsp;)&nbsp;</td>
          <td><code> [inline, protected, virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>
Perform any subclass-specific DeepCopy. 
<p>Reimplemented in <a class="el" href="a00354.html#4ccee2b99e4e396b9617d4bcd5e34d7e">vtkCylindricalTransform</a>, <a class="el" href="a00577.html#83df229f291a4e5fee09dc48c90e975a">vtkGeneralTransform</a>, <a class="el" href="a00696.html#a9d9394637f93a52fd6a6228e16d77ae">vtkHomogeneousTransform</a>, <a class="el" href="a00718.html#0cdcc1097cd5512667995774f41120af">vtkIdentityTransform</a>, <a class="el" href="a01000.html#f09654eee2f600551ada6f3fe074cbc1">vtkMatrixToHomogeneousTransform</a>, <a class="el" href="a01001.html#218f9265ce1c3a8637f648bf7f49bd84">vtkMatrixToLinearTransform</a>, <a class="el" href="a01207.html#a00bcf436895523dc28b0cd6308162f7">vtkPerspectiveTransform</a>, <a class="el" href="a01586.html#e52d7f78d008a7fe3f159aec5da4d197">vtkSphericalTransform</a>, <a class="el" href="a01723.html#9110286ee3329ae63315493ac727a944">vtkTransform</a>, <a class="el" href="a00676.html#7fd2076846234982b44c11eba511eb14">vtkGridTransform</a>, <a class="el" href="a00927.html#289d0c7fd10b89b56be345c4a57283a8">vtkIterativeClosestPointTransform</a>, <a class="el" href="a00948.html#a99b6aa2a66a79d8709b4b53ff659393">vtkLandmarkTransform</a>, and <a class="el" href="a01704.html#ca913bb834fa27b82685ce97f3a91309">vtkThinPlateSplineTransform</a>.</p>

<p>Definition at line <a class="el" href="a03765.html#l00260">260</a> of file <a class="el" href="a03765.html">vtkAbstractTransform.h</a>.</p>

</div>
</div><p>
<hr><h2>Member Data Documentation</h2>
<a class="anchor" name="15fc2896c68ad5f73f4e4ec8eb5016b0"></a><!-- doxytag: member="vtkAbstractTransform::InternalFloatPoint" ref="15fc2896c68ad5f73f4e4ec8eb5016b0" args="[3]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="a00089.html#15fc2896c68ad5f73f4e4ec8eb5016b0">vtkAbstractTransform::InternalFloatPoint</a>[3]<code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Definition at line <a class="el" href="a03765.html#l00260">260</a> of file <a class="el" href="a03765.html">vtkAbstractTransform.h</a>.</p>

</div>
</div><p>
<a class="anchor" name="b9502bca5f7ed3db554c25dbb5d6b216"></a><!-- doxytag: member="vtkAbstractTransform::InternalDoublePoint" ref="b9502bca5f7ed3db554c25dbb5d6b216" args="[3]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="a00089.html#b9502bca5f7ed3db554c25dbb5d6b216">vtkAbstractTransform::InternalDoublePoint</a>[3]<code> [protected]</code>          </td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>

<p>Definition at line <a class="el" href="a03765.html#l00263">263</a> of file <a class="el" href="a03765.html">vtkAbstractTransform.h</a>.</p>

</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li>dox/Common/<a class="el" href="a03765.html">vtkAbstractTransform.h</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Wed Jun 3 18:52:34 2009 for VTK by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>