[Insight-developers] GenerateOutputInformation() vs UpdateOutputInformation()
Miller, James V (CRD)
millerjv@crd.ge.com
Wed, 26 Sep 2001 11:31:56 -0400
This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.
------_=_NextPart_000_01C146A0.60228030
Content-Type: multipart/alternative;
boundary="----_=_NextPart_001_01C146A0.60228030"
------_=_NextPart_001_01C146A0.60228030
Content-Type: text/plain;
charset="iso-8859-1"
Will's be putting together the documentation of the pipeline mechanism and noticed that we were
overloading UpdateOutputInformation() in placed where we should be overriding
GenerateOutputInformation().
This is my fault as I wrote the first filter overriding UpdateOutputInformation() and told others
that is what they should do as well. But people should have been overriding
GenerateOutputInformation(). (What we had worked but could cause unnecessary updates on filters).
I have gone through the code and changed all the places where it was needed. I updated the
documentation in ProcessObject.
To summarize, a filter may need to override the following methods:
* GenerateData() or ThreadedGenerateData() - to perform some calculation
* GenerateOutputInformation() - if the LargestPossibleRegion, Spacing, or Origin of the output
will be different from the input.
* EnlargeOutputRequestedRegion() - if the filter needs to produce more output than was
originally requested
* GenerateInputRequestedRegion() - if the filter needs more or less data than it will produce
* GenerateOutputRequestedRegion() - if the filter has multiple outputs and each produces a
different amount of data.
If a ThreadedGenerateData() method is provided, the filter could also override
BeforeThreadedGenerateData() and AfterThreadedGenerateData() if single threaded execution is needed
at the beginning or end of the computations.
I apologize for the confusion.
Jim
Jim Miller
_____________________________________
Visualization & Computer Vision
GE Corporate Research & Development
Bldg. KW, Room C218B
P.O. Box 8, Schenectady NY 12301
millerjv@crd.ge.com < mailto:millerjv@crd.ge.com <mailto:millerjv@crd.ge.com> >
(518) 387-4005, Dial Comm: 8*833-4005,
Cell: (518) 505-7065, Fax: (518) 387-6981
------_=_NextPart_001_01C146A0.60228030
Content-Type: text/html;
charset="iso-8859-1"
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META content="MSHTML 5.50.4616.200" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=017302115-26092001><FONT size=2>Will's be putting together the
documentation of the pipeline mechanism and noticed that we were overloading
UpdateOutputInformation() in placed where we should be overriding
GenerateOutputInformation().</FONT></SPAN></DIV>
<DIV><SPAN class=017302115-26092001><FONT size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=017302115-26092001><FONT size=2>This is my fault as I wrote the
first filter overriding UpdateOutputInformation() and told others that is what
they should do as well. But people should have been overriding
GenerateOutputInformation(). (What we had worked but could cause unnecessary
updates on filters).</FONT></SPAN></DIV>
<DIV><SPAN class=017302115-26092001><FONT size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=017302115-26092001><FONT size=2>I have gone through the code
and changed all the places where it was needed. I updated the documentation in
ProcessObject.</FONT></SPAN></DIV>
<DIV><SPAN class=017302115-26092001><FONT size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=017302115-26092001><FONT size=2>To summarize, a filter may need
to override the following methods:</FONT></SPAN></DIV>
<DIV><SPAN class=017302115-26092001><FONT size=2></FONT></SPAN> </DIV>
<UL>
<LI><SPAN class=017302115-26092001><FONT size=2>GenerateData() or
ThreadedGenerateData() - to perform some calculation</FONT></SPAN></LI>
<LI><SPAN class=017302115-26092001></SPAN><SPAN class=017302115-26092001><FONT
size=2>GenerateOutputInformation() - if the LargestPossibleRegion,
Spacing, or Origin of the output will be different from the
input.</FONT></SPAN></LI>
<LI><SPAN class=017302115-26092001><FONT size=2>EnlargeOutputRequestedRegion()
- if the filter needs to produce more output than was originally
requested</FONT></SPAN></LI>
<LI><SPAN class=017302115-26092001><FONT size=2>GenerateInputRequestedRegion()
- if the filter needs more or less data than it will
produce</FONT></SPAN></LI>
<LI><SPAN class=017302115-26092001><FONT
size=2>GenerateOutputRequestedRegion() - if the filter has multiple outputs
and each produces a different amount of data.</FONT></SPAN></LI></UL>
<DIV><SPAN class=017302115-26092001><FONT size=2>If a ThreadedGenerateData()
method is provided, the filter could also override BeforeThreadedGenerateData()
and AfterThreadedGenerateData() if single threaded execution is needed at the
beginning or end of the computations.</FONT></SPAN></DIV>
<DIV><SPAN class=017302115-26092001><FONT size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=017302115-26092001><FONT size=2>I apologize for the
confusion.</FONT></SPAN></DIV>
<DIV><SPAN class=017302115-26092001><FONT size=2></FONT></SPAN> </DIV>
<DIV><SPAN class=017302115-26092001><FONT size=2>Jim</FONT></SPAN></DIV>
<DIV><SPAN class=017302115-26092001><FONT size=2></FONT></SPAN> </DIV>
<DIV><BR></DIV>
<P><B><FONT face="Comic Sans MS" color=#000080>Jim Miller</FONT></B>
<BR><B><I><FONT face=Arial color=#ff0000
size=2>_____________________________________</FONT></I></B><I></I><BR><I></I><I><FONT
face=Arial color=#000000 size=1>Visualization & Computer Vision<BR>GE
Corporate Research & Development<BR>Bldg. KW, Room C218B<BR>P.O. Box 8,
Schenectady NY 12301<BR><BR></FONT><U><FONT face=Arial color=#0000ff
size=1>millerjv@crd.ge.com <<A
href="mailto:millerjv@crd.ge.com">mailto:millerjv@crd.ge.com</A>></FONT></U></I><BR><I><FONT
face=Arial color=#000000 size=1>(518) 387-4005, Dial Comm: 8*833-4005,
</FONT></I><BR><I><FONT face=Arial color=#000000 size=1>Cell: (518) 505-7065,
Fax: (518) 387-6981</FONT></I> </P><BR>
<DIV> </DIV></BODY></HTML>
------_=_NextPart_001_01C146A0.60228030--
------_=_NextPart_000_01C146A0.60228030
Content-Type: application/octet-stream;
name="Miller, James V (CRD).vcf"
Content-Disposition: attachment;
filename="Miller, James V (CRD).vcf"
BEGIN:VCARD
VERSION:2.1
N:Miller;James
FN:Miller, James V (CRD)
ORG:CRD;ESL
TITLE:Computer Scientist
TEL;WORK;VOICE:*833-4005
TEL;WORK;VOICE:1 518 387-4005
ADR;WORK:;KW-C218B;P.O. Box 8;Schenectady;New York;12301;USA
LABEL;WORK;ENCODING=QUOTED-PRINTABLE:KW-C218B=0D=0AP.O. Box 8=0D=0ASchenectady, New York 12301=0D=0AUSA
EMAIL;PREF;INTERNET:millerjv@crd.ge.com
REV:20010420T140329Z
END:VCARD
------_=_NextPart_000_01C146A0.60228030--